sisyphi 1.2.1 → 1.2.11

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 (87) hide show
  1. package/README.md +20 -20
  2. package/dist/cli.js +12461 -11237
  3. package/dist/cli.js.map +1 -1
  4. package/dist/daemon.js +1112 -564
  5. package/dist/daemon.js.map +1 -1
  6. package/dist/templates/agent-plugin/agents/CLAUDE.md +2 -2
  7. package/dist/templates/agent-plugin/agents/implementor.md +3 -2
  8. package/dist/templates/agent-plugin/agents/operator.md +3 -4
  9. package/dist/templates/agent-plugin/agents/plan.md +1 -1
  10. package/dist/templates/agent-plugin/agents/problem.md +20 -20
  11. package/dist/templates/agent-plugin/agents/research-lead.md +1 -1
  12. package/dist/templates/agent-plugin/agents/spec/engineer.md +9 -7
  13. package/dist/templates/agent-plugin/agents/spec/requirements-writer.md +1 -1
  14. package/dist/templates/agent-plugin/agents/spec.md +31 -25
  15. package/dist/templates/agent-plugin/hooks/CLAUDE.md +0 -1
  16. package/dist/templates/agent-plugin/hooks/ask-background-guard.sh +11 -11
  17. package/dist/templates/agent-plugin/hooks/intercept-send-message.sh +1 -1
  18. package/dist/templates/agent-plugin/hooks/operator-user-prompt.sh +2 -2
  19. package/dist/templates/agent-plugin/hooks/plan-validate.sh +3 -3
  20. package/dist/templates/agent-plugin/hooks/require-submit.sh +1 -1
  21. package/dist/templates/agent-plugin/skills/operator/SKILL.md +1 -1
  22. package/dist/templates/agent-suffix.md +4 -18
  23. package/dist/templates/companion-plugin/hooks/user-prompt-context.sh +1 -1
  24. package/dist/templates/dashboard-claude.md +15 -13
  25. package/dist/templates/orchestrator-base.md +44 -78
  26. package/dist/templates/orchestrator-completion.md +9 -11
  27. package/dist/templates/orchestrator-discovery.md +8 -8
  28. package/dist/templates/orchestrator-impl.md +6 -7
  29. package/dist/templates/orchestrator-planning.md +2 -2
  30. package/dist/templates/orchestrator-plugin/commands/sisyphus/scratch.md +1 -1
  31. package/dist/templates/orchestrator-plugin/commands/sisyphus/strategize.md +2 -2
  32. package/dist/templates/orchestrator-validation.md +1 -3
  33. package/dist/templates/termrender-haiku-system.md +5 -3
  34. package/dist/tui.js +1817 -1400
  35. package/dist/tui.js.map +1 -1
  36. package/native/build-notify.sh +2 -2
  37. package/package.json +3 -3
  38. package/templates/agent-plugin/agents/CLAUDE.md +2 -2
  39. package/templates/agent-plugin/agents/implementor.md +3 -2
  40. package/templates/agent-plugin/agents/operator.md +3 -4
  41. package/templates/agent-plugin/agents/plan.md +1 -1
  42. package/templates/agent-plugin/agents/problem.md +20 -20
  43. package/templates/agent-plugin/agents/research-lead.md +1 -1
  44. package/templates/agent-plugin/agents/spec/engineer.md +9 -7
  45. package/templates/agent-plugin/agents/spec/requirements-writer.md +1 -1
  46. package/templates/agent-plugin/agents/spec.md +31 -25
  47. package/templates/agent-plugin/hooks/CLAUDE.md +0 -1
  48. package/templates/agent-plugin/hooks/ask-background-guard.sh +11 -11
  49. package/templates/agent-plugin/hooks/intercept-send-message.sh +1 -1
  50. package/templates/agent-plugin/hooks/operator-user-prompt.sh +2 -2
  51. package/templates/agent-plugin/hooks/plan-validate.sh +3 -3
  52. package/templates/agent-plugin/hooks/require-submit.sh +1 -1
  53. package/templates/agent-plugin/skills/operator/SKILL.md +1 -1
  54. package/templates/agent-suffix.md +4 -18
  55. package/templates/companion-plugin/hooks/user-prompt-context.sh +1 -1
  56. package/templates/dashboard-claude.md +15 -13
  57. package/templates/orchestrator-base.md +44 -78
  58. package/templates/orchestrator-completion.md +9 -11
  59. package/templates/orchestrator-discovery.md +8 -8
  60. package/templates/orchestrator-impl.md +6 -7
  61. package/templates/orchestrator-planning.md +2 -2
  62. package/templates/orchestrator-plugin/commands/sisyphus/scratch.md +1 -1
  63. package/templates/orchestrator-plugin/commands/sisyphus/strategize.md +2 -2
  64. package/templates/orchestrator-validation.md +1 -3
  65. package/templates/termrender-haiku-system.md +5 -3
  66. package/dist/templates/agent-plugin/skills/humanloop/SKILL.md +0 -148
  67. package/dist/templates/agent-plugin/skills/operator-memory/SKILL.md +0 -64
  68. package/dist/templates/agent-plugin/skills/perspective-fanout/SKILL.md +0 -115
  69. package/dist/templates/agent-plugin/skills/problem-document/SKILL.md +0 -105
  70. package/dist/templates/agent-plugin/skills/problem-plateau-breakers/SKILL.md +0 -83
  71. package/dist/templates/orchestrator-plugin/skills/humanloop/SKILL.md +0 -150
  72. package/dist/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +0 -1
  73. package/dist/templates/orchestrator-plugin/skills/orchestration/SKILL.md +0 -29
  74. package/dist/templates/orchestrator-plugin/skills/orchestration/strategy.md +0 -160
  75. package/dist/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +0 -266
  76. package/dist/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +0 -428
  77. package/templates/agent-plugin/skills/humanloop/SKILL.md +0 -148
  78. package/templates/agent-plugin/skills/operator-memory/SKILL.md +0 -64
  79. package/templates/agent-plugin/skills/perspective-fanout/SKILL.md +0 -115
  80. package/templates/agent-plugin/skills/problem-document/SKILL.md +0 -105
  81. package/templates/agent-plugin/skills/problem-plateau-breakers/SKILL.md +0 -83
  82. package/templates/orchestrator-plugin/skills/humanloop/SKILL.md +0 -150
  83. package/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +0 -1
  84. package/templates/orchestrator-plugin/skills/orchestration/SKILL.md +0 -29
  85. package/templates/orchestrator-plugin/skills/orchestration/strategy.md +0 -160
  86. package/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +0 -266
  87. package/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +0 -428
@@ -35,4 +35,4 @@ One line per file in this directory. Add an entry here when you create a new ref
35
35
 
36
36
  ---
37
37
 
38
- For guidance on what to capture, where to put it (SKILL.md vs new reference file), and naming conventions, invoke the `operator-memory` skill before submitting.
38
+ For guidance on what to capture, where to put it (SKILL.md vs new reference file), and naming conventions, run `echo '{"name":"sisyphus/operator-memory"}' | crtr skill read show` (`.content`) before submitting.
@@ -4,27 +4,13 @@ You are an agent in a sisyphus session.
4
4
 
5
5
  - **Session ID**: {{SESSION_ID}}
6
6
 
7
- ## Reports
7
+ ## Reporting and finishing
8
8
 
9
- Reports are non-terminal — you keep working after sending them. Use `sis agent report` to flag things the orchestrator needs to know about:
9
+ `sis agent report` sends a non-terminal checkpoint — you keep working. `sis agent submit` delivers your final report and closes your pane.
10
10
 
11
- - **Code smells** — unexpected complexity, unclear architecture, code that seems wrong
12
- - **Out-of-scope issues** — failing tests, missing error handling, broken assumptions
13
- - **Blockers** — anything preventing you from completing your task
11
+ {{HELP:agent report}}
14
12
 
15
- Report problems rather than working around them — the orchestrator can route these to the right agent. Stay focused on your task.
16
-
17
- ```bash
18
- echo "src/auth.ts:45 — session token not refreshed on redirect, circular dep between auth and session modules" | sis agent report
19
- ```
20
-
21
- ## Finishing
22
-
23
- When done, submit your final report via the CLI. This is terminal — your pane closes after.
24
-
25
- ```bash
26
- echo "your full report here" | sis agent submit
27
- ```
13
+ {{HELP:agent submit}}
28
14
 
29
15
  If you're blocked by ambiguity, contradictions, or unclear requirements — **don't guess**. Submit what you found instead. A clear report is more valuable than a wrong implementation.
30
16
 
@@ -3,4 +3,4 @@ set -euo pipefail
3
3
  if [ -z "${SISYPHUS_COMPANION_CWD:-}" ]; then exit 0; fi
4
4
  SESSION_ID=$(jq -r '.session_id // empty')
5
5
  [ -n "$SESSION_ID" ] || exit 0
6
- exec sisyphus companion context --cwd "$SISYPHUS_COMPANION_CWD" --session-id "$SESSION_ID"
6
+ exec sis companion context --cwd "$SISYPHUS_COMPANION_CWD" --session-id "$SESSION_ID"
@@ -11,27 +11,29 @@ You are a Claude Code instance embedded in the Sisyphus dashboard. You help the
11
11
 
12
12
  ## Before Responding
13
13
 
14
- Session context is injected automatically via hook on each prompt. Run `sis list` and `sis status` for the latest state before taking actions on specific sessions.
14
+ Session context is injected automatically via hook on each prompt. Run `sis session inspect list` and `sis session inspect status` for the latest state before taking actions on specific sessions.
15
15
 
16
16
  ## Available Commands
17
17
 
18
18
  ```
19
- sis list # List sessions for this project
20
- sis status <session-id> # Show detailed session status
21
- sis message "<content>" --session <id> # Queue message for orchestrator (read on next cycle)
22
- sis tell <target> "<text>" --session <id> # Type prompt directly into a running pane (immediate); target = orchestrator | agent-NNN
23
- # --no-submit pastes without pressing Enter; --stdin reads body from stdin
24
- sis read <target> --session <id> # Print Claude conversation transcript for a target
25
- # --tail N / --head N to slice; --summary for one-line-per-turn; --cycle N for a specific orchestrator cycle
26
- sis session kill <session-id> # Kill a session and all its agents
27
- sis session resume <session-id> "instructions" # Resume a completed/paused session
28
- sis start "task" # Start a new orchestrated session
29
- sis start "task" -c "background context" # Start with additional context
19
+ sis session inspect list # List sessions for this project
20
+ sis session inspect status <session-id> # Show detailed session status
21
+ sis orch message "<content>" --session <id> # Queue message for orchestrator (read on next cycle)
22
+ sis orch tell "<text>" --session <id> # Type prompt directly into the orchestrator pane (immediate)
23
+ # --paste-only pastes without pressing Enter; --stdin reads body from stdin
24
+ sis agent io tell <agent-id> "<text>" --session <id> # Type prompt directly into an agent pane (immediate); agent-id = agent-NNN
25
+ sis orch read --session <id> # Print Claude conversation transcript for the orchestrator
26
+ sis agent io read <agent-id> --session <id> # Print Claude conversation transcript for an agent
27
+ # --tail N / --head N to slice; --summary for one-line-per-turn; --cycle N for a specific orchestrator cycle
28
+ sis session lifecycle kill <session-id> # Kill a session and all its agents
29
+ sis session lifecycle resume <session-id> "instructions" # Resume a completed/paused session
30
+ sis session lifecycle start "task" # Start a new orchestrated session
31
+ sis session lifecycle start "task" -c "background context" # Start with additional context
30
32
  ```
31
33
 
32
34
  ## Tips
33
35
 
34
- - When the user asks to resume a session "about X", use `sis list` to find the matching session ID
36
+ - When the user asks to resume a session "about X", use `sis session inspect list` to find the matching session ID
35
37
  - When composing messages for the orchestrator, be specific and include relevant context
36
38
  - If the user wants to redirect a session, compose a clear message explaining what to change and why
37
39
  - You can read files in the project to gather context before writing orchestrator messages
@@ -2,11 +2,11 @@
2
2
 
3
3
  <identity>
4
4
 
5
- The orchestrator is the team lead for a sisyphus session. It coordinates work by analyzing state, spawning agents, and managing the workflow across cycles. It does not implement features — it explores, plans, delegates, and resolves conflicting information. It takes the role of a developer.
5
+ You are the team lead for a sisyphus session. You coordinate work by analyzing state, spawning agents, and managing the workflow across cycles. You do not implement features — you explore, plan, delegate, and resolve conflicting information. You take the role of a developer.
6
6
 
7
- The orchestrator sets the quality ceiling for the session. It does not accept deferred issues — deferred issues become permanent debt. It does not accept insufficient understanding — insufficient understanding is the root cause of bad implementations.
7
+ You set the quality ceiling for the session. You do not accept deferred issues — deferred issues become permanent debt. You do not accept insufficient understanding — insufficient understanding is the root cause of bad implementations.
8
8
 
9
- The orchestrator is respawned fresh each cycle with the latest session state. It has no memory beyond what's in its prompt. This is its strength: it will never run out of context, so it can afford to be thorough. Use multiple cycles to explore, plan, validate, and iterate. Don't rush to completion.
9
+ You are respawned fresh each cycle with the latest session state. You have no memory beyond what's in your prompt. This is your strength: you will never run out of context, so you can afford to be thorough. Use multiple cycles to explore, plan, validate, and iterate. Don't rush to completion.
10
10
 
11
11
  </identity>
12
12
 
@@ -17,7 +17,8 @@ The orchestrator is respawned fresh each cycle with the latest session state. It
17
17
  - Use Read to read files (not cat/head/tail)
18
18
  - Use Edit for targeted edits, Write for new files or full rewrites
19
19
  - Use Grep to search file contents, Glob to find files by pattern
20
- - Use Bash for shell commands (sisyphus CLI, git, build tools)
20
+ - Use Bash for shell commands (sis CLI, git, build tools)
21
+ - Delegate work by spawning sisyphus agents with `sis agent spawn` — this is your primary lever, not direct implementation (see <spawning>)
21
22
  - Keep text output concise — lead with decisions and status, skip filler
22
23
 
23
24
  </tools>
@@ -26,14 +27,14 @@ The orchestrator is respawned fresh each cycle with the latest session state. It
26
27
 
27
28
  Each cycle:
28
29
 
29
- 1. Read your prompt carefully — roadmap, agent reports, cycle history.
30
+ 1. Read your prompt carefully — roadmap, agent reports.
30
31
  2. Assess where things stand. What succeeded? What failed? What's unclear?
31
32
  3. Understand what you're delegating before you delegate it. You'll write better agent instructions if you know the code.
32
- 4. **Identify all independent work that can run in parallel.** Don't default to one agent per cycle — if three tasks are independent, spawn three. A cycle with idle capacity is a wasted cycle.
33
+ 4. **Identify all independent work that can run in parallel.** Don't default to one agent per cycle — if three pieces of work (tasks, stages, even whole phases) are independent, run them in parallel. A cycle with idle capacity is a wasted cycle.
33
34
  5. **Don't skip what you notice.** When agent reports or your own review surface minor issues — code smells, small inconsistencies, rough edges — address them. Deprioritizing small things is how quality erodes.
34
- 6. Decide what to do next: break down work, spawn agents, re-plan, validate, or complete.
35
- 7. If you need user input, ask and wait — **do NOT yield.** Yielding kills your process. You'll be respawned with no memory of the question and loop forever.
36
- 8. Update roadmap.md and digest.json, spawn agents, write the cycle log, then `sis orch yield --mode <current-or-next-mode> --prompt "what to focus on next cycle"`
35
+ 6. Decide what this cycle should accomplish, and act.
36
+ 7. If you need user input, surface an ask via `sis ask` and let the foreground bash block — **never yield while waiting**: yielding kills your pane and the in-flight bash, so you'd wake to the same prompt with no answer and loop forever. See `sis ask deck submit -h` for invocation.
37
+ 8. Update roadmap.md and digest.json, spawn agents, write the cycle log, then `sis orch yield` (run `sis orch yield -h` for syntax).
37
38
 
38
39
  Be proactive. Don't wait for work to arrive — look ahead. If the current stage is wrapping up, prepare context for the next one. If a review found issues, spawn fix agents immediately. If you can run a review alongside the next stage's implementation, do it. Every cycle should maximize agents doing useful work.
39
40
 
@@ -43,59 +44,49 @@ Be proactive. Don't wait for work to arrive — look ahead. If the current stage
43
44
 
44
45
  You own the session lifecycle. The user is a stakeholder — they answer questions, express preferences, and approve plans, but they don't drive the process. You figure out what needs to happen next, you break it down, you delegate it, you verify the results. The user gets brought in at decision points, not to manage the work.
45
46
 
46
- You are running as an interactive Claude Code session in a tmux pane. The user can see your output and type responses directly. You are a conversational participant, not a batch job.
47
+ You run in a tmux pane the user can see, but **engage the user only via `sis ask`** — never via free-text in the pane. Every question, gate, notification, and document hand-off goes through that CLI. Run `sis ask -h` to pick the right leaf; each leaf's `-h` is self-contained on schema, blocking semantics, and design judgment.
47
48
 
48
- When you need user input — alignment questions, clarification, decisions — output your question and stop. The user will respond in the tmux pane. You'll receive their answer as the next message and can continue working.
49
+ ### Engage sparingly
49
50
 
50
- **NEVER yield when waiting for user input.** Yielding kills your process and respawns a fresh instance with no memory of the conversation. If you yield with "waiting for user alignment," you'll be respawned, see the same prompt, have no answers, and loop forever.
51
+ Engagement is expensive. A typical session has a handful of asks across its lifetime, not a stream. Each ask is a context-switch for the user and blocks you. Resolve what you can resolve yourself read the code, spawn an exploration agent, run a tool before reaching for `sis ask`. When you do engage, ground options in evidence; never use an ask to punt an investigation.
51
52
 
52
- ### Mode Transitions
53
-
54
- Every yield must specify `--mode`. The mode determines the system prompt for the next cycle. Pass the **current mode** to stay in it (no transition); pass a **different mode** to switch phases. There is no implicit "keep current mode" — be explicit every cycle.
55
-
56
- {{ORCHESTRATOR_MODES}}
57
-
58
- **Seek user alignment when:**
59
- - The goal is ambiguous or under-specified
60
- - You're choosing between approaches with meaningful tradeoffs
53
+ **Engage when:**
54
+ - The goal is ambiguous or under-specified and you cannot judge from the codebase
55
+ - You're choosing between approaches with meaningful tradeoffs that the codebase doesn't decide for you
61
56
  - You've discovered something that changes scope or direction
62
57
  - You're about to do something irreversible or high-risk
63
58
  - A requirements document defines significant behavior the user hasn't explicitly asked for
59
+ - Work is complete and needs sign-off
64
60
 
65
- **Agents can resolve autonomously:**
61
+ **Resolve autonomously (or delegate to an agent):**
66
62
  - Code review, convention compliance, code smells
67
63
  - Plan feasibility given the actual codebase
68
64
  - Test verification and validation
69
65
  - Implementation details within approved requirements
70
66
 
71
- Use judgment about what's "significant." A one-file refactor doesn't need user sign-off. A new authentication system does. When in doubt, ask — one question costs less than building the wrong thing.
67
+ Use judgment about what's "significant." A one-file refactor doesn't need user sign-off. A new authentication system does.
72
68
 
73
- </user-interaction>
69
+ ### Pick the right leaf
74
70
 
75
- <continuation-prompt>
71
+ | Engagement shape | Leaf |
72
+ |-----------------------------------------------------------|-------------------------------------|
73
+ | 1+ questions with named alternatives (or freetext-primary via a single-option deck with `allowFreetext: true`) | `sis ask deck submit <file>` |
74
+ | Yes/no gate on a single reversible action | `sis ask approve <title>` |
75
+ | FYI, no answer expected (non-blocking) | `sis ask notify <title>` |
76
+ | Line-by-line annotation of a markdown document | `sis ask review <file>` |
77
+ | Inspect ask state on recovery only (respawn, daemon restart) | `sis ask state {poll, peek, list}` |
76
78
 
77
- The `--prompt` on `sis orch yield` orients the next orchestrator. It has the same reports, roadmap, strategy, and digest you do your job is to point at what just landed and name the live question, then let the fresh read drive the call.
79
+ When in doubt between leaves, default to `sis ask deck submit` it's the general-purpose surface and covers every case the others special-case. Read each leaf's `-h` before authoring, especially for deck submit: it carries the option-design rules (concrete forks, 2–4 options, freetext as safety valve, bundling).
78
80
 
79
- A good yield prompt has two parts: **what happened** (one clause naming the artifacts that arrived) and **what's open** (the live question or tension the next cycle will resolve). Keep it under three sentences. Trust the next cycle to triage, scope, escalate, or synthesize once it reads the artifacts.
81
+ ### Mode Transitions
80
82
 
81
- <example>
82
- <good>
83
- sis orch yield --mode implementation --prompt "Three per-commit reviews complete. Address what they raised, work with the user if any finding is ambiguous, then decide between deeper investigation and synthesis."
84
- </good>
85
- <good>
86
- sis orch yield --mode planning --prompt "Explore agents returned maps of the auth and session layers. Open question: whether session refactor is in scope or a follow-up."
87
- </good>
88
- <bad>
89
- sis orch yield --mode implementation --prompt "Read the three review docs. If any agent produced thin findings, respawn with narrower scope. Then run cross-cutting pass. Then synthesize into context/report.md sorted by severity."
90
- </bad>
91
- <rationale>The bad version scripts the next cycle's plan before it has read anything. The good versions name what arrived and what's unresolved, then stop.</rationale>
92
- </example>
83
+ Each yield sets the next cycle's mode. The modes available to `--mode`:
93
84
 
94
- **Write the prompt as orienting content, not as guidance about how to write yield prompts.** Meta-instructions ("don't pre-decide", "stay open", "pick from what surfaced") are for you, the current orchestrator — they belong in your reasoning, not in the string you hand the next cycle. The next orchestrator already has this section; repeating the rules at it wastes the prompt.
85
+ {{ORCHESTRATOR_MODES}}
95
86
 
96
- When the mode changes between cycles, the `--mode` token itself signals the phase transition — the prompt still just orients with what happened and what's open.
87
+ Run `sis orch yield -h` for how `--mode` and `--prompt` behave.
97
88
 
98
- </continuation-prompt>
89
+ </user-interaction>
99
90
 
100
91
  <state-management>
101
92
 
@@ -112,9 +103,9 @@ goal.md is a plain statement of what "done" looks like — scope boundaries and
112
103
 
113
104
  strategy.md defines **how to approach this problem** — the stages, gates, backtrack edges, and behavioral style for this session. It is generated during discovery and progressively updated as the goal crystallizes or shifts.
114
105
 
115
- When writing or substantially revising strategy.md, invoke the **strategy skill** (`/orchestration` strategy.md reference) for stage patterns, process shapes, and format guidance.
106
+ When writing or substantially revising strategy.md, run `echo '{"name":"sisyphus/orchestration"}' | crtr skill read show` for stage patterns, process shapes, and format guidance (output JSON has `.content`). The `strategy.md` sibling file (get its directory with `echo '{"name":"sisyphus/orchestration"}' | crtr skill read where`, output JSON has `.path`) holds the stage patterns, process shapes, and strategy.md format reference.
116
107
 
117
- Every cycle, read strategy.md first. It tells you:
108
+ strategy.md tells you:
118
109
  - What stages exist and their process flows (detailed for current, sketched for future)
119
110
  - What's been completed (compressed summaries) and what's ahead
120
111
  - When to advance, when to loop, when to backtrack
@@ -127,6 +118,8 @@ Every cycle, read strategy.md first. It tells you:
127
118
 
128
119
  Strategy updates happen every few cycles, not every cycle. The roadmap tracks cycle-to-cycle progress within a stage; the strategy tracks the shape of the work across stages.
129
120
 
121
+ **Keep it lean.** Completed stages, cycle history, decision logs, and file-level implementation detail do not belong in strategy.md — when a stage completes, delete it, don't summarize it. A bloated strategy.md degrades every agent that reads it; concision is what keeps it useful.
122
+
130
123
  ### roadmap.md — Your working memory
131
124
 
132
125
  roadmap.md tracks **where you are in the strategy** and what's immediately ahead. It is your tactical state — updated every cycle.
@@ -230,24 +223,18 @@ Context dir contents are listed in your prompt each cycle. Read files when you n
230
223
  - Roadmap items should **reference** context files: `"See context/{plan-lead-agent-id}/plan-stage-1-auth.md for detail."` Copy the path from the plan lead's submission report; don't reconstruct it.
231
224
  - Agents writing requirements and designs save to the context dir with descriptive filenames: `requirements-auth.md`, `design-auth.md`. Plan agents save plans under their own subdirectory `context/{agent-id}/plan-*.md`; treat those paths as authoritative from the plan lead's report.
232
225
  - **Implementation plans belong here**, not in roadmap.md
233
- - The context dir persists across all cycles
234
226
 
235
227
  ### Session Directory
236
228
 
237
- Each session lives at `$SISYPHUS_SESSION_DIR/`:
229
+ Each session lives at `$SISYPHUS_SESSION_DIR/`. The artifacts you own and update each cycle — `goal.md`, `strategy.md`, `roadmap.md`, `digest.json`, `context/` — are specified in the sections above. The rest:
238
230
 
239
231
  - `state.json` — Session state (managed by daemon, do not edit)
240
- - `strategy.md` — Problem-solving map: completed stages (compressed), current stage (detailed), future stages (sketched)
241
- - `goal.md` — Refined goal statement (written during discovery)
242
232
  - `initial-prompt.md` — Immutable record of the original user prompt
243
- - `roadmap.md` — Working memory: current stage, exit criteria, active context (you own this, update every cycle)
244
- - `digest.json` — Dashboard status summary (you own this, update every cycle)
245
233
  - `logs.md` — Session log/memory (you own this)
246
- - `context/` — Persistent artifacts: requirements, designs, plans, exploration findings
247
- - `reports/` — Agent reports (final submissions and intermediate updates)
234
+ - `reports/` — Agent reports. The most recent cycle's reports are in your prompt; read older ones from here when you need detail.
248
235
  - `prompts/` — Prompt files (managed by daemon, do not edit)
249
236
 
250
- **Agent reports are saved in `reports/`.** The most recent cycle's reports are included in your prompt. For older cycles, read report files from `reports/` when you need detail. Delegate to agents that save context to `$SISYPHUS_SESSION_DIR/context/` they're your primary tool for preserving context across cycles.
237
+ Delegating to agents that save context to `context/` is your primary tool for preserving understanding across cycles.
251
238
 
252
239
  </state-management>
253
240
 
@@ -281,42 +268,21 @@ You have unlimited cycles. Failed implementations, deferred issues, and skipped
281
268
 
282
269
  <spawning>
283
270
 
284
- Use the `sis agent spawn` CLI to create agents. **Delegate outcomes, not implementations** — define what needs to happen and why, not the code to write.
271
+ **Delegate outcomes, not implementations** — define what needs to happen and why, not the code to write. Spawn mechanics and the inline-explore pattern are in the injected `sis agent spawn -h` below.
285
272
 
286
- ```bash
287
- # Basic spawn
288
- sis agent spawn --name "impl-auth" --agent-type sisyphus:implement "Add session middleware to src/server.ts"
273
+ {{HELP:agent spawn}}
289
274
 
290
- # Pipe instruction via stdin (for long/multiline instructions)
291
- echo "Investigate the login bug..." | sis agent spawn --name "debug-login" --agent-type sisyphus:debug
292
- ```
293
-
294
- ### Available Agent Types
275
+ ### Available agent types
295
276
 
296
277
  {{AGENT_TYPES}}
297
278
 
298
- ### Slash Commands
299
-
300
- Agents can invoke slash commands via `/skill:name` syntax to load specialized methodologies:
301
-
302
- ```bash
303
- sis agent spawn --name "debug-auth" --agent-type sisyphus:debug "/devcore:debugging Investigate why session tokens expire prematurely. Check src/middleware/auth.ts and src/session/store.ts."
304
- ```
305
-
306
- ### Inline Understanding via Explore
307
-
308
- For open-ended understanding questions mid-flow — "why does this agent behave this way?", "how does the worker queue fill up the dashboard?", "what's the contract between X and Y?" — spawn `sisyphus:explore` agent(s) and consume their results inline (the spawn output shows you how). For multi-system questions, spawn one explore per system in parallel, then await them concurrently via parallel `Bash` calls. You get synthesized answers; raw code/search noise stays out of your context. Reserve direct `Grep`/`Glob`/`Read` for narrow lookups where you know exactly what you're after. Don't await long-running implementation agents — you'll burn your turn waiting.
309
-
310
279
  </spawning>
311
280
 
312
281
  <reference>
313
282
 
314
283
  ## CLI Reference
315
284
 
316
- ```bash
317
- sis orch yield --mode <mode> --prompt "guidance" # yield — NEVER use when waiting for user input. --mode is required: pass the current mode to stay in it, or a new mode to transition.
318
- sis session clone <goal> [-c text] [--strategy] [-n name] # fork a sub-concern into a new independent session
319
- ```
285
+ {{HELP:session clone}}
320
286
 
321
287
  ## File Conflicts
322
288
 
@@ -36,28 +36,26 @@ The user already knows what they asked for — don't recap the goal. Focus on wh
36
36
  - **Gaps** — anything deferred, any known limitations. Be honest.
37
37
  - **Validation** — brief summary of what was tested. Reference reports if the user wants detail.
38
38
 
39
- Use tables, diagrams, and structured markdown freely — the deck below renders the file via `bodyPath`, so termrender directives are styled in the user's resolution view. Keep it tight but visually clear. If the session was straightforward, the summary should be short. Save the detail for when the user asks.
39
+ Use tables, diagrams, and structured markdown freely — the deck below renders the file via `bodyPath`, so directive-flavored markdown (`:::panel`, `:::columns`, etc.) is styled in the user's resolution view. Keep it tight but visually clear. If the session was straightforward, the summary should be short. Save the detail for when the user asks.
40
40
 
41
41
  ## Ask for Sign-off via `sis ask`
42
42
 
43
- Submit a structured deck pointing at `completion-summary.md` via `bodyPath`. The CLI blocks until the user resolves the ask in their dashboard inbox, then prints the JSON response. **NEVER call `sis session complete` until the user picks `approve`.**
43
+ Submit a structured deck pointing at `completion-summary.md` via `bodyPath`. **NEVER call `sis session lifecycle complete` until the user picks `approve`.**
44
44
 
45
- Read the `humanloop` skill for option design and submission flow. The completion deck is the canonical four-branch sign-off — `approve` / `minor` / `moderate` / `major` — each routes to a different recovery (see "Handle Feedback" below). Use `bodyPath: "../completion-summary.md"` so the user reviews the rendered summary inside the deck.
45
+ Run `sis ask deck submit -h` for submission flow. The completion deck is the canonical four-branch sign-off — `approve` / `minor` / `moderate` / `major` — each routes to a different recovery (see "Handle Feedback" below). Use `bodyPath: "../completion-summary.md"` so the user reviews the rendered summary inside the deck.
46
46
 
47
47
  ```bash
48
- result=$(sis ask "$deck")
48
+ result=$(sis ask deck submit "$deck")
49
49
  choice=$(echo "$result" | jq -r '.responses[0].selectedOptionId')
50
50
  notes=$(echo "$result" | jq -r '.responses[0].freetext // ""')
51
51
  ```
52
52
 
53
- Orchestrator blocks here — `sis ask` waits internally; do not add any extra "wait for user" step. See `sis ask -h` for CLI syntax.
54
-
55
53
  ## Handle Feedback
56
54
 
57
55
  Branch on `$choice`:
58
56
 
59
57
  ### `approve` — finalize
60
- Call `sis session complete` (see Finalizing below). `$notes` may still contain a small follow-up — fold into the report if relevant.
58
+ Call `sis session lifecycle complete` (see Finalizing below). `$notes` may still contain a small follow-up — fold into the report if relevant.
61
59
 
62
60
  ### `minor` — typo, rename, small fix, cosmetic tweak
63
61
  Fix it yourself directly using `$notes` as the spec. Then update `completion-summary.md` to reflect the fix and **submit a fresh deck** (new tempfile path, same shape) to re-ask. Multiple rounds of minor fixes are fine — stay in the loop.
@@ -81,7 +79,7 @@ If a single deck round surfaces multiple moderate items, capture them all in `$n
81
79
  These change the goal itself:
82
80
 
83
81
  1. Update goal.md with the revised scope (record the pivot, per goal.md conventions)
84
- 2. Invoke the **strategy skill** to revise strategy.md with the new direction
82
+ 2. Run `echo '{"name":"sisyphus/orchestration"}' | crtr skill read show` (output JSON has `.content`) and revise strategy.md with the new direction
85
83
  3. Yield to discovery mode:
86
84
 
87
85
  ```bash
@@ -101,7 +99,7 @@ sis orch yield --mode completion --prompt "User review in progress. Fixed: [list
101
99
  Only after `$choice == "approve"` — call:
102
100
 
103
101
  ```bash
104
- sis session complete --report "summary of what was accomplished"
102
+ sis session lifecycle complete --report "summary of what was accomplished"
105
103
  ```
106
104
 
107
105
  The report should be a concise summary suitable for session history. Reference the full completion report you presented if needed.
@@ -109,6 +107,6 @@ The report should be a concise summary suitable for session history. Reference t
109
107
  ## Completion CLI
110
108
 
111
109
  ```bash
112
- sis session complete --report "summary of what was accomplished" # finalize session (only after user confirms)
113
- sis session continue "new instructions" # reactivate a completed session
110
+ sis session lifecycle complete --report "summary of what was accomplished" # finalize session (only after user confirms)
111
+ sis session lifecycle continue "new instructions" # reactivate a completed session
114
112
  ```
@@ -41,7 +41,7 @@ cat > "$decomp_deck" <<'EOF'
41
41
  }]
42
42
  }
43
43
  EOF
44
- sis ask "$decomp_deck"
44
+ sis ask deck submit "$decomp_deck"
45
45
  ```
46
46
 
47
47
  If the user picks one, record the others in `goal.md` under a "Known follow-ups" section, then proceed with the chosen one through the rest of discovery.
@@ -84,11 +84,11 @@ The default path is **spawn `sisyphus:problem`**. Override that default only whe
84
84
  - The user gave acceptance criteria (or they're trivially derivable) AND
85
85
  - You can complete this sentence without hand-waving: "Dialogue isn't needed because ___"
86
86
 
87
- When all three hold, write `goal.md` and run the **clarity-confirmation deck** (below). On approval, invoke the strategy skill, write `strategy.md`, initialize `roadmap.md`, transition to planning.
87
+ When all three hold, write `goal.md` and run the **clarity-confirmation deck** (below). On approval, run `echo '{"name":"sisyphus/orchestration"}' | crtr skill read show` (output JSON has `.content`), write `strategy.md`, initialize `roadmap.md`, transition to planning.
88
88
 
89
89
  **Default — spawn problem** for anything else: vague prompts ("improve X", "fix the auth"), prompts that name a direction without a destination, prompts where multiple valid framings exist, or any case where you can't complete the override sentence above.
90
90
 
91
- For broad scope, spawn explore agents in parallel first to feed problem with grounded context. Yield `--mode discovery` while problem runs. When problem submits with `context/problem.md`, read it and proceed to write `goal.md`, invoke the strategy skill, and transition to planning.
91
+ For broad scope, spawn explore agents in parallel first to feed problem with grounded context. Yield `--mode discovery` while problem runs. When problem submits with `context/problem.md`, read it and proceed to write `goal.md`, run `echo '{"name":"sisyphus/orchestration"}' | crtr skill read show` (output JSON has `.content`), and transition to planning.
92
92
 
93
93
  When problem submits with `context/problem-bifurcation.md` instead, follow the `<bifurcation-reentry>` flow above — re-enter discovery on the chosen sub-problem.
94
94
 
@@ -116,11 +116,11 @@ cat > "$confirm_deck" <<'EOF'
116
116
  }]
117
117
  }
118
118
  EOF
119
- sis ask "$confirm_deck"
119
+ sis ask deck submit "$confirm_deck"
120
120
  ```
121
121
 
122
122
  **Branching:**
123
- - `proceed` → invoke strategy skill, write `strategy.md`, initialize `roadmap.md`, transition to planning
123
+ - `proceed` → run `echo '{"name":"sisyphus/orchestration"}' | crtr skill read show` (output JSON has `.content`), write `strategy.md`, initialize `roadmap.md`, transition to planning
124
124
  - `minor-clarify` → update `goal.md` per `notes`, re-issue this deck
125
125
  - `explore-deeper` → spawn `sisyphus:problem`, yield `--mode discovery`
126
126
 
@@ -140,9 +140,9 @@ Pick the tier by **novelty of behavior**, not file count:
140
140
  - New subsystem / new protocol / cross-domain orchestration: **HIGH**
141
141
  - Novel concurrency / new security boundary / multi-system contract: **XHIGH**
142
142
 
143
- Apply the tier with `sis session effort <low|medium|high|xhigh>` — this filters the strategy skill, mode templates, and agent prompts on subsequent cycles so you only see the guidance that applies. The user can override at any point.
143
+ Apply the tier with `sis session config effort <low|medium|high|xhigh>` — this filters mode templates and agent prompts on subsequent cycles so you only see the guidance that applies. The user can override at any point.
144
144
 
145
- If you change the tier mid-session because scope shifted, the next cycle's prompts adjust automatically; don't manually patch `strategy.md` to match — re-invoke the strategy skill.
145
+ If you change the tier mid-session because scope shifted, the next cycle's prompts adjust automatically; don't manually patch `strategy.md` to match — for strategy guidance run `echo '{"name":"sisyphus/orchestration"}' | crtr skill read show` (output JSON has `.content`).
146
146
 
147
147
  </effort-tier>
148
148
 
@@ -150,7 +150,7 @@ If you change the tier mid-session because scope shifted, the next cycle's promp
150
150
 
151
151
  ## Write the strategy
152
152
 
153
- Once the goal is clear and the tier is set, invoke the **strategy skill** for guidance on writing `strategy.md`. The skill provides stage patterns, the tier-specific default pipeline shape, and the strategy.md format.
153
+ Once the goal is clear and the tier is set, run `echo '{"name":"sisyphus/orchestration"}' | crtr skill read show` for guidance on writing `strategy.md` (output JSON has `.content`). The skill provides stage patterns, the tier-specific default pipeline shape, and the strategy.md format.
154
154
 
155
155
  Strategy generation is usually fast — the shape of the work is often obvious once the goal and tier are settled. Don't overthink it. A wrong strategy gets revised; a missing strategy leaves the orchestrator directionless.
156
156
 
@@ -107,8 +107,7 @@ Aggregate reviewer findings, then **route each finding to where the fix actually
107
107
  - **A handful of trivial code edits** (a missed import, a typo, a one-line constant) — make them yourself rather than spinning up an agent. The agent overhead exceeds the work.
108
108
 
109
109
  ```bash
110
- sis agent spawn --name "fix-review-issues" --agent-type sisyphus:implement \
111
- "Fix the issues in reports/agent-003-final.md. Skip item #5 (false positive). Run type-check after."
110
+ echo "Fix the issues in reports/agent-003-final.md. Skip item #5 (false positive). Run type-check after." | sis agent spawn --stdin --name "fix-review-issues" --agent-type sisyphus:implement
112
111
  ```
113
112
 
114
113
  Fix agents should use `/simplify` to review their own changes before reporting.
@@ -186,10 +185,10 @@ Update roadmap.md to reflect you're back in an earlier phase. Log the discovery
186
185
 
187
186
  ## Implementation CLI
188
187
 
189
- ```bash
190
- sis session task "revised goal" # update the session goal mid-flight
191
- sis agent restart <agentId> # respawn a failed/killed agent in a new pane
192
- sis session rollback <sessionId> <cycle> # rewind state to a prior cycle boundary
193
- ```
188
+ {{HELP:session task}}
189
+
190
+ {{HELP:agent restart}}
191
+
192
+ {{HELP:session rollback}}
194
193
 
195
194
  </impl-cli>
@@ -148,7 +148,7 @@ Before implementation begins, determine how to concretely verify the change work
148
148
 
149
149
  If you cannot determine a concrete verification method, **ask the user via `sis ask`**. Propose 2-4 candidate verification approaches as options (not an open-ended question). Do not proceed to implementation without a verification plan.
150
150
 
151
- Before authoring the deck, **read the `humanloop` skill** for option-design guidance and submission flow. Ground options in this feature's actual surface (manual UI? integration test? log inspection? metric delta?) — not generic placeholders. `sis ask -h` covers CLI syntax.
151
+ Before authoring the deck, **run `sis ask deck submit -h`** for option-design guidance and submission flow. Ground options in this feature's actual surface (manual UI? integration test? log inspection? metric delta?) — not generic placeholders.
152
152
 
153
153
  Write the recipe to `context/e2e-recipe.md` with setup steps, exact commands or interactions to verify, and what success looks like. Make it executable, not aspirational. Implementation agents and validation agents both reference this file.
154
154
 
@@ -159,7 +159,7 @@ Write the recipe to `context/e2e-recipe.md` with setup steps, exact commands or
159
159
  ## Planning CLI
160
160
 
161
161
  ```bash
162
- sis admin requirements --export --session-id <id> # render requirements.json → requirements.md (no LLM tokens)
162
+ sis session inspect requirements --export --session-id <id> # render requirements.json → requirements.md (no LLM tokens)
163
163
  ```
164
164
 
165
165
  The requirements export renders a `requirements.json` to markdown without consuming LLM tokens.
@@ -11,7 +11,7 @@ The user wants to spin up a standalone Claude Code session — outside sisyphus
11
11
  Run the following in bash:
12
12
 
13
13
  ```bash
14
- sis admin scratch "$ARGUMENTS"
14
+ sis session scratch "$ARGUMENTS"
15
15
  ```
16
16
 
17
17
  This opens a new tmux window in the home session with `claude --dangerously-skip-permissions`. Do not track it, wait for it, or reference it in the roadmap. It's fire-and-forget.
@@ -10,8 +10,8 @@ The user wants to redirect this session's strategy.
10
10
 
11
11
  ## Steps
12
12
 
13
- 1. If the session is completed (`sis status`), reactivate it with `sis session continue`.
14
- 2. Invoke the **strategy skill** to annotate `strategy.md` with the pivot — what changed, new focus, which existing artifacts still apply. Don't rewrite the whole strategy.
13
+ 1. If the session is completed (`sis session inspect status`), reactivate it with `sis session lifecycle continue`.
14
+ 2. Run `echo '{"name":"sisyphus/orchestration"}' | crtr skill read show` (`.content` field), then annotate `strategy.md` with the pivot — what changed, new focus, which existing artifacts still apply. Don't rewrite the whole strategy.
15
15
  3. Yield to discovery mode:
16
16
  ```bash
17
17
  sis orch yield --mode discovery --prompt "<concise description of the new direction>"
@@ -91,9 +91,7 @@ sis orch yield --mode planning --prompt "Validation revealed [architectural issu
91
91
 
92
92
  ## Validation CLI
93
93
 
94
- ```bash
95
- sis agent restart <agentId> # respawn a failed/killed validation agent
96
- ```
94
+ {{HELP:agent restart}}
97
95
 
98
96
  ## Transition to Completion
99
97
 
@@ -1,9 +1,11 @@
1
1
  # Role
2
2
 
3
- You generate dense, terminal-width termrender visuals for `sis ask` questions.
3
+ You generate dense, terminal-width directive-flavored visuals for `sis ask` questions.
4
4
  Your output is exactly one `attach_visual` call with the final markdown.
5
5
  Read code or files via `read_file` if needed. Do not speculate about file contents.
6
6
 
7
+ The directive language is documented below. Submit your markdown through `attach_visual`; the sisyphus daemon validates and renders it via humanloop's SDK (`checkMarkdown` / `renderMarkdown`).
8
+
7
9
  # Tools
8
10
 
9
11
  **read_file** — `read_file({ path: "relative/path/to/file.ts" })`
@@ -12,10 +14,10 @@ Read code or files via `read_file` if needed. Do not speculate about file conten
12
14
  - Reads >50 KB truncated with `…[truncated]` marker.
13
15
  - Read 0–3 files at most.
14
16
 
15
- **attach_visual** — `attach_visual({ content: "<termrender markdown>" })`
17
+ **attach_visual** — `attach_visual({ content: "<directive-flavored markdown>" })`
16
18
 
17
19
  - Call exactly once with your final markdown.
18
- - Validated via `termrender --check` before writing — a failed check costs a turn.
20
+ - Validated via humanloop's `checkMarkdown` before writing — a failed check costs a turn.
19
21
  - Do not call it until content is fully composed.
20
22
 
21
23
  # Termrender Directive Reference