@thebattlearena/corner 0.10.1-beta.80 → 0.10.1-beta.81

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thebattlearena/corner",
3
- "version": "0.10.1-beta.80",
3
+ "version": "0.10.1-beta.81",
4
4
  "description": "Corner: tu esquina de Battle Arena en Claude Code (el plugin `battlearena`). Hooks de tracking, objetivo del turno, plan de batalla /battlearena:conquer, Ringside (el panel de tu día), el ring y la radio. Zero-dependency.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: sparring
3
- description: Opens a sparring, a quick and deliberately low-quality draft (one PR per repo it touches, back and front included) that only proves whether a feature is worth building, before anyone pays for building it well. A rudo per repo (Sonnet at effort high by default) writes it inside a timebox in its own worktree; the draft PR (labels sparring + do-not-merge) is the event the host project's CI catches to deploy a preview; credentials travel by name only. The judge calls KO, rematch or discard, in two out of three falls: a KO passes the host gates (vestidor), faces the team's Tapes until a bell (unless «sin equipo»), keeps or loses the mask, and then hands each branch to a ring bout. Invoke with `/ring:sparring <idea | Linear ticket>`, `/ring:sparring preview <slug>`, `/ring:sparring verdict <slug>`, `/ring:sparring list`, "make a quick draft of this to try it", "spar this feature first".
4
- argument-hint: '<idea | ticket> | preview <slug> | verdict <slug> | vestidor <slug> | list'
3
+ description: Opens a sparring, a quick and deliberately low-quality draft (one PR per repo it touches, back and front included) that only proves whether a feature is worth building, before anyone pays for building it well. A rudo per repo (Sonnet at effort high by default) writes it inside a timebox in its own worktree; the draft PR (labels sparring + do-not-merge) is the event the host project's CI catches to deploy a preview; credentials travel by name only. The judge calls KO, rematch or discard, in two out of three falls: a KO passes the host gates (vestidor), faces the team's Tapes until a bell (unless «sin equipo»), keeps or loses the mask, and then hands each branch to a ring bout. Invoke with `/ring:sparring <idea | Linear ticket>`, `/ring:sparring preview <slug>`, `/ring:sparring verdict <slug>`, `/ring:sparring bell <slug>`, `/ring:sparring mask <slug> [kept|lost]`, `/ring:sparring list`, "make a quick draft of this to try it", "spar this feature first".
4
+ argument-hint: '<idea | ticket> | preview <slug> | verdict <slug> | vestidor <slug> | bell <slug> | mask <slug> [kept|lost] | list'
5
5
  ---
6
6
 
7
7
  # sparring
@@ -365,10 +365,12 @@ said «sin equipo». The team attacks with a storm of Tapes until **the bell**.
365
365
  The judge's original notes stay in the db. The PDF goes to the judge for validation, and
366
366
  nothing reaches the arbiter until the judge approves it.
367
367
 
368
- 5. **At the bell**: `node "$RING/scripts/sparring.mjs" mark <slug> bell --note "<Tapes · accepted
369
- blows>"`. Late Tapes go to the referee bout as notes, not to the scoreboard.
370
- 6. **The mask.** The scoreboard counts only the accepted blows; the team's Tapes are evidence, not
371
- votes. The judge looks at it and decides (never you, never a count, never the server):
368
+ 5. **At the bell** (`/ring:sparring bell <slug>`, §5): `node "$RING/scripts/sparring.mjs" mark <slug>
369
+ bell --note "<Tapes · accepted blows>"`. Late Tapes go to the referee bout as notes, not to the
370
+ scoreboard.
371
+ 6. **The mask** (`/ring:sparring mask <slug> [kept|lost]`, §5). The scoreboard counts only the
372
+ accepted blows; the team's Tapes are evidence, not votes. The judge looks at it and decides
373
+ (never you, never a count, never the server):
372
374
  - **mask kept** (`mark <slug> mask-kept --note "<scoreboard>"`): the team found little; the rudo
373
375
  reaches the referee as a champion, with a short first package;
374
376
  - **mask lost** (`mark <slug> mask-lost --note "<scoreboard>"`): badly hurt; the accepted
@@ -391,7 +393,37 @@ catalog is its first rebound when the mask was lost, a short first package when
391
393
  The card and the PR body always carry the fixed warning: the credentials it used are assumed
392
394
  rotated. Nobody follows it up.
393
395
 
394
- ## 5 · `list`
396
+ ## 5 · `bell <slug>` and `mask <slug> [kept|lost]`: the close of the second fall
397
+
398
+ The judge closes the defense from here, without remembering script names. Both read
399
+ `~/.claude/ring/sparrings/<slug>/sparring.json` first and refuse, saying why, when the last verdict
400
+ is not `ko`, or when the moment is already marked (its milestone is there: say when, and stop).
401
+
402
+ **`bell <slug>`**: the defense is over.
403
+
404
+ 1. Refuse unless `defense` was marked (or `no-team`: then there is no bell, say so and go to the
405
+ mask).
406
+ 2. The scoreboard: the Tapes the team recorded and the blows of the triage (`fallos` with
407
+ `ArtifactData`): how many apply, do not apply and are still pending. A pending blow is not
408
+ counted yet: tell the judge which ones and ask whether to ring anyway.
409
+ 3. `node "$RING/scripts/sparring.mjs" mark <slug> bell --note "<n> Tapes · <m> golpes · <a>
410
+ aplican · <d> no aplican"`, refresh the chronicle (`/ring:play-by-play --sparring <slug>`) and
411
+ show the scoreboard. Then ask for the mask (below) in the same message.
412
+
413
+ **`mask <slug> [kept|lost]`**: the judge's call on how the rudo came out of the defense.
414
+
415
+ 1. Refuse unless `bell` (or `no-team`) is marked.
416
+ 2. Without `kept|lost`: show the scoreboard and the accepted blows by criticality, explain the two
417
+ outcomes in one line each, and ask with AskUserQuestion. The judge decides; never you, never a
418
+ count:
419
+ - **kept**: the team found little; the rudo reaches the referee as a champion and the bout's
420
+ first package is short;
421
+ - **lost**: badly hurt; the whole accepted catalog is the referee's first rebound.
422
+ 3. `node "$RING/scripts/sparring.mjs" mark <slug> mask-kept|mask-lost --note "<scoreboard>"`,
423
+ refresh the chronicle, and give the next step: in a session in each repo of the sparring,
424
+ `/ring:referee start --from-sparring <slug>` (the exact `cd … && claude "…"` line per repo).
425
+
426
+ ## 6 · `list`
395
427
 
396
428
  `node "$RING/scripts/sparring.mjs" list`: every sparring on this machine with its repos and PRs,
397
429
  verdict and age.