sisyphi 1.2.2 → 1.2.12
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.
- package/README.md +20 -20
- package/dist/cli.js +12450 -11255
- package/dist/cli.js.map +1 -1
- package/dist/daemon.js +1113 -565
- package/dist/daemon.js.map +1 -1
- package/dist/templates/agent-plugin/agents/CLAUDE.md +2 -2
- package/dist/templates/agent-plugin/agents/operator.md +3 -4
- package/dist/templates/agent-plugin/agents/plan.md +1 -1
- package/dist/templates/agent-plugin/agents/problem.md +20 -20
- package/dist/templates/agent-plugin/agents/research-lead.md +1 -1
- package/dist/templates/agent-plugin/agents/spec/engineer.md +9 -7
- package/dist/templates/agent-plugin/agents/spec/requirements-writer.md +1 -1
- package/dist/templates/agent-plugin/agents/spec.md +31 -25
- package/dist/templates/agent-plugin/hooks/CLAUDE.md +0 -1
- package/dist/templates/agent-plugin/hooks/ask-background-guard.sh +11 -11
- package/dist/templates/agent-plugin/hooks/intercept-send-message.sh +1 -1
- package/dist/templates/agent-plugin/hooks/operator-user-prompt.sh +2 -2
- package/dist/templates/agent-plugin/hooks/plan-validate.sh +3 -3
- package/dist/templates/agent-plugin/hooks/require-submit.sh +1 -1
- package/dist/templates/agent-plugin/skills/operator/SKILL.md +1 -1
- package/dist/templates/agent-suffix.md +4 -18
- package/dist/templates/companion-plugin/hooks/user-prompt-context.sh +1 -1
- package/dist/templates/dashboard-claude.md +15 -13
- package/dist/templates/orchestrator-base.md +44 -78
- package/dist/templates/orchestrator-completion.md +9 -11
- package/dist/templates/orchestrator-discovery.md +8 -8
- package/dist/templates/orchestrator-impl.md +6 -7
- package/dist/templates/orchestrator-planning.md +2 -2
- package/dist/templates/orchestrator-plugin/commands/sisyphus/scratch.md +1 -1
- package/dist/templates/orchestrator-plugin/commands/sisyphus/strategize.md +2 -2
- package/dist/templates/orchestrator-validation.md +1 -3
- package/dist/templates/termrender-haiku-system.md +5 -3
- package/dist/tui.js +1817 -1400
- package/dist/tui.js.map +1 -1
- package/native/build-notify.sh +2 -2
- package/package.json +3 -3
- package/templates/agent-plugin/agents/CLAUDE.md +2 -2
- package/templates/agent-plugin/agents/operator.md +3 -4
- package/templates/agent-plugin/agents/plan.md +1 -1
- package/templates/agent-plugin/agents/problem.md +20 -20
- package/templates/agent-plugin/agents/research-lead.md +1 -1
- package/templates/agent-plugin/agents/spec/engineer.md +9 -7
- package/templates/agent-plugin/agents/spec/requirements-writer.md +1 -1
- package/templates/agent-plugin/agents/spec.md +31 -25
- package/templates/agent-plugin/hooks/CLAUDE.md +0 -1
- package/templates/agent-plugin/hooks/ask-background-guard.sh +11 -11
- package/templates/agent-plugin/hooks/intercept-send-message.sh +1 -1
- package/templates/agent-plugin/hooks/operator-user-prompt.sh +2 -2
- package/templates/agent-plugin/hooks/plan-validate.sh +3 -3
- package/templates/agent-plugin/hooks/require-submit.sh +1 -1
- package/templates/agent-plugin/skills/operator/SKILL.md +1 -1
- package/templates/agent-suffix.md +4 -18
- package/templates/companion-plugin/hooks/user-prompt-context.sh +1 -1
- package/templates/dashboard-claude.md +15 -13
- package/templates/orchestrator-base.md +44 -78
- package/templates/orchestrator-completion.md +9 -11
- package/templates/orchestrator-discovery.md +8 -8
- package/templates/orchestrator-impl.md +6 -7
- package/templates/orchestrator-planning.md +2 -2
- package/templates/orchestrator-plugin/commands/sisyphus/scratch.md +1 -1
- package/templates/orchestrator-plugin/commands/sisyphus/strategize.md +2 -2
- package/templates/orchestrator-validation.md +1 -3
- package/templates/termrender-haiku-system.md +5 -3
- package/dist/templates/agent-plugin/skills/humanloop/SKILL.md +0 -148
- package/dist/templates/agent-plugin/skills/operator-memory/SKILL.md +0 -64
- package/dist/templates/agent-plugin/skills/perspective-fanout/SKILL.md +0 -115
- package/dist/templates/agent-plugin/skills/problem-document/SKILL.md +0 -105
- package/dist/templates/agent-plugin/skills/problem-plateau-breakers/SKILL.md +0 -83
- package/dist/templates/orchestrator-plugin/skills/humanloop/SKILL.md +0 -150
- package/dist/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +0 -1
- package/dist/templates/orchestrator-plugin/skills/orchestration/SKILL.md +0 -29
- package/dist/templates/orchestrator-plugin/skills/orchestration/strategy.md +0 -160
- package/dist/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +0 -266
- package/dist/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +0 -428
- package/templates/agent-plugin/skills/humanloop/SKILL.md +0 -148
- package/templates/agent-plugin/skills/operator-memory/SKILL.md +0 -64
- package/templates/agent-plugin/skills/perspective-fanout/SKILL.md +0 -115
- package/templates/agent-plugin/skills/problem-document/SKILL.md +0 -105
- package/templates/agent-plugin/skills/problem-plateau-breakers/SKILL.md +0 -83
- package/templates/orchestrator-plugin/skills/humanloop/SKILL.md +0 -150
- package/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +0 -1
- package/templates/orchestrator-plugin/skills/orchestration/SKILL.md +0 -29
- package/templates/orchestrator-plugin/skills/orchestration/strategy.md +0 -160
- package/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +0 -266
- package/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +0 -428
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
# PreToolUse hook for the plan agent: enforce master-plan length limit
|
|
3
|
-
# at `
|
|
3
|
+
# at `sis agent submit` time. Masters are identified by a `## Sub-Plans`
|
|
4
4
|
# heading. If no master exists (no plan file declares sub-plans), every
|
|
5
5
|
# plan file is treated as a standalone master and must obey the limit.
|
|
6
6
|
|
|
@@ -23,8 +23,8 @@ except Exception:
|
|
|
23
23
|
pass
|
|
24
24
|
" 2>/dev/null)
|
|
25
25
|
|
|
26
|
-
# Only gate on `
|
|
27
|
-
if [[ ! "$COMMAND" =~
|
|
26
|
+
# Only gate on `sis agent submit`. Anything else passes through.
|
|
27
|
+
if [[ ! "$COMMAND" =~ sis[[:space:]]+agent[[:space:]]+submit ]]; then
|
|
28
28
|
exit 0
|
|
29
29
|
fi
|
|
30
30
|
|
|
@@ -96,5 +96,5 @@ if [ -n "$PENDING" ] && [ "$PENDING" != "0" ]; then
|
|
|
96
96
|
fi
|
|
97
97
|
|
|
98
98
|
cat <<'EOF'
|
|
99
|
-
{"decision":"block","reason":"You have not submitted your final report. You MUST submit before stopping:\n\necho \"your full report here\" |
|
|
99
|
+
{"decision":"block","reason":"You have not submitted your final report. You MUST submit before stopping:\n\necho \"your full report here\" | sis agent submit\n\nInclude: what you did, what you found, exact file paths and line numbers, and verification results if applicable."}
|
|
100
100
|
EOF
|
|
@@ -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,
|
|
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
|
-
##
|
|
7
|
+
## Reporting and finishing
|
|
8
8
|
|
|
9
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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>
|
|
22
|
-
sis tell
|
|
23
|
-
|
|
24
|
-
sis
|
|
25
|
-
|
|
26
|
-
sis
|
|
27
|
-
|
|
28
|
-
sis
|
|
29
|
-
sis
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
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
|
|
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,
|
|
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
|
|
35
|
-
7. If you need user input, ask and
|
|
36
|
-
8. Update roadmap.md and digest.json, spawn agents, write the cycle log, then `sis orch yield
|
|
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
|
|
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
|
-
|
|
49
|
+
### Engage sparingly
|
|
49
50
|
|
|
50
|
-
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
**
|
|
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.
|
|
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
|
-
|
|
69
|
+
### Pick the right leaf
|
|
74
70
|
|
|
75
|
-
|
|
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
|
-
|
|
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
|
-
|
|
81
|
+
### Mode Transitions
|
|
80
82
|
|
|
81
|
-
|
|
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
|
-
|
|
85
|
+
{{ORCHESTRATOR_MODES}}
|
|
95
86
|
|
|
96
|
-
|
|
87
|
+
Run `sis orch yield -h` for how `--mode` and `--prompt` behave.
|
|
97
88
|
|
|
98
|
-
</
|
|
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,
|
|
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
|
-
|
|
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
|
-
- `
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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`.
|
|
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
|
-
|
|
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.
|
|
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,
|
|
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`,
|
|
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` →
|
|
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
|
|
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 —
|
|
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,
|
|
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
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
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, **
|
|
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
|
|
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
|
|
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.
|
|
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
|
-
|
|
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
|
|
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: "<
|
|
17
|
+
**attach_visual** — `attach_visual({ content: "<directive-flavored markdown>" })`
|
|
16
18
|
|
|
17
19
|
- Call exactly once with your final markdown.
|
|
18
|
-
- Validated via
|
|
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
|