@dirtydishes/skills 0.1.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.
Files changed (51) hide show
  1. package/README.md +165 -0
  2. package/bin/skills.js +408 -0
  3. package/catalog/skills.json +32 -0
  4. package/package.json +26 -0
  5. package/skills/dirtyloops/SKILL.md +67 -0
  6. package/skills/dirtyloops/examples/README.md +8 -0
  7. package/skills/dirtyloops/examples/orchestrator-callback/README.md +18 -0
  8. package/skills/dirtyloops/examples/orchestrator-callback/docs/implementation/example-stream/00-roadmap.md +26 -0
  9. package/skills/dirtyloops/examples/orchestrator-callback/docs/implementation/example-stream/01-foundation.md +51 -0
  10. package/skills/dirtyloops/examples/orchestrator-callback/docs/implementation/example-stream/02-integration.md +45 -0
  11. package/skills/dirtyloops/examples/orchestrator-callback/docs/implementation/example-stream/IMPLEMENT.md +68 -0
  12. package/skills/dirtyloops/examples/orchestrator-callback/docs/implementation/example-stream/loop-state.md +36 -0
  13. package/skills/dirtyloops/examples/orchestrator-callback/docs/implementation/example-stream/prompts/implementation-thread.md +30 -0
  14. package/skills/dirtyloops/examples/orchestrator-callback/docs/implementation/example-stream/prompts/review-thread.md +35 -0
  15. package/skills/dirtyloops/examples/orchestrator-callback/docs/implementation/example-stream/prompts/run-loop.md +33 -0
  16. package/skills/dirtyloops/examples/orchestrator-callback/docs/implementation/example-stream/turn-docs/01-foundation.md +79 -0
  17. package/skills/dirtyloops/examples/single-thread-subagent/README.md +14 -0
  18. package/skills/dirtyloops/examples/single-thread-subagent/docs/implementation/example-stream/00-roadmap.md +16 -0
  19. package/skills/dirtyloops/examples/single-thread-subagent/docs/implementation/example-stream/01-foundation.md +36 -0
  20. package/skills/dirtyloops/examples/single-thread-subagent/docs/implementation/example-stream/02-integration.md +23 -0
  21. package/skills/dirtyloops/examples/single-thread-subagent/docs/implementation/example-stream/IMPLEMENT.md +50 -0
  22. package/skills/dirtyloops/examples/single-thread-subagent/docs/implementation/example-stream/loop-state.md +28 -0
  23. package/skills/dirtyloops/examples/single-thread-subagent/docs/implementation/example-stream/prompts/run-loop.md +22 -0
  24. package/skills/dirtyloops/examples/single-thread-subagent/docs/implementation/example-stream/turn-docs/01-foundation.md +32 -0
  25. package/skills/dirtyloops/plan.html +587 -0
  26. package/skills/dirtyloops/references/beads.md +114 -0
  27. package/skills/dirtyloops/references/common.md +66 -0
  28. package/skills/dirtyloops/references/create-loop.md +85 -0
  29. package/skills/dirtyloops/references/help.md +170 -0
  30. package/skills/dirtyloops/references/inspect-loop.md +11 -0
  31. package/skills/dirtyloops/references/review-ci.md +37 -0
  32. package/skills/dirtyloops/references/run-loop.md +41 -0
  33. package/skills/dirtyloops/references/storyboard.md +64 -0
  34. package/skills/dirtyloops/references/swarms.md +59 -0
  35. package/skills/dirtyloops/references/turn-docs.md +29 -0
  36. package/skills/dirtyloops/references/workflows/orchestrator-callback.md +120 -0
  37. package/skills/dirtyloops/references/workflows/single-thread-subagent.md +45 -0
  38. package/skills/dirtyloops/schemas/implementation-callback.schema.json +38 -0
  39. package/skills/dirtyloops/schemas/review-callback.schema.json +35 -0
  40. package/skills/dirtyloops/schemas/swarm-report.schema.json +43 -0
  41. package/skills/dirtyloops/templates/common/00-roadmap.md.template +33 -0
  42. package/skills/dirtyloops/templates/common/IMPLEMENT.md.template +79 -0
  43. package/skills/dirtyloops/templates/common/loop-state.md.template +39 -0
  44. package/skills/dirtyloops/templates/common/phase.md.template +56 -0
  45. package/skills/dirtyloops/templates/common/run-loop.md.template +46 -0
  46. package/skills/dirtyloops/templates/common/storyboard-post-run.html.template +77 -0
  47. package/skills/dirtyloops/templates/common/turn-doc.md.template +61 -0
  48. package/skills/dirtyloops/templates/workflows/orchestrator-callback/implementation-thread-prompt.md.template +40 -0
  49. package/skills/dirtyloops/templates/workflows/orchestrator-callback/review-thread-prompt.md.template +38 -0
  50. package/skills/dirtyloops/templates/workflows/orchestrator-callback/run-loop-addendum.md.template +17 -0
  51. package/skills/dirtyloops/templates/workflows/single-thread-subagent/run-loop-addendum.md.template +12 -0
@@ -0,0 +1,120 @@
1
+ # Workflow: Orchestrator Callback
2
+
3
+ Use this workflow for the original loop style: a main orchestrator thread creates implementation threads and review threads that call back to a concrete orchestrator thread id.
4
+
5
+ ## Topology
6
+
7
+ ```text
8
+ orchestrator thread
9
+ -> selector subagent chooses next ready Beads phase
10
+ -> orchestrator creates implementation thread
11
+ -> implementation thread may use subagents
12
+ -> implementation thread opens PR and calls back
13
+ -> orchestrator creates review thread
14
+ -> review thread may use subagents
15
+ -> review thread owns CI and repairs
16
+ -> review thread calls back after review + CI are resolved
17
+ -> orchestrator updates Beads and loop state
18
+ -> orchestrator launches next selector when continuing
19
+ ```
20
+
21
+ ## Authority
22
+
23
+ The orchestrator owns:
24
+
25
+ - Beads canonical state
26
+ - phase selection
27
+ - implementation thread creation
28
+ - review thread creation
29
+ - concrete callback target, callback preflight, and heartbeat
30
+ - phase closeout
31
+ - launching the next selector
32
+ - stream closeout and storyboard generation
33
+
34
+ The implementation thread owns:
35
+
36
+ - exactly one selected Beads issue
37
+ - branch/worktree setup assigned by the orchestrator
38
+ - implementation
39
+ - local gates before PR when feasible
40
+ - PR creation
41
+ - updating the existing Markdown turn doc
42
+ - callback when PR-ready or blocked
43
+
44
+ The review thread owns:
45
+
46
+ - thermo-nuclear review
47
+ - reviewer subagent swarms
48
+ - CI inspection, diagnosis, repair, rerun, and evidence
49
+ - updating the existing Markdown turn doc
50
+ - callback when approved, repaired, or blocked with concrete CI state
51
+
52
+ ## Non-Negotiable Thread Rules
53
+
54
+ - Only the orchestrator creates implementation and review threads.
55
+ - Implementation threads do not create review threads.
56
+ - Review threads do not create follow-up implementation threads.
57
+ - Selector subagents never implement.
58
+ - Reviewer subagents never close Beads issues.
59
+ - The orchestrator is the only actor that advances to the next phase.
60
+ - Implementation and review threads default to standard speed/reasoning unless Beads metadata explicitly overrides it.
61
+ - Before launch, the orchestrator must verify the actual worker/reviewer prompt text includes the exact orchestrator thread id as callback target. Do not launch if the prompt relies on generic wording such as `current orchestrator thread`, `this thread`, or a hidden wrapper.
62
+
63
+ ## Implementation Callback
64
+
65
+ Implementation threads call back exactly once when:
66
+
67
+ - PR is open and ready for review
68
+ - the task is complete but PR cannot be created, with exact blocker
69
+ - the thread is genuinely blocked
70
+
71
+ Payload:
72
+
73
+ ```json
74
+ {
75
+ "type": "implementation-callback",
76
+ "orchestrator_thread_id": "...",
77
+ "source_thread_id": "...",
78
+ "phase_issue_id": "...",
79
+ "status": "pr-ready|blocked",
80
+ "branch": "...",
81
+ "pr": "...",
82
+ "commits": ["..."],
83
+ "turn_doc": "...",
84
+ "local_gates": ["..."],
85
+ "changed_files": ["..."],
86
+ "blockers": [],
87
+ "context_to_keep": []
88
+ }
89
+ ```
90
+
91
+ ## Review Callback
92
+
93
+ Review threads call back exactly once when review and CI are resolved.
94
+
95
+ Payload:
96
+
97
+ ```json
98
+ {
99
+ "type": "review-callback",
100
+ "orchestrator_thread_id": "...",
101
+ "source_thread_id": "...",
102
+ "phase_issue_id": "...",
103
+ "status": "approved|repaired|blocked",
104
+ "pr": "...",
105
+ "ci_state": "ci-green|ci-repaired-and-green|ci-unavailable-with-evidence|ci-blocked-with-cause",
106
+ "review_skill": "thermo-nuclear-code-quality-review",
107
+ "repairs": ["..."],
108
+ "findings_remaining": [],
109
+ "turn_doc": "...",
110
+ "context_to_keep": []
111
+ }
112
+ ```
113
+
114
+ ## Heartbeat
115
+
116
+ Prefer callback-driven coordination over polling. Use a lightweight fallback heartbeat around 30 minutes for long-running worker/reviewer threads.
117
+
118
+ ## Completion Criterion
119
+
120
+ The orchestrator has received and validated the required callback, updated Beads and the existing turn doc, and either launched the next selector or reported an allowed stop state.
@@ -0,0 +1,45 @@
1
+ # Workflow: Single-Thread Subagent
2
+
3
+ Use this workflow when the user wants one visible Codex coordinator thread with mass subagent swarms. Single-thread means one visible coordinator, not solo implementation.
4
+
5
+ ## Topology
6
+
7
+ ```text
8
+ main coordinator thread
9
+ -> selector subagents
10
+ -> scout swarm
11
+ -> slice planning swarm
12
+ -> implementation helper swarm
13
+ -> coordinator synthesizes and integrates
14
+ -> reviewer subagents
15
+ -> CI verification subagents
16
+ -> coordinator closeout
17
+ ```
18
+
19
+ ## Rules
20
+
21
+ - Do not create separate Codex worker or reviewer threads.
22
+ - The main thread owns branch state, integration, PR state, Beads updates, and closeout.
23
+ - Subagents inspect, compare, critique, slice the phase, prepare implementation guidance or patches, verify, and report.
24
+ - Subagents do not advance loop state.
25
+ - Use 8+ agents by default for broad scout, slice, implementation-helper, and review work; 8-20 agents is normal when the phase has meaningful surface area.
26
+ - Before broad implementation, launch a slice planning swarm and record the synthesized slice plan in the turn doc.
27
+ - For non-trivial phases, create or record intra-phase implementation slices. Use ephemeral Beads child issues when supported and useful; otherwise record the slices in the turn doc.
28
+ - The coordinator may implement glue, integration, conflict resolution, and final repairs. If it performs most broad discovery or implementation itself, the loop has violated this workflow.
29
+ - If fewer than 8 subagents are used for a broad phase, record the reason in the turn doc.
30
+
31
+ ## Slice Contract
32
+
33
+ Each implementation slice has:
34
+
35
+ - slice id
36
+ - files or modules
37
+ - expected behavior change
38
+ - tests or gates
39
+ - out-of-scope boundary
40
+ - assigned helper mission
41
+ - compact report using `schemas/swarm-report.schema.json`
42
+
43
+ ## Completion Criterion
44
+
45
+ The main coordinator has selected one phase, received and synthesized scout/slice/implementation-helper reports, integrated one phase, received reviewer/CI subagent reports, updated the existing turn doc, updated Beads, and either continued to the next ready phase or stopped with an allowed stop reason.
@@ -0,0 +1,38 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "ImplementationCallback",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": ["type", "orchestrator_thread_id", "source_thread_id", "phase_issue_id", "status", "branch", "pr", "commits", "turn_doc", "local_gates", "changed_files", "blockers", "context_to_keep"],
7
+ "properties": {
8
+ "type": { "const": "implementation-callback" },
9
+ "orchestrator_thread_id": { "type": "string", "minLength": 1 },
10
+ "source_thread_id": { "type": "string", "minLength": 1 },
11
+ "phase_issue_id": { "type": "string" },
12
+ "status": { "enum": ["pr-ready", "blocked"] },
13
+ "branch": { "type": ["string", "null"] },
14
+ "pr": { "type": ["string", "null"] },
15
+ "commits": {
16
+ "type": "array",
17
+ "items": { "type": "string" }
18
+ },
19
+ "turn_doc": { "type": "string" },
20
+ "local_gates": {
21
+ "type": "array",
22
+ "items": { "type": "string" }
23
+ },
24
+ "changed_files": {
25
+ "type": "array",
26
+ "items": { "type": "string" }
27
+ },
28
+ "blockers": {
29
+ "type": "array",
30
+ "items": { "type": "string" }
31
+ },
32
+ "context_to_keep": {
33
+ "type": "array",
34
+ "maxItems": 5,
35
+ "items": { "type": "string" }
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "ReviewCallback",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": ["type", "orchestrator_thread_id", "source_thread_id", "phase_issue_id", "status", "pr", "ci_state", "review_skill", "repairs", "findings_remaining", "turn_doc", "context_to_keep"],
7
+ "properties": {
8
+ "type": { "const": "review-callback" },
9
+ "orchestrator_thread_id": { "type": "string", "minLength": 1 },
10
+ "source_thread_id": { "type": "string", "minLength": 1 },
11
+ "phase_issue_id": { "type": "string" },
12
+ "status": { "enum": ["approved", "repaired", "blocked"] },
13
+ "pr": { "type": ["string", "null"] },
14
+ "ci_state": {
15
+ "enum": ["ci-green", "ci-repaired-and-green", "ci-unavailable-with-evidence", "ci-blocked-with-cause"]
16
+ },
17
+ "review_skill": {
18
+ "const": "thermo-nuclear-code-quality-review"
19
+ },
20
+ "repairs": {
21
+ "type": "array",
22
+ "items": { "type": "string" }
23
+ },
24
+ "findings_remaining": {
25
+ "type": "array",
26
+ "items": { "type": "string" }
27
+ },
28
+ "turn_doc": { "type": "string" },
29
+ "context_to_keep": {
30
+ "type": "array",
31
+ "maxItems": 5,
32
+ "items": { "type": "string" }
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "SwarmReport",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": ["mission", "slice_id", "status", "scope_checked", "findings", "recommendations", "artifacts", "context_to_keep"],
7
+ "properties": {
8
+ "mission": { "enum": ["selector", "scout", "slice-plan", "implementation-helper", "review", "ci", "storyboard"] },
9
+ "slice_id": { "type": ["string", "null"] },
10
+ "status": { "enum": ["ready", "blocked", "risk-found", "done"] },
11
+ "scope_checked": {
12
+ "type": "array",
13
+ "items": { "type": "string" }
14
+ },
15
+ "findings": {
16
+ "type": "array",
17
+ "items": {
18
+ "type": "object",
19
+ "additionalProperties": false,
20
+ "required": ["severity", "evidence", "summary", "recommendation"],
21
+ "properties": {
22
+ "severity": { "enum": ["high", "medium", "low", "info"] },
23
+ "evidence": { "type": "string" },
24
+ "summary": { "type": "string" },
25
+ "recommendation": { "type": "string" }
26
+ }
27
+ }
28
+ },
29
+ "recommendations": {
30
+ "type": "array",
31
+ "items": { "type": "string" }
32
+ },
33
+ "artifacts": {
34
+ "type": "array",
35
+ "items": { "type": "string" }
36
+ },
37
+ "context_to_keep": {
38
+ "type": "array",
39
+ "maxItems": 5,
40
+ "items": { "type": "string" }
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,33 @@
1
+ # {{STREAM_NAME}} Roadmap
2
+
3
+ Canonical tracker: Beads epic `{{EPIC_ID}}`
4
+
5
+ ## Plan Source
6
+
7
+ {{PLAN_SOURCE}}
8
+
9
+ ## Outcome
10
+
11
+ {{STREAM_GOAL}}
12
+
13
+ ## Phase Sequence
14
+
15
+ {{PHASE_SEQUENCE}}
16
+
17
+ ## Dependencies
18
+
19
+ {{DEPENDENCY_NOTES}}
20
+
21
+ ## Risks
22
+
23
+ {{KNOWN_RISKS}}
24
+
25
+ ## Quality Gates
26
+
27
+ {{QUALITY_GATES}}
28
+
29
+ ## Closeout
30
+
31
+ The final closeout artifact is:
32
+
33
+ `docs/implementation/{{STREAM_SLUG}}/storyboard-post-run-{{MM_DD_YYYY}}.html`
@@ -0,0 +1,79 @@
1
+ # {{STREAM_NAME}} Implementation Loop
2
+
3
+ Workflow: `{{WORKFLOW}}`
4
+
5
+ Canonical tracker: Beads epic `{{EPIC_ID}}`
6
+
7
+ This stream is driven by Beads. These docs are execution context and resume aids. If Beads and these docs disagree, Beads wins.
8
+
9
+ ## Goal
10
+
11
+ {{STREAM_GOAL}}
12
+
13
+ ## Sources Of Truth
14
+
15
+ - Beads epic: `{{EPIC_ID}}`
16
+ - Beads loop metadata: workflow, run policy, branch/PR policy, quality gates, callback/thread defaults, and swarm policy
17
+ - Roadmap: `docs/implementation/{{STREAM_SLUG}}/00-roadmap.md`
18
+ - Loop state mirror: `docs/implementation/{{STREAM_SLUG}}/loop-state.md`
19
+ - Phase docs linked from Beads child issues
20
+ - Turn docs: `docs/implementation/{{STREAM_SLUG}}/turn-docs/`
21
+
22
+ ## Loop Rules
23
+
24
+ - Select exactly one next ready Beads child issue.
25
+ - Read the linked phase doc before editing.
26
+ - Continue phase-by-phase by default until the epic is complete, blocked, interrupted, or review/CI is unresolved.
27
+ - Use `run once` / `--once` only when intentionally running one phase and stopping after closeout.
28
+ - Keep one active implementation PR at a time unless Beads and the phase doc explicitly allow parallel work.
29
+ - File Beads follow-ups instead of widening the selected phase.
30
+ - Update Beads first, then update `loop-state.md`.
31
+ - Use the workflow's required subagent swarms.
32
+ - Worker and reviewer threads default to standard speed/reasoning unless Beads loop metadata explicitly overrides it.
33
+
34
+ ## Review And CI
35
+
36
+ Reviewer agents must use:
37
+
38
+ `thermo-nuclear-code-quality-review`
39
+
40
+ Reviewer and CI verification agents own CI.
41
+
42
+ Allowed CI closeout states:
43
+
44
+ - `ci-green`
45
+ - `ci-repaired-and-green`
46
+ - `ci-unavailable-with-evidence`
47
+ - `ci-blocked-with-cause`
48
+
49
+ ## Turn Docs
50
+
51
+ Each phase has exactly one Markdown turn doc:
52
+
53
+ `docs/implementation/{{STREAM_SLUG}}/turn-docs/{{PHASE_ID}}.md`
54
+
55
+ Implementation, review, CI, repairs, PR state, Beads updates, follow-ups, and closeout all go into the same doc.
56
+
57
+ ## Storyboard
58
+
59
+ When the epic is complete, generate:
60
+
61
+ `docs/implementation/{{STREAM_SLUG}}/storyboard-post-run-{{MM_DD_YYYY}}.html`
62
+
63
+ Use `impeccable` when present. If missing, continue without it and note that it was skipped.
64
+
65
+ Install `@pierre/diffs` in the target repo if missing. Every diff must use `@pierre/diffs/ssr`.
66
+
67
+ ## Phase Ledger
68
+
69
+ | Beads Issue | Phase | Phase Doc | Depends On | Status |
70
+ |---|---|---|---|---|
71
+ {{PHASE_LEDGER_ROWS}}
72
+
73
+ ## Quality Gates
74
+
75
+ {{QUALITY_GATES}}
76
+
77
+ ## Branch And PR Policy
78
+
79
+ {{BRANCH_PR_POLICY}}
@@ -0,0 +1,39 @@
1
+ # Loop State
2
+
3
+ Canonical tracker: Beads epic `{{EPIC_ID}}`
4
+
5
+ This file is a compact resume aid only. If this file disagrees with Beads, Beads wins.
6
+
7
+ Status: active
8
+
9
+ Stream: `{{STREAM_SLUG}}`
10
+
11
+ Workflow: `{{WORKFLOW}}`
12
+
13
+ Current phase: none
14
+
15
+ Current Beads issue: none
16
+
17
+ Current PR: none
18
+
19
+ Last completed phase: none
20
+
21
+ Blocked: no
22
+
23
+ ## Decisions
24
+
25
+ {{INITIAL_DECISIONS}}
26
+
27
+ ## Context To Keep
28
+
29
+ {{INITIAL_CONTEXT_TO_KEEP}}
30
+
31
+ ## Phase Ledger
32
+
33
+ | Phase | Beads Issue | Status | PR | Turn Doc |
34
+ |---|---|---|---|---|
35
+ {{PHASE_STATE_ROWS}}
36
+
37
+ ## Last Coordinator Update
38
+
39
+ Not started.
@@ -0,0 +1,56 @@
1
+ # Phase {{PHASE_NUMBER}}: {{PHASE_TITLE}}
2
+
3
+ Canonical Beads issue: `{{PHASE_ISSUE_ID}}`
4
+
5
+ Epic: `{{EPIC_ID}}`
6
+
7
+ Status is tracked in Beads. This doc is implementation context.
8
+
9
+ ## Outcome
10
+
11
+ {{PHASE_OUTCOME}}
12
+
13
+ ## Scope
14
+
15
+ Allowed:
16
+
17
+ {{PHASE_ALLOWED_SCOPE}}
18
+
19
+ Out of scope:
20
+
21
+ {{PHASE_OUT_OF_SCOPE}}
22
+
23
+ ## Inputs
24
+
25
+ {{PHASE_INPUTS}}
26
+
27
+ ## Implementation Notes
28
+
29
+ {{PHASE_IMPLEMENTATION_NOTES}}
30
+
31
+ ## Beads
32
+
33
+ - Epic: `{{EPIC_ID}}`
34
+ - Issue: `{{PHASE_ISSUE_ID}}`
35
+ - Depends on: `{{PHASE_DEPENDENCY_IDS}}`
36
+ - Parallel-safe: `{{PHASE_PARALLEL_SAFE}}`
37
+
38
+ ## Expected Files Or Areas
39
+
40
+ {{EXPECTED_FILES_OR_AREAS}}
41
+
42
+ ## Suggested Swarms
43
+
44
+ {{PHASE_SWARM_GUIDANCE}}
45
+
46
+ ## Quality Gates
47
+
48
+ {{PHASE_QUALITY_GATES}}
49
+
50
+ ## Completion Criteria
51
+
52
+ {{PHASE_COMPLETION_CRITERIA}}
53
+
54
+ ## Follow-Up Policy
55
+
56
+ Do not widen this phase. File Beads follow-ups for adjacent discoveries.
@@ -0,0 +1,46 @@
1
+ # Run Loop: {{STREAM_NAME}}
2
+
3
+ Workflow: `{{WORKFLOW}}`
4
+
5
+ Canonical tracker: Beads epic `{{EPIC_ID}}`
6
+
7
+ Start from:
8
+
9
+ - Beads epic: `{{EPIC_ID}}`
10
+ - Beads loop metadata on the epic
11
+ - Implementation index: `docs/implementation/{{STREAM_SLUG}}/IMPLEMENT.md`
12
+ - Resume aid: `docs/implementation/{{STREAM_SLUG}}/loop-state.md`
13
+
14
+ ## Rules
15
+
16
+ - Beads is canonical.
17
+ - Select exactly one next ready Beads child issue.
18
+ - Continue phase-by-phase by default until the epic is complete, blocked, interrupted, or review/CI is unresolved.
19
+ - Stop after one phase only when this run explicitly says `run once` or `--once`.
20
+ - Read the linked phase doc before editing.
21
+ - Keep one active implementation PR at a time unless Beads and the phase doc explicitly allow parallel work.
22
+ - Use the workflow's required large bounded subagent swarms.
23
+ - Reviewer agents must use `thermo-nuclear-code-quality-review`.
24
+ - Reviewer and CI verification agents own CI.
25
+ - Worker and reviewer threads default to standard speed/reasoning unless Beads loop metadata explicitly overrides it.
26
+ - Update the existing Markdown turn doc.
27
+ - Update Beads first, then update `loop-state.md`.
28
+ - Do not widen the selected phase.
29
+
30
+ ## Workflow Addendum
31
+
32
+ {{WORKFLOW_ADDENDUM}}
33
+
34
+ ## Stream Completion
35
+
36
+ When the Beads epic is complete:
37
+
38
+ 1. Verify every phase has a Markdown turn doc.
39
+ 2. Generate `docs/implementation/{{STREAM_SLUG}}/storyboard-post-run-{{MM_DD_YYYY}}.html`.
40
+ 3. Use `impeccable` when present. If missing, continue and note that it was skipped.
41
+ 4. Install `@pierre/diffs` in the target repo if missing, then render every diff with `@pierre/diffs/ssr`.
42
+ 5. Verify the storyboard.
43
+
44
+ ## Start Prompt
45
+
46
+ {{CUSTOM_RUN_PROMPT}}
@@ -0,0 +1,77 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>{{STREAM_NAME}} Post-Run Storyboard</title>
7
+ <meta name="description" content="Implementation storyboard for {{STREAM_NAME}}">
8
+ <style>
9
+ /*
10
+ Starter only. The final document should be generated with the impeccable
11
+ skill when present and adapted to the target repo. If impeccable is
12
+ missing, note that it was skipped. Every diff must be rendered
13
+ server-side with @pierre/diffs/ssr.
14
+ */
15
+ :root {
16
+ color-scheme: dark;
17
+ --bg: oklch(0.14 0.03 265);
18
+ --ink: oklch(0.95 0.01 260);
19
+ --muted: oklch(0.76 0.03 260);
20
+ --accent: oklch(0.76 0.16 170);
21
+ --surface: oklch(0.2 0.04 265);
22
+ --line: oklch(0.33 0.04 265);
23
+ }
24
+ * { box-sizing: border-box; }
25
+ body {
26
+ margin: 0;
27
+ font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
28
+ background: var(--bg);
29
+ color: var(--ink);
30
+ line-height: 1.5;
31
+ }
32
+ main {
33
+ width: min(1120px, calc(100% - 32px));
34
+ margin: 0 auto;
35
+ padding: 64px 0;
36
+ }
37
+ h1, h2, h3 {
38
+ text-wrap: balance;
39
+ letter-spacing: -0.02em;
40
+ }
41
+ p {
42
+ max-width: 72ch;
43
+ text-wrap: pretty;
44
+ color: var(--muted);
45
+ }
46
+ .storyboard-shell { display: grid; gap: 48px; }
47
+ .phase {
48
+ border: 1px solid var(--line);
49
+ border-radius: 16px;
50
+ padding: 24px;
51
+ background: var(--surface);
52
+ }
53
+ .diff-scene {
54
+ overflow: auto;
55
+ border-radius: 12px;
56
+ border: 1px solid var(--line);
57
+ }
58
+ @media (prefers-reduced-motion: no-preference) {
59
+ .phase { animation: rise 700ms cubic-bezier(.16, 1, .3, 1) both; }
60
+ @keyframes rise {
61
+ from { opacity: .001; transform: translateY(16px); }
62
+ to { opacity: 1; transform: translateY(0); }
63
+ }
64
+ }
65
+ </style>
66
+ </head>
67
+ <body>
68
+ <main class="storyboard-shell">
69
+ <header>
70
+ <p>{{STORYBOARD_DATE}}</p>
71
+ <h1>{{STREAM_NAME}}</h1>
72
+ <p>{{STORYBOARD_DECK}}</p>
73
+ </header>
74
+ {{PHASE_STORY_SECTIONS}}
75
+ </main>
76
+ </body>
77
+ </html>
@@ -0,0 +1,61 @@
1
+ # Phase {{PHASE_NUMBER}} Turn Doc: {{PHASE_TITLE}}
2
+
3
+ Beads issue: `{{PHASE_ISSUE_ID}}`
4
+
5
+ Phase doc: `docs/implementation/{{STREAM_SLUG}}/{{PHASE_DOC_FILENAME}}`
6
+
7
+ This is the single Markdown turn doc for the phase.
8
+
9
+ ## Phase Selection
10
+
11
+ {{PHASE_SELECTION}}
12
+
13
+ ## Scope
14
+
15
+ {{PHASE_SCOPE_SUMMARY}}
16
+
17
+ ## Implementation Log
18
+
19
+ {{IMPLEMENTATION_LOG}}
20
+
21
+ ## Subagent Swarms
22
+
23
+ {{SUBAGENT_SWARM_SUMMARY}}
24
+
25
+ ## Review
26
+
27
+ Reviewer skill:
28
+
29
+ `thermo-nuclear-code-quality-review`
30
+
31
+ {{REVIEW_NOTES}}
32
+
33
+ ## CI And Gates
34
+
35
+ CI owner: reviewer/verification agents
36
+
37
+ Current CI state: `{{CI_STATE}}`
38
+
39
+ Evidence:
40
+
41
+ {{CI_EVIDENCE}}
42
+
43
+ ## PR And Commits
44
+
45
+ {{PR_AND_COMMITS}}
46
+
47
+ ## Beads Updates
48
+
49
+ {{BEADS_UPDATES}}
50
+
51
+ ## Follow-Ups Filed
52
+
53
+ {{FOLLOW_UPS_FILED}}
54
+
55
+ ## Context To Keep
56
+
57
+ {{CONTEXT_TO_KEEP}}
58
+
59
+ ## Closeout
60
+
61
+ {{PHASE_CLOSEOUT}}