Two files, one repository
arturogarrido/claudinho ships 3 formats across 7 indexed files. The question worth asking is whether the second one says anything the first does not.
| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 2 | 5 | 0% |
| Commands | 0 | 4 | 3 | 0% |
| Section tags | 2 | 1 | 3 | 33% |
What each file covers
Sections
0 shared · 2 only in A · 5 only in B- − CLAUDE.md
- − Claude Code specifics
- + Release discipline
- + One feature, one release
- + Commit attribution
- + Public vs private docs
- + Bracket / live-formatting ship checklist
Commands
0 shared · 4 only in A · 3 only in B- − pnpm -F @claudinho/mcp build
- − pnpm -r typecheck
- − pnpm lint
- − gh run watch <id> --exit-status
- + pnpm release:qa
- + git diff main
- + pnpm -r build
Section tags
2 shared · 1 only in A · 3 only in B- − agent-behaviour
- + git-pr
- + deployment
- + docs
- lint-format
- performance
Line diff
arturogarrido/claudinho · CLAUDE.md
@@ −1 @@
1# CLAUDE.md
2
3This project uses **AGENTS.md** as the primary agent guide. Read it first:
4
5@AGENTS.md
6
7## Claude Code specifics
8
9- The statusline command must return in **<150ms** and **never** hit the network on the hot path — read from the local micro-cache.
10- Local MCP dev loop:
11 ```bash
12 pnpm -F @claudinho/mcp build
13 claude mcp add claudinho-dev -- node packages/mcp/dist/index.js
14 ```
15- When changing shared types, update `@claudinho/core` and run `pnpm -r typecheck` before committing.
16- Run `pnpm lint` (Biome) before committing; CI gates on it. The setup is lint-only (no formatter) — keep style consistent with the surrounding code.
17- **Before declaring any change "done," run the "Pre-PR self-review" rubric in `AGENTS.md`** — verify external API shapes against a *real* response (fixtures included); apply the change to every surface (CLI text **and** `--json`, MCP `data` **and** text, READMEs); audit against the Hard Constraints (existing code too); do an adversarial failure-mode pass (fail-closed; never cache transient errors); and bound default-on latency. For money/legal/external-API changes, do an independent reviewer pass and self-classify findings **P1/P2/P3**.
18- **After any push to a branch with CI, always watch the run and confirm it's green** (`gh run watch <id> --exit-status`); report the per-job result. Don't consider a push "done" until CI passes.
19
arturogarrido/claudinho · .cursor/rules/release-discipline.mdc
@@ +1 @@
1---
2description: Release batching, gitignore policy, and pre-tag checks
3alwaysApply: true
4---
5
6# Release discipline
7
8## One feature, one release
9
10- **One user-facing feature → one minor.** Stack review fixes (tz, dates, guards) into the **same PR** before merge when they belong to the same feature.
11- Do **not** tag npm until CI is green **and** `pnpm release:qa` passes (tripwires at the end must be 0 failed).
12- Before tagging: `git diff main` must not include accidental private paths (`docs/`, `CLAUDE.local.md`, `.env`).
13
14## Commit attribution
15
16Every commit produced with an AI agent: follow **`AGENTS.md` § Commit attribution** — trailer names the agent **and** model in use (e.g. `Co-Authored-By: Cursor (Composer 2.5) <cursoragent@cursor.com>`).
17
18## Public vs private docs
19
20**Tracked (public engineering guides):** `AGENTS.md`, `CLAUDE.md`, `.cursor/rules/`, README, MCP tool descriptions.
21
22**Gitignored (maintainer-local):** `docs/` (e.g. `docs/AGENTS.internal.md` notebook), `CLAUDE.local.md`.
23
24- Engineering process → update the **public** guides above.
25- Candid history, strategy, or release post-mortems → `docs/` notebook only.
26- **Never** add `!docs/…` exceptions to `.gitignore` without explicit maintainer approval.
27
28## Bracket / live-formatting ship checklist
29
30Before merge **or** release of bracket or kickoff-formatting work:
31
321. Adversarial tests: 0 games, mid-tournament (2/3 played), degraded standings.
332. **Surface parity:** CLI `bracket` + MCP `get_bracket` + `share bracket` all pass `tz` and show calendar dates on multi-week knockouts.
343. **Statusline knockouts (if touched):** indirect-resolve via cached `getKnockoutFixtures` — hot path fail-closed (no 🏳️ on countdown or `live · syncing…`); empty-cache short TTL; `knockout-surface-coverage.test.ts` + `statusline.test.ts` / `refresh.test.ts` green. See `.cursor/rules/surface-parity.mdc`.
354. After `pnpm -r build`, run **`pnpm release:qa`** and eyeball the rendered sections; keep `packages/mcp/test/tools.test.ts` green for MCP arg threading.
36
@@ −1 +1 @@
1−# CLAUDE.md
1+---
2+description: Release batching, gitignore policy, and pre-tag checks
3+alwaysApply: true
4+---
25
3−This project uses **AGENTS.md** as the primary agent guide. Read it first:
6+# Release discipline
47
5−@AGENTS.md
8+## One feature, one release
69
7−## Claude Code specifics
10+- **One user-facing feature → one minor.** Stack review fixes (tz, dates, guards) into the **same PR** before merge when they belong to the same feature.
11+- Do **not** tag npm until CI is green **and** `pnpm release:qa` passes (tripwires at the end must be 0 failed).
12+- Before tagging: `git diff main` must not include accidental private paths (`docs/`, `CLAUDE.local.md`, `.env`).
813
9−- The statusline command must return in **<150ms** and **never** hit the network on the hot path — read from the local micro-cache.
10−- Local MCP dev loop:
11− ```bash
12− pnpm -F @claudinho/mcp build
13− claude mcp add claudinho-dev -- node packages/mcp/dist/index.js
14− ```
15−- When changing shared types, update `@claudinho/core` and run `pnpm -r typecheck` before committing.
16−- Run `pnpm lint` (Biome) before committing; CI gates on it. The setup is lint-only (no formatter) — keep style consistent with the surrounding code.
17−- **Before declaring any change "done," run the "Pre-PR self-review" rubric in `AGENTS.md`** — verify external API shapes against a *real* response (fixtures included); apply the change to every surface (CLI text **and** `--json`, MCP `data` **and** text, READMEs); audit against the Hard Constraints (existing code too); do an adversarial failure-mode pass (fail-closed; never cache transient errors); and bound default-on latency. For money/legal/external-API changes, do an independent reviewer pass and self-classify findings **P1/P2/P3**.
18−- **After any push to a branch with CI, always watch the run and confirm it's green** (`gh run watch <id> --exit-status`); report the per-job result. Don't consider a push "done" until CI passes.
14+## Commit attribution
15+
16+Every commit produced with an AI agent: follow **`AGENTS.md` § Commit attribution** — trailer names the agent **and** model in use (e.g. `Co-Authored-By: Cursor (Composer 2.5) <cursoragent@cursor.com>`).
17+
18+## Public vs private docs
19+
20+**Tracked (public engineering guides):** `AGENTS.md`, `CLAUDE.md`, `.cursor/rules/`, README, MCP tool descriptions.
21+
22+**Gitignored (maintainer-local):** `docs/` (e.g. `docs/AGENTS.internal.md` notebook), `CLAUDE.local.md`.
23+
24+- Engineering process → update the **public** guides above.
25+- Candid history, strategy, or release post-mortems → `docs/` notebook only.
26+- **Never** add `!docs/…` exceptions to `.gitignore` without explicit maintainer approval.
27+
28+## Bracket / live-formatting ship checklist
29+
30+Before merge **or** release of bracket or kickoff-formatting work:
31+
32+1. Adversarial tests: 0 games, mid-tournament (2/3 played), degraded standings.
33+2. **Surface parity:** CLI `bracket` + MCP `get_bracket` + `share bracket` all pass `tz` and show calendar dates on multi-week knockouts.
34+3. **Statusline knockouts (if touched):** indirect-resolve via cached `getKnockoutFixtures` — hot path fail-closed (no 🏳️ on countdown or `live · syncing…`); empty-cache short TTL; `knockout-surface-coverage.test.ts` + `statusline.test.ts` / `refresh.test.ts` green. See `.cursor/rules/surface-parity.mdc`.
35+4. After `pnpm -r build`, run **`pnpm release:qa`** and eyeball the rendered sections; keep `packages/mcp/test/tools.test.ts` green for MCP arg threading.
1936
