sisyphi 1.2.0 → 1.2.1
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/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/templates/agent-plugin/hooks/CLAUDE.md +4 -4
- package/dist/templates/agent-plugin/hooks/hooks.json +1 -1
- package/dist/templates/agent-plugin/hooks/register-bg-task.sh +10 -7
- package/dist/templates/orchestrator-base.md +8 -10
- package/dist/templates/orchestrator-impl.md +5 -1
- package/dist/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +1 -1
- package/package.json +2 -2
- package/templates/agent-plugin/hooks/CLAUDE.md +4 -4
- package/templates/agent-plugin/hooks/hooks.json +1 -1
- package/templates/agent-plugin/hooks/register-bg-task.sh +10 -7
- package/templates/orchestrator-base.md +8 -10
- package/templates/orchestrator-impl.md +5 -1
- package/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +1 -1
- package/deploy/hetzner/.terraform/providers/registry.terraform.io/hetznercloud/hcloud/1.62.0/darwin_arm64/CHANGELOG.md +0 -1277
- package/deploy/hetzner/.terraform/providers/registry.terraform.io/hetznercloud/hcloud/1.62.0/darwin_arm64/LICENSE +0 -373
- package/deploy/hetzner/.terraform/providers/registry.terraform.io/hetznercloud/hcloud/1.62.0/darwin_arm64/README.md +0 -202
- package/deploy/hetzner/.terraform/providers/registry.terraform.io/hetznercloud/hcloud/1.62.0/darwin_arm64/terraform-provider-hcloud_v1.62.0 +0 -0
- package/dist/deploy/hetzner/.terraform/providers/registry.terraform.io/hetznercloud/hcloud/1.62.0/darwin_arm64/CHANGELOG.md +0 -1277
- package/dist/deploy/hetzner/.terraform/providers/registry.terraform.io/hetznercloud/hcloud/1.62.0/darwin_arm64/LICENSE +0 -373
- package/dist/deploy/hetzner/.terraform/providers/registry.terraform.io/hetznercloud/hcloud/1.62.0/darwin_arm64/README.md +0 -202
- package/dist/deploy/hetzner/.terraform/providers/registry.terraform.io/hetznercloud/hcloud/1.62.0/darwin_arm64/terraform-provider-hcloud_v1.62.0 +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
-
|
|
2
|
-
-
|
|
1
|
+
- Script edits are invisible to running agents — the daemon copies scripts at spawn time; **respawn required** to pick up changes.
|
|
2
|
+
- Higher layers can suppress a bundled script by basename via `"disable": ["script.sh"]` at the manifest's top level.
|
|
3
3
|
- `interactive: true` in agent frontmatter triggers `condition: "non-interactive"` filtering — entries with that condition (currently the bundled `require-submit.sh` Stop hook) are dropped from the merged manifest for interactive agents.
|
|
4
4
|
- Scripts receive no `{{placeholder}}` substitution — placeholders appear as literal text, unlike `.md` templates.
|
|
5
|
-
-
|
|
5
|
+
- `UserPromptSubmit` hooks write raw text to stdout. PreToolUse hooks (e.g. `intercept-send-message.sh`) write `{"decision":"block","reason":"..."}` or exit 0 — wrong format silently does nothing.
|
|
6
6
|
- Claude Code invokes hooks unconditionally, not only in sisyphus sessions. Guard: `if [ -z "$SISYPHUS_SESSION_ID" ]; then exit 0; fi`. Stop hooks also need `$SISYPHUS_AGENT_ID`.
|
|
7
|
-
- `
|
|
7
|
+
- `UserPromptSubmit` fires on **every** message. Single-fire: guard `$SISYPHUS_AGENT_ID` and use a flag file at `/tmp/sisyphus-hooks/${SISYPHUS_SESSION_ID}/${SISYPHUS_AGENT_ID}-{name}`.
|
|
8
8
|
- Heredoc must use `<<'HINT'` (single-quoted) for static prose — unquoted heredoc silently expands `$SISYPHUS_*`, `$INSTRUCTION`, and backticks. Assign a local var before the heredoc when interpolation is needed. Exception: `$SISYPHUS_SESSION_DIR` and similar env-var references inside `<<'HINT'` are intentional — the agent sees the literal text and expands them itself in Bash tool calls (the pane has these vars set).
|
|
9
9
|
- Stop hooks receive JSON on stdin. If `stop_hook_active` is true, exit 0 immediately — blocking causes an infinite retry loop.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
# PostToolUse hook (matcher: Task): register background-
|
|
3
|
-
#
|
|
4
|
-
# structured signal, not prose scraping.
|
|
5
|
-
#
|
|
2
|
+
# PostToolUse hook (matcher: Task|Agent): register background sub-agent IDs for require-submit.sh.
|
|
3
|
+
# For Task: only fires when Claude Code itself flagged run_in_background=true —
|
|
4
|
+
# structured signal, not prose scraping.
|
|
5
|
+
# For Agent (FleetView): always async; the run_in_background gate is skipped.
|
|
6
6
|
# Passthrough (exit 0) if not in a sisyphus session.
|
|
7
7
|
|
|
8
8
|
if [ -z "$SISYPHUS_SESSION_ID" ] || [ -z "$SISYPHUS_AGENT_ID" ]; then
|
|
@@ -11,9 +11,12 @@ fi
|
|
|
11
11
|
|
|
12
12
|
INPUT=$(cat)
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
if [ "$
|
|
16
|
-
|
|
14
|
+
TOOL_NAME=$(echo "$INPUT" | python3 -c "import json,sys; print(json.load(sys.stdin).get('tool_name',''))" 2>/dev/null)
|
|
15
|
+
if [ "$TOOL_NAME" != "Agent" ]; then
|
|
16
|
+
RIB=$(echo "$INPUT" | python3 -c "import json,sys; print(json.load(sys.stdin).get('tool_input',{}).get('run_in_background',False))" 2>/dev/null)
|
|
17
|
+
if [ "$RIB" != "True" ]; then
|
|
18
|
+
exit 0
|
|
19
|
+
fi
|
|
17
20
|
fi
|
|
18
21
|
|
|
19
22
|
# tool_response may be a string or structured; normalize to a string before grepping.
|
|
@@ -33,7 +33,7 @@ Each cycle:
|
|
|
33
33
|
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
34
|
6. Decide what to do next: break down work, spawn agents, re-plan, validate, or complete.
|
|
35
35
|
7. If you need user input, ask and wait — **do NOT yield.** Yielding kills your process. You'll be respawned with no memory of the question and loop forever.
|
|
36
|
-
8. Update roadmap.md and digest.json, spawn agents, write the cycle log, then `sis orch yield --prompt "what to focus on next cycle"`
|
|
36
|
+
8. Update roadmap.md and digest.json, spawn agents, write the cycle log, then `sis orch yield --mode <current-or-next-mode> --prompt "what to focus on next cycle"`
|
|
37
37
|
|
|
38
38
|
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
39
|
|
|
@@ -51,7 +51,7 @@ When you need user input — alignment questions, clarification, decisions — o
|
|
|
51
51
|
|
|
52
52
|
### Mode Transitions
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
Every yield must specify `--mode`. The mode determines the system prompt for the next cycle. Pass the **current mode** to stay in it (no transition); pass a **different mode** to switch phases. There is no implicit "keep current mode" — be explicit every cycle.
|
|
55
55
|
|
|
56
56
|
{{ORCHESTRATOR_MODES}}
|
|
57
57
|
|
|
@@ -80,20 +80,20 @@ A good yield prompt has two parts: **what happened** (one clause naming the arti
|
|
|
80
80
|
|
|
81
81
|
<example>
|
|
82
82
|
<good>
|
|
83
|
-
sis orch yield --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."
|
|
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
84
|
</good>
|
|
85
85
|
<good>
|
|
86
|
-
sis orch yield --prompt "Explore agents returned maps of the auth and session layers. Open question: whether session refactor is in scope or a follow-up."
|
|
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
87
|
</good>
|
|
88
88
|
<bad>
|
|
89
|
-
sis orch yield --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."
|
|
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
90
|
</bad>
|
|
91
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
92
|
</example>
|
|
93
93
|
|
|
94
94
|
**Write the prompt as orienting content, not as guidance about how to write yield prompts.** Meta-instructions ("don't pre-decide", "stay open", "pick from what surfaced") are for you, the current orchestrator — they belong in your reasoning, not in the string you hand the next cycle. The next orchestrator already has this section; repeating the rules at it wastes the prompt.
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
When the mode changes between cycles, the `--mode` token itself signals the phase transition — the prompt still just orients with what happened and what's open.
|
|
97
97
|
|
|
98
98
|
</continuation-prompt>
|
|
99
99
|
|
|
@@ -271,7 +271,7 @@ Rigor calibration:
|
|
|
271
271
|
|
|
272
272
|
You have unlimited cycles. Failed implementations, deferred issues, and skipped reviews are far more expensive than extra cycles. Each feature is multiple cycles, not one:
|
|
273
273
|
|
|
274
|
-
- **Critique** — spawn review agents to find flaws, code smells, missed edge cases. They report problems, not fixes.
|
|
274
|
+
- **Critique** — spawn review agents on meaningful code changes to find flaws, code smells, missed edge cases. They report problems, not fixes. Trust agents at their word about what they did — don't spawn a review just to confirm an agent did what it claimed. Reviews target substantive work; they are not audits of agent honesty.
|
|
275
275
|
- **Refine** — spawn agents to fix what reviewers found.
|
|
276
276
|
- **Validate** — e2e verification that the feature actually works. When all stages are done, transition to `validation` mode for the comprehensive final pass.
|
|
277
277
|
|
|
@@ -314,9 +314,7 @@ For open-ended understanding questions mid-flow — "why does this agent behave
|
|
|
314
314
|
## CLI Reference
|
|
315
315
|
|
|
316
316
|
```bash
|
|
317
|
-
sis orch yield
|
|
318
|
-
sis orch yield --prompt "focus on auth middleware next" # yield with guidance for next cycle
|
|
319
|
-
sis orch yield --mode <mode> --prompt "guidance" # switch mode for next cycle
|
|
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.
|
|
320
318
|
sis session clone <goal> [-c text] [--strategy] [-n name] # fork a sub-concern into a new independent session
|
|
321
319
|
```
|
|
322
320
|
|
|
@@ -100,7 +100,11 @@ A clean report ("No concerns") is a valid and common outcome. When you get one,
|
|
|
100
100
|
|
|
101
101
|
## Refine Pass
|
|
102
102
|
|
|
103
|
-
Aggregate reviewer findings
|
|
103
|
+
Aggregate reviewer findings, then **route each finding to where the fix actually lives**:
|
|
104
|
+
|
|
105
|
+
- **Many code corrections** — spawn fix agents and point them at the review report. You triage (skip false positives, note architectural constraints); they implement. Don't rewrite findings as line-by-line instructions.
|
|
106
|
+
- **Plan or context-doc fixes** — edit the document yourself. A clarified requirement, a corrected assumption, or a tweaked plan section is faster done in the orchestrator than handed to an agent. Spawning an agent to edit a markdown file is overhead, not delegation. (Massive replans are different — see backtrack guidance below.)
|
|
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.
|
|
104
108
|
|
|
105
109
|
```bash
|
|
106
110
|
sis agent spawn --name "fix-review-issues" --agent-type sisyphus:implement \
|
|
@@ -1 +1 @@
|
|
|
1
|
-
- `sis orch yield --mode
|
|
1
|
+
- `sis orch yield --mode <mode>` is required on every yield. Pass the current mode to stay in it; pass a different mode to transition. There is no implicit "keep current mode" fallback — the CLI rejects yields without `--mode`.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sisyphi",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "tmux-integrated orchestration daemon for Claude Code multi-agent workflows",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"prepublishOnly": "npm run build && npm test"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@crouton-kit/humanloop": "^0.1.
|
|
43
|
+
"@crouton-kit/humanloop": "^0.1.4",
|
|
44
44
|
"@r-cli/sdk": "^1.2.0",
|
|
45
45
|
"commander": "^13.1.0",
|
|
46
46
|
"string-width": "^5.1.2",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
-
|
|
2
|
-
-
|
|
1
|
+
- Script edits are invisible to running agents — the daemon copies scripts at spawn time; **respawn required** to pick up changes.
|
|
2
|
+
- Higher layers can suppress a bundled script by basename via `"disable": ["script.sh"]` at the manifest's top level.
|
|
3
3
|
- `interactive: true` in agent frontmatter triggers `condition: "non-interactive"` filtering — entries with that condition (currently the bundled `require-submit.sh` Stop hook) are dropped from the merged manifest for interactive agents.
|
|
4
4
|
- Scripts receive no `{{placeholder}}` substitution — placeholders appear as literal text, unlike `.md` templates.
|
|
5
|
-
-
|
|
5
|
+
- `UserPromptSubmit` hooks write raw text to stdout. PreToolUse hooks (e.g. `intercept-send-message.sh`) write `{"decision":"block","reason":"..."}` or exit 0 — wrong format silently does nothing.
|
|
6
6
|
- Claude Code invokes hooks unconditionally, not only in sisyphus sessions. Guard: `if [ -z "$SISYPHUS_SESSION_ID" ]; then exit 0; fi`. Stop hooks also need `$SISYPHUS_AGENT_ID`.
|
|
7
|
-
- `
|
|
7
|
+
- `UserPromptSubmit` fires on **every** message. Single-fire: guard `$SISYPHUS_AGENT_ID` and use a flag file at `/tmp/sisyphus-hooks/${SISYPHUS_SESSION_ID}/${SISYPHUS_AGENT_ID}-{name}`.
|
|
8
8
|
- Heredoc must use `<<'HINT'` (single-quoted) for static prose — unquoted heredoc silently expands `$SISYPHUS_*`, `$INSTRUCTION`, and backticks. Assign a local var before the heredoc when interpolation is needed. Exception: `$SISYPHUS_SESSION_DIR` and similar env-var references inside `<<'HINT'` are intentional — the agent sees the literal text and expands them itself in Bash tool calls (the pane has these vars set).
|
|
9
9
|
- Stop hooks receive JSON on stdin. If `stop_hook_active` is true, exit 0 immediately — blocking causes an infinite retry loop.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
# PostToolUse hook (matcher: Task): register background-
|
|
3
|
-
#
|
|
4
|
-
# structured signal, not prose scraping.
|
|
5
|
-
#
|
|
2
|
+
# PostToolUse hook (matcher: Task|Agent): register background sub-agent IDs for require-submit.sh.
|
|
3
|
+
# For Task: only fires when Claude Code itself flagged run_in_background=true —
|
|
4
|
+
# structured signal, not prose scraping.
|
|
5
|
+
# For Agent (FleetView): always async; the run_in_background gate is skipped.
|
|
6
6
|
# Passthrough (exit 0) if not in a sisyphus session.
|
|
7
7
|
|
|
8
8
|
if [ -z "$SISYPHUS_SESSION_ID" ] || [ -z "$SISYPHUS_AGENT_ID" ]; then
|
|
@@ -11,9 +11,12 @@ fi
|
|
|
11
11
|
|
|
12
12
|
INPUT=$(cat)
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
if [ "$
|
|
16
|
-
|
|
14
|
+
TOOL_NAME=$(echo "$INPUT" | python3 -c "import json,sys; print(json.load(sys.stdin).get('tool_name',''))" 2>/dev/null)
|
|
15
|
+
if [ "$TOOL_NAME" != "Agent" ]; then
|
|
16
|
+
RIB=$(echo "$INPUT" | python3 -c "import json,sys; print(json.load(sys.stdin).get('tool_input',{}).get('run_in_background',False))" 2>/dev/null)
|
|
17
|
+
if [ "$RIB" != "True" ]; then
|
|
18
|
+
exit 0
|
|
19
|
+
fi
|
|
17
20
|
fi
|
|
18
21
|
|
|
19
22
|
# tool_response may be a string or structured; normalize to a string before grepping.
|
|
@@ -33,7 +33,7 @@ Each cycle:
|
|
|
33
33
|
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
34
|
6. Decide what to do next: break down work, spawn agents, re-plan, validate, or complete.
|
|
35
35
|
7. If you need user input, ask and wait — **do NOT yield.** Yielding kills your process. You'll be respawned with no memory of the question and loop forever.
|
|
36
|
-
8. Update roadmap.md and digest.json, spawn agents, write the cycle log, then `sis orch yield --prompt "what to focus on next cycle"`
|
|
36
|
+
8. Update roadmap.md and digest.json, spawn agents, write the cycle log, then `sis orch yield --mode <current-or-next-mode> --prompt "what to focus on next cycle"`
|
|
37
37
|
|
|
38
38
|
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
39
|
|
|
@@ -51,7 +51,7 @@ When you need user input — alignment questions, clarification, decisions — o
|
|
|
51
51
|
|
|
52
52
|
### Mode Transitions
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
Every yield must specify `--mode`. The mode determines the system prompt for the next cycle. Pass the **current mode** to stay in it (no transition); pass a **different mode** to switch phases. There is no implicit "keep current mode" — be explicit every cycle.
|
|
55
55
|
|
|
56
56
|
{{ORCHESTRATOR_MODES}}
|
|
57
57
|
|
|
@@ -80,20 +80,20 @@ A good yield prompt has two parts: **what happened** (one clause naming the arti
|
|
|
80
80
|
|
|
81
81
|
<example>
|
|
82
82
|
<good>
|
|
83
|
-
sis orch yield --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."
|
|
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
84
|
</good>
|
|
85
85
|
<good>
|
|
86
|
-
sis orch yield --prompt "Explore agents returned maps of the auth and session layers. Open question: whether session refactor is in scope or a follow-up."
|
|
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
87
|
</good>
|
|
88
88
|
<bad>
|
|
89
|
-
sis orch yield --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."
|
|
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
90
|
</bad>
|
|
91
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
92
|
</example>
|
|
93
93
|
|
|
94
94
|
**Write the prompt as orienting content, not as guidance about how to write yield prompts.** Meta-instructions ("don't pre-decide", "stay open", "pick from what surfaced") are for you, the current orchestrator — they belong in your reasoning, not in the string you hand the next cycle. The next orchestrator already has this section; repeating the rules at it wastes the prompt.
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
When the mode changes between cycles, the `--mode` token itself signals the phase transition — the prompt still just orients with what happened and what's open.
|
|
97
97
|
|
|
98
98
|
</continuation-prompt>
|
|
99
99
|
|
|
@@ -271,7 +271,7 @@ Rigor calibration:
|
|
|
271
271
|
|
|
272
272
|
You have unlimited cycles. Failed implementations, deferred issues, and skipped reviews are far more expensive than extra cycles. Each feature is multiple cycles, not one:
|
|
273
273
|
|
|
274
|
-
- **Critique** — spawn review agents to find flaws, code smells, missed edge cases. They report problems, not fixes.
|
|
274
|
+
- **Critique** — spawn review agents on meaningful code changes to find flaws, code smells, missed edge cases. They report problems, not fixes. Trust agents at their word about what they did — don't spawn a review just to confirm an agent did what it claimed. Reviews target substantive work; they are not audits of agent honesty.
|
|
275
275
|
- **Refine** — spawn agents to fix what reviewers found.
|
|
276
276
|
- **Validate** — e2e verification that the feature actually works. When all stages are done, transition to `validation` mode for the comprehensive final pass.
|
|
277
277
|
|
|
@@ -314,9 +314,7 @@ For open-ended understanding questions mid-flow — "why does this agent behave
|
|
|
314
314
|
## CLI Reference
|
|
315
315
|
|
|
316
316
|
```bash
|
|
317
|
-
sis orch yield
|
|
318
|
-
sis orch yield --prompt "focus on auth middleware next" # yield with guidance for next cycle
|
|
319
|
-
sis orch yield --mode <mode> --prompt "guidance" # switch mode for next cycle
|
|
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.
|
|
320
318
|
sis session clone <goal> [-c text] [--strategy] [-n name] # fork a sub-concern into a new independent session
|
|
321
319
|
```
|
|
322
320
|
|
|
@@ -100,7 +100,11 @@ A clean report ("No concerns") is a valid and common outcome. When you get one,
|
|
|
100
100
|
|
|
101
101
|
## Refine Pass
|
|
102
102
|
|
|
103
|
-
Aggregate reviewer findings
|
|
103
|
+
Aggregate reviewer findings, then **route each finding to where the fix actually lives**:
|
|
104
|
+
|
|
105
|
+
- **Many code corrections** — spawn fix agents and point them at the review report. You triage (skip false positives, note architectural constraints); they implement. Don't rewrite findings as line-by-line instructions.
|
|
106
|
+
- **Plan or context-doc fixes** — edit the document yourself. A clarified requirement, a corrected assumption, or a tweaked plan section is faster done in the orchestrator than handed to an agent. Spawning an agent to edit a markdown file is overhead, not delegation. (Massive replans are different — see backtrack guidance below.)
|
|
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.
|
|
104
108
|
|
|
105
109
|
```bash
|
|
106
110
|
sis agent spawn --name "fix-review-issues" --agent-type sisyphus:implement \
|
|
@@ -1 +1 @@
|
|
|
1
|
-
- `sis orch yield --mode
|
|
1
|
+
- `sis orch yield --mode <mode>` is required on every yield. Pass the current mode to stay in it; pass a different mode to transition. There is no implicit "keep current mode" fallback — the CLI rejects yields without `--mode`.
|