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.
Install
npx skillscat add bro2jo/leyenda/choose Install via the SkillsCat registry.
SKILL.md
/choose
git pull --rebase origin main, thenpython3 engine/saga.py now: the open small choice (theOpen microline; the numbered list at the end of a daily scene) or the climax choice (theOPEN CHOICEline). If nothing is open, say so: a bare number is then a quantity, and a Darrow action is/play.- 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]*) againstpython3 engine/darrow.py sheet --json, a Bearing gate (*[Guile 1]*,*[Guile 4]*for a lean) againstpython3 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 "…"). - The ledger entry, one and terse (schema
saga/bible/_gm/design.md§2):idc<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;bearingon the option's one axis, ±1 small / ±2–3 climax / ±4 betrayal or sacrifice;flagsby their names inplan.json → flags, a new one throughplan flag --new name=falseand the arc's## flags;factions), anddue[](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 thechoices[]row the site reads, and closes the choice.--by bearingwith no--optiontakes the planned default when Darrow answered for himself.--which micro|climaxwhen both are open (the small one resolves first).--dry-runissaga.py add's; useadd --dry-runto test an entry. - 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 topython3 engine/saga.py arc tN.<road>in the light of what he chose, as long as the crossing needs; thenpython3 engine/saga.py plan beat tN status=doneandplan companion arrive IDfor anyone the road put beside him. Then the reread (style.md§4) andpython3 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.
- If the choice bends the next chapter's planned slots:
python3 engine/saga.py plan slot N key=value …, thencheck; or at the next/chapter. python3 engine/darrow.py ship -m "choice: <the option as the page has it>"(reader-safe: never a flag or a GM name).