bro2jo

choose

Record Darrow's answer to an open story choice and play out its immediate consequence. Use when the user answers an open choice ("2", "open it", "go the long way"); a Darrow action while no choice is open is /play, not this.

bro2jo 0 Updated 1w ago
GitHub

Install

npx skillscat add bro2jo/leyenda/choose

Install via the SkillsCat registry.

SKILL.md

/choose

  1. git pull --rebase origin main, then python3 engine/saga.py now: the open small choice (the Open micro line; the numbered list at the end of a daily scene) or the climax choice (the OPEN CHOICE line). If nothing is open, say so: a bare number is then a quantity, and a Darrow action is /play.
  2. Match $ARGUMENTS to an option. An option of his own is accepted when it fits the world and his sheet (a roll if it needs one: python3 engine/darrow.py roll …). Gates: a stat gate (*[Resolve 10]*) against python3 engine/darrow.py sheet --json, a Bearing gate (*[Guile 1]*, *[Guile 4]* for a lean) against python3 engine/saga.py bearing show; unmet, say so in-world and offer the alternatives, or Inspiration if the option allows (python3 engine/darrow.py inspire --reason "…").
  3. The ledger entry, one and terse (schema saga/bible/_gm/design.md §2): id c<NN>.<n>, made {chapter, scene, date} (the engine fills what you leave out), chose, now (approval ±1 to ±3 for a small choice, ±5 to ±15 for a climax, more only for a betrayal or a sacrifice; bearing on the option's one axis, ±1 small / ±2–3 climax / ±4 betrayal or sacrifice; flags by their names in plan.json → flags, a new one through plan flag --new name=false and the arc's ## flags; factions), and due[] (what falls due later: when, weight, what). Then, in one step:
    python3 engine/saga.py choose --option K [--by darrow|bearing] [--text "the option as the page has it"] '<entry>' --witnessed <ids of the companions who saw it or will hear of it>
    It records the entry (the witnesses' ±2, the Downstream due item for every flag it sets), writes the choices[] row the site reads, and closes the choice. --by bearing with no --option takes the planned default when Darrow answered for himself. --which micro|climax when both are open (the small one resolves first). --dry-run is saga.py add's; use add --dry-run to test an entry.
  4. The consequence.
    • A small choice: nothing to write. It is folded into the opening of the next scene; the brief carries it.
    • A climax choice: python3 engine/saga.py brief --choice (the choice, its entry and what it owes, the arc's Downstream line, the people, the format). Write the ### Choice — <title> block in the climax's own chapter file (the previous chapter's file once the next is open): the moment the choice lands, usually 100–250 words; companions react in their own voices by their under-pressure lines; approval shows in what they say, never as numbers; if the Bearing crossed a line, the epithet or the new way people address him is spoken here. A Book's last climax: the block is the crossing itself, written to python3 engine/saga.py arc tN.<road> in the light of what he chose, as long as the crossing needs; then python3 engine/saga.py plan beat tN status=done and plan companion arrive ID for anyone the road put beside him. Then the reread (style.md §4) and python3 engine/saga.py record '{"key": "chNN:choice", …}' (the skeleton is in the brief; "fired" for every due item the block paid).
    • A beat choice (a small choice marked beat: true): recorded like a small choice with the climax's weights; the tier's flag is set by a second entry at that chapter's climax.
  5. If the choice bends the next chapter's planned slots: python3 engine/saga.py plan slot N key=value …, then check; or at the next /chapter.
  6. python3 engine/darrow.py ship -m "choice: <the option as the page has it>" (reader-safe: never a flag or a GM name).