When It Says No
Vyasa refuses more often than most tools — on purpose. Every refusal names its fix. Learn to read them once; they never surprise you again.
The refusals you'll meet first
| It says | It means | You do |
|---|---|---|
| session start requires: intent, flow, … | sitting details missing | supply the named flags (or --interactive for prompts) |
| Unknown skill/mode/stage | not in this workflow's vocabulary | pick from the listed valid values |
| Target not found / terminal / superseded | nothing workable there | create a node, or follow the successor hint |
| Dependency not approved | an upstream item isn't finished | advance it first — order is real |
| Unapplied content — approve/reject first | a proposal waits for judgment | review diff, then accept or discard; never orphan |
| Session still active — end it first | the room is occupied | end that sitting (stale locks auto-clear) |
| No payload_paths declared | judging unapplied work | apply first, then gate |
| Validation failed: … | mechanical contract broken | fix named errors (paths, headers, checks), re-run |
| Gate(s) failed: … | a checkpoint didn't pass | read which, fix or accept the verdict |
| Active violations — end anyway? | open breaches on record | resolve each with a reason, then end |
| Worker session still active | you'd orphan a live assistant | close it, or --force deliberately |
The mindset
A refusal is the product doing its job in front of you instead of letting damage through quietly. Thank it, read it, fix the named thing. If a message ever doesn't name its fix, that's a bug — report it.