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.
- package/README.md +195 -75
- package/dist/chunk-36VJ7ZBD.js +1898 -0
- package/dist/chunk-36VJ7ZBD.js.map +1 -0
- package/dist/{chunk-C2XKXERJ.js → chunk-M6Z3KHOH.js} +159 -46
- package/dist/chunk-M6Z3KHOH.js.map +1 -0
- package/dist/chunk-O4ZHSQ5R.js +544 -0
- package/dist/chunk-O4ZHSQ5R.js.map +1 -0
- package/dist/chunk-P2HHTIPM.js +478 -0
- package/dist/chunk-P2HHTIPM.js.map +1 -0
- package/dist/{chunk-TMBAVPHH.js → chunk-PNDCVKBN.js} +73 -1
- package/dist/chunk-PNDCVKBN.js.map +1 -0
- package/dist/chunk-SVGIQ2G4.js +1076 -0
- package/dist/chunk-SVGIQ2G4.js.map +1 -0
- package/dist/cli.js +4405 -892
- package/dist/cli.js.map +1 -1
- package/dist/daemon.js +4340 -1990
- package/dist/daemon.js.map +1 -1
- package/dist/{paths-XRDEEJ5R.js → paths-JXFLR5BN.js} +38 -2
- package/dist/single-ask-6G4BIVY2.js +132 -0
- package/dist/single-ask-6G4BIVY2.js.map +1 -0
- package/dist/templates/CLAUDE.md +1 -56
- package/dist/templates/agent-plugin/agents/CLAUDE.md +2 -65
- package/dist/templates/agent-plugin/agents/debug.md +43 -6
- package/dist/templates/agent-plugin/agents/debug.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/explore.md +28 -1
- package/dist/templates/agent-plugin/agents/explore.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/implementor.md +94 -0
- package/dist/templates/agent-plugin/agents/implementor.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/operator.md +43 -1
- package/dist/templates/agent-plugin/agents/operator.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/plan/sub-planner.md +75 -0
- package/dist/templates/agent-plugin/agents/plan.md +176 -86
- package/dist/templates/agent-plugin/agents/plan.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/problem/adversarial.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/contrarian.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/first-principles.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/precedent.md +25 -0
- package/dist/templates/agent-plugin/agents/problem/simplifier.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/systems-thinker.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/time-traveler.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/user-empathy.md +26 -0
- package/dist/templates/agent-plugin/agents/problem.md +334 -79
- package/dist/templates/agent-plugin/agents/problem.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/research-lead/CLAUDE.md +26 -0
- package/dist/templates/agent-plugin/agents/research-lead/critic.md +61 -0
- package/dist/templates/agent-plugin/agents/research-lead/researcher.md +60 -0
- package/dist/templates/agent-plugin/agents/research-lead.md +184 -0
- package/dist/templates/agent-plugin/agents/research-lead.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/review/CLAUDE.md +3 -29
- package/dist/templates/agent-plugin/agents/review/compliance.md +14 -3
- package/dist/templates/agent-plugin/agents/review/efficiency.md +15 -4
- package/dist/templates/agent-plugin/agents/review/quality.md +20 -6
- package/dist/templates/agent-plugin/agents/review/reuse.md +17 -5
- package/dist/templates/agent-plugin/agents/review/security.md +10 -3
- package/dist/templates/agent-plugin/agents/review/tests.md +58 -0
- package/dist/templates/agent-plugin/agents/review-plan/CLAUDE.md +28 -0
- package/dist/templates/agent-plugin/agents/review-plan/code-smells.md +4 -2
- package/dist/templates/agent-plugin/agents/review-plan/pattern-consistency.md +4 -2
- package/dist/templates/agent-plugin/agents/review-plan/requirements-coverage.md +3 -1
- package/dist/templates/agent-plugin/agents/review-plan/security.md +5 -2
- package/dist/templates/agent-plugin/agents/review-plan.md +52 -5
- package/dist/templates/agent-plugin/agents/review-plan.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/review.md +89 -16
- package/dist/templates/agent-plugin/agents/review.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/spec/engineer.md +175 -0
- package/dist/templates/agent-plugin/agents/spec/requirements-writer.md +149 -0
- package/dist/templates/agent-plugin/agents/spec.md +444 -0
- package/dist/templates/agent-plugin/agents/spec.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/test-spec.md +58 -2
- package/dist/templates/agent-plugin/agents/test-spec.settings.json +57 -0
- package/dist/templates/agent-plugin/hooks/CLAUDE.md +9 -57
- package/dist/templates/agent-plugin/hooks/ask-background-guard.sh +57 -0
- package/dist/templates/agent-plugin/hooks/intercept-send-message.sh +1 -1
- package/dist/templates/agent-plugin/hooks/plan-user-prompt.sh +8 -7
- package/dist/templates/agent-plugin/hooks/plan-validate.sh +97 -0
- package/dist/templates/agent-plugin/hooks/plan-write-path.sh +55 -0
- package/dist/templates/agent-plugin/hooks/problem-user-prompt.sh +26 -0
- package/dist/templates/agent-plugin/hooks/register-bg-task.sh +37 -0
- package/dist/templates/agent-plugin/hooks/require-submit.sh +51 -42
- package/dist/templates/agent-plugin/hooks/review-user-prompt.sh +6 -2
- package/dist/templates/agent-plugin/hooks/spec-user-prompt.sh +43 -0
- package/dist/templates/agent-plugin/skills/humanloop/SKILL.md +147 -0
- package/dist/templates/agent-plugin/skills/perspective-fanout/SKILL.md +115 -0
- package/dist/templates/agent-plugin/skills/problem-document/SKILL.md +105 -0
- package/dist/templates/agent-plugin/skills/problem-plateau-breakers/SKILL.md +83 -0
- package/dist/templates/agent-suffix.md +7 -4
- package/dist/templates/baleia.lua +42 -0
- package/dist/templates/companion-plugin/hooks/user-prompt-context.sh +1 -1
- package/dist/templates/dashboard-claude.md +7 -3
- package/dist/templates/orchestrator-base.md +89 -52
- package/dist/templates/orchestrator-completion.md +47 -24
- package/dist/templates/orchestrator-discovery.md +183 -0
- package/dist/templates/orchestrator-impl.md +47 -18
- package/dist/templates/orchestrator-planning.md +109 -20
- package/dist/templates/orchestrator-plugin/commands/sisyphus/scratch.md +19 -0
- package/dist/templates/orchestrator-plugin/commands/sisyphus/spec.md +11 -0
- package/dist/templates/orchestrator-plugin/commands/sisyphus/strategize.md +5 -5
- package/dist/templates/orchestrator-plugin/hooks/hooks.json +0 -10
- package/dist/templates/orchestrator-plugin/skills/humanloop/SKILL.md +149 -0
- package/dist/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +1 -0
- package/dist/templates/orchestrator-plugin/skills/orchestration/SKILL.md +2 -1
- package/dist/templates/orchestrator-plugin/skills/orchestration/strategy.md +160 -0
- package/dist/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +26 -28
- package/dist/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +133 -25
- package/dist/templates/orchestrator-settings.json +55 -0
- package/dist/templates/orchestrator-validation.md +17 -14
- package/dist/templates/sisyphus-init.lua +30 -0
- package/dist/templates/sisyphus-tmux-plugin/hooks/hooks.json +54 -0
- package/dist/templates/sisyphus-tmux-plugin/hooks/tmux-state.sh +19 -0
- package/dist/templates/termrender-haiku-system.md +82 -0
- package/dist/templates/whip-animation.sh +345 -0
- package/dist/tui.js +3242 -2189
- package/dist/tui.js.map +1 -1
- package/native/SisyphusNotify/main.swift +15 -5
- package/package.json +8 -6
- package/templates/CLAUDE.md +1 -56
- package/templates/agent-plugin/agents/CLAUDE.md +2 -65
- package/templates/agent-plugin/agents/debug.md +43 -6
- package/templates/agent-plugin/agents/debug.settings.json +57 -0
- package/templates/agent-plugin/agents/explore.md +28 -1
- package/templates/agent-plugin/agents/explore.settings.json +57 -0
- package/templates/agent-plugin/agents/implementor.md +94 -0
- package/templates/agent-plugin/agents/implementor.settings.json +57 -0
- package/templates/agent-plugin/agents/operator.md +43 -1
- package/templates/agent-plugin/agents/operator.settings.json +57 -0
- package/templates/agent-plugin/agents/plan/sub-planner.md +75 -0
- package/templates/agent-plugin/agents/plan.md +176 -86
- package/templates/agent-plugin/agents/plan.settings.json +57 -0
- package/templates/agent-plugin/agents/problem/adversarial.md +26 -0
- package/templates/agent-plugin/agents/problem/contrarian.md +26 -0
- package/templates/agent-plugin/agents/problem/first-principles.md +26 -0
- package/templates/agent-plugin/agents/problem/precedent.md +25 -0
- package/templates/agent-plugin/agents/problem/simplifier.md +26 -0
- package/templates/agent-plugin/agents/problem/systems-thinker.md +26 -0
- package/templates/agent-plugin/agents/problem/time-traveler.md +26 -0
- package/templates/agent-plugin/agents/problem/user-empathy.md +26 -0
- package/templates/agent-plugin/agents/problem.md +334 -79
- package/templates/agent-plugin/agents/problem.settings.json +57 -0
- package/templates/agent-plugin/agents/research-lead/CLAUDE.md +26 -0
- package/templates/agent-plugin/agents/research-lead/critic.md +61 -0
- package/templates/agent-plugin/agents/research-lead/researcher.md +60 -0
- package/templates/agent-plugin/agents/research-lead.md +184 -0
- package/templates/agent-plugin/agents/research-lead.settings.json +57 -0
- package/templates/agent-plugin/agents/review/CLAUDE.md +3 -29
- package/templates/agent-plugin/agents/review/compliance.md +14 -3
- package/templates/agent-plugin/agents/review/efficiency.md +15 -4
- package/templates/agent-plugin/agents/review/quality.md +20 -6
- package/templates/agent-plugin/agents/review/reuse.md +17 -5
- package/templates/agent-plugin/agents/review/security.md +10 -3
- package/templates/agent-plugin/agents/review/tests.md +58 -0
- package/templates/agent-plugin/agents/review-plan/CLAUDE.md +28 -0
- package/templates/agent-plugin/agents/review-plan/code-smells.md +4 -2
- package/templates/agent-plugin/agents/review-plan/pattern-consistency.md +4 -2
- package/templates/agent-plugin/agents/review-plan/requirements-coverage.md +3 -1
- package/templates/agent-plugin/agents/review-plan/security.md +5 -2
- package/templates/agent-plugin/agents/review-plan.md +52 -5
- package/templates/agent-plugin/agents/review-plan.settings.json +57 -0
- package/templates/agent-plugin/agents/review.md +89 -16
- package/templates/agent-plugin/agents/review.settings.json +57 -0
- package/templates/agent-plugin/agents/spec/engineer.md +175 -0
- package/templates/agent-plugin/agents/spec/requirements-writer.md +149 -0
- package/templates/agent-plugin/agents/spec.md +444 -0
- package/templates/agent-plugin/agents/spec.settings.json +57 -0
- package/templates/agent-plugin/agents/test-spec.md +58 -2
- package/templates/agent-plugin/agents/test-spec.settings.json +57 -0
- package/templates/agent-plugin/hooks/CLAUDE.md +9 -57
- package/templates/agent-plugin/hooks/ask-background-guard.sh +57 -0
- package/templates/agent-plugin/hooks/intercept-send-message.sh +1 -1
- package/templates/agent-plugin/hooks/plan-user-prompt.sh +8 -7
- package/templates/agent-plugin/hooks/plan-validate.sh +97 -0
- package/templates/agent-plugin/hooks/plan-write-path.sh +55 -0
- package/templates/agent-plugin/hooks/problem-user-prompt.sh +26 -0
- package/templates/agent-plugin/hooks/register-bg-task.sh +37 -0
- package/templates/agent-plugin/hooks/require-submit.sh +51 -42
- package/templates/agent-plugin/hooks/review-user-prompt.sh +6 -2
- package/templates/agent-plugin/hooks/spec-user-prompt.sh +43 -0
- package/templates/agent-plugin/skills/humanloop/SKILL.md +147 -0
- package/templates/agent-plugin/skills/perspective-fanout/SKILL.md +115 -0
- package/templates/agent-plugin/skills/problem-document/SKILL.md +105 -0
- package/templates/agent-plugin/skills/problem-plateau-breakers/SKILL.md +83 -0
- package/templates/agent-suffix.md +7 -4
- package/templates/baleia.lua +42 -0
- package/templates/companion-plugin/hooks/user-prompt-context.sh +1 -1
- package/templates/dashboard-claude.md +7 -3
- package/templates/orchestrator-base.md +89 -52
- package/templates/orchestrator-completion.md +47 -24
- package/templates/orchestrator-discovery.md +183 -0
- package/templates/orchestrator-impl.md +47 -18
- package/templates/orchestrator-planning.md +109 -20
- package/templates/orchestrator-plugin/commands/sisyphus/scratch.md +19 -0
- package/templates/orchestrator-plugin/commands/sisyphus/spec.md +11 -0
- package/templates/orchestrator-plugin/commands/sisyphus/strategize.md +5 -5
- package/templates/orchestrator-plugin/hooks/hooks.json +0 -10
- package/templates/orchestrator-plugin/skills/humanloop/SKILL.md +149 -0
- package/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +1 -0
- package/templates/orchestrator-plugin/skills/orchestration/SKILL.md +2 -1
- package/templates/orchestrator-plugin/skills/orchestration/strategy.md +160 -0
- package/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +26 -28
- package/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +133 -25
- package/templates/orchestrator-settings.json +55 -0
- package/templates/orchestrator-validation.md +17 -14
- package/templates/sisyphus-init.lua +30 -0
- package/templates/sisyphus-tmux-plugin/hooks/hooks.json +54 -0
- package/templates/sisyphus-tmux-plugin/hooks/tmux-state.sh +19 -0
- package/templates/termrender-haiku-system.md +82 -0
- package/templates/whip-animation.sh +345 -0
- package/dist/chunk-22ZGZTGY.js +0 -67
- package/dist/chunk-22ZGZTGY.js.map +0 -1
- package/dist/chunk-6PJVJEYQ.js +0 -46
- package/dist/chunk-6PJVJEYQ.js.map +0 -1
- package/dist/chunk-C2XKXERJ.js.map +0 -1
- package/dist/chunk-TMBAVPHH.js.map +0 -1
- package/dist/chunk-V36NXMHP.js +0 -299
- package/dist/chunk-V36NXMHP.js.map +0 -1
- package/dist/templates/agent-plugin/agents/design.md +0 -134
- package/dist/templates/agent-plugin/agents/requirements.md +0 -138
- package/dist/templates/begin.md +0 -22
- package/dist/templates/nvim-tutorial.txt +0 -68
- package/dist/templates/orchestrator-plugin/commands/sisyphus/design.md +0 -13
- package/dist/templates/orchestrator-plugin/commands/sisyphus/requirements.md +0 -13
- package/dist/templates/orchestrator-plugin/hooks/idle-notify.sh +0 -71
- package/dist/templates/orchestrator-strategy.md +0 -238
- package/templates/agent-plugin/agents/design.md +0 -134
- package/templates/agent-plugin/agents/requirements.md +0 -138
- package/templates/begin.md +0 -22
- package/templates/nvim-tutorial.txt +0 -68
- package/templates/orchestrator-plugin/commands/sisyphus/design.md +0 -13
- package/templates/orchestrator-plugin/commands/sisyphus/requirements.md +0 -13
- package/templates/orchestrator-plugin/hooks/idle-notify.sh +0 -71
- package/templates/orchestrator-strategy.md +0 -238
- /package/dist/{paths-XRDEEJ5R.js.map → paths-JXFLR5BN.js.map} +0 -0
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Stop hook: notify user when orchestrator is idle and tmux window not attended.
|
|
3
|
-
# If terminal-notifier is available, clicking the notification switches tmux to
|
|
4
|
-
# the orchestrator's window. Falls back to osascript (no click action).
|
|
5
|
-
# Always exits 0 with no stdout — never blocks stop.
|
|
6
|
-
|
|
7
|
-
[ "$SISYPHUS_NOTIFY_ENABLED" = "0" ] && exit 0
|
|
8
|
-
[ -z "$TMUX_PANE" ] && exit 0
|
|
9
|
-
|
|
10
|
-
WINDOW_ACTIVE=$(tmux display-message -t "$TMUX_PANE" -p "#{window_active}" 2>/dev/null)
|
|
11
|
-
SESSION_ATTACHED=$(tmux display-message -t "$TMUX_PANE" -p "#{session_attached}" 2>/dev/null)
|
|
12
|
-
|
|
13
|
-
# User is watching — no notification needed
|
|
14
|
-
[ "$WINDOW_ACTIVE" = "1" ] && [ -n "$SESSION_ATTACHED" ] && [ "$SESSION_ATTACHED" != "0" ] && exit 0
|
|
15
|
-
|
|
16
|
-
SOUND="${SISYPHUS_NOTIFY_SOUND:-/System/Library/Sounds/Hero.aiff}"
|
|
17
|
-
LABEL="${SISYPHUS_SESSION_NAME:-orchestrator}"
|
|
18
|
-
|
|
19
|
-
# Resolve session/window for click-to-switch
|
|
20
|
-
SESSION_NAME=$(tmux display-message -t "$TMUX_PANE" -p "#{session_name}" 2>/dev/null)
|
|
21
|
-
WINDOW_ID=$(tmux display-message -t "$TMUX_PANE" -p "#{window_index}" 2>/dev/null)
|
|
22
|
-
|
|
23
|
-
if [ -n "$SESSION_NAME" ] && [ -n "$WINDOW_ID" ] && command -v terminal-notifier &>/dev/null; then
|
|
24
|
-
# Write a one-shot switch script (self-deleting on execution)
|
|
25
|
-
# terminal-notifier -execute runs with minimal PATH, so resolve paths now
|
|
26
|
-
TMUX_BIN=$(command -v tmux)
|
|
27
|
-
# Find the tmux client tty attached to this session (for iTerm2 tab lookup)
|
|
28
|
-
CLIENT_TTY=$("$TMUX_BIN" list-clients -t "$SESSION_NAME" -F "#{client_tty}" 2>/dev/null | head -1)
|
|
29
|
-
SWITCH_SCRIPT=$(mktemp /tmp/sisyphus-switch.XXXXXX.sh)
|
|
30
|
-
cat > "$SWITCH_SCRIPT" <<EOF
|
|
31
|
-
#!/bin/bash
|
|
32
|
-
# Activate the correct iTerm2 window+tab (matched by tty), or fall back to generic activate
|
|
33
|
-
osascript -e '
|
|
34
|
-
tell application "iTerm"
|
|
35
|
-
activate
|
|
36
|
-
repeat with w in windows
|
|
37
|
-
repeat with t in tabs of w
|
|
38
|
-
repeat with s in sessions of t
|
|
39
|
-
if tty of s is "${CLIENT_TTY}" then
|
|
40
|
-
select w
|
|
41
|
-
tell w to select t
|
|
42
|
-
return
|
|
43
|
-
end if
|
|
44
|
-
end repeat
|
|
45
|
-
end repeat
|
|
46
|
-
end repeat
|
|
47
|
-
end tell' 2>/dev/null || osascript -e 'tell application "Terminal" to activate' 2>/dev/null
|
|
48
|
-
# Switch tmux to the orchestrator window
|
|
49
|
-
"${TMUX_BIN}" switch-client -c "${CLIENT_TTY}" -t "${SESSION_NAME}:${WINDOW_ID}" 2>/dev/null
|
|
50
|
-
"${TMUX_BIN}" select-window -t "${SESSION_NAME}:${WINDOW_ID}" 2>/dev/null
|
|
51
|
-
rm -f "\$0"
|
|
52
|
-
EOF
|
|
53
|
-
chmod +x "$SWITCH_SCRIPT"
|
|
54
|
-
|
|
55
|
-
SOUND_NAME=$(basename "${SOUND}" .aiff)
|
|
56
|
-
(
|
|
57
|
-
terminal-notifier \
|
|
58
|
-
-title "Sisyphus: ${LABEL}" \
|
|
59
|
-
-message "Orchestrator waiting for input" \
|
|
60
|
-
-sound "$SOUND_NAME" \
|
|
61
|
-
-execute "$SWITCH_SCRIPT" 2>/dev/null
|
|
62
|
-
) &
|
|
63
|
-
else
|
|
64
|
-
# Fallback: osascript notification + sound (no click-to-switch)
|
|
65
|
-
(
|
|
66
|
-
osascript -e "display notification \"Orchestrator waiting for input\" with title \"Sisyphus: ${LABEL}\"" 2>/dev/null
|
|
67
|
-
[ -f "$SOUND" ] && afplay "$SOUND" 2>/dev/null
|
|
68
|
-
) &
|
|
69
|
-
fi
|
|
70
|
-
|
|
71
|
-
exit 0
|
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: strategy
|
|
3
|
-
description: Understand the goal and map out how to get there. Use when starting a new session, when the goal has fundamentally shifted, or when the current approach needs rethinking.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Strategy Phase
|
|
7
|
-
|
|
8
|
-
You are in strategy mode. Your job is to understand the goal and produce a strategy that maps out how to get there — but only as far as you can currently see.
|
|
9
|
-
|
|
10
|
-
Strategy is a living map. You detail the stages you can see clearly, sketch the ones you can't yet, and compress the ones behind you. Don't try to plan the entire session upfront. Map what's visible, acknowledge what's ahead, and trust that the strategy will be extended as the picture clarifies.
|
|
11
|
-
|
|
12
|
-
If a strategy.md already exists, you're here because the goal has fundamentally shifted or the approach needs rethinking. Read the existing strategy, assess what's changed, and revise it — don't start from scratch unless the old strategy is truly obsolete.
|
|
13
|
-
|
|
14
|
-
<ownership>
|
|
15
|
-
|
|
16
|
-
## You Own the Lifecycle
|
|
17
|
-
|
|
18
|
-
The user is a stakeholder, not a project manager. They are busy. They answer questions, express preferences, and approve plans — but they don't drive the process. You do.
|
|
19
|
-
|
|
20
|
-
This means every stage you design needs to be self-sufficient: the orchestrator should know what to do next without the user pushing it forward. When a stage needs user input, define exactly what you need from them (a decision, approval, clarification) and handle everything else autonomously.
|
|
21
|
-
|
|
22
|
-
The user's role at each stage:
|
|
23
|
-
- **Discovery/exploration**: answer questions about their intent, constraints, priorities
|
|
24
|
-
- **Requirements/design**: approve requirements and architecture decisions
|
|
25
|
-
- **Implementation**: mostly hands-off — they see progress, intervene if something looks wrong
|
|
26
|
-
- **Validation**: sign off on the final result
|
|
27
|
-
|
|
28
|
-
Design your stages around this. Don't create stages that require the user to manage the work. Create stages where you manage the work and bring the user in at decision points.
|
|
29
|
-
|
|
30
|
-
</ownership>
|
|
31
|
-
|
|
32
|
-
<goal-refinement>
|
|
33
|
-
|
|
34
|
-
## Refine the Goal
|
|
35
|
-
|
|
36
|
-
The user's starting prompt is an input, not a goal. It may be vague, ambiguous, or assume context you don't have. Your job is to turn it into a clear goal statement.
|
|
37
|
-
|
|
38
|
-
**Process:**
|
|
39
|
-
1. Read the starting prompt
|
|
40
|
-
2. Explore the codebase enough to understand what's relevant
|
|
41
|
-
3. If the goal is unclear, **ask the user** — do NOT guess. Surface ambiguity, propose interpretations, get confirmation.
|
|
42
|
-
4. Write `goal.md` to the session directory
|
|
43
|
-
|
|
44
|
-
**goal.md should answer:**
|
|
45
|
-
- What does "done" look like?
|
|
46
|
-
- What's in scope and what's explicitly not?
|
|
47
|
-
- Who or what is affected?
|
|
48
|
-
|
|
49
|
-
Keep it short — a paragraph, not a document. This is a north star, not a requirements doc.
|
|
50
|
-
|
|
51
|
-
</goal-refinement>
|
|
52
|
-
|
|
53
|
-
<design-philosophy>
|
|
54
|
-
|
|
55
|
-
## Design Philosophy
|
|
56
|
-
|
|
57
|
-
You're choosing *how to think* about the problem before doing any work. These frameworks inform that choice:
|
|
58
|
-
|
|
59
|
-
- **Double Diamond** — Diverge to explore, converge on a definition; diverge on solutions, converge on implementation. Use when requirements are unclear or the problem needs defining.
|
|
60
|
-
- **OODA (Observe–Orient–Decide–Act)** — Tight sensing/reacting loops. Use when the situation is fluid and the cost of wrong moves is low (debugging, spikes, incident response).
|
|
61
|
-
- **Cynefin** — Match approach to domain. Clear → best practice. Complicated → analyze then execute. Complex → probe, sense, respond. Chaotic → act to stabilize.
|
|
62
|
-
|
|
63
|
-
Don't follow a framework mechanically. Use them to *select the right process shape* for each stage.
|
|
64
|
-
|
|
65
|
-
</design-philosophy>
|
|
66
|
-
|
|
67
|
-
<strategy-generation>
|
|
68
|
-
|
|
69
|
-
## Generate the Strategy
|
|
70
|
-
|
|
71
|
-
### Step 1: Assess What You Can See
|
|
72
|
-
|
|
73
|
-
Sisyphus sessions are for large, complex work — multi-phase features, sweeping refactors, research-heavy initiatives, or messy combinations of all three. The work often doesn't fit neatly into a category, and the shape of it may not be clear at the start.
|
|
74
|
-
|
|
75
|
-
Start by asking: **how much of the path can I see right now?**
|
|
76
|
-
|
|
77
|
-
- **Goal is clear, path is visible** → map out the full stage progression. Detail the first stage, sketch the rest.
|
|
78
|
-
- **Goal is clear, path is uncertain** → detail an exploration/investigation stage to understand the landscape. Sketch what you think comes after.
|
|
79
|
-
- **Goal is vague** → the first stage is figuring out what the goal actually is. Ask the user, explore the codebase, converge on a real goal. Everything else is "TBD."
|
|
80
|
-
|
|
81
|
-
### Step 2: Map the Stage Progression
|
|
82
|
-
|
|
83
|
-
Identify the stages you'll need but **only detail the first one** (or the stage you're entering). Sketch the rest as one-liners. The progression depends entirely on the problem — there's no fixed template. Common patterns to draw from:
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
discovery → product-design → technical-investigation → architecture → implementation → validation
|
|
87
|
-
exploration → spike → design → implementation → validation
|
|
88
|
-
investigation → recommendation → (user decides) → implementation
|
|
89
|
-
analysis → phased-transformation → verification
|
|
90
|
-
discovery → requirements → design → planning → implementation → validation
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
Mix and match. The orchestrator plays different roles at different stages — product designer during discovery, architect during design, engineering lead during implementation. A massive refactor might start with investigation, move through phased transformation, and end with validation. A research-heavy feature might cycle between exploration and prototyping before ever reaching a design stage. Let the problem dictate the shape.
|
|
94
|
-
|
|
95
|
-
Not every stage needs to appear. Skip what's already clear. Add stages the patterns don't show — spikes, prototypes, migration stages, compatibility checks, whatever the problem demands. Stages can be anything — they're not limited to the patterns below.
|
|
96
|
-
|
|
97
|
-
### Step 3: Build Each Detailed Stage
|
|
98
|
-
|
|
99
|
-
Use the stage patterns below as starting points — not a menu. Invent new stage types when the problem demands it. Adapt patterns to fit. Add backtrack edges where you can foresee things going wrong. Give every stage an exit condition concrete enough to evaluate.
|
|
100
|
-
|
|
101
|
-
<stage-patterns>
|
|
102
|
-
|
|
103
|
-
<stage name="discovery" use-when="Goal is broad or ambiguous — need to understand what the user actually wants before scoping the work">
|
|
104
|
-
Process: explore the existing system to understand context → research relevant domain patterns → engage the user with targeted questions (not open-ended — propose interpretations, ask them to confirm or redirect) → draft a product brief or problem definition
|
|
105
|
-
Exit: user-confirmed understanding of what they want, documented in context/
|
|
106
|
-
Produces: product brief, problem definition, or scoping document
|
|
107
|
-
Note: the orchestrator acts as product designer here — asking the right questions, proposing structure, synthesizing vague desires into concrete scope
|
|
108
|
-
</stage>
|
|
109
|
-
|
|
110
|
-
<stage name="exploration" use-when="Need to understand the technical landscape before committing to an approach">
|
|
111
|
-
Process: spawn explore agents (each producing a focused context doc) → review findings → identify gaps → re-explore or converge
|
|
112
|
-
Exit: enough understanding to make decisions about the next stage — key questions answered, relevant patterns documented
|
|
113
|
-
Produces: context documents (one per investigation angle, not one sprawling doc)
|
|
114
|
-
Backtrack: N/A (usually early stage)
|
|
115
|
-
</stage>
|
|
116
|
-
|
|
117
|
-
<stage name="spike" use-when="Feasibility is uncertain — need to prove an approach works before investing in full design">
|
|
118
|
-
Process: identify the riskiest assumption → build a minimal prototype that tests it → evaluate results → present findings to user if the spike changes the approach
|
|
119
|
-
Exit: feasibility confirmed or denied with evidence, decision on path forward
|
|
120
|
-
Produces: spike findings in context/, prototype code (may be throwaway)
|
|
121
|
-
Backtrack: if spike fails → re-explore alternatives
|
|
122
|
-
</stage>
|
|
123
|
-
|
|
124
|
-
<stage name="requirements" use-when="Need to define what to build before designing how">
|
|
125
|
-
Process: draft requirements from exploration/discovery findings → review for feasibility against actual codebase → align with user → revise
|
|
126
|
-
Exit: user-approved requirements with testable acceptance criteria
|
|
127
|
-
Produces: requirements document in context/
|
|
128
|
-
Backtrack: if problem was misframed → re-explore or re-discover
|
|
129
|
-
</stage>
|
|
130
|
-
|
|
131
|
-
<stage name="design" use-when="Requirements approved, need to define the architecture and approach">
|
|
132
|
-
Process: explore viable approaches → draft design (architecture, component boundaries, data models, contracts) → review for feasibility and gaps → align with user
|
|
133
|
-
Exit: user-approved design document
|
|
134
|
-
Produces: design doc in context/
|
|
135
|
-
Backtrack: if requirements wrong or incomplete → update requirements
|
|
136
|
-
</stage>
|
|
137
|
-
|
|
138
|
-
<stage name="planning" use-when="Design approved, need an executable breakdown">
|
|
139
|
-
Process: spawn plan lead with requirements + design as inputs → adversarial review of plan → create e2e verification recipe
|
|
140
|
-
Exit: reviewed plan + executable e2e-recipe.md that defines how to prove the feature works
|
|
141
|
-
Produces: phased implementation plan + e2e recipe in context/
|
|
142
|
-
Backtrack: if plan reveals design infeasibility → revisit design
|
|
143
|
-
</stage>
|
|
144
|
-
|
|
145
|
-
<stage name="implementation" use-when="Plan exists, time to build">
|
|
146
|
-
Process: for each phase → detail-plan → spawn implement agents → critique → refine → validate phase
|
|
147
|
-
Exit: all phases validated with evidence, no critical review findings remain
|
|
148
|
-
Produces: code changes, phase validation results
|
|
149
|
-
Loops: critique/refine within each phase (cap at 3 rounds before escalating to plan/design)
|
|
150
|
-
Backtrack: if 2+ agents hit same unexpected complexity → revisit plan or design
|
|
151
|
-
</stage>
|
|
152
|
-
|
|
153
|
-
<stage name="validation" use-when="Implementation complete, need to prove it works end-to-end">
|
|
154
|
-
Process: run full e2e recipe → collect evidence (command output, screenshots, responses) → assess against success criteria → step back and check if the goal is actually met
|
|
155
|
-
Exit: all recipe steps pass with concrete evidence, original goal satisfied
|
|
156
|
-
Produces: validation report with evidence
|
|
157
|
-
Backtrack: if bugs found → implementation; if architectural issues → design
|
|
158
|
-
</stage>
|
|
159
|
-
|
|
160
|
-
</stage-patterns>
|
|
161
|
-
|
|
162
|
-
### Step 4: Write strategy.md
|
|
163
|
-
|
|
164
|
-
Write the strategy to the session directory using this structure:
|
|
165
|
-
|
|
166
|
-
```markdown
|
|
167
|
-
## Completed
|
|
168
|
-
[Nothing yet — compressed summaries of finished stages appear here as work progresses]
|
|
169
|
-
|
|
170
|
-
## Current Stage: [name]
|
|
171
|
-
[Detailed process flow with exit criteria and backtrack triggers]
|
|
172
|
-
[Customized from stage patterns above for this specific problem]
|
|
173
|
-
|
|
174
|
-
## Ahead
|
|
175
|
-
[Sketched future stages — one line each: name + what it covers]
|
|
176
|
-
[Only as far as you can currently see — it's OK if this is vague]
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
**Principles:**
|
|
180
|
-
- **Detail the current stage** — concrete enough that the orchestrator can execute without re-reading this template
|
|
181
|
-
- **Sketch what's ahead** — enough continuity that future updates don't lose the thread, not so much that you're committing to unknowns
|
|
182
|
-
- **Every detailed stage gets exit criteria** — concrete enough to evaluate, not so rigid they become checkboxes
|
|
183
|
-
- **Include user gates** — where does this stage need the user? What decision or approval? Be specific so the orchestrator knows when to engage them and when to proceed autonomously.
|
|
184
|
-
|
|
185
|
-
</strategy-generation>
|
|
186
|
-
|
|
187
|
-
<strategy-evolution>
|
|
188
|
-
|
|
189
|
-
## Strategy Evolution
|
|
190
|
-
|
|
191
|
-
strategy.md is not frozen after this cycle. Future orchestrator cycles will update it when:
|
|
192
|
-
|
|
193
|
-
- **The goal crystallizes** — you were exploring something vague, now you know what to build. Extend the strategy: detail the next stage, flesh out the "Ahead" section.
|
|
194
|
-
- **The goal shifts** — new information changes what "done" looks like. Revise the affected stages.
|
|
195
|
-
- **A stage completes** — compress it to a one-line summary with artifacts produced (move to "Completed"). Promote the next sketched stage to "Current Stage" and detail it.
|
|
196
|
-
- **The approach is wrong** — backtracking reveals a fundamental issue. Revise the strategy to match.
|
|
197
|
-
|
|
198
|
-
Updates happen every few cycles, not every cycle. If the orchestrator is just progressing within a stage, roadmap.md handles that. Strategy updates are for when the shape of the work changes.
|
|
199
|
-
|
|
200
|
-
</strategy-evolution>
|
|
201
|
-
|
|
202
|
-
<roadmap-initialization>
|
|
203
|
-
|
|
204
|
-
## Initialize the Roadmap
|
|
205
|
-
|
|
206
|
-
After writing goal.md and strategy.md, initialize roadmap.md:
|
|
207
|
-
|
|
208
|
-
```markdown
|
|
209
|
-
## Current Stage
|
|
210
|
-
[Stage name from strategy.md and brief status]
|
|
211
|
-
|
|
212
|
-
## Exit Criteria
|
|
213
|
-
[Concrete, evaluable conditions for leaving this stage]
|
|
214
|
-
|
|
215
|
-
## Active Context
|
|
216
|
-
[No context files yet — populated as work begins]
|
|
217
|
-
|
|
218
|
-
## Next Steps
|
|
219
|
-
[What to do next within the current stage]
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
The roadmap tracks cycle-to-cycle progress within a stage. The strategy tracks the shape of the work across stages.
|
|
223
|
-
|
|
224
|
-
</roadmap-initialization>
|
|
225
|
-
|
|
226
|
-
<transition>
|
|
227
|
-
|
|
228
|
-
## Transition
|
|
229
|
-
|
|
230
|
-
Once goal.md, strategy.md, and roadmap.md are written:
|
|
231
|
-
|
|
232
|
-
```bash
|
|
233
|
-
sisyphus yield --mode planning --prompt "Strategy complete — goal.md, strategy.md, and roadmap.md initialized. Begin first stage."
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
Future orchestrator cycles will read strategy.md to orient, consult roadmap.md for current position, and update strategy.md when the shape of the work changes.
|
|
237
|
-
|
|
238
|
-
</transition>
|
|
File without changes
|