claudinho / rules
Cursor rule35 starsChanged 34 days agoMITView on GitHub
Bundle, bracket, and live-data invariants before opening a PR
In this repository10 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .cursor/rules/change-discipline.mdcCursor rule
- .cursor/rules/release-discipline.mdcCursor rule
- .cursor/rules/surface-parity.mdcCursor rule
- .cursor/rules/trust-boundary.mdcCursor rule
- claudinho-modeSkill
- verify-claudinhoSkill
- claudinho-modeSkill
- verify-claudinhoSkill
The file
Files
--- description: Bundle, bracket, and live-data invariants before opening a PR globs: packages/core/**/* alwaysApply: false --- # Bundle & bracket PR readiness Before marking a data-heavy feature merge-ready, run **`pnpm -r build && pnpm -r typecheck && pnpm -r test && pnpm lint`** (mirror CI — build first because cli/mcp import `@claudinho/core` from dist; `build` alone does not typecheck). `scripts/gate.sh` runs the same gate with CI's smokes and guards, one verdict per step; it does not run `pnpm release:qa` or replace CI's Node 22 floor, Windows and macOS jobs, which `scripts/push-and-watch.sh` reads on the pushed SHA. ## Adversarial tests (add when touching bracket/schedule) | Scenario | Assert | |----------|--------| | FT level + `winnerCode` | Winner advances | | `fetchWindow` throws, standings OK | Projected groups + `source` set | | Bundle-only bracket | No real flags in R32+ slots | | Group at 0 games played | Slots stay `tbd`, no `(proj.)` | | Group at 2/3 played, standings live | Leaders show flags + `(proj.)` | | Group fully played (round-robin complete) | Winner + runner-up `confirmed`, no `(proj.)` | | `toolGetBracket` `tz: UTC` vs `America/Mexico_City` | Calendar date/time differs on cross-midnight kickoff | | Knockout kickoffs span >1 week | Output includes month + day (not weekday-only) | | `formatShareBracket` social + compact | Same date format as CLI list | | `formatShareBracket` / `toolGetBracket` | Each disclaimer line once | | Statusline and `ambient --json` knockout countdown (cached fixtures) | Real nations or `⚽ —`; never `🏳️` | | Statusline and `ambient --json` stale cache during live KO | `live · syncing…` (on `ambient --json` in the view's `lang`, `en vivo · sincronizando…`; the statusline's stays English) without `🏳️`; resolved pairing when cache has it | | Empty fixtures cache at phase boundary | Re-polls after short TTL (~60s), not 15min | The invariants are `AGENTS.md` "Conventions" (canonical: the bundled schedule, the live pairing, the knockout surfaces). Their narration, and the knockout resolution, topology indexing, live hybrid paths and pre-merge QA this rule carried, are in `guides/conventions/bundle-and-bracket.md`; the adversarial test table stays in this rule, where the PR template cites it.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

