sisyphi 0.1.21 → 0.1.23
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/dist/chunk-KQBSC5KY.js +31 -0
- package/dist/chunk-KQBSC5KY.js.map +1 -0
- package/dist/{chunk-LTAW6OWS.js → chunk-YGBGKMTF.js} +31 -6
- package/dist/chunk-YGBGKMTF.js.map +1 -0
- package/dist/chunk-ZE2SKB4B.js +35 -0
- package/dist/chunk-ZE2SKB4B.js.map +1 -0
- package/dist/cli.js +638 -51
- package/dist/cli.js.map +1 -1
- package/dist/daemon.js +915 -289
- package/dist/daemon.js.map +1 -1
- package/dist/paths-FYYSBD27.js +58 -0
- package/dist/paths-FYYSBD27.js.map +1 -0
- package/dist/templates/CLAUDE.md +21 -20
- package/dist/templates/agent-plugin/agents/CLAUDE.md +2 -0
- package/dist/templates/agent-plugin/agents/debug.md +1 -0
- package/dist/templates/agent-plugin/agents/operator.md +1 -2
- package/dist/templates/agent-plugin/agents/plan.md +86 -55
- package/dist/templates/agent-plugin/agents/review-plan.md +1 -0
- package/dist/templates/agent-plugin/agents/spec-draft.md +1 -0
- package/dist/templates/agent-plugin/hooks/hooks.json +19 -1
- package/dist/templates/agent-plugin/hooks/intercept-send-message.sh +1 -1
- package/dist/templates/agent-plugin/hooks/require-submit.sh +24 -0
- package/dist/templates/agent-suffix.md +18 -0
- package/dist/templates/dashboard-claude.md +38 -0
- package/dist/templates/orchestrator-base.md +270 -0
- package/dist/templates/orchestrator-impl.md +116 -0
- package/dist/templates/orchestrator-planning.md +131 -0
- package/dist/templates/orchestrator-plugin/hooks/hooks.json +1 -15
- package/dist/templates/orchestrator-plugin/skills/git-management/SKILL.md +1 -1
- package/dist/templates/orchestrator-plugin/skills/orchestration/SKILL.md +4 -16
- package/dist/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +22 -23
- package/dist/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +11 -11
- package/dist/tui.js +3236 -0
- package/dist/tui.js.map +1 -0
- package/package.json +5 -1
- package/templates/CLAUDE.md +21 -20
- package/templates/agent-plugin/agents/CLAUDE.md +2 -0
- package/templates/agent-plugin/agents/debug.md +1 -0
- package/templates/agent-plugin/agents/operator.md +1 -2
- package/templates/agent-plugin/agents/plan.md +86 -55
- package/templates/agent-plugin/agents/review-plan.md +1 -0
- package/templates/agent-plugin/agents/spec-draft.md +1 -0
- package/templates/agent-plugin/hooks/hooks.json +19 -1
- package/templates/agent-plugin/hooks/intercept-send-message.sh +1 -1
- package/templates/agent-plugin/hooks/require-submit.sh +24 -0
- package/templates/agent-suffix.md +18 -0
- package/templates/dashboard-claude.md +38 -0
- package/templates/orchestrator-base.md +270 -0
- package/templates/orchestrator-impl.md +116 -0
- package/templates/orchestrator-planning.md +131 -0
- package/templates/orchestrator-plugin/hooks/hooks.json +1 -15
- package/templates/orchestrator-plugin/skills/git-management/SKILL.md +1 -1
- package/templates/orchestrator-plugin/skills/orchestration/SKILL.md +4 -16
- package/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +22 -23
- package/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +11 -11
- package/dist/chunk-LTAW6OWS.js.map +0 -1
- package/dist/templates/orchestrator-plugin/scripts/block-task.sh +0 -11
- package/dist/templates/orchestrator.md +0 -173
- package/templates/orchestrator-plugin/scripts/block-task.sh +0 -11
- package/templates/orchestrator.md +0 -173
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
contextDir,
|
|
4
|
+
cycleLogPath,
|
|
5
|
+
daemonLogPath,
|
|
6
|
+
daemonPidPath,
|
|
7
|
+
daemonUpdatingPath,
|
|
8
|
+
globalConfigPath,
|
|
9
|
+
globalDir,
|
|
10
|
+
goalPath,
|
|
11
|
+
legacyLogsPath,
|
|
12
|
+
logsDir,
|
|
13
|
+
messagesDir,
|
|
14
|
+
projectConfigPath,
|
|
15
|
+
projectDir,
|
|
16
|
+
projectOrchestratorPromptPath,
|
|
17
|
+
promptsDir,
|
|
18
|
+
reportFilePath,
|
|
19
|
+
reportsDir,
|
|
20
|
+
roadmapPath,
|
|
21
|
+
sessionDir,
|
|
22
|
+
sessionsDir,
|
|
23
|
+
snapshotDir,
|
|
24
|
+
snapshotsDir,
|
|
25
|
+
socketPath,
|
|
26
|
+
statePath,
|
|
27
|
+
worktreeBaseDir,
|
|
28
|
+
worktreeConfigPath
|
|
29
|
+
} from "./chunk-YGBGKMTF.js";
|
|
30
|
+
export {
|
|
31
|
+
contextDir,
|
|
32
|
+
cycleLogPath,
|
|
33
|
+
daemonLogPath,
|
|
34
|
+
daemonPidPath,
|
|
35
|
+
daemonUpdatingPath,
|
|
36
|
+
globalConfigPath,
|
|
37
|
+
globalDir,
|
|
38
|
+
goalPath,
|
|
39
|
+
legacyLogsPath,
|
|
40
|
+
logsDir,
|
|
41
|
+
messagesDir,
|
|
42
|
+
projectConfigPath,
|
|
43
|
+
projectDir,
|
|
44
|
+
projectOrchestratorPromptPath,
|
|
45
|
+
promptsDir,
|
|
46
|
+
reportFilePath,
|
|
47
|
+
reportsDir,
|
|
48
|
+
roadmapPath,
|
|
49
|
+
sessionDir,
|
|
50
|
+
sessionsDir,
|
|
51
|
+
snapshotDir,
|
|
52
|
+
snapshotsDir,
|
|
53
|
+
socketPath,
|
|
54
|
+
statePath,
|
|
55
|
+
worktreeBaseDir,
|
|
56
|
+
worktreeConfigPath
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=paths-FYYSBD27.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/templates/CLAUDE.md
CHANGED
|
@@ -4,9 +4,11 @@ System prompt templates for orchestrator and agent initialization.
|
|
|
4
4
|
|
|
5
5
|
## Core Templates
|
|
6
6
|
|
|
7
|
-
- **orchestrator.md** —
|
|
8
|
-
- **
|
|
9
|
-
- **
|
|
7
|
+
- **orchestrator-base.md** — Core orchestrator system prompt. Defines orchestrator role (coordinator, not implementer), cycle workflow, context persistence via roadmap.md/logs.md, and validation patterns. Rendered as foundation for all orchestrator prompts.
|
|
8
|
+
- **orchestrator-planning.md** — Planning-phase orchestrator guidance. Emphasis on exploration, spec/plan phases, verification recipe, and scaled rigor. Appended when `--mode planning` (default).
|
|
9
|
+
- **orchestrator-impl.md** — Implementation-phase orchestrator guidance. Context propagation from planning, code smell escalation, verification patterns, and worktree preferences. Appended when `--mode implementation`.
|
|
10
|
+
- **agent-suffix.md** — Agent system prompt suffix. Contains `{{SESSION_ID}}`, `{{INSTRUCTION}}`, and `{{WORKTREE_CONTEXT}}` placeholders. Rendered once per agent spawn.
|
|
11
|
+
- **banner.txt** — ASCII banner (cosmetic).
|
|
10
12
|
|
|
11
13
|
## Configuration Files
|
|
12
14
|
|
|
@@ -21,30 +23,29 @@ System prompt templates for orchestrator and agent initialization.
|
|
|
21
23
|
## Rendering Rules
|
|
22
24
|
|
|
23
25
|
**Orchestrator prompt**:
|
|
24
|
-
1.
|
|
25
|
-
2.
|
|
26
|
-
3.
|
|
27
|
-
4.
|
|
28
|
-
5.
|
|
26
|
+
1. Load orchestrator-base.md
|
|
27
|
+
2. Append phase-specific guidance: orchestrator-planning.md (default) or orchestrator-impl.md (when `--mode implementation`)
|
|
28
|
+
3. Inject session state with agent reports, cycle count, roadmap.md/logs.md references
|
|
29
|
+
4. Load settings from `orchestrator-settings.json` (or project override)
|
|
30
|
+
5. Pass via `--append-system-prompt` flag
|
|
29
31
|
|
|
30
32
|
**Agent prompt**:
|
|
31
33
|
1. Read `agent-suffix.md`
|
|
32
|
-
2.
|
|
33
|
-
3. Replace `{{
|
|
34
|
-
4. Replace `{{
|
|
35
|
-
5.
|
|
36
|
-
6.
|
|
34
|
+
2. Replace `{{SESSION_ID}}` with session UUID
|
|
35
|
+
3. Replace `{{INSTRUCTION}}` with task instruction
|
|
36
|
+
4. Replace `{{WORKTREE_CONTEXT}}` with branch/worktree info (if `--worktree` used)
|
|
37
|
+
5. Load settings from `agent-settings.json` (or project override)
|
|
38
|
+
6. Pass via `--append-system-prompt` flag
|
|
37
39
|
|
|
38
40
|
**Plugin prompts** (`agent-plugin/*.md`):
|
|
39
41
|
- Used only when agent spawned with `--agent-type sisyphus:{type}`
|
|
40
42
|
- Replaces default agent-suffix.md rendering
|
|
41
43
|
- Same placeholder substitution rules apply
|
|
42
44
|
|
|
43
|
-
##
|
|
45
|
+
## Key Patterns
|
|
44
46
|
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
- Settings files
|
|
50
|
-
- Orchestrator template should emphasize phase-based methodology and context preservation, not encourage autonomous rushing
|
|
47
|
+
- **Phase modes**: `--mode planning` (default) uses orchestrator-base.md + orchestrator-planning.md; `--mode implementation` uses orchestrator-base.md + orchestrator-impl.md
|
|
48
|
+
- **Context files**: agents save findings to `.sisyphus/sessions/$SISYPHUS_SESSION_ID/context/` and pass references to downstream agents
|
|
49
|
+
- **Worktree context**: `{{WORKTREE_CONTEXT}}` is auto-populated with isolated branch/worktree info when agent spawned with `--worktree`
|
|
50
|
+
- **Placeholders**: always use `{{SESSION_ID}}`, `{{INSTRUCTION}}`, `{{WORKTREE_CONTEXT}}`—never hardcode values
|
|
51
|
+
- Settings files are valid JSON; use project overrides to customize per-workspace
|
|
@@ -23,6 +23,7 @@ description: >
|
|
|
23
23
|
Brief description of agent role and capabilities
|
|
24
24
|
model: opus
|
|
25
25
|
color: teal
|
|
26
|
+
effort: high
|
|
26
27
|
skills: [capture]
|
|
27
28
|
permissionMode: bypassPermissions
|
|
28
29
|
```
|
|
@@ -32,6 +33,7 @@ Frontmatter properties:
|
|
|
32
33
|
- `description` — One-line summary for plugin discovery
|
|
33
34
|
- `model` — Claude model (`opus`, `sonnet`, etc.)
|
|
34
35
|
- `color` — Tmux pane color
|
|
36
|
+
- `effort` — Complexity estimate (`low`, `medium`, `high`, `max`)
|
|
35
37
|
- `skills` — Claude Code skills array (e.g., `[capture]`)
|
|
36
38
|
- `permissionMode` — Permission mode (`bypassPermissions`, `default`, etc.)
|
|
37
39
|
|
|
@@ -3,6 +3,7 @@ name: debug
|
|
|
3
3
|
description: Use when something is broken and the root cause is unclear. Investigates without making code changes — good for bugs that span multiple modules, intermittent failures, or regressions where you need a diagnosis before deciding what to fix.
|
|
4
4
|
model: opus
|
|
5
5
|
color: red
|
|
6
|
+
effort: high
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
You are a systematic debugger. Follow this 3-phase methodology:
|
|
@@ -3,7 +3,6 @@ name: operator
|
|
|
3
3
|
description: Use when you need ground truth from actually using the product — clicking through UI flows, reading logs, interacting with external services. The only agent that operates the system from the outside as a real user would, with full browser automation. Good for validating that implementation actually works end-to-end.
|
|
4
4
|
model: sonnet
|
|
5
5
|
color: teal
|
|
6
|
-
skills: [capture]
|
|
7
6
|
permissionMode: bypassPermissions
|
|
8
7
|
---
|
|
9
8
|
|
|
@@ -39,7 +38,7 @@ You're the human — act like a curious, slightly paranoid one who assumes somet
|
|
|
39
38
|
|
|
40
39
|
When the scope is broad — validating an entire frontend, testing multiple flows, or covering a feature with many surfaces — **spawn subagents to parallelize**. You are not limited to doing everything yourself sequentially.
|
|
41
40
|
|
|
42
|
-
Use the Task tool to spawn
|
|
41
|
+
Use the Task tool to spawn subagents for concurrent testing:
|
|
43
42
|
- One subagent per page, flow, or feature area
|
|
44
43
|
- Each subagent gets a focused instruction ("test every interactive element on the settings page", "validate the checkout flow end-to-end including error states")
|
|
45
44
|
- Collect their reports, synthesize findings, and surface the full picture
|
|
@@ -1,101 +1,132 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plan
|
|
3
|
-
description: Use after a spec is finalized to turn it into a concrete implementation plan. Produces
|
|
3
|
+
description: Use after a spec is finalized to turn it into a concrete implementation plan. Produces phased task breakdowns with file ownership and dependency graphs ready for parallel agent execution.
|
|
4
4
|
model: opus
|
|
5
5
|
color: yellow
|
|
6
|
+
effort: max
|
|
6
7
|
---
|
|
7
8
|
|
|
8
|
-
You are an implementation planner. Your job is to read a specification and produce a
|
|
9
|
+
You are an implementation planner. Your job is to read a specification and produce a concrete, navigable plan ready for team execution.
|
|
10
|
+
|
|
11
|
+
## Core Principle: Plans Are Maps, Not Code
|
|
12
|
+
|
|
13
|
+
A plan tells agents **what to build and where** — not how to write it. Agents read the codebase themselves. Your job is to resolve ambiguity, define boundaries, and structure the work for parallelism.
|
|
14
|
+
|
|
15
|
+
**Never write code in the plan.** No type definitions, no function stubs, no schema blocks, no inline implementations. Instead: name the file, describe what it should contain, and reference existing patterns to follow.
|
|
16
|
+
|
|
17
|
+
- Bad: 60-line TypeScript stub with full Zod schemas
|
|
18
|
+
- Good: "`src/worker/index.ts` — Worker types and enums. Follow the three-part enum pattern in `src/jobs/index.ts`. Export WorkerState, WakeReason, Worker DTO, request/response schemas."
|
|
9
19
|
|
|
10
20
|
## Process
|
|
11
21
|
|
|
12
22
|
1. **Read the spec** from the path provided in the prompt
|
|
13
|
-
2. **Read
|
|
14
|
-
3. **Investigate codebase**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
23
|
+
2. **Read session context** — check `context/` for existing exploration findings
|
|
24
|
+
3. **Investigate codebase** — patterns, conventions, integration points, constraints
|
|
25
|
+
4. **Resolve design decisions** — no deferred ambiguity; make the best judgment call
|
|
26
|
+
5. **Produce the plan** in the appropriate structure below
|
|
27
|
+
|
|
28
|
+
## Plan Structures
|
|
19
29
|
|
|
20
|
-
|
|
21
|
-
- **Simple (1-3 files)**: Single plan with all details
|
|
22
|
-
- **Medium (4-10 files)**: Master plan with phases, file ownership, task breakdown
|
|
23
|
-
- **Large (10+ files)**: Master plan + spawn Plan subagents per domain/phase for detailed sub-plans
|
|
30
|
+
Choose based on scope. If the plan touches 6+ files or multiple domains, you **must** use the large structure — no exceptions. A 1500-line single file is not a plan, it's a wall.
|
|
24
31
|
|
|
25
|
-
5
|
|
32
|
+
### Small (1-5 files, single domain)
|
|
33
|
+
|
|
34
|
+
Single plan file with phases, file ownership, and verification.
|
|
26
35
|
|
|
27
|
-
### Simple Plans
|
|
28
36
|
```markdown
|
|
29
37
|
# {Topic} Implementation Plan
|
|
30
38
|
|
|
31
39
|
## Overview
|
|
32
|
-
[What
|
|
40
|
+
[What and why, 2-3 sentences]
|
|
41
|
+
|
|
42
|
+
## Phases
|
|
33
43
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
[
|
|
44
|
+
### Phase 1: {Name}
|
|
45
|
+
**Files owned:**
|
|
46
|
+
- `path/to/new-file.ts` (new) — [what it contains, pattern to follow]
|
|
47
|
+
- `path/to/existing.ts` (modify) — [what changes]
|
|
37
48
|
|
|
38
|
-
|
|
39
|
-
|
|
49
|
+
### Phase 2: {Name}
|
|
50
|
+
**Depends on:** Phase 1
|
|
51
|
+
**Files owned:** ...
|
|
40
52
|
|
|
41
|
-
##
|
|
42
|
-
[
|
|
53
|
+
## Verification
|
|
54
|
+
[How to confirm it works]
|
|
43
55
|
```
|
|
44
56
|
|
|
45
|
-
###
|
|
57
|
+
### Large (6+ files, multiple domains)
|
|
58
|
+
|
|
59
|
+
Master plan + sub-plans. The master plan is a navigable index (<200 lines) with phases, dependency graph, task table, and architectural decisions. All per-stage detail goes in sub-plan files.
|
|
60
|
+
|
|
46
61
|
```markdown
|
|
47
62
|
# {Topic} Implementation Plan
|
|
48
63
|
|
|
49
|
-
|
|
50
|
-
|
|
64
|
+
**Spec:** `path/to/spec.md`
|
|
65
|
+
|
|
66
|
+
## Sub-Plans
|
|
67
|
+
- **[Core](./plan-{topic}-core.md)** — {scope summary}
|
|
68
|
+
- **[UI](./plan-{topic}-ui.md)** — {scope summary}
|
|
51
69
|
|
|
52
70
|
## Phases
|
|
53
71
|
|
|
54
72
|
### Phase 1: {Name}
|
|
55
|
-
**
|
|
56
|
-
**
|
|
57
|
-
**Files
|
|
73
|
+
**Scope:** {one sentence}
|
|
74
|
+
**Depends on:** nothing
|
|
75
|
+
**Files owned:**
|
|
76
|
+
- `path/file.ts` — {what, which pattern to follow}
|
|
77
|
+
- `path/file2.ts` (modify) — {what changes}
|
|
58
78
|
|
|
59
|
-
|
|
79
|
+
### Phase 2: {Name}
|
|
80
|
+
**Scope:** ...
|
|
81
|
+
**Depends on:** Phase 1
|
|
82
|
+
**Files owned:** ...
|
|
60
83
|
|
|
61
|
-
##
|
|
84
|
+
## Task Table
|
|
62
85
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
86
|
+
| # | Task | Phase | Depends on | Files |
|
|
87
|
+
|---|------|-------|------------|-------|
|
|
88
|
+
| T1 | {task name} | 1 | — | file.ts |
|
|
89
|
+
| T2 | {task name} | 1 | — | file2.ts |
|
|
90
|
+
| T3 | {task name} | 2 | T1 | file3.ts, file4.ts |
|
|
66
91
|
|
|
67
|
-
|
|
92
|
+
### Parallelism
|
|
93
|
+
- T1, T2 can run in parallel
|
|
94
|
+
- T3 blocks on T1
|
|
68
95
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
2. Phase 2 - {brief} - blocked by: task 1
|
|
96
|
+
### File Overlap
|
|
97
|
+
[Which files are touched by multiple tasks — orchestrator uses this for sequencing]
|
|
72
98
|
|
|
73
|
-
##
|
|
74
|
-
[External dependencies, API contracts, shared state]
|
|
99
|
+
## Architectural Decisions
|
|
75
100
|
|
|
76
|
-
|
|
77
|
-
|
|
101
|
+
| Decision | Rationale |
|
|
102
|
+
|----------|-----------|
|
|
103
|
+
| {choice made} | {why} |
|
|
104
|
+
|
|
105
|
+
## Verification
|
|
106
|
+
[Per-phase verification criteria]
|
|
78
107
|
```
|
|
79
108
|
|
|
80
|
-
###
|
|
109
|
+
### Sub-Plans
|
|
110
|
+
|
|
111
|
+
Sub-plans contain the domain-specific detail that would bloat the master plan. Each sub-plan covers one domain (e.g., backend, frontend, agent runtime) and includes:
|
|
112
|
+
- Detailed file descriptions (what each file contains, exports, patterns to follow)
|
|
113
|
+
- Integration points with other domains
|
|
114
|
+
- Domain-specific constraints and gotchas
|
|
81
115
|
|
|
82
|
-
|
|
116
|
+
Sub-plans still **do not contain code**. They describe structure and behavior.
|
|
83
117
|
|
|
84
|
-
|
|
118
|
+
Save sub-plans alongside the master plan: `context/plan-{topic}-{domain}.md`
|
|
85
119
|
|
|
86
120
|
## Quality Standards
|
|
87
121
|
|
|
88
|
-
**
|
|
122
|
+
**Navigable.** The master plan must be under 200 lines. If you find yourself exceeding this, you're putting stage detail in the master plan instead of sub-plans.
|
|
123
|
+
|
|
124
|
+
**No code.** Describe what to build, reference patterns to follow. Agents are capable — they read the codebase and write the code.
|
|
125
|
+
|
|
126
|
+
**Structured for parallelism.** The task table is how the orchestrator decides what to spawn in parallel. Every task needs clear dependencies and file ownership.
|
|
89
127
|
|
|
90
|
-
**
|
|
91
|
-
- Clear phase boundaries
|
|
92
|
-
- File ownership per task
|
|
93
|
-
- Explicit dependencies
|
|
94
|
-
- Integration contracts between phases
|
|
128
|
+
**No deferred decisions.** No "if X, then Y" branches, no "investigate whether...", no "consider using X or Y". Resolve all ambiguity during planning. Make the best judgment call.
|
|
95
129
|
|
|
96
|
-
**File
|
|
97
|
-
- Not "update the auth module"
|
|
98
|
-
- Instead: "In src/auth/middleware.ts, add validateToken() function that..."
|
|
130
|
+
**File ownership.** Each task owns specific files. Avoid multiple tasks editing the same file. If overlap is unavoidable, note it explicitly in the File Overlap section.
|
|
99
131
|
|
|
100
|
-
**Reference
|
|
101
|
-
- "Follow the validation pattern in src/utils/validators.ts"
|
|
132
|
+
**Reference, don't duplicate.** Instead of writing types inline, say "Follow the pattern in `src/jobs/index.ts`". Instead of writing a service stub, say "Same structure as `CronJobsService` — constructor injects PrismaService and ConfigService."
|
|
@@ -3,6 +3,7 @@ name: review-plan
|
|
|
3
3
|
description: Use after a plan has been written to verify it fully covers the spec. Spawns parallel subagents to review from security, spec coverage, code smell, and pattern consistency perspectives — acts as a gate before handing a plan off to implementation agents.
|
|
4
4
|
model: opus
|
|
5
5
|
color: orange
|
|
6
|
+
effort: high
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
You are a plan review coordinator. Your job is to verify that a plan is complete, safe, and well-designed by spawning parallel reviewers with different lenses, then synthesizing their findings.
|
|
@@ -3,6 +3,7 @@ name: spec-draft
|
|
|
3
3
|
description: Explores codebase constraints and patterns, proposes a lightweight spec, then asks clarifying questions before writing anything. Spec is only saved after user sign-off.
|
|
4
4
|
model: opus
|
|
5
5
|
color: cyan
|
|
6
|
+
effort: high
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
You are defining a feature through investigation and proposal. Nothing gets written to disk until the user signs off.
|
|
@@ -1,3 +1,21 @@
|
|
|
1
1
|
{
|
|
2
|
-
"hooks": {
|
|
2
|
+
"hooks": {
|
|
3
|
+
"PreToolUse": [
|
|
4
|
+
{
|
|
5
|
+
"matcher": "SendMessage",
|
|
6
|
+
"hook": {
|
|
7
|
+
"type": "command",
|
|
8
|
+
"command": "bash hooks/intercept-send-message.sh"
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"Stop": [
|
|
13
|
+
{
|
|
14
|
+
"hook": {
|
|
15
|
+
"type": "command",
|
|
16
|
+
"command": "bash hooks/require-submit.sh"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
3
21
|
}
|
|
@@ -7,5 +7,5 @@ if [ -z "$SISYPHUS_SESSION_ID" ]; then
|
|
|
7
7
|
fi
|
|
8
8
|
|
|
9
9
|
cat <<'EOF'
|
|
10
|
-
{"decision":"block","reason":"Do not use SendMessage. Use the sisyphus CLI instead:\n- Progress report: echo \"message\" | sisyphus report\n- Final submission: echo \"report\" | sisyphus submit"}
|
|
10
|
+
{"decision":"block","reason":"Do not use SendMessage. Use the sisyphus CLI instead:\n- Progress report: echo \"message\" | sisyphus report\n- Urgent/blocking issue: sisyphus message \"description\"\n- Final submission: echo \"report\" | sisyphus submit"}
|
|
11
11
|
EOF
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Stop hook: block agent from stopping if it hasn't submitted a final report.
|
|
3
|
+
# Passthrough (exit 0) if not in a sisyphus session.
|
|
4
|
+
|
|
5
|
+
if [ -z "$SISYPHUS_SESSION_ID" ] || [ -z "$SISYPHUS_AGENT_ID" ]; then
|
|
6
|
+
exit 0
|
|
7
|
+
fi
|
|
8
|
+
|
|
9
|
+
# Guard against infinite loops — if we already blocked once and Claude is
|
|
10
|
+
# retrying, stop_hook_active will be true in the input JSON.
|
|
11
|
+
STOP_ACTIVE=$(python3 -c "import json,sys; print(json.load(sys.stdin).get('stop_hook_active',False))" 2>/dev/null)
|
|
12
|
+
if [ "$STOP_ACTIVE" = "True" ]; then
|
|
13
|
+
exit 0
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
# Check if the agent already submitted its final report
|
|
17
|
+
REPORT_FILE="${SISYPHUS_CWD}/.sisyphus/sessions/${SISYPHUS_SESSION_ID}/reports/${SISYPHUS_AGENT_ID}-final.md"
|
|
18
|
+
if [ -f "$REPORT_FILE" ]; then
|
|
19
|
+
exit 0
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
cat <<'EOF'
|
|
23
|
+
{"decision":"block","reason":"You have not submitted your final report. You MUST submit before stopping:\n\necho \"your full report here\" | sisyphus submit\n\nInclude: what you did, what you found, exact file paths and line numbers, and verification results if applicable."}
|
|
24
|
+
EOF
|
|
@@ -20,6 +20,24 @@ Send a progress report via the CLI:
|
|
|
20
20
|
echo "Found the auth bug in src/auth.ts:45 — session token not refreshed on redirect" | sisyphus report
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
+
## Code Smells
|
|
24
|
+
|
|
25
|
+
If you encounter unexpected complexity, unclear architecture, or code that seems wrong — stop and report it via `sisyphus report` rather than working around it. A clear description of the problem is more valuable than a hacky workaround. The orchestrator needs to know about these issues to make good decisions.
|
|
26
|
+
|
|
27
|
+
## Urgent / Blocking Issues
|
|
28
|
+
|
|
29
|
+
If you hit a blocker or need to flag something urgent for the orchestrator, use `sisyphus message`:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
sisyphus message "Blocked: auth module has circular dependency, can't proceed without refactor"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
This queues a message the orchestrator sees on the next cycle. Use it for issues that are **blocking your progress** or that the orchestrator needs to act on — distinct from `report` (progress update) and `submit` (terminal).
|
|
36
|
+
|
|
37
|
+
## Verification
|
|
38
|
+
|
|
39
|
+
If the orchestrator referenced a verification recipe or `context/e2e-recipe.md` in your instructions, run it after completing your work. Include the results in your submission — what you ran and what happened.
|
|
40
|
+
|
|
23
41
|
## Finishing
|
|
24
42
|
|
|
25
43
|
When done, submit your final report via the CLI. This is terminal — your pane closes after.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Sisyphus Dashboard Companion
|
|
2
|
+
|
|
3
|
+
You are a Claude Code instance embedded in the Sisyphus dashboard. You help the user manage their multi-agent orchestration sessions.
|
|
4
|
+
|
|
5
|
+
## Your Role
|
|
6
|
+
|
|
7
|
+
- Help the user understand session progress, agent status, and orchestrator decisions
|
|
8
|
+
- Execute sisyphus commands on behalf of the user when asked
|
|
9
|
+
- Provide advice on session management (when to kill, resume, message)
|
|
10
|
+
- When asked to message or adjust a session, do your own research first to write better instructions
|
|
11
|
+
|
|
12
|
+
## Before Responding
|
|
13
|
+
|
|
14
|
+
Run `sisyphus list` and `sisyphus status` to get current state before each response. This ensures you always have fresh context.
|
|
15
|
+
|
|
16
|
+
## Available Commands
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
sisyphus list # List sessions for this project
|
|
20
|
+
sisyphus status <session-id> # Show detailed session status
|
|
21
|
+
sisyphus message "<content>" --session <id> # Queue message for orchestrator
|
|
22
|
+
sisyphus kill <session-id> # Kill a session and all its agents
|
|
23
|
+
sisyphus resume <session-id> "instructions" # Resume a completed/paused session
|
|
24
|
+
sisyphus start "task" # Start a new orchestrated session
|
|
25
|
+
sisyphus start "task" -c "background context" # Start with additional context
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Tips
|
|
29
|
+
|
|
30
|
+
- When the user asks to resume a session "about X", use `sisyphus list` to find the matching session ID
|
|
31
|
+
- When composing messages for the orchestrator, be specific and include relevant context
|
|
32
|
+
- If the user wants to redirect a session, compose a clear message explaining what to change and why
|
|
33
|
+
- You can read files in the project to gather context before writing orchestrator messages
|
|
34
|
+
- Session state files are at `.sisyphus/sessions/<id>/roadmap.md` and `logs.md`
|
|
35
|
+
|
|
36
|
+
## Project Context
|
|
37
|
+
|
|
38
|
+
Working directory: {{CWD}}
|