| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 5 | 2 | 0% |
| Commands | 0 | 3 | 4 | 0% |
| Section tags | 2 | 3 | 1 | 33% |
What each file covers
Sections
0 shared · 5 only in A · 2 only in B- − Release discipline
- − One feature, one release
- − Commit attribution
- − Public vs private docs
- − Bracket / live-formatting ship checklist
- + CLAUDE.md
- + Claude Code specifics
Commands
0 shared · 3 only in A · 4 only in B- − pnpm release:qa
- − git diff main
- − pnpm -r build
- + pnpm -F @claudinho/mcp build
- + pnpm -r typecheck
- + pnpm lint
- + gh run watch <id> --exit-status
Section tags
2 shared · 3 only in A · 1 only in B- − git-pr
- − deployment
- − docs
- + agent-behaviour
- lint-format
- performance
Line diff
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
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
@@ −1 +1 @@
1−---
2−description: Release batching, gitignore policy, and pre-tag checks
3−alwaysApply: true
4−---
1+# CLAUDE.md
52
6−# Release discipline
3+This project uses **AGENTS.md** as the primary agent guide. Read it first:
74
8−## One feature, one release
5+@AGENTS.md
96
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`).
7+## Claude Code specifics
138
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.
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.
3619
