sisyphi 1.1.18 → 1.1.19

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 (231) hide show
  1. package/README.md +195 -75
  2. package/dist/chunk-36VJ7ZBD.js +1898 -0
  3. package/dist/chunk-36VJ7ZBD.js.map +1 -0
  4. package/dist/{chunk-C2XKXERJ.js → chunk-M6Z3KHOH.js} +159 -46
  5. package/dist/chunk-M6Z3KHOH.js.map +1 -0
  6. package/dist/chunk-O4ZHSQ5R.js +544 -0
  7. package/dist/chunk-O4ZHSQ5R.js.map +1 -0
  8. package/dist/chunk-P2HHTIPM.js +478 -0
  9. package/dist/chunk-P2HHTIPM.js.map +1 -0
  10. package/dist/{chunk-TMBAVPHH.js → chunk-PNDCVKBN.js} +73 -1
  11. package/dist/chunk-PNDCVKBN.js.map +1 -0
  12. package/dist/chunk-SVGIQ2G4.js +1076 -0
  13. package/dist/chunk-SVGIQ2G4.js.map +1 -0
  14. package/dist/cli.js +4405 -892
  15. package/dist/cli.js.map +1 -1
  16. package/dist/daemon.js +4340 -1990
  17. package/dist/daemon.js.map +1 -1
  18. package/dist/{paths-XRDEEJ5R.js → paths-JXFLR5BN.js} +38 -2
  19. package/dist/single-ask-6G4BIVY2.js +132 -0
  20. package/dist/single-ask-6G4BIVY2.js.map +1 -0
  21. package/dist/templates/CLAUDE.md +1 -56
  22. package/dist/templates/agent-plugin/agents/CLAUDE.md +2 -65
  23. package/dist/templates/agent-plugin/agents/debug.md +43 -6
  24. package/dist/templates/agent-plugin/agents/debug.settings.json +57 -0
  25. package/dist/templates/agent-plugin/agents/explore.md +28 -1
  26. package/dist/templates/agent-plugin/agents/explore.settings.json +57 -0
  27. package/dist/templates/agent-plugin/agents/implementor.md +94 -0
  28. package/dist/templates/agent-plugin/agents/implementor.settings.json +57 -0
  29. package/dist/templates/agent-plugin/agents/operator.md +43 -1
  30. package/dist/templates/agent-plugin/agents/operator.settings.json +57 -0
  31. package/dist/templates/agent-plugin/agents/plan/sub-planner.md +75 -0
  32. package/dist/templates/agent-plugin/agents/plan.md +176 -86
  33. package/dist/templates/agent-plugin/agents/plan.settings.json +57 -0
  34. package/dist/templates/agent-plugin/agents/problem/adversarial.md +26 -0
  35. package/dist/templates/agent-plugin/agents/problem/contrarian.md +26 -0
  36. package/dist/templates/agent-plugin/agents/problem/first-principles.md +26 -0
  37. package/dist/templates/agent-plugin/agents/problem/precedent.md +25 -0
  38. package/dist/templates/agent-plugin/agents/problem/simplifier.md +26 -0
  39. package/dist/templates/agent-plugin/agents/problem/systems-thinker.md +26 -0
  40. package/dist/templates/agent-plugin/agents/problem/time-traveler.md +26 -0
  41. package/dist/templates/agent-plugin/agents/problem/user-empathy.md +26 -0
  42. package/dist/templates/agent-plugin/agents/problem.md +334 -79
  43. package/dist/templates/agent-plugin/agents/problem.settings.json +57 -0
  44. package/dist/templates/agent-plugin/agents/research-lead/CLAUDE.md +26 -0
  45. package/dist/templates/agent-plugin/agents/research-lead/critic.md +61 -0
  46. package/dist/templates/agent-plugin/agents/research-lead/researcher.md +60 -0
  47. package/dist/templates/agent-plugin/agents/research-lead.md +184 -0
  48. package/dist/templates/agent-plugin/agents/research-lead.settings.json +57 -0
  49. package/dist/templates/agent-plugin/agents/review/CLAUDE.md +3 -29
  50. package/dist/templates/agent-plugin/agents/review/compliance.md +14 -3
  51. package/dist/templates/agent-plugin/agents/review/efficiency.md +15 -4
  52. package/dist/templates/agent-plugin/agents/review/quality.md +20 -6
  53. package/dist/templates/agent-plugin/agents/review/reuse.md +17 -5
  54. package/dist/templates/agent-plugin/agents/review/security.md +10 -3
  55. package/dist/templates/agent-plugin/agents/review/tests.md +58 -0
  56. package/dist/templates/agent-plugin/agents/review-plan/CLAUDE.md +28 -0
  57. package/dist/templates/agent-plugin/agents/review-plan/code-smells.md +4 -2
  58. package/dist/templates/agent-plugin/agents/review-plan/pattern-consistency.md +4 -2
  59. package/dist/templates/agent-plugin/agents/review-plan/requirements-coverage.md +3 -1
  60. package/dist/templates/agent-plugin/agents/review-plan/security.md +5 -2
  61. package/dist/templates/agent-plugin/agents/review-plan.md +52 -5
  62. package/dist/templates/agent-plugin/agents/review-plan.settings.json +57 -0
  63. package/dist/templates/agent-plugin/agents/review.md +89 -16
  64. package/dist/templates/agent-plugin/agents/review.settings.json +57 -0
  65. package/dist/templates/agent-plugin/agents/spec/engineer.md +175 -0
  66. package/dist/templates/agent-plugin/agents/spec/requirements-writer.md +149 -0
  67. package/dist/templates/agent-plugin/agents/spec.md +444 -0
  68. package/dist/templates/agent-plugin/agents/spec.settings.json +57 -0
  69. package/dist/templates/agent-plugin/agents/test-spec.md +58 -2
  70. package/dist/templates/agent-plugin/agents/test-spec.settings.json +57 -0
  71. package/dist/templates/agent-plugin/hooks/CLAUDE.md +9 -57
  72. package/dist/templates/agent-plugin/hooks/ask-background-guard.sh +57 -0
  73. package/dist/templates/agent-plugin/hooks/intercept-send-message.sh +1 -1
  74. package/dist/templates/agent-plugin/hooks/plan-user-prompt.sh +8 -7
  75. package/dist/templates/agent-plugin/hooks/plan-validate.sh +97 -0
  76. package/dist/templates/agent-plugin/hooks/plan-write-path.sh +55 -0
  77. package/dist/templates/agent-plugin/hooks/problem-user-prompt.sh +26 -0
  78. package/dist/templates/agent-plugin/hooks/register-bg-task.sh +37 -0
  79. package/dist/templates/agent-plugin/hooks/require-submit.sh +51 -42
  80. package/dist/templates/agent-plugin/hooks/review-user-prompt.sh +6 -2
  81. package/dist/templates/agent-plugin/hooks/spec-user-prompt.sh +43 -0
  82. package/dist/templates/agent-plugin/skills/humanloop/SKILL.md +147 -0
  83. package/dist/templates/agent-plugin/skills/perspective-fanout/SKILL.md +115 -0
  84. package/dist/templates/agent-plugin/skills/problem-document/SKILL.md +105 -0
  85. package/dist/templates/agent-plugin/skills/problem-plateau-breakers/SKILL.md +83 -0
  86. package/dist/templates/agent-suffix.md +7 -4
  87. package/dist/templates/baleia.lua +42 -0
  88. package/dist/templates/companion-plugin/hooks/user-prompt-context.sh +1 -1
  89. package/dist/templates/dashboard-claude.md +7 -3
  90. package/dist/templates/orchestrator-base.md +89 -52
  91. package/dist/templates/orchestrator-completion.md +47 -24
  92. package/dist/templates/orchestrator-discovery.md +183 -0
  93. package/dist/templates/orchestrator-impl.md +47 -18
  94. package/dist/templates/orchestrator-planning.md +109 -20
  95. package/dist/templates/orchestrator-plugin/commands/sisyphus/scratch.md +19 -0
  96. package/dist/templates/orchestrator-plugin/commands/sisyphus/spec.md +11 -0
  97. package/dist/templates/orchestrator-plugin/commands/sisyphus/strategize.md +5 -5
  98. package/dist/templates/orchestrator-plugin/hooks/hooks.json +0 -10
  99. package/dist/templates/orchestrator-plugin/skills/humanloop/SKILL.md +149 -0
  100. package/dist/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +1 -0
  101. package/dist/templates/orchestrator-plugin/skills/orchestration/SKILL.md +2 -1
  102. package/dist/templates/orchestrator-plugin/skills/orchestration/strategy.md +160 -0
  103. package/dist/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +26 -28
  104. package/dist/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +133 -25
  105. package/dist/templates/orchestrator-settings.json +55 -0
  106. package/dist/templates/orchestrator-validation.md +17 -14
  107. package/dist/templates/sisyphus-init.lua +30 -0
  108. package/dist/templates/sisyphus-tmux-plugin/hooks/hooks.json +54 -0
  109. package/dist/templates/sisyphus-tmux-plugin/hooks/tmux-state.sh +19 -0
  110. package/dist/templates/termrender-haiku-system.md +82 -0
  111. package/dist/templates/whip-animation.sh +345 -0
  112. package/dist/tui.js +3242 -2189
  113. package/dist/tui.js.map +1 -1
  114. package/native/SisyphusNotify/main.swift +15 -5
  115. package/package.json +8 -6
  116. package/templates/CLAUDE.md +1 -56
  117. package/templates/agent-plugin/agents/CLAUDE.md +2 -65
  118. package/templates/agent-plugin/agents/debug.md +43 -6
  119. package/templates/agent-plugin/agents/debug.settings.json +57 -0
  120. package/templates/agent-plugin/agents/explore.md +28 -1
  121. package/templates/agent-plugin/agents/explore.settings.json +57 -0
  122. package/templates/agent-plugin/agents/implementor.md +94 -0
  123. package/templates/agent-plugin/agents/implementor.settings.json +57 -0
  124. package/templates/agent-plugin/agents/operator.md +43 -1
  125. package/templates/agent-plugin/agents/operator.settings.json +57 -0
  126. package/templates/agent-plugin/agents/plan/sub-planner.md +75 -0
  127. package/templates/agent-plugin/agents/plan.md +176 -86
  128. package/templates/agent-plugin/agents/plan.settings.json +57 -0
  129. package/templates/agent-plugin/agents/problem/adversarial.md +26 -0
  130. package/templates/agent-plugin/agents/problem/contrarian.md +26 -0
  131. package/templates/agent-plugin/agents/problem/first-principles.md +26 -0
  132. package/templates/agent-plugin/agents/problem/precedent.md +25 -0
  133. package/templates/agent-plugin/agents/problem/simplifier.md +26 -0
  134. package/templates/agent-plugin/agents/problem/systems-thinker.md +26 -0
  135. package/templates/agent-plugin/agents/problem/time-traveler.md +26 -0
  136. package/templates/agent-plugin/agents/problem/user-empathy.md +26 -0
  137. package/templates/agent-plugin/agents/problem.md +334 -79
  138. package/templates/agent-plugin/agents/problem.settings.json +57 -0
  139. package/templates/agent-plugin/agents/research-lead/CLAUDE.md +26 -0
  140. package/templates/agent-plugin/agents/research-lead/critic.md +61 -0
  141. package/templates/agent-plugin/agents/research-lead/researcher.md +60 -0
  142. package/templates/agent-plugin/agents/research-lead.md +184 -0
  143. package/templates/agent-plugin/agents/research-lead.settings.json +57 -0
  144. package/templates/agent-plugin/agents/review/CLAUDE.md +3 -29
  145. package/templates/agent-plugin/agents/review/compliance.md +14 -3
  146. package/templates/agent-plugin/agents/review/efficiency.md +15 -4
  147. package/templates/agent-plugin/agents/review/quality.md +20 -6
  148. package/templates/agent-plugin/agents/review/reuse.md +17 -5
  149. package/templates/agent-plugin/agents/review/security.md +10 -3
  150. package/templates/agent-plugin/agents/review/tests.md +58 -0
  151. package/templates/agent-plugin/agents/review-plan/CLAUDE.md +28 -0
  152. package/templates/agent-plugin/agents/review-plan/code-smells.md +4 -2
  153. package/templates/agent-plugin/agents/review-plan/pattern-consistency.md +4 -2
  154. package/templates/agent-plugin/agents/review-plan/requirements-coverage.md +3 -1
  155. package/templates/agent-plugin/agents/review-plan/security.md +5 -2
  156. package/templates/agent-plugin/agents/review-plan.md +52 -5
  157. package/templates/agent-plugin/agents/review-plan.settings.json +57 -0
  158. package/templates/agent-plugin/agents/review.md +89 -16
  159. package/templates/agent-plugin/agents/review.settings.json +57 -0
  160. package/templates/agent-plugin/agents/spec/engineer.md +175 -0
  161. package/templates/agent-plugin/agents/spec/requirements-writer.md +149 -0
  162. package/templates/agent-plugin/agents/spec.md +444 -0
  163. package/templates/agent-plugin/agents/spec.settings.json +57 -0
  164. package/templates/agent-plugin/agents/test-spec.md +58 -2
  165. package/templates/agent-plugin/agents/test-spec.settings.json +57 -0
  166. package/templates/agent-plugin/hooks/CLAUDE.md +9 -57
  167. package/templates/agent-plugin/hooks/ask-background-guard.sh +57 -0
  168. package/templates/agent-plugin/hooks/intercept-send-message.sh +1 -1
  169. package/templates/agent-plugin/hooks/plan-user-prompt.sh +8 -7
  170. package/templates/agent-plugin/hooks/plan-validate.sh +97 -0
  171. package/templates/agent-plugin/hooks/plan-write-path.sh +55 -0
  172. package/templates/agent-plugin/hooks/problem-user-prompt.sh +26 -0
  173. package/templates/agent-plugin/hooks/register-bg-task.sh +37 -0
  174. package/templates/agent-plugin/hooks/require-submit.sh +51 -42
  175. package/templates/agent-plugin/hooks/review-user-prompt.sh +6 -2
  176. package/templates/agent-plugin/hooks/spec-user-prompt.sh +43 -0
  177. package/templates/agent-plugin/skills/humanloop/SKILL.md +147 -0
  178. package/templates/agent-plugin/skills/perspective-fanout/SKILL.md +115 -0
  179. package/templates/agent-plugin/skills/problem-document/SKILL.md +105 -0
  180. package/templates/agent-plugin/skills/problem-plateau-breakers/SKILL.md +83 -0
  181. package/templates/agent-suffix.md +7 -4
  182. package/templates/baleia.lua +42 -0
  183. package/templates/companion-plugin/hooks/user-prompt-context.sh +1 -1
  184. package/templates/dashboard-claude.md +7 -3
  185. package/templates/orchestrator-base.md +89 -52
  186. package/templates/orchestrator-completion.md +47 -24
  187. package/templates/orchestrator-discovery.md +183 -0
  188. package/templates/orchestrator-impl.md +47 -18
  189. package/templates/orchestrator-planning.md +109 -20
  190. package/templates/orchestrator-plugin/commands/sisyphus/scratch.md +19 -0
  191. package/templates/orchestrator-plugin/commands/sisyphus/spec.md +11 -0
  192. package/templates/orchestrator-plugin/commands/sisyphus/strategize.md +5 -5
  193. package/templates/orchestrator-plugin/hooks/hooks.json +0 -10
  194. package/templates/orchestrator-plugin/skills/humanloop/SKILL.md +149 -0
  195. package/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +1 -0
  196. package/templates/orchestrator-plugin/skills/orchestration/SKILL.md +2 -1
  197. package/templates/orchestrator-plugin/skills/orchestration/strategy.md +160 -0
  198. package/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +26 -28
  199. package/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +133 -25
  200. package/templates/orchestrator-settings.json +55 -0
  201. package/templates/orchestrator-validation.md +17 -14
  202. package/templates/sisyphus-init.lua +30 -0
  203. package/templates/sisyphus-tmux-plugin/hooks/hooks.json +54 -0
  204. package/templates/sisyphus-tmux-plugin/hooks/tmux-state.sh +19 -0
  205. package/templates/termrender-haiku-system.md +82 -0
  206. package/templates/whip-animation.sh +345 -0
  207. package/dist/chunk-22ZGZTGY.js +0 -67
  208. package/dist/chunk-22ZGZTGY.js.map +0 -1
  209. package/dist/chunk-6PJVJEYQ.js +0 -46
  210. package/dist/chunk-6PJVJEYQ.js.map +0 -1
  211. package/dist/chunk-C2XKXERJ.js.map +0 -1
  212. package/dist/chunk-TMBAVPHH.js.map +0 -1
  213. package/dist/chunk-V36NXMHP.js +0 -299
  214. package/dist/chunk-V36NXMHP.js.map +0 -1
  215. package/dist/templates/agent-plugin/agents/design.md +0 -134
  216. package/dist/templates/agent-plugin/agents/requirements.md +0 -138
  217. package/dist/templates/begin.md +0 -22
  218. package/dist/templates/nvim-tutorial.txt +0 -68
  219. package/dist/templates/orchestrator-plugin/commands/sisyphus/design.md +0 -13
  220. package/dist/templates/orchestrator-plugin/commands/sisyphus/requirements.md +0 -13
  221. package/dist/templates/orchestrator-plugin/hooks/idle-notify.sh +0 -71
  222. package/dist/templates/orchestrator-strategy.md +0 -238
  223. package/templates/agent-plugin/agents/design.md +0 -134
  224. package/templates/agent-plugin/agents/requirements.md +0 -138
  225. package/templates/begin.md +0 -22
  226. package/templates/nvim-tutorial.txt +0 -68
  227. package/templates/orchestrator-plugin/commands/sisyphus/design.md +0 -13
  228. package/templates/orchestrator-plugin/commands/sisyphus/requirements.md +0 -13
  229. package/templates/orchestrator-plugin/hooks/idle-notify.sh +0 -71
  230. package/templates/orchestrator-strategy.md +0 -238
  231. /package/dist/{paths-XRDEEJ5R.js.map → paths-JXFLR5BN.js.map} +0 -0
@@ -15,15 +15,12 @@ Maximize parallelism **within your development cycle, not by skipping parts of i
15
15
 
16
16
  If the plan has stages that share no file dependencies, run them in parallel from the start. The development cycle for each stage:
17
17
 
18
- 1. **Detail-plan it** — expand the outline into specific file changes. If complex, spawn a requirements or design agent first.
18
+ 1. **Detail-plan it** — expand the outline into specific file changes. If complex, spawn a `sisyphus:spec` agent first to align design + requirements.
19
19
  2. **Implement it** — spawn agents with self-contained instructions.
20
20
  3. **Critique and refine it** — spawn review agents, fix what they find.
21
21
  4. **Validate it** — verify the stage actually works end-to-end.
22
22
 
23
- Not every stage needs every step:
24
- - Types/interfaces → implementation only (consumers surface type errors)
25
- - Core business logic → implementation + critique minimum
26
- - Integration/critical path → full loop including validation
23
+ Not every stage needs every step — use the rigor calibration table above to decide.
27
24
 
28
25
  **When multiple stages have completed without any critique or validation, stop implementing and catch up on verification.** Don't let unverified work compound.
29
26
 
@@ -93,29 +90,41 @@ When you see these reports, investigate before pushing forward. If the smell sug
93
90
 
94
91
  <critique-refinement>
95
92
 
96
- ## Critique Cycle
93
+ ## Critique Pass
97
94
 
98
95
  After implementation agents report, assess whether the stage needs critique before advancing. The failure mode is not "sometimes skipping review" — it's implementing six stages in a row without any.
99
96
 
100
- When a stage warrants critique, spawn review agents in parallel, each attacking a different dimension:
101
- - **Code reuse** — existing utilities, helpers, patterns the new code duplicates
102
- - **Code quality** — hacky patterns, redundant state, parameter sprawl, copy-paste, leaky abstractions
103
- - **Efficiency** — redundant computations, N+1 patterns, missed concurrency, unbounded data structures
97
+ When a stage warrants critique, spawn a `sisyphus:review` agent. It will run parallel sub-reviewers across the relevant dimensions (reuse, quality, efficiency, and security/compliance when appropriate), validate their findings, and return a single consolidated report. Give it the full diff and relevant context files. It reports problems — it does not fix.
104
98
 
105
- Give each reviewer the full diff and relevant context files. They report problemsthey don't fix.
99
+ A clean report ("No concerns") is a valid and common outcome. When you get one, advance. Do not spawn another reviewer to double-check one careful pass is the contract.
106
100
 
107
- ## Refine Cycle
101
+ ## Refine Pass
108
102
 
109
103
  Aggregate reviewer findings. Spawn fix agents and **point them at the review report** — don't rewrite findings as line-by-line instructions. You triage (skip false positives, note architectural constraints) — they implement.
110
104
 
111
105
  ```bash
112
- sisyphus spawn --name "fix-review-issues" --agent-type sisyphus:implement \
106
+ sisyphus agent spawn --name "fix-review-issues" --agent-type sisyphus:implement \
113
107
  "Fix the issues in reports/agent-003-final.md. Skip item #5 (false positive). Run type-check after."
114
108
  ```
115
109
 
116
110
  Fix agents should use `/simplify` to review their own changes before reporting.
117
111
 
118
- Re-review after fixes. Stop when reviewers return only stylistic nits. If 3+ rounds are needed, the approach — not the patches — needs rethinking.
112
+ ## One Review Pass Per Stage
113
+
114
+ **Do not spawn a second review after fix agents land.** The review pass runs once per stage. After fixes, verify they landed by reading the fix agents' reports and checking that type-check / tests pass — not by spawning another reviewer to re-scan the same surface.
115
+
116
+ This is a deliberate choice, not an oversight. Re-reviewing has two failure modes that compound:
117
+
118
+ 1. A fresh reviewer scanning edited code will anchor on the new code and produce fresh findings, most of which are noise — the tier structure has no "nit" category and the model feels implicit pressure to return something.
119
+ 2. When fix agents do introduce real regressions, they typically show up in validation (type-check failures, test failures, e2e failures) rather than in static review. Validation catches the real problems; re-review mostly catches phantoms.
120
+
121
+ If the fix agent's own report flags that it hit unexpected complexity or introduced something it wasn't comfortable with, address that specifically — read the code, decide, don't spawn another reviewer. If the single review pass surfaces findings that suggest an architectural problem rather than code-level issues, backtrack to planning instead of patching:
122
+
123
+ ```bash
124
+ sisyphus orch yield --mode planning --prompt "Review surfaced architectural issue: [summary]. Needs replan, not fixes."
125
+ ```
126
+
127
+ Real regressions from fix agents are caught by e2e validation (next step), not by a second review pass.
119
128
 
120
129
  </critique-refinement>
121
130
 
@@ -134,10 +143,18 @@ If the project lacks validation tooling, **create it** — a smoke-test script,
134
143
 
135
144
  **Don't advance past a validated stage until validation passes.** If it fails, log failures, spawn fix agents, re-validate.
136
145
 
137
- When all implementation stages are complete, transition to validation mode for the comprehensive final pass:
146
+ **Phase-scoped plans:** if the current plan only covers one phase of a multi-phase feature (the plan-lead convention when `strategy.md` has multiple phases), yield back to planning after this phase's validation passes — not to validation mode. Plan files live under `context/{plan-lead-agent-id}/`; use the paths the plan lead reported when dispatching implement agents.
138
147
 
139
148
  ```bash
140
- sisyphus yield --mode validation --prompt "All stages implemented validate against context/e2e-recipe.md"
149
+ sisyphus orch yield --mode planning --prompt "Phase N validated. Plan phase N+1 per strategy.md."
150
+ ```
151
+
152
+ The next cycle's plan lead incorporates what you learned here before committing phase N+1 to paper.
153
+
154
+ When all implementation phases are complete (the final phase has been planned, implemented, and stage-validated), transition to validation mode for the comprehensive final pass:
155
+
156
+ ```bash
157
+ sisyphus orch yield --mode validation --prompt "All stages implemented — validate against context/e2e-recipe.md"
141
158
  ```
142
159
 
143
160
  Validation mode shifts the orchestrator's entire focus to proving the feature works. Stage-level validation during implementation catches issues early; the final validation pass proves the whole thing holds together.
@@ -149,7 +166,7 @@ Validation mode shifts the orchestrator's entire focus to proving the feature wo
149
166
  If the approach is wrong mid-implementation, don't keep pushing. Return to planning:
150
167
 
151
168
  ```bash
152
- sisyphus yield --mode planning --prompt "Re-evaluate: discovered X changes the approach write cycle log"
169
+ sisyphus orch yield --mode planning --prompt "Discovered X mid-implementation approach needs rework. See cycle log and roadmap.md."
153
170
  ```
154
171
 
155
172
  Concrete triggers:
@@ -157,6 +174,18 @@ Concrete triggers:
157
174
  - An agent discovers a dependency that changes the approach
158
175
  - Fix agents keep patching the same area across cycles
159
176
 
160
- Document what you found in the cycle log before yielding. Update roadmap.md to reflect you're back in an earlier phase.
177
+ Update roadmap.md to reflect you're back in an earlier phase. Log the discovery before yielding.
161
178
 
162
179
  </returning-to-planning>
180
+
181
+ <impl-cli>
182
+
183
+ ## Implementation CLI
184
+
185
+ ```bash
186
+ sisyphus session task "revised goal" # update the session goal mid-flight
187
+ sisyphus agent restart <agentId> # respawn a failed/killed agent in a new pane
188
+ sisyphus session rollback <sessionId> <cycle> # rewind state to a prior cycle boundary
189
+ ```
190
+
191
+ </impl-cli>
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: planning
3
- description: Deep exploration, requirements gathering, design, and detailed roadmap creation. Use after strategy is established and before implementation begins.
3
+ description: Deep exploration, spec alignment and detailed roadmap creation. Use after discovery is complete and before implementation begins.
4
4
  ---
5
5
 
6
6
  # Planning Phase
7
7
 
8
8
  <planning-workflow>
9
9
 
10
- The natural sequence: **context → requirementsdesign → roadmap refinement → detailed planning.** Context documents come first because they feed everything downstream — requirements analysts, designers, planners, and implementers all benefit from not having to re-explore the codebase. After the requirements and design are aligned, revisit the roadmap — that's when you actually understand scope well enough to flesh out phases honestly.
10
+ The natural sequence: **context → spec → roadmap refinement → detailed planning.** Context documents come first because they feed everything downstream — spec leads, planners, and implementers all benefit from not having to re-explore the codebase. After the spec is aligned, revisit the roadmap — that's when you actually understand scope well enough to flesh out phases honestly.
11
11
 
12
12
  </planning-workflow>
13
13
 
@@ -22,25 +22,49 @@ Use explore agents to build understanding before making decisions. Each agent sa
22
22
 
23
23
  </exploration>
24
24
 
25
- <requirements-alignment>
25
+ <spec-alignment>
26
26
 
27
- Before investing in detailed requirements, make sure the goal is well-defined. If you're making assumptions about scope, requirements, or constraints — surface them to the user.
27
+ <!--EFFORT:LOW-->
28
+ **Skip spec.** Treat the user's request as the requirements. If something's ambiguous, ask the user in-band — don't spawn `sisyphus:spec` or `sisyphus:problem`. Move directly into plan delegation below.
29
+ <!--/EFFORT-->
28
30
 
29
- For significant features, requirements refinement is iterative:
30
- - Draft requirements based on exploration findings
31
- - Have agents review for feasibility (can this actually work given the codebase?)
32
- - Seek user alignment on the high-level approach
33
- - **Fold new knowledge into authoritative documents.** When reviews, exploration, or user feedback resolve questions or change the understanding, update the requirements and design documents directly — they are the single source of truth. Delete resolved questions from their listing sections, then update the topical sections where those answers belong so the document reads as settled fact. Don't create correction files, addendum files, or decision logs alongside them. Don't annotate questions with answers — remove the questions entirely and weave the answers into the body. Plan agents should read clean, current documents — not reconcile contradictions or skip over resolved questions.
31
+ <!--EFFORT:MEDIUM-->
32
+ Spec is the combined product discovery + technical design stage. Spawning a spec agent hands off both to a specialist that collaborates with the user directly: exploring the codebase, asking informed questions, drafting a design, writing EARS requirements with TUI review, and deepening the design with what was learned.
34
33
 
35
- Not every stage needs standalone requirements a well-defined stage might just be a detailed section in the implementation plan.
34
+ **Spawn `sisyphus:spec` only when the goal has multiple valid framings or the design space is genuinely open.** Single-feature work within a known subsystem rarely needs a spec session the implementation plan and TUI review cover the design questions. If you're unsure, ask the user in-band before spawning.
36
35
 
37
- </requirements-alignment>
36
+ **Spec refinement is iterative.** When a spec is spawned, the process doesn't end when documents are saved:
37
+ - Have agents review requirements for feasibility (can this actually work given the codebase?)
38
+ - **Fold new knowledge into authoritative documents.** When reviews, exploration, or user feedback resolve questions or change the understanding, update requirements and design documents directly — they are the single source of truth. Delete resolved questions from their listing sections, then update the topical sections where those answers belong so the document reads as settled fact. Don't create correction files, addendum files, or decision logs alongside them.
39
+ <!--/EFFORT-->
40
+
41
+ <!--EFFORT:HIGH,XHIGH-->
42
+ Spec is the combined product discovery + technical design stage. Spawning a spec agent hands off both to a specialist that collaborates with the user directly: exploring the codebase, asking informed questions, drafting a design, writing EARS requirements with TUI review, and deepening the design with what was learned.
43
+
44
+ **When to spawn a spec agent:**
45
+ - Any feature that adds or changes user-visible behavior
46
+ - Any task where you're making assumptions about what "done" looks like
47
+ - When exploration revealed ambiguity, trade-offs, or multiple valid interpretations
48
+
49
+ **When you can skip spec:**
50
+ - Pure bug fixes with clear reproduction steps
51
+ - Mechanical refactors with no behavioral change (rename, extract, move)
52
+ - Tasks where the user has already provided explicit, detailed acceptance criteria in their starting prompt
53
+
54
+ If you're unsure, spawn the spec agent. The cost of a short spec conversation is low. The cost of building the wrong thing is an entire wasted implementation cycle.
55
+
56
+ **Spec refinement is iterative.** The spec agent works with the user, but the process doesn't end when documents are saved:
57
+ - Have agents review requirements for feasibility (can this actually work given the codebase?)
58
+ - **Fold new knowledge into authoritative documents.** When reviews, exploration, or user feedback resolve questions or change the understanding, update requirements and design documents directly — they are the single source of truth. Delete resolved questions from their listing sections, then update the topical sections where those answers belong so the document reads as settled fact. Don't create correction files, addendum files, or decision logs alongside them.
59
+ <!--/EFFORT-->
60
+
61
+ </spec-alignment>
38
62
 
39
63
  <plan-delegation>
40
64
 
41
- Once you have context docs and aligned requirements/design, revisit the roadmap — this is the first point where you understand real scope. Roadmap refinement means updating the four canonical sections: current stage, exit criteria, active context references, and next steps. Decisions from exploration, requirements, and design fold into context documents — not the roadmap.
65
+ Once you have context docs and aligned spec outputs (requirements + design), revisit the roadmap — this is the first point where you understand real scope. Roadmap refinement means updating the four canonical sections: current stage, exit criteria, active context references, and next steps. Decisions from exploration and spec work fold into context documents — not the roadmap.
42
66
 
43
- Spawn **one plan lead** per feature. Point it at inputs (requirements, design, context docs) — not a pre-made structure. The plan lead handles its own decomposition: it assesses scope, delegates sub-plans if needed, runs adversarial reviews, and delivers a synthesized master plan. **Delegate outcomes, not implementations** — tell the plan lead what needs planning and why, not how to structure the plan.
67
+ Spawn **one plan lead** per feature (or per phase — see phase-scoped planning below). Point it at inputs (requirements, design, context docs) — not a pre-made structure. The plan lead handles its own decomposition: it assesses scope, delegates sub-plans if needed, runs adversarial reviews, and delivers a synthesized master plan. **Delegate outcomes, not implementations** — tell the plan lead what needs planning and why, not how to structure the plan.
44
68
 
45
69
  **Don't split planning yourself.** If the orchestrator pre-splits into "backend plan agent" and "frontend plan agent," the plan lead's synthesis step — resolving cross-domain conflicts, finding gaps, stress-testing edge cases — never happens.
46
70
 
@@ -48,16 +72,67 @@ Spawn **one plan lead** per feature. Point it at inputs (requirements, design, c
48
72
 
49
73
  </plan-delegation>
50
74
 
75
+ <plan-review-and-test-spec>
76
+
77
+ <!--EFFORT:LOW-->
78
+ **Skip plan review and test-spec.** The plan agent's output is taken at face value — implementation flows directly from plan to implement. If the plan turns out to be wrong, the implement-cycle's review catches it.
79
+ <!--/EFFORT-->
80
+
81
+ <!--EFFORT:MEDIUM-->
82
+ After the plan lead delivers:
83
+
84
+ - Spawn `sisyphus:review-plan` only when the plan covers multi-domain integration. For single-domain plans, the implementation cycle's review catches issues without a dedicated review pass.
85
+ - Spawn `sisyphus:test-spec` **only when the user's initial prompt or goal.md explicitly requested tests** (e.g. "with tests", "TDD", "include unit tests", "test coverage"). Silence is a "no" — do not proactively ask, do not infer from feature risk. Reviews and validation cover correctness without a test-spec.
86
+
87
+ If neither applies, transition straight to implementation.
88
+ <!--/EFFORT-->
89
+
90
+ <!--EFFORT:HIGH,XHIGH-->
91
+ After the plan lead delivers, `sisyphus:review-plan` runs alongside the planning cycle as an adversarial review of the plan against the requirements and design. Spawn it after the plan is drafted; feed findings back to the plan lead. Address review findings before transitioning to implementation.
92
+
93
+ Spawn `sisyphus:test-spec` **only when the user's initial prompt or goal.md explicitly requested tests** (e.g. "with tests", "TDD", "include unit tests", "test coverage"). Silence is a "no" — do not proactively ask, do not infer from feature risk. When test-spec is justified, spawn it **in parallel with the high-level plan**, not after implementation — post-implementation test-spec silently describes what the code does rather than what it should do. Its output then feeds the implementation phase as a verification target.
94
+ <!--/EFFORT-->
95
+
96
+ </plan-review-and-test-spec>
97
+
98
+ <phase-scoped-planning>
99
+
100
+ ## Plan One Phase at a Time for Multi-Phase Features
101
+
102
+ Count the implementation phases in `strategy.md`.
103
+
104
+ - **One phase:** spawn the plan lead with the full feature scope.
105
+ - **More than one phase:** spawn the plan lead for the next phase only. What you learn implementing Phase N informs Phase N+1 before it's committed to paper.
106
+
107
+ The cycle shape:
108
+
109
+ ```
110
+ plan phase 1 → implement phase 1 → validate phase 1 → plan phase 2 → implement phase 2 → validate phase 2 → ...
111
+ ```
112
+
113
+ After a phase's implementation passes e2e validation, yield back to planning mode for the next phase:
114
+
115
+ ```bash
116
+ sisyphus orch yield --mode planning --prompt "Phase N validated. Plan phase N+1 per strategy.md."
117
+ ```
118
+
119
+ When spawning the phase-scoped plan lead, name in the prompt:
120
+ - Which phase from `strategy.md` is in scope
121
+ - Which design document or phase-section applies
122
+ - That later phases are out of scope
123
+
124
+ Plans save under the plan lead's own subdirectory: `context/{plan-lead-agent-id}/plan-{topic}.md` (or `plan-phase-N-{topic}.md` when the phase identifier helps discoverability). Sub-plans share the same subdir. The plan lead reports the exact paths in its submission — use those verbatim; don't reconstruct them.
125
+
126
+ </phase-scoped-planning>
127
+
51
128
  <progressive-development>
52
129
 
53
130
  Not all tasks need the same process depth.
54
131
 
55
132
  - **Small task** (1-3 files, single domain): Skip phases — roadmap is a short checklist (diagnose, fix, validate). Single plan agent, single implement agent.
56
- - **Large task** (3+ stages, multiple domains): Full phased development. The roadmap tracks phases, each producing artifacts in `context/`.
133
+ - **Large task** (3+ stages, multiple domains): Full phased development. The roadmap tracks phases; each phase is planned, implemented, and validated before the next is planned (see phase-scoped planning above).
57
134
 
58
- Signs you need phased development: multiple unfamiliar subsystems, the task spans different concerns (backend, frontend, IPC), or the requirements have more than 3 distinct work areas.
59
-
60
- Implementation stages are context artifacts — saved to `context/plan-stage-N-*.md`. Detail-plan one stage at a time; what you learn implementing stage N informs stage N+1.
135
+ Signs you need phased development: multiple unfamiliar subsystems, the task spans different concerns (backend, frontend, IPC), or the spec has more than 3 distinct work areas.
61
136
 
62
137
  </progressive-development>
63
138
 
@@ -65,18 +140,32 @@ Implementation stages are context artifacts — saved to `context/plan-stage-N-*
65
140
 
66
141
  Before implementation begins, determine how to concretely verify the change works end-to-end. This is the single most common failure mode: agents report success but nothing actually works.
67
142
 
68
- If you cannot determine a concrete verification method, **ask the user**. Do not proceed to implementation without a verification plan.
143
+ If you cannot determine a concrete verification method, **ask the user via `sisyphus ask`**. Propose 2-4 candidate verification approaches as options (not an open-ended question). Do not proceed to implementation without a verification plan.
144
+
145
+ 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. `sisyphus ask -h` covers CLI syntax.
69
146
 
70
147
  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.
71
148
 
72
149
  </verification-planning>
73
150
 
151
+ <planning-cli>
152
+
153
+ ## Planning CLI
154
+
155
+ ```bash
156
+ sisyphus admin requirements --export --session-id <id> # render requirements.json → requirements.md (no LLM tokens)
157
+ ```
158
+
159
+ The requirements export renders a `requirements.json` to markdown without consuming LLM tokens.
160
+
161
+ </planning-cli>
162
+
74
163
  <transition>
75
164
 
76
165
  When you have enough understanding, a reviewed plan, and a verification recipe — transition explicitly:
77
166
 
78
167
  ```bash
79
- sisyphus yield --mode implementation --prompt "Begin implementation — see roadmap.md and context/plan-implementation.md"
168
+ sisyphus orch yield --mode implementation --prompt "Begin implementation — see roadmap.md and the plan file path the plan lead reported (under context/{plan-lead-agent-id}/)."
80
169
  ```
81
170
 
82
171
  The `--mode implementation` flag loads implementation-phase guidance for the next cycle.
@@ -84,7 +173,7 @@ The `--mode implementation` flag loads implementation-phase guidance for the nex
84
173
  After implementation is complete, transition to validation mode to prove the feature works:
85
174
 
86
175
  ```bash
87
- sisyphus yield --mode validation --prompt "Implementation complete — validate against context/e2e-recipe.md"
176
+ sisyphus orch yield --mode validation --prompt "Implementation complete — validate against context/e2e-recipe.md"
88
177
  ```
89
178
 
90
179
  </transition>
@@ -0,0 +1,19 @@
1
+ ---
2
+ description: Open a standalone Claude Code session outside sisyphus for ad-hoc work
3
+ argument-hint: <prompt for the scratch session>
4
+ ---
5
+ # Scratch Session
6
+
7
+ **Input:** $ARGUMENTS
8
+
9
+ The user wants to spin up a standalone Claude Code session — outside sisyphus orchestration — for something that came up during this session. This is not an agent; it's an independent session the user controls.
10
+
11
+ Run the following in bash:
12
+
13
+ ```bash
14
+ sisyphus admin scratch "$ARGUMENTS"
15
+ ```
16
+
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.
18
+
19
+ Pass the session a reference to relevant context files and any other additional context that would be helpful for it to complete its task.
@@ -0,0 +1,11 @@
1
+ ---
2
+ description: Run a full spec session — interactive product/engineering conversation that produces an aligned design and EARS requirements
3
+ argument-hint: <topic or description>
4
+ ---
5
+ # Spec
6
+ **Input:** $ARGUMENTS
7
+
8
+ The user wants a full spec — design + EARS requirements — produced through a single interactive session.
9
+ Spawn a `sisyphus:spec` agent to lead this. It is interactive and runs a three-stage flow: shape (engineer drafts a high-level design), requirements (single req-writer dispatch for the full design with TUI review), deepen (engineer refines design with what was learned).
10
+ Output: `context/design.md` + `context/design.json` + `context/requirements.json` + `context/requirements.md`. The lead generates `requirements.md` via a pure-code script — no LLM tokens for formatting.
11
+ The `sisyphus:spec` agent fully replaces the old `sisyphus:requirements` and `sisyphus:design` commands. Do not spawn either of those (they no longer exist). If the strategy currently lists separate requirements/design stages, collapse them into a single spec stage before spawning.
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: Redirect session strategy — reactivate if completed, then respawn in strategy mode
2
+ description: Redirect session strategy — reactivate if completed, then respawn in discovery mode
3
3
  argument-hint: <new direction or focus>
4
4
  ---
5
5
  # Strategize
@@ -10,10 +10,10 @@ The user wants to redirect this session's strategy.
10
10
 
11
11
  ## Steps
12
12
 
13
- 1. If the session is completed (`sisyphus status`), reactivate it with `sisyphus continue`.
14
- 2. Annotate `strategy.md` with the pivot — what changed, new focus, which existing artifacts still apply. Don't rewrite the whole strategy.
15
- 3. Yield to strategy mode:
13
+ 1. If the session is completed (`sisyphus status`), reactivate it with `sisyphus 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.
15
+ 3. Yield to discovery mode:
16
16
  ```bash
17
- sisyphus yield --mode strategy --prompt "<concise description of the new direction>"
17
+ sisyphus orch yield --mode discovery --prompt "<concise description of the new direction>"
18
18
  ```
19
19
  This respawns a fresh orchestrator that will re-evaluate the goal, stages, and approach.
@@ -9,16 +9,6 @@
9
9
  }
10
10
  ]
11
11
  }
12
- ],
13
- "Stop": [
14
- {
15
- "hooks": [
16
- {
17
- "type": "command",
18
- "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/idle-notify.sh"
19
- }
20
- ]
21
- }
22
12
  ]
23
13
  }
24
14
  }
@@ -0,0 +1,149 @@
1
+ ---
2
+ name: humanloop
3
+ description: >
4
+ Read before calling `sisyphus ask`. Triggers when surfacing multiple questions or decisions to the user, presenting work for review/sign-off, or proposing concrete alternatives. Covers when a deck beats chat, how to design options as real forks the user can pick between, how to bundle related questions into one deck, and how to invoke synchronously so the orchestrator's process blocks until the user answers.
5
+ ---
6
+
7
+ # Talking to the user via decks
8
+
9
+ `sisyphus ask` posts a structured deck of questions to the user's dashboard inbox. They walk through it on their own time and you read structured JSON back. Use it instead of dumping a wall of questions into chat.
10
+
11
+ This skill covers **what to put in a deck** and **how to invoke it**. Run `sisyphus ask -h` for the CLI shape (file path, `--session`, the `poll` and `peek` subcommands).
12
+
13
+ ## Reach for a deck when
14
+
15
+ - You have **2+ questions** to surface in one beat (bundle them into one deck).
16
+ - You're presenting **work for review or sign-off** (a design, a plan, a completion summary).
17
+ - You're choosing between **concrete alternatives** the user must pick.
18
+ - The work will sit while the user thinks. Decks survive across cycles; chat does not.
19
+
20
+ ## Skip the deck when
21
+
22
+ - It's a single, low-stakes question whose answer barely changes downstream work — just ask in chat.
23
+ - You can settle the question yourself by reading code or running a tool. **Default to investigating before asking.**
24
+ - The user is actively conversing with you — converting a live exchange into a deck adds friction.
25
+
26
+ ## How to invoke
27
+
28
+ **Run `sisyphus ask` in the foreground — let the Bash tool block.** The CLI waits internally for the user to resolve the deck (potentially 10+ minutes). Your pane stays alive in tmux for the duration; the daemon will not respawn you while a tool call is in flight. When the user answers, the bash returns stdout and you parse it inline.
29
+
30
+ ```bash
31
+ result=$(sisyphus ask "$deck")
32
+ choice=$(echo "$result" | jq -r '.responses[0].selectedOptionId')
33
+ notes=$(echo "$result" | jq -r '.responses[0].freetext // ""')
34
+ ```
35
+
36
+ **Do not `run_in_background` and yield** — yielding kills your pane and any backgrounded bash with it; the next cycle's fresh orchestrator can only peek the on-disk deck (`sisyphus ask peek`) and yield again, producing a polling loop. The daemon now refuses `sisyphus orch yield` while a deck owned by orchestrator is pending; the supported pattern is foreground.
37
+
38
+ Stdout on completion is one line of JSON: `{responses: [{id, selectedOptionId?, freetext?}, ...], completedAt}`. Branch on each response by its interaction `id`.
39
+
40
+ If you respawn mid-wait and find a pending deck on disk (e.g. after a daemon restart that orphaned the prior bash), block on it with `sisyphus ask poll <askId>` to re-attach. `sisyphus ask peek <askId>` is non-blocking and reserved for respawn-recovery diagnostics. See `sisyphus ask -h`.
41
+
42
+ ## Designing interactions
43
+
44
+ ### Each option is a concrete path forward
45
+
46
+ The user picks an option to commit to a direction. Each option should name a real path with its tradeoffs spelled out, grounded in *this* codebase. Sign-off decks branch differently per option ("looks good", "minor fixes", "moderate fixes", "scope rework" each route the orchestrator somewhere different). Decision decks present mutually exclusive directions with named consequences.
47
+
48
+ <example type="good">
49
+ ```
50
+ title: "Session store backend?"
51
+ subtitle: "Auth needs persistent sessions across restarts"
52
+ kind: decision
53
+ options:
54
+ in-memory: "In-memory map — simplest. Loses sessions on restart; single-process only."
55
+ redis: "Redis — survives restart, supports horizontal scale. New ops dependency."
56
+ postgres: "Reuse existing Postgres — no new infra; ~10ms read latency vs Redis ~1ms."
57
+ defer: "Ship in-memory now, migrate later if scale becomes real."
58
+ allowFreetext: true
59
+ freetextLabel: "Different framing — describe it"
60
+ ```
61
+ </example>
62
+
63
+ <example type="bad">
64
+ ```
65
+ title: "Happy with this design?"
66
+ options:
67
+ 1. Yes
68
+ 2. No, start over
69
+ 3. Maybe, with comments
70
+ 4. (no option, just freetext)
71
+ ```
72
+ "Happy?" names a feeling, not a fork. Options 3 and 4 both collapse to freetext, forcing the user to invent the actual decision. Rewrite as specific decisions about specific elements of the design.
73
+ </example>
74
+
75
+ ### Use `allowFreetext: true` as a safety valve, not the primary input
76
+
77
+ Freetext catches "anything else?" — opinions or context the options didn't anticipate. When freetext IS the answer you want, write a chat message instead.
78
+
79
+ <example type="bad">
80
+ ```
81
+ title: "Approve?"
82
+ options:
83
+ 1. Approve
84
+ 2. Reject
85
+ 3. Comment
86
+ allowFreetext: true
87
+ ```
88
+ A freetext form wearing option clothing. Either name what "reject" actually routes to (back to design? abandon? try a different framing?), or drop the deck and ask in chat.
89
+ </example>
90
+
91
+ ### Bound option count to 2–4
92
+
93
+ Above four, options become too granular for the user to weigh; below two, you've collapsed into a yes/no that's faster to ask in chat.
94
+
95
+ ### Ground options in what you've already gathered
96
+
97
+ Each option label should reference specifics from the codebase, plan, or exploration you just did — file names, framework constraints, prior decisions. When you can't fill in specifics, investigate before asking.
98
+
99
+ ### One concern per interaction
100
+
101
+ When two questions interact, give them separate `id` / `title` / `options` inside the same deck (see Bundling below). One interaction asks one thing.
102
+
103
+ ## `kind` — display hint
104
+
105
+ | kind | use for |
106
+ |---|---|
107
+ | `decision` | fork in the road; user picks a path forward |
108
+ | `validation` | sign-off on completed work |
109
+ | `notify` | FYI; user acknowledges |
110
+ | `context` | surfacing background that needs a response |
111
+ | `error` | something went wrong; user picks a recovery |
112
+
113
+ The dashboard uses `kind` for inbox icons and sort weight. Mis-tagging trains the user to ignore the icons. Pick the closest fit.
114
+
115
+ ## Bundling
116
+
117
+ If you'd otherwise submit two decks in the same beat, merge them. One deck with multiple `interactions` is one context switch for the user; two decks is two.
118
+
119
+ ```bash
120
+ deck="$SISYPHUS_SESSION_DIR/context/.ask-$(date +%s).json"
121
+ cat > "$deck" <<'EOF'
122
+ {
123
+ "title": "Phase 2 sign-off + follow-on decisions",
124
+ "interactions": [
125
+ {
126
+ "id": "approve-phase-2",
127
+ "title": "Phase 2 looks good?",
128
+ "kind": "validation",
129
+ "options": [...]
130
+ },
131
+ {
132
+ "id": "phase-3-scope",
133
+ "title": "Phase 3 scope?",
134
+ "kind": "decision",
135
+ "options": [...]
136
+ }
137
+ ]
138
+ }
139
+ EOF
140
+ # Then invoke `sisyphus ask "$deck"` synchronously (foreground bash) — blocks until answered.
141
+ # Each interaction returns its own selectedOptionId / freetext in output.responses[], indexed by id.
142
+ ```
143
+
144
+ ## Submission notes
145
+
146
+ - The deck is validated at submit (precise errors — trust them).
147
+ - `bodyPath` lets an interaction point at a markdown file (e.g. a completion summary) instead of inlining the markdown in JSON.
148
+ - On completion, stdout is one line of JSON: `{responses, completedAt}`. Parse `responses[]` and dispatch on each interaction's `id`.
149
+ - See `sisyphus ask -h` for the full CLI surface.
@@ -0,0 +1 @@
1
+ - `sisyphus orch yield --mode discovery`, `--mode validation`, etc. must be explicit at mode-transition cycles. Omitting silently defaults to `implementation` mode, skipping guardrails the subsequent cycle expects.
@@ -22,7 +22,8 @@ How to structure sisyphus sessions for common task types. This skill helps the o
22
22
 
23
23
  ## Agent Types
24
24
 
25
- Available agent types are listed under **Available Agent Types** in your prompt. Use `--agent-type` with `sisyphus spawn`.
25
+ Available agent types are listed under **Available Agent Types** in your prompt. Use `--agent-type` with `sisyphus agent spawn`.
26
26
 
27
27
  For task breakdown patterns per workflow type, see [task-patterns.md](task-patterns.md).
28
28
  For end-to-end workflow examples, see [workflow-examples.md](workflow-examples.md).
29
+ For strategy.md authoring — stage patterns, process shapes, format — see [strategy.md](strategy.md).