@jaybeeuu/agent-cortex 1.37.1 → 1.39.0

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 (135) hide show
  1. package/.agents/skills/style-versioning/SKILL.md +9 -8
  2. package/.github/workflows/ci.yml +190 -8
  3. package/AGENTS.md +27 -6
  4. package/CHANGELOG.md +72 -0
  5. package/README.md +156 -39
  6. package/agents/README.md +49 -13
  7. package/agents/plan/agent.md +51 -0
  8. package/agents/plan/claude/frontmatter.json +6 -0
  9. package/agents/plan/copilot/frontmatter.json +6 -0
  10. package/agents/plan/pi/frontmatter.json +6 -0
  11. package/agents/plan.agent.md +3 -0
  12. package/agents/ralph/agent.md +262 -0
  13. package/agents/ralph/claude/frontmatter.json +6 -0
  14. package/agents/ralph/claude/polling.md +31 -0
  15. package/agents/ralph/copilot/frontmatter.json +6 -0
  16. package/agents/ralph/copilot/polling.md +62 -0
  17. package/agents/ralph/pi/frontmatter.json +6 -0
  18. package/agents/ralph/pi/polling.md +74 -0
  19. package/agents/ralph-plan/agent.md +114 -0
  20. package/agents/ralph-plan/claude/frontmatter.json +6 -0
  21. package/agents/ralph-plan/copilot/frontmatter.json +6 -0
  22. package/agents/ralph-plan/pi/frontmatter.json +6 -0
  23. package/agents/ralph-plan.agent.md +6 -3
  24. package/agents/ralph.agent.md +83 -57
  25. package/agents/strategy/agent.md +104 -0
  26. package/agents/strategy/claude/frontmatter.json +6 -0
  27. package/agents/strategy/copilot/frontmatter.json +6 -0
  28. package/agents/strategy/pi/frontmatter.json +6 -0
  29. package/agents/strategy.agent.md +3 -0
  30. package/bin/agent-cortex.mjs +76 -1
  31. package/bin/installers/claude.mjs +376 -0
  32. package/bin/installers/copilot.mjs +129 -0
  33. package/bin/installers/pi.mjs +197 -0
  34. package/claude/.claude-plugin/plugin.json +1 -1
  35. package/claude/agents/plan.md +3 -1
  36. package/claude/agents/ralph-plan.md +6 -4
  37. package/claude/agents/strategy.md +3 -1
  38. package/claude/hooks/scripts/notify.mjs +54 -0
  39. package/claude/hooks.json +15 -0
  40. package/docs/claude-hooks.md +115 -0
  41. package/docs/ideas/auto-model-selection.md +75 -0
  42. package/docs/ideas/extension-manifests.md +75 -0
  43. package/docs/ideas/improve-pi-system-prompt.md +34 -0
  44. package/docs/ideas/model-selector.md +40 -0
  45. package/docs/ideas/pi-task-memory.md +34 -0
  46. package/docs/ideas/qa-extension.md +43 -0
  47. package/docs/ideas/record-ideas-as-beads.md +115 -0
  48. package/docs/ideas/subagent-visibility.md +72 -0
  49. package/docs/ideas/task-session-context.md +89 -0
  50. package/docs/ideas/unified-ci-pipeline.md +28 -0
  51. package/docs/research/skill-design-research.md +4 -4
  52. package/docs/research/skill-improvements-analysis.md +1 -1
  53. package/docs/skills/skill-anatomy.md +47 -2
  54. package/docs/technical-direction/migration-execution-labels.md +132 -0
  55. package/extensions/agent-modes/README.md +54 -0
  56. package/extensions/agent-modes/discover.test.ts +241 -0
  57. package/extensions/agent-modes/discover.ts +458 -0
  58. package/extensions/agent-modes/index.ts +13 -224
  59. package/extensions/agent-modes/node_modules/.bin/pi +21 -0
  60. package/extensions/agent-modes/node_modules/.bin/tsc +21 -0
  61. package/extensions/agent-modes/node_modules/.bin/tsserver +21 -0
  62. package/extensions/agent-modes/node_modules/.bin/tsx +21 -0
  63. package/extensions/agent-modes/package.json +20 -0
  64. package/extensions/agent-modes/tsconfig.json +12 -0
  65. package/extensions/subagent/README.md +19 -0
  66. package/extensions/subagent/index.ts +131 -45
  67. package/extensions/subagent/node_modules/.bin/pi +21 -0
  68. package/extensions/subagent/node_modules/.bin/pi-ai +21 -0
  69. package/extensions/subagent/node_modules/.bin/tsc +21 -0
  70. package/extensions/subagent/node_modules/.bin/tsserver +21 -0
  71. package/extensions/subagent/node_modules/.bin/tsx +21 -0
  72. package/extensions/subagent/package.json +23 -0
  73. package/extensions/subagent/tsconfig.json +12 -0
  74. package/extensions/subagent/wait.test.ts +202 -0
  75. package/extensions/subagent/wait.ts +118 -0
  76. package/hooks/claude/hooks.json +38 -0
  77. package/hooks/claude/scripts/notify.mjs +54 -0
  78. package/lib/cli.mjs +68 -3
  79. package/package.json +6 -4
  80. package/plugin.json +1 -1
  81. package/pnpm-workspace.yaml +1 -1
  82. package/scripts/build-copilot-agents.mjs +30 -0
  83. package/scripts/lib/compose-agent.mjs +241 -0
  84. package/skills/engineering/design-an-interface/SKILL.md +78 -58
  85. package/skills/engineering/grill-with-docs/REFERENCE.md +78 -0
  86. package/skills/engineering/grill-with-docs/SKILL.md +66 -63
  87. package/skills/engineering/improve-codebase-architecture/SKILL.md +66 -48
  88. package/skills/engineering/technical-direction/FORMAT.md +38 -0
  89. package/skills/engineering/technical-direction/SKILL.md +70 -77
  90. package/skills/planning/classify-bead/SKILL.md +59 -35
  91. package/skills/planning/create-task/REFERENCE.md +40 -0
  92. package/skills/planning/create-task/SKILL.md +70 -66
  93. package/skills/planning/create-task/scripts/create-chores.ts +6 -1
  94. package/skills/planning/create-task/scripts/node_modules/.bin/tsc +21 -0
  95. package/skills/planning/create-task/scripts/node_modules/.bin/tsserver +21 -0
  96. package/skills/planning/create-task/scripts/node_modules/.bin/tsx +21 -0
  97. package/skills/planning/prd-to-tasks/REFERENCE.md +66 -0
  98. package/skills/planning/prd-to-tasks/SKILL.md +86 -170
  99. package/skills/planning/record-idea/FORMAT.md +44 -0
  100. package/skills/planning/record-idea/SKILL.md +70 -53
  101. package/skills/planning/request-refactor-plan/FORMAT.md +45 -0
  102. package/skills/planning/request-refactor-plan/SKILL.md +57 -46
  103. package/skills/planning/write-a-prd/FORMAT.md +54 -0
  104. package/skills/planning/write-a-prd/SKILL.md +49 -48
  105. package/skills/planning/write-a-ticket/SKILL.md +68 -53
  106. package/skills/productivity/handoff/SKILL.md +12 -0
  107. package/skills/productivity/init-beads/SKILL.md +48 -40
  108. package/skills/productivity/validate-agent-dir/scripts/node_modules/.bin/tsc +21 -0
  109. package/skills/productivity/validate-agent-dir/scripts/node_modules/.bin/tsserver +21 -0
  110. package/skills/productivity/validate-agent-dir/scripts/node_modules/.bin/tsx +21 -0
  111. package/skills/productivity/write-a-skill/SKILL.md +2 -1
  112. package/skills/review/maintain-agent-docs/SKILL.md +71 -51
  113. package/skills/workflow/hitl-collab/SKILL.md +86 -17
  114. package/skills/workflow/ralph/REFERENCE.md +24 -19
  115. package/skills/workflow/ralph/SKILL.md +88 -74
  116. package/skills/workflow/run-pipeline-stage/REFERENCE.md +22 -0
  117. package/skills/workflow/run-pipeline-stage/SKILL.md +91 -93
  118. package/skills/workflow/run-pipeline-stage/scripts/generate-progress.test.ts +6 -107
  119. package/skills/workflow/run-pipeline-stage/scripts/generate-progress.ts +4 -2
  120. package/skills/workflow/run-pipeline-stage/scripts/node_modules/.bin/tsc +21 -0
  121. package/skills/workflow/run-pipeline-stage/scripts/node_modules/.bin/tsserver +21 -0
  122. package/skills/workflow/run-pipeline-stage/scripts/node_modules/.bin/tsx +21 -0
  123. package/skills/workflow/using-agent-skills/SKILL.md +122 -0
  124. package/test/claude-installer.test.mjs +248 -0
  125. package/test/cli.test.mjs +115 -2
  126. package/test/copilot-installer.test.mjs +298 -0
  127. package/test/installer.test.mjs +179 -0
  128. package/test/notify-hook.test.mjs +63 -0
  129. package/test/pi-installer.test.mjs +371 -0
  130. package/token-map.README.md +130 -0
  131. package/token-map.json +106 -0
  132. package/.github/workflows/ci.test.ts +0 -217
  133. package/.github/workflows/release.yml +0 -58
  134. package/scripts/build-claude-agents.mjs +0 -179
  135. package/scripts/publish-release.sh +0 -32
@@ -1,40 +1,35 @@
1
1
  ---
2
2
  name: prd-to-tasks
3
- description: Break a PRD into phased epics and task beads using tracer-bullet vertical slices. Use when a PRD is approved and you need to create the executable backlog, or when ralph-plan encounters a large workstream.
3
+ description: Break a PRD into phased epics and task beads using tracer-bullet vertical slices. Use when a PRD is approved and you need to create the executable backlog, when the user says "break this into tasks", "phase this PRD", or "create epics from this spec", or when ralph-plan encounters a large workstream.
4
4
  argument-hint: "Break down <PRD or epic description> into epics and tasks"
5
5
  ---
6
6
 
7
7
  # PRD to Tasks
8
8
 
9
- Take a PRD (or equivalent specification) and produce a complete set of epics and task beads,
10
- ready for ralph to execute. The epic bead is the source of truth — no intermediate plan file.
11
-
12
- Designed to be invoked by `ralph-plan` (when the input is a PRD or a large workstream) or
13
- directly by a user who has a clear spec.
9
+ Take an approved PRD and produce a complete set of epics and task beads, ready for ralph to
10
+ execute. The epic bead is the source of truth — no intermediate plan file.
14
11
 
15
12
  ## When to use
16
13
 
17
14
  - A PRD has been written and approved — time to break it into executable chunks.
18
- - `ralph-plan` receives a PRD as input (step 1) or encounters a large workstream (step 6).
19
- - You have a well-understood feature and want to create the full bead tree in one pass.
20
- - The user says "break this into tasks", "phase this PRD", "create epics from this spec".
15
+ - `ralph-plan` receives a PRD as input or encounters a large workstream.
16
+ - You have a well-understood feature and want the full bead tree created in one pass.
17
+ - The user says "break this into tasks", "phase this PRD", or "create epics from this spec".
21
18
 
22
19
  ## When NOT to use
23
20
 
24
- - The work is a single self-contained task — use `create-task` instead.
25
- - The feature is not yet specified — use `write-a-prd` or the `strategy` agent first.
26
- - You only need to record a raw idea — use `record-idea`.
27
- - The task is a bug fix — file directly with `create-task`.
21
+ - A single self-contained task — use `create-task` instead.
22
+ - A feature that is not yet specified — use `write-a-prd` or the `strategy` agent first.
23
+ - A raw idea that needs capturing — use `record-idea`.
24
+ - A bug fix — file it directly with `create-task`.
28
25
 
29
26
  ## Philosophy / rationale
30
27
 
31
- - **Epics are the source of truth.** The epic bead body contains the phase scope,
32
- acceptance criteria, and dependencies. No intermediate plan file means no drift between
33
- what was planned and what is tracked.
34
- - **Tracer-bullet vertical slices.** Each task is a thin end-to-end path through all layers
35
- (schema, API, logic, UI, tests). A completed task is demoable alone. Prefer many thin
36
- slices over few thick ones.
37
- - **One pass, complete output.** This skill produces the entire bead tree. The user or
28
+ - **Epics are the source of truth.** Each epic bead body carries the phase scope, acceptance
29
+ criteria, and dependencies; no plan file means no drift between planned and tracked.
30
+ - **Tracer-bullet vertical slices.** Each task is a thin end-to-end path through every layer
31
+ (schema, API, logic, UI, tests), demoable alone. Prefer many thin slices over few thick ones.
32
+ - **One pass, complete output.** Produce the whole bead tree in one pass; the user or
38
33
  ralph-plan reviews once at the end, not piecemeal through intermediaries.
39
34
 
40
35
  ## Workflow
@@ -42,186 +37,107 @@ directly by a user who has a clear spec.
42
37
  ### Phase 1 — Understand the PRD
43
38
 
44
39
  1. Confirm the PRD is in context (conversation, bead description, or file).
45
- 2. If you haven't explored the relevant codebase area, do so now — understand current
46
- architecture, existing patterns, and integration layers.
47
- 3. Identify durable architectural decisions that will apply across all phases.
48
- Examples:
49
- - Route structures / URL patterns
50
- - Database schema shape
51
- - Key data models
52
- - Authentication / authorisation approach
53
- - Third-party service boundaries
54
- Add others relevant to the project — the goal is a shared skeleton every phase
55
- can reference.
56
- 4. Record these in a holding note — they inform every phase.
40
+ 2. Explore the relevant codebase area if you have not already — current architecture and
41
+ integration layers.
42
+ 3. Record the durable architectural decisions that apply across all phases, as examples
43
+ not an exhaustive list: route structures or URL patterns, database schema shape, key
44
+ data models, auth approach, third-party service boundaries. This shared skeleton informs
45
+ every phase.
57
46
 
58
47
  ### Phase 2 — Draft the phase breakdown
59
48
 
60
- 5. Break the PRD into phases. Each phase is a **tracer-bullet vertical slice**:
61
- - Thin but complete path through ALL integration layers.
62
- - Demoable or verifiable on its own.
63
- - Covers a specific set of user stories from the PRD.
64
-
65
- 6. For each phase, define:
66
- - **Title**: short descriptive name.
67
- - **User stories covered**: which PRD stories this phase addresses.
68
- - **What to build**: end-to-end behaviour description (not layer-by-layer).
69
- - **Acceptance criteria**: verifiable outcomes.
70
-
71
- 7. Present the proposed phases to the user. Ask:
72
- - Does the granularity feel right?
73
- - Should any phases be merged or split?
74
- - Are the dependency relationships correct — can any run in parallel?
75
-
76
- 8. Iterate until the user approves the breakdown.
49
+ 4. Break the PRD into phases. Each phase is a **tracer-bullet vertical slice**: thin but
50
+ complete through all integration layers, demoable or verifiable on its own, and
51
+ covering a specific set of user stories.
52
+ 5. For each phase define its **title**, **user stories covered**, **what to build**
53
+ (end-to-end behaviour, not layer-by-layer), and **acceptance criteria**.
54
+ 6. Present the proposed phases and ask about granularity, merges or splits, and which
55
+ phases can run in parallel. Iterate until the user approves.
77
56
 
78
57
  ### Phase 3 — Create epics (one per phase)
79
58
 
80
- 9. Create epics in dependency order (blockers first) so you can reference real bead IDs.
59
+ 7. Create epics in dependency order (blockers first) so you can reference real bead IDs,
60
+ using the epic body template in [REFERENCE.md](./REFERENCE.md):
81
61
 
82
62
  ```bash
83
- bd create "<Phase Title>" --type epic \
84
- --description "<epic body from template below>"
63
+ bd create "<Phase Title>" --type epic --description "<epic body from REFERENCE.md>"
85
64
  ```
86
65
 
87
- 10. Tag each epic with a priority:
88
- ```bash
89
- bd tag <epic-id> priority:p3 # default for feature work; adjust if P4/P5
90
- ```
91
- If running in the context of ralph-plan or ralph, also tag with:
92
- ```bash
93
- bd tag <epic-id> workflow:ralph
94
- ```
66
+ 8. Tag each epic with a priority (`p3` default; adjust for p4/p5), and `workflow:ralph`
67
+ when running under ralph-plan or ralph.
95
68
 
96
69
  ### Phase 4 — Create tasks within each epic
97
70
 
98
- 11. For each epic, break it into task-sized vertical slices. Each task is independently
99
- grabbable — a single agent (or person) can pick it up and complete it.
100
-
101
- 12. For each task, invoke `create-task`:
102
- ```bash
103
- # create-task handles classification (AFK/HITL) and pipeline expansion
104
- # Pass title, description (use template below), priority (inherit from epic or adjust),
105
- # and parent epic ID
106
- ```
107
-
108
- 13. After all tasks are created, tag the parent epic with the aggregate classification:
109
- - If **any** task is HITL, the epic is HITL:
110
- ```bash
111
- bd tag <epic-id> implementation-type:hitl
112
- ```
113
- - If **all** tasks are AFK:
114
- ```bash
115
- bd tag <epic-id> implementation-type:afk
116
- ```
71
+ 9. Break each epic into task-sized vertical slices that are independently grabbable, then
72
+ invoke `create-task` for each — it handles AFK/HITL classification and pipeline
73
+ expansion. Pass the task body template from REFERENCE.md, the priority, and the parent
74
+ epic ID.
75
+ 10. Once all tasks exist, tag the epic with the aggregate classification: HITL if any task
76
+ is HITL, otherwise AFK.
117
77
 
118
78
  ### Phase 5 — Report
119
79
 
120
- 14. Present the full bead tree:
121
- ```
122
- Epic: "Phase 1 Title" (#123)
123
- ├── Task 1 (#124) — AFK
124
- ├── Task 2 (#125) — HITL (visual review)
125
- └── Task 3 (#126) — AFK
126
- Epic: "Phase 2 Title" (#127)
127
- ├── ...
128
- ```
129
-
130
- 15. If invoked by `ralph-plan`, signal completion so ralph-plan can proceed to the
131
- agree-with-user step. If invoked directly by a user, summarise the bead tree and
132
- confirm they're happy before finishing.
133
-
134
- ## Epic body template
135
-
136
- ```markdown
137
- ## Source
138
-
139
- PRD: <brief reference>
140
-
141
- ## Summary
142
-
143
- A concise description of this phase. Scope and goal, not implementation details.
144
-
145
- ## What to build
146
-
147
- End-to-end behaviour for this phase. What a demo would show.
148
-
149
- ## Acceptance criteria
150
-
151
- - [ ] Criterion 1
152
- - [ ] Criterion 2
153
-
154
- ## Blocked by
155
-
156
- - Blocked by #<epic-id> (if any) — or "None — can start immediately"
157
- ```
158
-
159
- ## Task body template (passed to `create-task`)
160
-
161
- ```markdown
162
- ## Epic
163
-
164
- #<epic-id> — <Epic Title>
165
-
166
- ## What to build
167
-
168
- This vertical slice: end-to-end behaviour, not layer-by-layer implementation.
169
-
170
- ## Acceptance criteria
171
-
172
- - [ ] Criterion 1
173
- - [ ] Criterion 2
174
-
175
- ## Blocked by
176
-
177
- - Blocked by #<task-id> (if any) — or "None — can start immediately"
178
- ```
80
+ 11. Present the full bead tree: each epic with its tasks, classifications, and IDs.
81
+ 12. If invoked by `ralph-plan`, signal completion so it can proceed; if invoked directly,
82
+ summarise the tree and confirm the user is happy before finishing.
179
83
 
180
84
  ## Red Flags
181
85
 
182
- - **Skipping the user quiz.** The phase breakdown needs human approval before creating
183
- beads. Do not skip Phase 2 step 7-8.
184
- - **Creating horizontal slices.** "All the database work first, then all the API work" is
185
- not tracer bullets. Every task must deliver end-to-end value.
186
- - **Fat tasks.** If a task would take a full agent session to implement, slice thinner.
187
- A task should be a few RED-GREEN cycles, not a week of work.
188
- - **Letting the plan file drift.** Epics are the SOT. Do not also write a plan file —
189
- the epic bead body is the plan.
86
+ - **Skipping the phase approval step.** The breakdown needs human sign-off (Phase 2 step 6)
87
+ before any bead is created.
88
+ - **Creating horizontal slices.** "All the database work, then all the API work" is not a
89
+ tracer bullet — every task must deliver end-to-end value.
90
+ - **Fat tasks.** If a task would take a full agent session, slice thinner. A task is a few
91
+ RED-GREEN cycles, not a week of work.
92
+ - **Letting a plan file drift in.** The epic bead is the plan — a separate file creates
93
+ drift and is ignored by ralph.
190
94
 
191
95
  ## Common Rationalizations
192
96
 
193
97
  | Rationalization | Rebuttal |
194
98
  |---|---|
195
- | "I'll create the epics now and the tasks later" | The user has approved the phases. Create everything in one pass — that's the point of this skill. |
196
- | "I'll write a plan file first, then convert" | The epic bead IS the plan. Writing a separate file creates drift. |
197
- | "This phase is too small for acceptance criteria" | If it's too small for criteria, merge it with another phase. Every deliverable needs a definition of done. |
198
- | "I know what the tasks should be, I don't need to check with the user" | The phase breakdown needs approval. The epic-level approval implies task-level trust, but you still present the full tree in Phase 5. |
99
+ | "I'll create the epics now and the tasks later" | Phases are already approved — create everything in one pass. |
100
+ | "I'll write a plan file first, then convert" | The epic bead IS the plan. A separate file creates drift. |
101
+ | "This phase is too small for acceptance criteria" | If it is too small for criteria, merge it with another phase. Every deliverable needs a definition of done. |
102
+ | "I know the tasks — no need to check with the user" | The phase breakdown still needs approval, and the full tree is presented in Phase 5. |
199
103
 
200
104
  ## Cross-skill references
201
105
 
202
- - **`create-task`** — invoked in Phase 4 for each task bead. Handles classification and
203
- pipeline expansion.
204
- - **`write-a-prd`** — use this first if the feature isn't specified yet.
205
- - **`classify-bead`** — not needed; `create-task` handles classification internally.
206
- - **`style-comms`** — invoke before Phase 2 if you need help writing clear phase
106
+ - **`create-task`** — invoked for every task bead; handles classification and pipeline
107
+ expansion.
108
+ - **`write-a-prd`** — use first when the feature is not yet specified.
109
+ - **`style-comms`** — invoke before Phase 2 when you need help writing clear phase
207
110
  descriptions.
208
111
 
209
- ## Phase-gate checklist
112
+ ## Examples
113
+
114
+ Input: an approved PRD with a numbered list of user stories.
115
+ Output: a dependency-ordered tree of epic and task beads:
116
+
117
+ ```
118
+ Epic: "Phase 1 — Auth" (#123) — HITL
119
+ ├── Task 1 (#124) — AFK
120
+ ├── Task 2 (#125) — HITL (visual review)
121
+ └── Task 3 (#126) — AFK
122
+ Epic: "Phase 2 — Dashboard" (#127) — AFK (blocked by #123)
123
+ ```
124
+
125
+ ## Phase-gate checklists
210
126
 
211
- - [ ] Phase 1 (Understand): architectural decisions captured, codebase explored.
212
- - [ ] Phase 2 (Breakdown): phases drafted and user-approved.
213
- - [ ] Phase 3 (Epics): all epic beads created, tagged with `workflow:ralph` and
214
- `priority:<p3|p4|p5>`.
215
- - [ ] Phase 4 (Tasks): all task beads created via `create-task`, epic tagged with
216
- aggregate `implementation-type`.
217
- - [ ] Phase 5 (Report): full bead tree presented.
127
+ - [ ] Phase 1 complete: PRD confirmed, codebase explored, architectural decisions captured.
128
+ - [ ] Phase 2 complete: phases drafted and approved by the user.
129
+ - [ ] Phase 3 complete: epics created in dependency order and tagged (priority, plus
130
+ `workflow:ralph` under ralph-plan/ralph).
131
+ - [ ] Phase 4 complete: tasks created via `create-task`; epics carry the aggregate
132
+ `implementation-type` tag.
133
+ - [ ] Phase 5 complete: full bead tree presented and confirmed.
218
134
 
219
135
  ## Verification checklist
220
136
 
221
- - [ ] Every phase is a vertical slice (covers all layers), not a horizontal layer.
222
- - [ ] Every task is independently grabbable (one agent can complete without others).
223
- - [ ] All epics are tagged with `workflow:ralph` and a priority.
224
- - [ ] All tasks are classified (AFK/HITL) via `create-task`.
225
- - [ ] Parent epics have aggregate `implementation-type` tags.
226
- - [ ] No intermediate plan file was created — epics are the SOT.
227
- - [ ] Full bead tree was presented to the user (or to ralph-plan for step 7).
137
+ - [ ] Every phase is a vertical slice covering all layers, not a horizontal layer.
138
+ - [ ] Every task is independently grabbable by a single agent.
139
+ - [ ] All epics are tagged with a priority (and `workflow:ralph` when under ralph).
140
+ - [ ] All tasks are classified AFK/HITL via `create-task`.
141
+ - [ ] Parent epics carry the aggregate `implementation-type` tag.
142
+ - [ ] No intermediate plan file was created — epics are the source of truth.
143
+ - [ ] The full bead tree was presented to the user, or to ralph-plan for its next step.
@@ -0,0 +1,44 @@
1
+ # Idea Record Format
2
+
3
+ `scripts/new-idea.sh` generates this scaffold into `docs/ideas/<slug>.md` (or `docs/ideas/<slug>/<slug>.md` with `--complex`). Fill every section — a record with unfilled sections has not been captured.
4
+
5
+ ## Scaffold
6
+
7
+ ```md
8
+ # Idea: <title>
9
+
10
+ ## Status
11
+ Backlog idea (not implementation-ready)
12
+
13
+ ## Created
14
+ <YYYY-MM-DD>
15
+
16
+ ## Problem
17
+ <What problem does this idea address?>
18
+
19
+ ## Who benefits
20
+ <Who benefits and what improves for them?>
21
+
22
+ ## Proposed outcome
23
+ <What the idea would deliver, at a capability level — not implementation detail>
24
+
25
+ ## Validity check
26
+ - Evidence we already have: <what supports this idea>
27
+ - Riskiest assumption: <the assumption most likely to be wrong>
28
+ - What would invalidate this idea: <the signal that kills it>
29
+
30
+ ## Constraints
31
+ <Hard limits: tech, process, scope, resourcing>
32
+
33
+ ## Next validation step
34
+ <The cheapest next thing that would firm up or kill the idea>
35
+
36
+ ## Notes
37
+ <Anything worth keeping for future prioritisation or review>
38
+ ```
39
+
40
+ ## Guidance per section
41
+
42
+ - Keep the record decision-oriented and scannable — it will be read during future prioritisation.
43
+ - `Validity check` is mandatory: evidence grounds the idea, the riskiest assumption marks where it is weakest, and the invalidation signal tells you when to drop it.
44
+ - `Next validation step` should be concrete enough to act on without re-deriving the context.
@@ -1,62 +1,79 @@
1
1
  ---
2
2
  name: record-idea
3
- description: Capture early-stage ideas into a structured backlog record, including a high-level validity check before implementation planning. Use when the user shares a new idea that is not ready to build yet and wants it written to the ideas backlog.
3
+ description: Capture an early-stage idea into a structured backlog record with a short interview and validity check before any implementation planning. Use when the user says "capture this idea", "file this under ideas", or shares an idea that is "not ready to build".
4
4
  ---
5
5
 
6
6
  # Record Idea
7
7
 
8
- Capture a not-ready idea into `docs/ideas` after a short, high-level interview that pressure-tests the concept.
8
+ Capture an idea that is not implementation-ready into `docs/ideas/`, pressure-testing it with a short high-level interview so the backlog stores a direction, not a slogan.
9
+
10
+ ## When to use
11
+
12
+ - The user shares a new idea and wants it written down without scoping it yet ("capture this idea", "file this under ideas", "get this out of my head").
13
+ - A discussion surfaces an idea that should not be planned today.
14
+ - Asked to "add this to the ideas backlog" or "record an idea".
15
+
16
+ ## When NOT to use
17
+
18
+ - The idea is ready to build and needs a requirements document — run `write-a-prd` instead.
19
+ - The user wants an executable task created now — run `create-task` instead.
20
+ - The idea needs an end-to-end feature plan — run `plan` instead.
9
21
 
10
22
  ## Workflow
11
23
 
12
- 1. **Interview at high level (one question at a time)**
13
- - Why might it be useful? Who benefits and what improves?
14
- - How might we do it? Sketch the rough approach — no implementation detail.
15
- - When should we think about it? Are there triggers, dependencies, or timing signals?
16
- - What priority does this feel like relative to current work?
17
- 2. **Pressure-test briefly**
18
- - Challenge weak points (scope, feasibility, opportunity cost).
19
- - Keep discussion strategic; do not drift into implementation detail.
20
- 3. **Choose record shape**
21
- - **Simple idea**: `docs/ideas/<idea-name>.md`
22
- - **Complex idea**: `docs/ideas/<idea-name>/<idea-name>.md` with optional supporting docs in the same folder.
23
- 4. **Create the record file**
24
- - Run:
25
- ```bash
26
- bash skills/record-idea/scripts/new-idea.sh --title "<idea title>" [--complex]
27
- ```
28
- 5. **Write the idea record**
29
- - Fill the scaffold with concise content from the interview.
30
- - Keep it decision-oriented and easy to scan later.
31
-
32
- ## Idea Record Template
33
-
34
- ```md
35
- # Idea: <title>
36
-
37
- ## Status
38
- Backlog idea (not implementation-ready)
39
-
40
- ## Why it might be useful
41
- <Who benefits and what improves?>
42
-
43
- ## How we might do it
44
- <Rough approach — no implementation detail>
45
-
46
- ## When to think about it
47
- <Triggers, dependencies, or timing signals that would make this timely>
48
-
49
- ## Priority
50
- <Relative priority and reasoning>
51
-
52
- ## Notes
53
- <Anything worth keeping for future prioritisation/review>
54
- ```
55
-
56
- ## Output
57
-
58
- Return:
59
-
60
- 1. The file path created.
61
- 2. A 2–3 sentence summary of the recorded idea.
62
- 3. The suggested priority and when it might become timely.
24
+ 1. **Interview at a high level, one question at a time.** Ask what problem it solves and who benefits, how it might be done (rough approach only — no implementation detail), what would make it timely (triggers, dependencies, timing signals), and what priority it feels like relative to current work. Keep this short — it is a capture step, not a requirements session.
25
+
26
+ 2. **Pressure-test briefly.** Challenge weak points such as scope, feasibility, and opportunity cost. The goal is a validity signal for the backlog, not a polished pitch.
27
+
28
+ 3. **Choose the record shape.**
29
+ - Simple idea: a single file `docs/ideas/<idea-name>.md`.
30
+ - Complex idea: a folder `docs/ideas/<idea-name>/<idea-name>.md` with supporting docs alongside.
31
+
32
+ 4. **Create the record file.** Run this skill's `scripts/new-idea.sh` helper with {{TOOL:bash}}:
33
+
34
+ ```bash
35
+ bash <skill-scripts>/new-idea.sh --title "<idea title>" [--complex]
36
+ ```
37
+
38
+ Resolve `<skill-scripts>` as the absolute path to this skill's own `scripts/` directory — it sits next to this `SKILL.md`, and the install location varies by harness, so do not hardcode a repo path. The script generates the scaffold, prints the file path, and errors if the file already exists or the title normalises to an empty slug.
39
+
40
+ 5. **Fill the scaffold.** Write concise, decision-oriented content from the interview into every section — see `FORMAT.md` for the section list. Leave no `TODO`: the validity check specifically needs evidence, the riskiest assumption, and what would invalidate the idea.
41
+
42
+ 6. **Report back.** Return the file path, a 2–3 sentence summary of the recorded idea, and the suggested priority with its likely timing signal.
43
+
44
+ ## Red Flags
45
+
46
+ - Drifting into implementation detail during the interview — the record captures a direction, not a design.
47
+ - Skipping the pressure-test because the idea sounds good — weak points are cheapest to find here.
48
+ - Leaving scaffold `TODO`s unfilled — an incomplete validity check is no check at all.
49
+
50
+ ## Common Rationalizations
51
+
52
+ | Rationalization | Rebuttal |
53
+ |---|---|
54
+ | "It's just an idea — write it down, don't interview me" | The two-minute interview is what makes the row reusable later; without it you store a slogan, not an idea. |
55
+ | "The user already knows what they want" | Knowing the direction is not the same as pressure-testing it. The validity check exists to catch what enthusiasm hides. |
56
+
57
+ ## Philosophy / rationale
58
+
59
+ - **Capture before it becomes plan-shaped.** Scoping too early forces decisions the idea has not earned yet; a backlog note keeps the option open at minimal cost. The validity check is what stops the backlog from filling with confident, doomed ideas.
60
+
61
+ ## Cross-skill references
62
+
63
+ - When an idea passes its validity check and becomes implementation-ready, run `write-a-prd` to scope it properly.
64
+ - For a full feature pipeline from idea to task breakdown, run `plan`.
65
+
66
+ ## Examples
67
+
68
+ Input: "I keep accidentally committing secrets — capture that idea."
69
+ Output: `docs/ideas/secret-scanning-gate.md` — a filled idea record with a validity check, priority, and next validation step. See `FORMAT.md` for the scaffold sections.
70
+
71
+ ## Verification checklist
72
+
73
+ - [ ] Interview covered who benefits, rough approach, timing, and priority.
74
+ - [ ] Idea was pressure-tested; weak points were challenged.
75
+ - [ ] Record file exists at `docs/ideas/<slug>.md` (script printed the path).
76
+ - [ ] Every scaffold section is filled — no `TODO` left in the record.
77
+ - [ ] Validity check records evidence, the riskiest assumption, and what would invalidate the idea.
78
+ - [ ] Record contains no implementation detail.
79
+ - [ ] Report returned the file path, summary, and suggested priority.
@@ -0,0 +1,45 @@
1
+ # Refactor Plan Template
2
+
3
+ Format the `description` passed to `create-task` using the template below. Write the plan in plain English. Keep the Decision Document at the level of decisions — do not include specific file paths or code snippets, which go stale quickly.
4
+
5
+ ## Problem Statement
6
+
7
+ The problem that the developer is facing, from the developer's perspective.
8
+
9
+ ## Solution
10
+
11
+ The solution to the problem, from the developer's perspective.
12
+
13
+ ## Commits
14
+
15
+ A long, detailed implementation plan in plain English, broken into the tiniest commits possible. Each commit should leave the codebase in a working state.
16
+
17
+ ## Decision Document
18
+
19
+ A list of implementation decisions that were made. This can include:
20
+
21
+ - The modules that will be built/modified
22
+ - The interfaces of those modules that will be modified
23
+ - Technical clarifications from the developer
24
+ - Architectural decisions
25
+ - Schema changes
26
+ - API contracts
27
+ - Specific interactions
28
+
29
+ Do NOT include specific file paths or code snippets. They may end up being outdated very quickly.
30
+
31
+ ## Testing Decisions
32
+
33
+ A list of testing decisions that were made. Include:
34
+
35
+ - A description of what makes a good test (only test external behavior, not implementation details)
36
+ - Which modules will be tested
37
+ - Prior art for the tests (i.e. similar types of tests in the codebase)
38
+
39
+ ## Out of Scope
40
+
41
+ A description of the things that are out of scope for this refactor.
42
+
43
+ ## Further Notes (optional)
44
+
45
+ Any further notes about the refactor.