@thebattlearena/corner 0.9.1-beta.70 → 0.10.1-beta.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +46 -26
  2. package/package.json +1 -1
  3. package/plugin/.claude-plugin/plugin.json +1 -1
  4. package/ring/agents/cornerman.md +32 -6
  5. package/ring/agents/rudo.md +2 -1
  6. package/ring/agents/wrestler.md +19 -4
  7. package/ring/hooks/hooks.json +42 -0
  8. package/ring/scripts/bout-stats-render.mjs +366 -0
  9. package/ring/scripts/bout-stats.mjs +360 -0
  10. package/ring/scripts/brief-build.mjs +130 -0
  11. package/ring/scripts/brief-guard.mjs +154 -0
  12. package/ring/scripts/brief.mjs +272 -0
  13. package/ring/scripts/compact-hook.mjs +110 -0
  14. package/ring/scripts/config.mjs +25 -1
  15. package/ring/scripts/contract-endpoints.mjs +163 -0
  16. package/ring/scripts/contract-preview.mjs +34 -14
  17. package/ring/scripts/fight.mjs +27 -0
  18. package/ring/scripts/findings.mjs +82 -3
  19. package/ring/scripts/format-gate.mjs +723 -0
  20. package/ring/scripts/format-worker.mjs +120 -0
  21. package/ring/scripts/front-routes.mjs +345 -0
  22. package/ring/scripts/judges-card.mjs +324 -3
  23. package/ring/scripts/lookout.mjs +22 -4
  24. package/ring/scripts/mask-guard.mjs +34 -1
  25. package/ring/scripts/page-embed.mjs +112 -0
  26. package/ring/scripts/play-by-play.mjs +155 -7
  27. package/ring/scripts/preparation-collect.mjs +177 -0
  28. package/ring/scripts/preparation.mjs +547 -0
  29. package/ring/scripts/round-bell.mjs +9 -2
  30. package/ring/scripts/rule-ids.mjs +124 -0
  31. package/ring/scripts/tech-plan-log.mjs +81 -0
  32. package/ring/scripts/tech-plan.mjs +191 -0
  33. package/ring/scripts/verdicts-log.mjs +75 -0
  34. package/ring/scripts/verdicts.mjs +205 -0
  35. package/ring/skills/play-by-play/SKILL.md +235 -33
  36. package/ring/skills/play-by-play/templates/blocks.css +196 -0
  37. package/ring/skills/play-by-play/templates/chronicle.html +358 -55
  38. package/ring/skills/play-by-play/templates/endpoints-view.js +1153 -0
  39. package/ring/skills/play-by-play/templates/interview-form.js +516 -0
  40. package/ring/skills/play-by-play/templates/now-panel.js +719 -0
  41. package/ring/skills/referee/SKILL.md +181 -56
  42. package/ring/skills/referee/references/api-diagram.md +56 -0
  43. package/ring/skills/referee/references/precedents.md +11 -0
  44. package/ring/skills/referee/references/rulebook.md +97 -6
  45. package/ring/skills/referee/templates/api-diagram.html +115 -0
  46. package/ring/skills/referee/templates/cornerman-batch.md +17 -11
  47. package/ring/skills/referee/templates/cornerman-concept.md +28 -30
  48. package/ring/skills/referee/templates/cornerman-range.md +16 -11
  49. package/ring/skills/referee/templates/escalation.md +7 -1
  50. package/ring/skills/referee/templates/round-bell-body.md +4 -0
  51. package/ring/skills/referee/templates/wrestler-brief.md +28 -41
  52. package/ring/skills/referee/templates/wrestler-cutoff.md +4 -0
  53. package/ring/skills/referee/templates/wrestler-resume.md +4 -0
  54. package/ring/skills/sparring/SKILL.md +13 -4
  55. package/ring/skills/sparring/templates/contrato.md +29 -0
  56. package/ring/skills/sparring/templates/rudo-brief.md +7 -0
  57. package/ring/skills/title-defense/SKILL.md +2 -2
  58. package/ring/skills/weigh-in/SKILL.md +6 -0
@@ -0,0 +1,29 @@
1
+ # Contracts proposed · {{slug}} · <repo>
2
+
3
+ <!-- One entry per endpoint or data model a rudo adds or changes, written the moment it proposes
4
+ it, before implementing it. Nothing here is approved: the referee bout that refactors this
5
+ sparring opens with these bases, draws them and takes them to the judge (§2b) before any code
6
+ depends on them. Keep each entry current when the rudo changes it; never delete one, mark it
7
+ `dropped` with why. -->
8
+
9
+ ## Endpoints
10
+
11
+ ### `<METHOD> <path>` · <repo> · <new | changed | dropped>
12
+
13
+ - **What it is for:** <the screen or action that calls it>.
14
+ - **Request:** <path and query params, body fields with type and whether required>.
15
+ - **Response:** <status and shape, fields with type; pagination when it lists>.
16
+ - **Errors:** <status · code · when>.
17
+ - **Scoping:** <tenant / workspace / user it is filtered by>.
18
+ - **Shortcut taken:** <what the sparring skipped here: no DTO, no auth check, a mock… | none>.
19
+
20
+ ## Data models
21
+
22
+ ### `<table or entity>` · <repo> · <new | changed | dropped>
23
+
24
+ - **Columns:** <name · type · nullable / default / unique / index>, one per line; a changed column
25
+ as `old → new`.
26
+ - **Relations:** <→ other table, cardinality, ON DELETE rule>.
27
+ - **Where it lives in the sparring:** <`tools/<file>.sql`, the entity path, or a JSON mock>.
28
+ - **Backfill of existing rows:** <none | how>.
29
+ - **Shortcut taken:** <a JSON column instead of a table, no index, no tenant FK… | none>.
@@ -34,6 +34,13 @@ Credentials (by NAME, never a value): <NAME, NAME | none>. Locally they live in
34
34
  Real sends: <none | which channel really sends (reply, call, email) and the variable with the
35
35
  judge's own destinations: `SPARRING_ALLOWED_<KIND>`, closed by default, the rest `not_allowlisted`>.
36
36
 
37
+ Contracts: every endpoint or data model you add or change, write it to
38
+ `<sparring dir>/contrato-<repo>.md`, your repo's own file (the other rudos write theirs at the same
39
+ time: read them, never write them; the template is `<absolute ring path>/skills/sparring/templates/contrato.md`) the moment you
40
+ propose it, before implementing it: method, path, request, response, errors and scoping; table,
41
+ columns, relations and where it lives. Keep it current when you change it; a dropped one is marked
42
+ `dropped`, never deleted. It is what the judge reviews first after a KO.
43
+
37
44
  Gate: typecheck only: `<command>`, through one-at-a-time.
38
45
  Database: additive only (new tables or columns, English names), and never against production.
39
46
  forbidAiTrailers is <true|false>.
@@ -57,8 +57,8 @@ list, judges card, `decisions.md` and `rebounds.md`, and the same `mask-guard` r
57
57
  `--raw` to see the body as is when something looks off. Add human PR comments (`gh pr view <pr> --comments`).
58
58
  **A review whose commit is not the PR head is stale**: it describes code that no longer
59
59
  exists; re-request instead of acting on it.
60
- 2. **Verify and classify** with a cornerman in concept mode (`templates/cornerman-concept.md`,
61
- `effort: "high"`, read-only), giving it every finding. Each one gets a class and a severity
60
+ 2. **Verify and classify** with a cornerman in concept mode (`brief.mjs cornerman <pr> --mode
61
+ concept`, with the model and effort it prints, read-only), giving it every finding. Each one gets a class and a severity
62
62
  with one line of business impact ("a contact is lost", "cross-tenant read", "double side
63
63
  effect", "reporting only"):
64
64
  - **BUG-INTRODUCED**: this PR created it.
@@ -178,6 +178,12 @@ Do not ask about what you detected: show it and let the human correct it if they
178
178
  native files under each of its paths). While a bout is active, `mask-guard` locks the gates of
179
179
  every venue and the heavy commands of every declared venue (simulators, emulators, native
180
180
  builds), and blocks a commit of a native file the judge did not approve.
181
+ - `format` is optional: `{ "tsconfig": "<path>" }` names the tsconfig sort-imports reads the
182
+ aliases from. Omit it when the repo's own sort-imports script passes `--tsconfig` or the root
183
+ has `tsconfig.json`: ring takes it from there, so the hooks sort as the repo's `sort` script
184
+ does. Write it when neither holds (a monorepo whose aliases live in one app's tsconfig). Tell
185
+ the human if the repo has no `node_modules/.bin/prettier` or `sort-imports`: ring formats with
186
+ what the repo installs and never downloads them.
181
187
  - `delegation` can be omitted when it is `referee`. Write it explicitly only if the human chose
182
188
  `human`, or if they want the choice visible in the file.
183
189
  - `precedents` is optional: omit it to use `.claude/ring-precedents.md` when that file exists.