@rune-kit/rune 2.10.0 → 2.12.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 (240) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +65 -6
  3. package/commands/rune.md +168 -168
  4. package/compiler/__tests__/detect-invariants.test.js +136 -0
  5. package/compiler/__tests__/doctor-mesh.test.js +229 -0
  6. package/compiler/__tests__/hook-dispatch.test.js +91 -0
  7. package/compiler/__tests__/hooks-antigravity.test.js +118 -0
  8. package/compiler/__tests__/hooks-cursor.test.js +139 -0
  9. package/compiler/__tests__/hooks-install.test.js +305 -0
  10. package/compiler/__tests__/hooks-merge.test.js +204 -0
  11. package/compiler/__tests__/hooks-tiers.test.js +519 -0
  12. package/compiler/__tests__/hooks-windsurf.test.js +115 -0
  13. package/compiler/__tests__/inject-claude-md.test.js +152 -0
  14. package/compiler/__tests__/load-invariants.test.js +408 -0
  15. package/compiler/__tests__/onboard-invariants.test.js +240 -0
  16. package/compiler/adapters/hooks/antigravity.js +140 -0
  17. package/compiler/adapters/hooks/claude.js +166 -0
  18. package/compiler/adapters/hooks/cursor.js +191 -0
  19. package/compiler/adapters/hooks/index.js +82 -0
  20. package/compiler/adapters/hooks/tier-emitter.js +182 -0
  21. package/compiler/adapters/hooks/windsurf.js +202 -0
  22. package/compiler/bin/rune.js +196 -6
  23. package/compiler/commands/hook-dispatch.js +87 -0
  24. package/compiler/commands/hooks/install.js +120 -0
  25. package/compiler/commands/hooks/merge.js +211 -0
  26. package/compiler/commands/hooks/presets.js +116 -0
  27. package/compiler/commands/hooks/status.js +112 -0
  28. package/compiler/commands/hooks/tiers.js +221 -0
  29. package/compiler/commands/hooks/uninstall.js +94 -0
  30. package/compiler/doctor.js +236 -0
  31. package/contexts/dev.md +34 -34
  32. package/contexts/research.md +43 -43
  33. package/contexts/review.md +55 -55
  34. package/extensions/ai-ml/PACK.md +88 -88
  35. package/extensions/ai-ml/skills/ai-agents.md +172 -172
  36. package/extensions/ai-ml/skills/code-sandbox.md +187 -187
  37. package/extensions/ai-ml/skills/deep-research.md +146 -146
  38. package/extensions/ai-ml/skills/embedding-search.md +66 -66
  39. package/extensions/ai-ml/skills/fine-tuning-guide.md +74 -74
  40. package/extensions/ai-ml/skills/llm-architect.md +125 -125
  41. package/extensions/ai-ml/skills/llm-integration.md +64 -64
  42. package/extensions/ai-ml/skills/prompt-patterns.md +72 -72
  43. package/extensions/ai-ml/skills/rag-patterns.md +66 -66
  44. package/extensions/ai-ml/skills/web-extraction.md +114 -114
  45. package/extensions/analytics/PACK.md +92 -92
  46. package/extensions/analytics/skills/ab-testing.md +72 -72
  47. package/extensions/analytics/skills/dashboard-patterns.md +83 -83
  48. package/extensions/analytics/skills/data-validation.md +68 -68
  49. package/extensions/analytics/skills/funnel-analysis.md +81 -81
  50. package/extensions/analytics/skills/sql-patterns.md +57 -57
  51. package/extensions/analytics/skills/statistical-analysis.md +79 -79
  52. package/extensions/analytics/skills/tracking-setup.md +71 -71
  53. package/extensions/backend/PACK.md +104 -104
  54. package/extensions/backend/skills/api-patterns.md +84 -84
  55. package/extensions/backend/skills/async-pipeline.md +193 -193
  56. package/extensions/backend/skills/auth-patterns.md +97 -97
  57. package/extensions/backend/skills/background-jobs.md +133 -133
  58. package/extensions/backend/skills/caching-patterns.md +108 -108
  59. package/extensions/backend/skills/cli-generation.md +133 -133
  60. package/extensions/backend/skills/database-patterns.md +87 -87
  61. package/extensions/backend/skills/middleware-patterns.md +104 -104
  62. package/extensions/chrome-ext/PACK.md +93 -93
  63. package/extensions/chrome-ext/skills/cws-preflight.md +143 -143
  64. package/extensions/chrome-ext/skills/cws-publish.md +104 -104
  65. package/extensions/chrome-ext/skills/ext-ai-integration.md +251 -251
  66. package/extensions/chrome-ext/skills/ext-messaging.md +139 -139
  67. package/extensions/chrome-ext/skills/ext-storage.md +133 -133
  68. package/extensions/chrome-ext/skills/mv3-scaffold.md +164 -164
  69. package/extensions/content/PACK.md +96 -96
  70. package/extensions/content/skills/blog-patterns.md +88 -88
  71. package/extensions/content/skills/cms-integration.md +131 -131
  72. package/extensions/content/skills/content-scoring.md +107 -107
  73. package/extensions/content/skills/i18n.md +83 -83
  74. package/extensions/content/skills/mdx-authoring.md +137 -137
  75. package/extensions/content/skills/reference.md +1014 -1014
  76. package/extensions/content/skills/seo-patterns.md +67 -67
  77. package/extensions/content/skills/video-repurpose.md +153 -153
  78. package/extensions/devops/PACK.md +101 -101
  79. package/extensions/devops/skills/chaos-testing.md +67 -67
  80. package/extensions/devops/skills/ci-cd.md +75 -75
  81. package/extensions/devops/skills/docker.md +58 -58
  82. package/extensions/devops/skills/edge-serverless.md +163 -163
  83. package/extensions/devops/skills/infra-as-code.md +158 -158
  84. package/extensions/devops/skills/kubernetes.md +110 -110
  85. package/extensions/devops/skills/monitoring.md +57 -57
  86. package/extensions/devops/skills/server-setup.md +64 -64
  87. package/extensions/devops/skills/ssl-domain.md +42 -42
  88. package/extensions/ecommerce/PACK.md +116 -116
  89. package/extensions/ecommerce/skills/cart-system.md +79 -79
  90. package/extensions/ecommerce/skills/inventory-mgmt.md +102 -102
  91. package/extensions/ecommerce/skills/order-management.md +126 -126
  92. package/extensions/ecommerce/skills/payment-integration.md +472 -472
  93. package/extensions/ecommerce/skills/shopify-dev.md +69 -69
  94. package/extensions/ecommerce/skills/subscription-billing.md +93 -93
  95. package/extensions/ecommerce/skills/tax-compliance.md +117 -117
  96. package/extensions/gamedev/PACK.md +142 -142
  97. package/extensions/gamedev/skills/asset-pipeline.md +74 -74
  98. package/extensions/gamedev/skills/audio-system.md +129 -129
  99. package/extensions/gamedev/skills/camera-system.md +87 -87
  100. package/extensions/gamedev/skills/ecs.md +98 -98
  101. package/extensions/gamedev/skills/game-loops.md +72 -72
  102. package/extensions/gamedev/skills/input-system.md +199 -199
  103. package/extensions/gamedev/skills/multiplayer.md +180 -180
  104. package/extensions/gamedev/skills/particles.md +105 -105
  105. package/extensions/gamedev/skills/physics-engine.md +89 -89
  106. package/extensions/gamedev/skills/scene-management.md +146 -146
  107. package/extensions/gamedev/skills/threejs-patterns.md +90 -90
  108. package/extensions/gamedev/skills/webgl.md +71 -71
  109. package/extensions/mobile/PACK.md +106 -106
  110. package/extensions/mobile/skills/app-store-connect.md +152 -152
  111. package/extensions/mobile/skills/app-store-prep.md +66 -66
  112. package/extensions/mobile/skills/deep-linking.md +109 -109
  113. package/extensions/mobile/skills/flutter.md +60 -60
  114. package/extensions/mobile/skills/ios-build-pipeline.md +142 -142
  115. package/extensions/mobile/skills/native-bridge.md +66 -66
  116. package/extensions/mobile/skills/ota-updates.md +97 -97
  117. package/extensions/mobile/skills/push-notifications.md +111 -111
  118. package/extensions/mobile/skills/react-native.md +82 -82
  119. package/extensions/saas/PACK.md +116 -116
  120. package/extensions/saas/skills/billing-integration.md +200 -200
  121. package/extensions/saas/skills/feature-flags.md +130 -130
  122. package/extensions/saas/skills/multi-tenant.md +103 -103
  123. package/extensions/saas/skills/onboarding-flow.md +139 -139
  124. package/extensions/saas/skills/subscription-flow.md +95 -95
  125. package/extensions/saas/skills/team-management.md +144 -144
  126. package/extensions/security/PACK.md +99 -99
  127. package/extensions/security/skills/api-security.md +140 -140
  128. package/extensions/security/skills/compliance.md +68 -68
  129. package/extensions/security/skills/owasp-audit.md +64 -64
  130. package/extensions/security/skills/pentest-patterns.md +77 -77
  131. package/extensions/security/skills/secret-mgmt.md +65 -65
  132. package/extensions/security/skills/supply-chain.md +65 -65
  133. package/extensions/trading/PACK.md +80 -80
  134. package/extensions/trading/skills/chart-components.md +55 -55
  135. package/extensions/trading/skills/experiment-loop.md +125 -125
  136. package/extensions/trading/skills/fintech-patterns.md +47 -47
  137. package/extensions/trading/skills/indicator-library.md +58 -58
  138. package/extensions/trading/skills/quant-analysis.md +111 -111
  139. package/extensions/trading/skills/realtime-data.md +58 -58
  140. package/extensions/trading/skills/trade-logic.md +104 -104
  141. package/extensions/ui/PACK.md +130 -130
  142. package/extensions/ui/skills/a11y-audit.md +91 -91
  143. package/extensions/ui/skills/animation-patterns.md +127 -127
  144. package/extensions/ui/skills/component-patterns.md +100 -100
  145. package/extensions/ui/skills/design-decision.md +108 -108
  146. package/extensions/ui/skills/design-system.md +68 -68
  147. package/extensions/ui/skills/landing-patterns.md +155 -155
  148. package/extensions/ui/skills/palette-picker.md +173 -173
  149. package/extensions/ui/skills/react-health.md +90 -90
  150. package/extensions/ui/skills/type-system.md +125 -125
  151. package/extensions/ui/skills/web-vitals.md +153 -153
  152. package/extensions/zalo/PACK.md +145 -145
  153. package/extensions/zalo/skills/zalo-oa-mcp.md +317 -317
  154. package/extensions/zalo/skills/zalo-oa-messaging.md +429 -429
  155. package/extensions/zalo/skills/zalo-oa-setup.md +236 -236
  156. package/extensions/zalo/skills/zalo-oa-webhook.md +189 -189
  157. package/extensions/zalo/skills/zalo-personal-messaging.md +194 -194
  158. package/extensions/zalo/skills/zalo-personal-setup.md +153 -153
  159. package/extensions/zalo/skills/zalo-rate-guard.md +219 -219
  160. package/hooks/auto-format/index.cjs +48 -48
  161. package/hooks/hooks.json +111 -111
  162. package/hooks/post-session-reflect/index.cjs +189 -189
  163. package/hooks/pre-compact/index.cjs +95 -95
  164. package/hooks/run-hook.cmd +1 -1
  165. package/hooks/secrets-scan/index.cjs +100 -100
  166. package/hooks/session-start/index.cjs +71 -71
  167. package/hooks/typecheck/index.cjs +65 -65
  168. package/package.json +63 -63
  169. package/references/ui-pro-max-data/LICENSE-UI-PRO-MAX +21 -21
  170. package/references/ui-pro-max-data/charts.csv +26 -26
  171. package/references/ui-pro-max-data/colors.csv +161 -161
  172. package/references/ui-pro-max-data/styles.csv +68 -68
  173. package/references/ui-pro-max-data/typography.csv +74 -74
  174. package/references/ui-pro-max-data/ui-reasoning.csv +162 -162
  175. package/references/ui-pro-max-data/ux-guidelines.csv +99 -99
  176. package/skills/adversary/SKILL.md +283 -283
  177. package/skills/asset-creator/SKILL.md +157 -157
  178. package/skills/audit/SKILL.md +147 -2
  179. package/skills/autopsy/SKILL.md +335 -335
  180. package/skills/ba/SKILL.md +85 -1
  181. package/skills/brainstorm/SKILL.md +380 -342
  182. package/skills/browser-pilot/SKILL.md +169 -168
  183. package/skills/constraint-check/SKILL.md +165 -165
  184. package/skills/context-engine/SKILL.md +408 -404
  185. package/skills/cook/SKILL.md +917 -863
  186. package/skills/db/SKILL.md +273 -273
  187. package/skills/debug/SKILL.md +465 -465
  188. package/skills/dependency-doctor/SKILL.md +265 -235
  189. package/skills/deploy/SKILL.md +274 -231
  190. package/skills/design/DESIGN-REFERENCE.md +365 -365
  191. package/skills/design/SKILL.md +590 -589
  192. package/skills/doc-processor/SKILL.md +254 -254
  193. package/skills/docs/SKILL.md +374 -374
  194. package/skills/docs-seeker/SKILL.md +178 -177
  195. package/skills/fix/SKILL.md +332 -330
  196. package/skills/git/SKILL.md +339 -339
  197. package/skills/hallucination-guard/SKILL.md +220 -219
  198. package/skills/incident/SKILL.md +254 -253
  199. package/skills/integrity-check/SKILL.md +169 -169
  200. package/skills/journal/SKILL.md +241 -240
  201. package/skills/launch/SKILL.md +344 -344
  202. package/skills/logic-guardian/SKILL.md +269 -251
  203. package/skills/marketing/SKILL.md +351 -289
  204. package/skills/mcp-builder/SKILL.md +425 -425
  205. package/skills/neural-memory/SKILL.md +359 -362
  206. package/skills/onboard/SKILL.md +432 -403
  207. package/skills/onboard/references/invariants-template.md +76 -0
  208. package/skills/onboard/scripts/detect-invariants.js +439 -0
  209. package/skills/onboard/scripts/inject-claude-md.js +150 -0
  210. package/skills/onboard/scripts/onboard-invariants.js +194 -0
  211. package/skills/perf/SKILL.md +347 -346
  212. package/skills/plan/SKILL.md +435 -428
  213. package/skills/preflight/SKILL.md +415 -415
  214. package/skills/problem-solver/SKILL.md +380 -284
  215. package/skills/rescue/SKILL.md +474 -474
  216. package/skills/research/SKILL.md +4 -0
  217. package/skills/retro/SKILL.md +3 -1
  218. package/skills/review/SKILL.md +614 -588
  219. package/skills/review-intake/SKILL.md +249 -249
  220. package/skills/safeguard/SKILL.md +200 -200
  221. package/skills/sast/SKILL.md +190 -190
  222. package/skills/scaffold/SKILL.md +328 -287
  223. package/skills/scope-guard/SKILL.md +183 -180
  224. package/skills/scout/SKILL.md +269 -263
  225. package/skills/sentinel/SKILL.md +384 -381
  226. package/skills/sentinel-env/SKILL.md +254 -254
  227. package/skills/sequential-thinking/SKILL.md +234 -234
  228. package/skills/session-bridge/SKILL.md +595 -543
  229. package/skills/session-bridge/scripts/load-invariants.js +397 -0
  230. package/skills/skill-forge/SKILL.md +581 -581
  231. package/skills/skill-router/SKILL.md +3 -0
  232. package/skills/slides/SKILL.md +19 -0
  233. package/skills/surgeon/SKILL.md +215 -215
  234. package/skills/team/SKILL.md +557 -537
  235. package/skills/test/SKILL.md +620 -614
  236. package/skills/trend-scout/SKILL.md +145 -145
  237. package/skills/verification/SKILL.md +334 -326
  238. package/skills/video-creator/SKILL.md +201 -201
  239. package/skills/watchdog/SKILL.md +168 -168
  240. package/skills/worktree/SKILL.md +140 -140
@@ -1,428 +1,435 @@
1
- ---
2
- name: plan
3
- description: Create structured implementation plans from requirements. Produces master plan + phase files for enterprise-scale project management. Master plan = overview (<80 lines). Phase files = execution detail (<150 lines each). Each session handles 1 phase. Uses opus for deep reasoning.
4
- metadata:
5
- author: runedev
6
- version: "1.4.0"
7
- layer: L2
8
- model: opus
9
- group: creation
10
- tools: "Read, Write, Edit, Glob, Grep"
11
- emit: plan.ready
12
- listen: codebase.scanned, project.onboarded, security.blocked
13
- ---
14
-
15
- # plan
16
-
17
- ## Purpose
18
-
19
- Strategic planning engine for the Rune ecosystem. Produces a **master plan + phase files** architecture — NOT a single monolithic plan. The master plan is a concise overview (<80 lines) that references separate phase files, each containing enough detail (<150 lines) that ANY model can execute with high accuracy.
20
-
21
- **Design principle: Plan for the weakest coder.** Phase files are designed so that even an Amateur-level model (Haiku) can execute them with minimal errors. When the plan satisfies the Amateur's needs, every model benefits — Junior (Sonnet) executes near-perfectly, Senior (Opus) executes flawlessly.
22
-
23
- This is enterprise-grade project management: BA produces WHAT → Plan produces HOW (structured into phases) → ANY coder executes each phase with full context.
24
-
25
- <HARD-GATE>
26
- NEVER produce a single monolithic plan file for non-trivial tasks.
27
- Non-trivial = 3+ phases OR 5+ files OR estimated > 100 LOC total change.
28
- For non-trivial tasks: MUST produce master plan + separate phase files.
29
- For trivial tasks (1-2 phases, < 5 files): inline plan is acceptable.
30
- </HARD-GATE>
31
-
32
- ## Architecture: Master Plan + Phase Files
33
-
34
- ```
35
- .rune/
36
- plan-<feature>.md ← Master plan: phases overview, goals, status tracker (<80 lines)
37
- plan-<feature>-phase1.md ← Phase 1 detail: tasks, acceptance criteria, files to touch (<150 lines)
38
- plan-<feature>-phase2.md ← Phase 2 detail
39
- ...
40
- ```
41
-
42
- ### Why This Architecture
43
-
44
- - **Big context = even Opus misses details and makes mistakes**
45
- - **Small context = Sonnet handles correctly, Opus has zero mistakes**
46
- - Phase isolation prevents cross-contamination of concerns
47
- - Each session starts clean with only the relevant phase loaded
48
- - Coder (Sonnet/Haiku) can execute a phase file without needing the full plan
49
-
50
- ### Size Constraints
51
-
52
- | File | Max Lines | Content |
53
- |------|-----------|---------|
54
- | Master plan | 80 lines | Overview, phase table, key decisions, status |
55
- | Phase file | 200 lines | Amateur-proof template: data flow, contracts, tasks, failures, NFRs, rejections, cross-phase |
56
- | Total phases | Max 8 | If > 8 phases, split into sub-projects |
57
-
58
- ## Modes
59
-
60
- ### Implementation Mode (default)
61
- Standard implementation planning — decompose task into phased steps with code details.
62
-
63
- ### Feature Spec Mode
64
- Product-oriented planning — write a feature specification before implementation.
65
- **Triggers:** user says "spec", "feature spec", "write spec", "PRD" — or `/rune plan spec <feature>`
66
-
67
- ### Roadmap Mode
68
- High-level multi-feature planning — organize features into milestones.
69
- **Triggers:** user says "roadmap", "milestone", "release plan", "what to build next" — or `/rune plan roadmap`
70
-
71
- ## Triggers
72
-
73
- - Called by `cook` when task scope > 1 file (Implementation Mode)
74
- - Called by `team` for high-level task decomposition
75
- - `/rune plan <task>` — manual planning
76
- - `/rune plan spec <feature>` — feature specification
77
- - `/rune plan roadmap` — roadmap planning
78
- - Auto-trigger: when user says "implement", "build", "create" with complex scope
79
-
80
- ## Calls (outbound)
81
-
82
- - `scout` (L2): scan codebase for existing patterns, conventions, and structure
83
- - `brainstorm` (L2): when multiple valid approaches exist
84
- - `research` (L3): external knowledge lookup
85
- - `sequential-thinking` (L3): complex architecture with many trade-offs
86
- - L4 extension packs: domain-specific architecture patterns
87
- - `neural-memory` | Before architecture decisions | Recall past decisions on similar problems
88
-
89
- ## Called By (inbound)
90
-
91
- - `cook` (L1): Phase 2 PLAN
92
- - `team` (L1): task decomposition into parallel workstreams
93
- - `brainstorm` (L2): when idea needs structuring
94
- - `rescue` (L1): plan refactoring strategy
95
- - `ba` (L2): hand-off after requirements complete
96
- - `scaffold` (L1): Phase 3 architecture planning
97
- - `skill-forge` (L2): plan structure for new skill
98
- - User: `/rune plan` direct invocation
99
-
100
- ## Data Flow
101
-
102
- ### Feeds Into →
103
-
104
- - `cook` (L1): master plan + phase files → cook's Phase 2-4 execution roadmap
105
- - `team` (L1): task decomposition + wave grouping team's parallel workstream dispatch
106
- - `fix` (L2): phase file tasks → fix's implementation targets
107
- - `test` (L2): phase file test taskstest's RED phase targets
108
-
109
- ### Fed By
110
-
111
- - `ba` (L2): Requirements Document → plan's primary input (locked decisions, user stories)
112
- - `scout` (L2): codebase analysis → plan's convention/pattern awareness
113
- - `neural-memory` (external): past architectural decisions → plan's precedent context
114
- - `sentinel` (L2): repeated security blocks → plan's constraint awareness for future features
115
-
116
- ### Feedback Loops
117
-
118
- - `plan` ↔ `brainstorm`: plan requests options when multiple approaches exist → brainstorm generates options → plan selects and structures the chosen approach
119
- - `plan` `cook`: cook discovers plan gaps during implementation → plan updates phase files → cook resumes with corrected tasks
120
-
121
- ## Executable Steps (Implementation Mode)
122
-
123
- ### Step 1 — Gather Context
124
-
125
- Check for `.rune/features/*/requirements.md` via `Glob`. If a Requirements Document exists (from `rune:ba`), read it — it contains user stories, acceptance criteria, scope, constraints. Do NOT re-gather what BA already elicited.
126
-
127
- If `project.onboarded` signal was received, scout output is already available in session context — skip re-invoking scout.
128
-
129
- Invoke `rune:scout` if not already done — plans without context produce wrong file paths. Call `neural-memory` (Recall Mode) to surface past architecture decisions before making new ones.
130
-
131
- **Feature Map**: Check for `.rune/features.md` via `Glob`. If it exists, read it — understand the existing feature landscape, dependencies, and known gaps BEFORE planning. Cross-reference: does the new feature overlap, conflict with, or depend on existing features? If `.rune/features.md` does not exist, note this — Step 6.5 will create it.
132
-
133
- ### Step 2 — Classify Complexity
134
-
135
- Determine inline plan vs master + phase files:
136
-
137
- | Criteria | Inline Plan | Master + Phase Files |
138
- |----------|-------------|---------------------|
139
- | Phases | 1-2 | 3+ |
140
- | Files touched | < 5 | 5+ |
141
- | Estimated LOC | < 100 | 100+ |
142
- | Cross-module | No | Yes |
143
- | Session span | Single session | Multi-session |
144
-
145
- If ANY "Master + Phase Files" criterion is true → produce master plan + phase files.
146
-
147
- ### Step 3 — Decompose into Phases
148
- <MUST-READ path="references/wave-planning.md" trigger="when writing wave-structured task lists inside any phase"/>
149
-
150
- Group work into phases. Each phase: completable in one session, clear "done when", produces testable output, independent enough to run without other phases loaded.
151
-
152
- <HARD-GATE>
153
- Each phase MUST be completable by ANY coder model (including Haiku) with ONLY the phase file loaded.
154
- If the coder would need to read the master plan or other phase files to execute → the phase file is missing detail.
155
- Phase files are SELF-CONTAINED execution instructions — designed for the weakest model to succeed.
156
- </HARD-GATE>
157
-
158
- Phase decomposition rules:
159
- - **Foundation first**: types, schemas, core engine
160
- - **Dependencies before consumers**: create what's imported before the importer
161
- - **Test alongside**: each phase includes its own test tasks
162
- - **Max 5-7 tasks per phase**: if more, split the phase
163
- - **Vertical slices over horizontal layers**: prefer "auth end-to-end" over "all models → all APIs → all UI"
164
-
165
- Tasks within each phase MUST be organized into waves (parallel-safe groupings). See `references/wave-planning.md`.
166
-
167
- ### Step 4 — Write Master Plan File
168
- <MUST-READ path="references/plan-templates.md" trigger="when writing the master plan file"/>
169
-
170
- Save to `.rune/plan-<feature>.md`. Use the Master Plan Template in `references/plan-templates.md`. Max 80 lines — no implementation details.
171
-
172
- ### Step 4.5 — Workflow Registry (Complex Features Only)
173
- <MUST-READ path="references/workflow-registry.md" trigger="when feature has 4+ phases OR 3+ user-facing workflows"/>
174
-
175
- For complex features (4+ phases OR 3+ user-facing workflows): build a 4-view Workflow Registry before writing phase files. Catches orphaned components, unphased workflows, and missing state transitions at plan time.
176
-
177
- **Skip** for: trivial tasks, inline plans, single-workflow features.
178
-
179
- ### Step 5 — Write Phase Files
180
- <MUST-READ path="references/plan-templates.md" trigger="when writing any phase file"/>
181
-
182
- For each phase, save to `.rune/plan-<feature>-phase<N>.md`. Use the Amateur-Proof Template in `references/plan-templates.md`.
183
-
184
- <HARD-GATE>
185
- Every phase file MUST include ALL of these sections (Amateur-Proof Checklist):
186
- 1. ✅ Data Flow — ASCII diagram of how data moves
187
- 2. ✅ Code Contracts — function signatures, interfaces, types
188
- 3. Tasks with file paths, logic description, edge cases
189
- 4. ✅ Failure Scenariostable of when/then/error for each error case
190
- 5. ✅ Rejection Criteriaexplicit "DO NOT" anti-patterns
191
- 6. ✅ Cross-Phase Context what's assumed from prior phases, what's exported for future phases
192
- 7. ✅ Acceptance Criteriatestable, includes performance if applicable
193
- 8. ✅ Test tasksevery code task has corresponding tests
194
- 9. ✅ Traceability Matrixevery BA requirement mapped to tasks and tests (skip if no BA requirements exist)
195
-
196
- A phase missing ANY of sections 1-7 is INCOMPLETE the weakest coder will guess wrong.
197
- Performance Constraints section is optional (only when NFRs apply).
198
- </HARD-GATE>
199
-
200
- ### Step 5.5 Completeness Scoring (Alternatives)
201
- <MUST-READ path="references/completeness-scoring.md" trigger="when presenting alternative approaches"/>
202
-
203
- When presenting alternatives (from brainstorm or Step 3), rate each **Completeness X/10**. Always recommend the higher-completeness option — with AI, the marginal cost of completeness is near-zero.
204
-
205
- ### Step 6 — Present and Get Approval
206
-
207
- Present the **master plan** to user (NOT all phase files). User reviews: phase breakdown, key decisions, risks, completeness scores. Wait for explicit approval ("go", "proceed", "yes") before writing phase files.
208
-
209
- ### Step 6.5 — Update Feature Map (Always)
210
- <MUST-READ path="references/feature-map.md" trigger="every plan invocation"/>
211
-
212
- After plan approval, update `.rune/features.md`:
213
-
214
- **If `.rune/features.md` does NOT exist** (first run):
215
- 1. Reverse-engineer features from scout output — each top-level module = 1 feature
216
- 2. Map inter-feature dependencies from imports and shared types
217
- 3. Assess status per feature (complete, partial, planned)
218
- 4. Generate `.rune/features.md` with Features table, Dependency Graph, Detected Gaps
219
-
220
- **If `.rune/features.md` exists** (subsequent runs):
221
- 1. Add or update the current feature's row (status, deps, key files)
222
- 2. Cross-reference: new feature resolves existing gaps? Creates new ones?
223
- 3. Validate dependency graph — flag missing features, orphans, circular deps, dead signals
224
- 4. Write updated `.rune/features.md`
225
-
226
- **Skip if**: Inline plan for trivial task (no feature-level impact).
227
-
228
- ### Step 7 — Execution Handoff
229
-
230
- ```
231
- 1. Cook loads master plan → identifies current phase (first ⬚ Pending)
232
- 2. Cook loads ONLY that phase's file
233
- 3. Coder executes tasks in the phase file
234
- 4. Mark tasks done in phase file as completed
235
- 5. When phase complete update master plan status: ⬚ → ✅
236
- 6. Next session: load master plan → find next ⬚ phase → load phase file → execute
237
- ```
238
-
239
- Model selection: Opus plans phases (this skill). Sonnet/Haiku executes them (cookfix).
240
-
241
- ## Inline Plan (Trivial Tasks)
242
-
243
- For trivial tasks (1-2 phases, < 5 files, < 100 LOC) — skip master + phase files. See inline plan template in `references/plan-templates.md`.
244
-
245
- ## Re-Planning (Dynamic Adaptation)
246
-
247
- When cook encounters unexpected conditions during execution:
248
-
249
- **Trigger Conditions:** Phase hits max debug-fix loops (3) | new files outside plan scope | dependency change | user requests scope change.
250
-
251
- **Re-Plan Protocol:**
252
- 1. Read master plan + current phase file + delta context (what changed, what failed)
253
- 2. Assess impact: which remaining phases are affected?
254
- 3. Revise: mark ✅ completed phases, modify affected phase files, add new phases if scope expanded. Do NOT rewrite completed phases.
255
- 4. Present revised master plan with diff summary get approval before resuming.
256
-
257
- ## Feature Spec Mode
258
-
259
- **Step 1** — Problem Statement: what problem, who has it, current workaround?
260
- **Step 2** User Stories: primary + 2-3 secondary + edge cases. Format: `As a [persona], I want to [action] so that [benefit]`
261
- **Step 3** — Acceptance Criteria: `GIVEN [context] WHEN [action] THEN [result]` — happy path + errors + performance
262
- **Step 4** — Scope Definition: In scope / Out of scope / Dependencies / Open questions
263
- **Step 5** — Write Spec File: save to `.rune/features/<feature-name>/spec.md`
264
-
265
- After spec approved transition to Implementation Mode.
266
-
267
- ## Roadmap Mode
268
-
269
- **Step 1** — Inventory: scan for open issues, TODO/FIXME, planned features.
270
- **Step 2** — Prioritize (ICE Scoring): Impact × Confidence × Ease (each 1-10), sort descending.
271
- **Step 3** — Group into Milestones: M1 = top 3-5 by ICE, M2 = next 3-5, Backlog = remaining.
272
- **Step 4** — Write to `.rune/roadmap.md`.
273
-
274
- ## Output Format
275
-
276
- **Master Plan** (`.rune/plan-<feature>.md`): Overview, Phases table, Key Decisions, Decision Compliance, Architecture, Dependencies/Risks. Max 80 lines. See `references/plan-templates.md`.
277
-
278
- **Phase File** (`.rune/plan-<feature>-phase<N>.md`): 7 mandatory sections (Amateur-Proof Template). Max 200 lines. Self-contained. See `references/plan-templates.md`.
279
-
280
- **Inline Plan** (trivial tasks): Changes, Tests, Risks. See `references/plan-templates.md`.
281
-
282
- ## Outcome Block (Mandatory)
283
- <MUST-READ path="references/outcome-block.md" trigger="when writing the final section of any plan output"/>
284
-
285
- Every plan output — master plan, phase file, or inline plan — MUST end with an **Outcome Block** containing: What Was Planned + Immediate Next Action (single action, imperative) + How to Measure table (at least one shell command).
286
-
287
- ## Change Stacking (Overlap Detection)
288
-
289
- When producing phase files with wave-based task grouping, every task MUST declare dependency metadata:
290
-
291
- ```markdown
292
- ### Task: Implement auth middleware
293
- - **File**: `src/middleware/auth.ts` — new
294
- - **touches**: [src/middleware/auth.ts, src/types/auth.d.ts]
295
- - **provides**: [AuthMiddleware, verifyToken()]
296
- - **requires**: [UserModel from Wave 1]
297
- - **depends_on**: [task-1a]
298
- ```
299
-
300
- **Pre-dispatch validation** (run after all tasks written, before presenting plan):
301
-
302
- | Check | Detection | Action |
303
- |-------|-----------|--------|
304
- | **File overlap** | Same file in `touches[]` of 2+ tasks in same wave | BLOCK — move to sequential waves or merge tasks |
305
- | **Missing dependency** | Task A's `requires[]` not in any prior task's `provides[]` | BLOCK — add missing task or fix dependency chain |
306
- | **Cycle detection** | Task A `depends_on` B, B `depends_on` A | BLOCK — decompose into smaller tasks to break cycle |
307
- | **Orphaned provides** | Task declares `provides[]` but no future task `requires[]` it | WARNmay indicate dead code or missing consumer task |
308
-
309
- **Skip if**: Inline plan (trivial task), single-phase plan, or all tasks are strictly sequential.
310
-
311
- ## Constraints
312
-
313
- 1. MUST produce master plan + phase files for non-trivial tasks (3+ phases OR 5+ files OR 100+ LOC)
314
- 2. MUST keep master plan under 80 lines — overview only, no implementation details
315
- 3. MUST keep each phase file under 200 lines — self-contained, Amateur-proof
316
- 4. MUST include exact file paths for every task no vague "set up the database"
317
- 5. MUST include test tasks for every phase that produces code
318
- 6. MUST include ALL Amateur-Proof sections: data flow, code contracts, tasks, failure scenarios, rejection criteria, cross-phase context, acceptance criteria
319
- 7. MUST order phases by dependency don't plan phase 3 before phase 1's output exists
320
- 8. MUST get user approval before writing phase files
321
- 9. Phase files MUST be self-contained coder should NOT need master plan to execute
322
- 10. Max 8 phases per master plan if more, split into sub-projects
323
- 11. MUST include failure scenarios table what happens when things go wrong
324
- 12. MUST include rejection criteria explicit "DO NOT" anti-patterns to prevent common mistakes
325
- 13. MUST include cross-phase context what's assumed from prior phases, what's exported for future
326
- 14. MUST update `.rune/features.md` after every non-trivial plan feature map is a living artifact
327
-
328
- ## Returns
329
-
330
- | Artifact | Format | Location |
331
- |----------|--------|----------|
332
- | Master plan | Markdown | `.rune/plan-<feature>.md` |
333
- | Phase files | Markdown | `.rune/plan-<feature>-phase<N>.md` (one per phase) |
334
- | Feature spec | Markdown | `.rune/features/<name>/spec.md` (Feature Spec Mode only) |
335
- | Roadmap | Markdown | `.rune/roadmap.md` (Roadmap Mode only) |
336
- | Feature map | Markdown | `.rune/features.md` (auto-maintained) |
337
- | Inline plan | Markdown (inline) | Emitted directly for trivial tasks |
338
-
339
- ## Chain Metadata
340
-
341
- Append to plan output when invoked standalone. Suppress when called as sub-skill inside an L1 orchestrator (cook, team, etc.) — the orchestrator emits a consolidated block. See `docs/references/chain-metadata.md`.
342
-
343
- ```yaml
344
- chain_metadata:
345
- skill: "rune:plan"
346
- version: "1.4.0"
347
- status: "[DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED]"
348
- domain: "[area planned]"
349
- files_changed:
350
- - "[.rune/plan-*.md files created]"
351
- exports:
352
- plan_file: "[.rune/plan-<feature>.md path]"
353
- phase_count: [N]
354
- estimated_complexity: "[low | medium | high]"
355
- risk_areas: ["[domains with identified risks]"]
356
- suggested_next:
357
- - skill: "rune:adversary"
358
- reason: "[grounded in plan — e.g., 'Plan touches auth + payments — stress-test assumptions']"
359
- consumes: ["plan_file", "risk_areas"]
360
- - skill: "rune:cook"
361
- reason: "Plan ready for execution"
362
- consumes: ["plan_file", "phase_count"]
363
- ```
364
-
365
- ## Sharp Edges
366
-
367
- | Failure Mode | Severity | Mitigation |
368
- |---|---|---|
369
- | Monolithic plan file that overflows context | CRITICAL | HARD-GATE: non-trivial tasks MUST use master + phase files |
370
- | Phase file too vague for Amateur to execute | CRITICAL | Amateur-Proof template: ALL 7 mandatory sections required |
371
- | Coder uses wrong approach (toFixed for money, mutation) | CRITICAL | Rejection Criteria section: explicit "DO NOT" list prevents common traps |
372
- | Coder doesn't handle errors properly | HIGH | Failure Scenarios table: when/then/error for EVERY error case |
373
- | Coder doesn't know what other phases expect | HIGH | Cross-Phase Context: explicit imports/exports between phases |
374
- | Coder over-engineers or under-engineers perf | HIGH | Performance Constraints: specific metrics with thresholds |
375
- | Master plan contains implementation detail | HIGH | Max 80 lines, overview only — detail goes in phase files |
376
- | Phase file references other phase files | HIGH | Phase files are self-contained cross-phase section handles this |
377
- | Plan without scout context invented file paths | CRITICAL | Step 1: scout first, always |
378
- | Phase with zero test tasks | CRITICAL | HARD-GATE rejects it |
379
- | 10+ phases overwhelming the master plan | MEDIUM | Max 8 phases split into sub-projects if more |
380
- | Task without File path or Verify command | HIGH | Every task MUST have File + Test + Verify + Commit fields — no vague "implement the feature" tasks |
381
- | Horizontal layer planning (all models → all APIs → all UI) | HIGH | Vertical slices parallelize better. Use wave-based grouping: independent tasks in same wave, dependent tasks in later waves |
382
- | Tasks without `depends_on` in Wave 2+ | MEDIUM | Implicit dependencies break parallel dispatch. Every Wave 2+ task MUST declare `depends_on` |
383
- | Plan ignores locked Decisions from BA | CRITICAL | Decision Compliance section cross-checks requirements.md locked decisions are non-negotiable |
384
- | Complex feature missing Workflow Registry components planned but never wired | HIGH | Step 4.5: 4-view registry catches orphaned components, unphased workflows, and missing state transitions before phase files are written |
385
- | Recommending shortcut approach without Completeness Score | MEDIUM | Step 5.5: every alternative needs X/10 Completeness score + dual effort estimate (human vs AI). "Saves 70 LOC" is not a reason when AI makes the delta cost minutes |
386
- | Plan output missing Outcome Block | MEDIUM | Every plan output MUST end with Outcome Block (What Was Planned + Immediate Next Action + How to Measure) — executor drift when omitted |
387
- | Outcome Block "Next Action" is a list, not one action | LOW | One action only ambiguity about where to start causes re-analysis and lost context |
388
- | Overlapping file ownership across parallel phases/streams | HIGH | Change Stacking: every task declares `touches[]` overlap detection flags same file in 2+ tasks before execution |
389
- | Missing dependency between tasks that share artifacts | HIGH | Every task declares `provides[]` and `requires[]` cycle detection + missing dep check before dispatch |
390
- | New feature planned without checking existing feature map | HIGH | Step 1 reads `.rune/features.md`catches overlaps, conflicts, and missing dependencies before planning begins |
391
- | Feature map never createdgaps accumulate silently | MEDIUM | Step 6.5 always runs (create or update) feature map grows organically with each plan invocation |
392
-
393
- ## Self-Validation
394
-
395
- ```
396
- SELF-VALIDATION (run before presenting plan to user):
397
- - [ ] Every task has a clear file pathno "update relevant files" vagueness
398
- - [ ] Wave dependencies are acyclic no task depends on a task in the same or later wave
399
- - [ ] Every code-producing phase has at least one test task
400
- - [ ] Phase files have ALL Amateur-Proof sections (data flow, code contracts, failure scenarios, rejection criteria)
401
- - [ ] Locked decisions from BA are reflected in plan — none contradicted or ignored
402
- - [ ] Every BA requirement has a corresponding Req ID in at least one phase's Traceability Matrix
403
- - [ ] `.rune/features.md` updated with current feature (or created if first run)
404
- - [ ] No cross-feature conflicts detected (or flagged to user if found)
405
- ```
406
-
407
- ## Done When
408
-
409
- - Complexity classified (inline vs master + phase files)
410
- - Scout output read and conventions/patterns identified
411
- - BA requirements consumed (if available)
412
- - Master plan written (< 80 lines) with phase table and key decisions
413
- - Phase files written (< 200 lines each) with ALL Amateur-Proof sections:
414
- - Data flow diagram, code contracts, tasks with edge cases
415
- - Failure scenarios table, rejection criteria (DO NOTs)
416
- - Cross-phase context (assumes/exports), acceptance criteria
417
- - Every code-producing phase has test tasks
418
- - Master plan presented to user with "Awaiting Approval"
419
- - User has explicitly approved
420
- - Self-Validation: all checks passed
421
- - Outcome Block present in every plan output (master plan, phase files, inline plan)
422
- - Outcome Block contains: What Was Planned + Immediate Next Action (single action) + How to Measure table
423
- - `.rune/features.md` created (first run) or updated (subsequent) with current feature
424
- - Cross-feature dependencies validated no conflicts or orphans left unaddressed
425
-
426
- ## Cost Profile
427
-
428
- ~3000-8000 tokens input, ~2000-5000 tokens output (master + all phase files). Opus for architectural reasoning. Most expensive L2 skill but runs infrequently. Phase files are written once, executed by cheaper models (Sonnet/Haiku).
1
+ ---
2
+ name: plan
3
+ description: Create structured implementation plans from requirements. Produces master plan + phase files for enterprise-scale project management. Master plan = overview (<80 lines). Phase files = execution detail (<150 lines each). Each session handles 1 phase. Uses opus for deep reasoning.
4
+ metadata:
5
+ author: runedev
6
+ version: "1.5.0"
7
+ layer: L2
8
+ model: opus
9
+ group: creation
10
+ tools: "Read, Write, Edit, Glob, Grep"
11
+ emit: plan.ready
12
+ listen: codebase.scanned, project.onboarded, security.blocked
13
+ ---
14
+
15
+ # plan
16
+
17
+ ## Purpose
18
+
19
+ Strategic planning engine for the Rune ecosystem. Produces a **master plan + phase files** architecture — NOT a single monolithic plan. The master plan is a concise overview (<80 lines) that references separate phase files, each containing enough detail (<150 lines) that ANY model can execute with high accuracy.
20
+
21
+ **Design principle: Plan for the weakest coder.** Phase files are designed so that even an Amateur-level model (Haiku) can execute them with minimal errors. When the plan satisfies the Amateur's needs, every model benefits — Junior (Sonnet) executes near-perfectly, Senior (Opus) executes flawlessly.
22
+
23
+ This is enterprise-grade project management: BA produces WHAT → Plan produces HOW (structured into phases) → ANY coder executes each phase with full context.
24
+
25
+ <HARD-GATE>
26
+ NEVER produce a single monolithic plan file for non-trivial tasks.
27
+ Non-trivial = 3+ phases OR 5+ files OR estimated > 100 LOC total change.
28
+ For non-trivial tasks: MUST produce master plan + separate phase files.
29
+ For trivial tasks (1-2 phases, < 5 files): inline plan is acceptable.
30
+ </HARD-GATE>
31
+
32
+ ## Architecture: Master Plan + Phase Files
33
+
34
+ ```
35
+ .rune/
36
+ plan-<feature>.md ← Master plan: phases overview, goals, status tracker (<80 lines)
37
+ plan-<feature>-phase1.md ← Phase 1 detail: tasks, acceptance criteria, files to touch (<150 lines)
38
+ plan-<feature>-phase2.md ← Phase 2 detail
39
+ ...
40
+ ```
41
+
42
+ ### Why This Architecture
43
+
44
+ - **Big context = even Opus misses details and makes mistakes**
45
+ - **Small context = Sonnet handles correctly, Opus has zero mistakes**
46
+ - Phase isolation prevents cross-contamination of concerns
47
+ - Each session starts clean with only the relevant phase loaded
48
+ - Coder (Sonnet/Haiku) can execute a phase file without needing the full plan
49
+
50
+ ### Size Constraints
51
+
52
+ | File | Max Lines | Content |
53
+ |------|-----------|---------|
54
+ | Master plan | 80 lines | Overview, phase table, key decisions, status |
55
+ | Phase file | 200 lines | Amateur-proof template: data flow, contracts, tasks, failures, NFRs, rejections, cross-phase |
56
+ | Total phases | Max 8 | If > 8 phases, split into sub-projects |
57
+
58
+ ## Modes
59
+
60
+ ### Implementation Mode (default)
61
+ Standard implementation planning — decompose task into phased steps with code details.
62
+
63
+ ### Feature Spec Mode
64
+ Product-oriented planning — write a feature specification before implementation.
65
+ **Triggers:** user says "spec", "feature spec", "write spec", "PRD" — or `/rune plan spec <feature>`
66
+
67
+ ### Roadmap Mode
68
+ High-level multi-feature planning — organize features into milestones.
69
+ **Triggers:** user says "roadmap", "milestone", "release plan", "what to build next" — or `/rune plan roadmap`
70
+
71
+ ## Triggers
72
+
73
+ - Called by `cook` when task scope > 1 file (Implementation Mode)
74
+ - Called by `team` for high-level task decomposition
75
+ - `/rune plan <task>` — manual planning
76
+ - `/rune plan spec <feature>` — feature specification
77
+ - `/rune plan roadmap` — roadmap planning
78
+ - Auto-trigger: when user says "implement", "build", "create" with complex scope
79
+
80
+ ## Calls (outbound)
81
+
82
+ - `scout` (L2): scan codebase for existing patterns, conventions, and structure
83
+ - `brainstorm` (L2): when multiple valid approaches exist
84
+ - `adversary` (L2): optional red-team gate on critical plan output (features touching auth, payments, or data integrity)
85
+ - `research` (L3): external knowledge lookup
86
+ - `sequential-thinking` (L3): complex architecture with many trade-offs
87
+ - L4 extension packs: domain-specific architecture patterns
88
+ - `neural-memory` | Before architecture decisions | Recall past decisions on similar problems
89
+
90
+ ## Called By (inbound)
91
+
92
+ - `cook` (L1): Phase 2 PLAN
93
+ - `team` (L1): task decomposition into parallel workstreams
94
+ - `brainstorm` (L2): when idea needs structuring
95
+ - `rescue` (L1): plan refactoring strategy
96
+ - `ba` (L2): hand-off after requirements complete
97
+ - `scaffold` (L1): Phase 3 architecture planning
98
+ - `skill-forge` (L2): plan structure for new skill
99
+ - User: `/rune plan` direct invocation
100
+ - `debug` (L2): when root cause requires architectural changes
101
+ - `retro` (L2): reference past plans during retrospective analysis
102
+
103
+ ## Data Flow
104
+
105
+ ### Feeds Into
106
+
107
+ - `cook` (L1): master plan + phase files cook's Phase 2-4 execution roadmap
108
+ - `team` (L1): task decomposition + wave grouping → team's parallel workstream dispatch
109
+ - `fix` (L2): phase file tasks → fix's implementation targets
110
+ - `test` (L2): phase file test tasks → test's RED phase targets
111
+
112
+ ### Fed By
113
+
114
+ - `ba` (L2): Requirements Document → plan's primary input (locked decisions, user stories)
115
+ - `scout` (L2): codebase analysis → plan's convention/pattern awareness
116
+ - `neural-memory` (external): past architectural decisions → plan's precedent context
117
+ - `sentinel` (L2): repeated security blocks → plan's constraint awareness for future features
118
+
119
+ ### Feedback Loops
120
+
121
+ - `plan` `brainstorm`: plan requests options when multiple approaches exist → brainstorm generates options → plan selects and structures the chosen approach
122
+ - `plan` ↔ `cook`: cook discovers plan gaps during implementation → plan updates phase files → cook resumes with corrected tasks
123
+
124
+ ## Executable Steps (Implementation Mode)
125
+
126
+ ### Step 1 — Gather Context
127
+
128
+ Check for `.rune/features/*/requirements.md` via `Glob`. If a Requirements Document exists (from `rune:ba`), read it — it contains user stories, acceptance criteria, scope, constraints. Do NOT re-gather what BA already elicited.
129
+
130
+ If `project.onboarded` signal was received, scout output is already available in session context — skip re-invoking scout.
131
+
132
+ Invoke `rune:scout` if not already done — plans without context produce wrong file paths. Call `neural-memory` (Recall Mode) to surface past architecture decisions before making new ones.
133
+
134
+ **Feature Map**: Check for `.rune/features.md` via `Glob`. If it exists, read it — understand the existing feature landscape, dependencies, and known gaps BEFORE planning. Cross-reference: does the new feature overlap, conflict with, or depend on existing features? If `.rune/features.md` does not exist, note this — Step 6.5 will create it.
135
+
136
+ ### Step 2 — Classify Complexity
137
+
138
+ Determine inline plan vs master + phase files:
139
+
140
+ | Criteria | Inline Plan | Master + Phase Files |
141
+ |----------|-------------|---------------------|
142
+ | Phases | 1-2 | 3+ |
143
+ | Files touched | < 5 | 5+ |
144
+ | Estimated LOC | < 100 | 100+ |
145
+ | Cross-module | No | Yes |
146
+ | Session span | Single session | Multi-session |
147
+
148
+ If ANY "Master + Phase Files" criterion is true produce master plan + phase files.
149
+
150
+ ### Step 3 Decompose into Phases
151
+ <MUST-READ path="references/wave-planning.md" trigger="when writing wave-structured task lists inside any phase"/>
152
+
153
+ Group work into phases. Each phase: completable in one session, clear "done when", produces testable output, independent enough to run without other phases loaded.
154
+
155
+ <HARD-GATE>
156
+ Each phase MUST be completable by ANY coder model (including Haiku) with ONLY the phase file loaded.
157
+ If the coder would need to read the master plan or other phase files to execute → the phase file is missing detail.
158
+ Phase files are SELF-CONTAINED execution instructions — designed for the weakest model to succeed.
159
+ </HARD-GATE>
160
+
161
+ Phase decomposition rules:
162
+ - **Foundation first**: types, schemas, core engine
163
+ - **Dependencies before consumers**: create what's imported before the importer
164
+ - **Test alongside**: each phase includes its own test tasks
165
+ - **Max 5-7 tasks per phase**: if more, split the phase
166
+ - **Vertical slices over horizontal layers**: prefer "auth end-to-end" over "all models → all APIs → all UI"
167
+
168
+ Tasks within each phase MUST be organized into waves (parallel-safe groupings). See `references/wave-planning.md`.
169
+
170
+ ### Step 4 Write Master Plan File
171
+ <MUST-READ path="references/plan-templates.md" trigger="when writing the master plan file"/>
172
+
173
+ Save to `.rune/plan-<feature>.md`. Use the Master Plan Template in `references/plan-templates.md`. Max 80 lines no implementation details.
174
+
175
+ ### Step 4.5 Workflow Registry (Complex Features Only)
176
+ <MUST-READ path="references/workflow-registry.md" trigger="when feature has 4+ phases OR 3+ user-facing workflows"/>
177
+
178
+ For complex features (4+ phases OR 3+ user-facing workflows): build a 4-view Workflow Registry before writing phase files. Catches orphaned components, unphased workflows, and missing state transitions at plan time.
179
+
180
+ **Skip** for: trivial tasks, inline plans, single-workflow features.
181
+
182
+ ### Step 5 Write Phase Files
183
+ <MUST-READ path="references/plan-templates.md" trigger="when writing any phase file"/>
184
+
185
+ For each phase, save to `.rune/plan-<feature>-phase<N>.md`. Use the Amateur-Proof Template in `references/plan-templates.md`.
186
+
187
+ <HARD-GATE>
188
+ Every phase file MUST include ALL of these sections (Amateur-Proof Checklist):
189
+ 1. ✅ Data FlowASCII diagram of how data moves
190
+ 2. ✅ Code Contractsfunction signatures, interfaces, types
191
+ 3. ✅ Taskswith file paths, logic description, edge cases
192
+ 4. ✅ Failure Scenariostable of when/then/error for each error case
193
+ 5. ✅ Rejection Criteriaexplicit "DO NOT" anti-patterns
194
+ 6. ✅ Cross-Phase Contextwhat's assumed from prior phases, what's exported for future phases
195
+ 7. ✅ Acceptance Criteria — testable, includes performance if applicable
196
+ 8. Test tasksevery code task has corresponding tests
197
+ 9. Traceability Matrix every BA requirement mapped to tasks and tests (skip if no BA requirements exist)
198
+
199
+ A phase missing ANY of sections 1-7 is INCOMPLETE — the weakest coder will guess wrong.
200
+ Performance Constraints section is optional (only when NFRs apply).
201
+ </HARD-GATE>
202
+
203
+ ### Step 5.5 Completeness Scoring (Alternatives)
204
+ <MUST-READ path="references/completeness-scoring.md" trigger="when presenting alternative approaches"/>
205
+
206
+ When presenting alternatives (from brainstorm or Step 3), rate each **Completeness X/10**. Always recommend the higher-completeness option — with AI, the marginal cost of completeness is near-zero.
207
+
208
+ ### Step 6 — Present and Get Approval
209
+
210
+ Present the **master plan** to user (NOT all phase files). User reviews: phase breakdown, key decisions, risks, completeness scores. Wait for explicit approval ("go", "proceed", "yes") before writing phase files.
211
+
212
+ ### Step 6.5 Update Feature Map (Always)
213
+ <MUST-READ path="references/feature-map.md" trigger="every plan invocation"/>
214
+
215
+ After plan approval, update `.rune/features.md`:
216
+
217
+ **If `.rune/features.md` does NOT exist** (first run):
218
+ 1. Reverse-engineer features from scout output each top-level module = 1 feature
219
+ 2. Map inter-feature dependencies from imports and shared types
220
+ 3. Assess status per feature (complete, partial, planned)
221
+ 4. Generate `.rune/features.md` with Features table, Dependency Graph, Detected Gaps
222
+
223
+ **If `.rune/features.md` exists** (subsequent runs):
224
+ 1. Add or update the current feature's row (status, deps, key files)
225
+ 2. Cross-reference: new feature resolves existing gaps? Creates new ones?
226
+ 3. Validate dependency graph flag missing features, orphans, circular deps, dead signals
227
+ 4. Write updated `.rune/features.md`
228
+
229
+ **Skip if**: Inline plan for trivial task (no feature-level impact).
230
+
231
+ ### Step 7 Execution Handoff
232
+
233
+ ```
234
+ 1. Cook loads master plan → identifies current phase (first Pending)
235
+ 2. Cook loads ONLY that phase's file
236
+ 3. Coder executes tasks in the phase file
237
+ 4. Mark tasks done in phase file as completed
238
+ 5. When phase complete → update master plan status: ⬚ → ✅
239
+ 6. Next session: load master plan find next phase load phase file execute
240
+ ```
241
+
242
+ Model selection: Opus plans phases (this skill). Sonnet/Haiku executes them (cook → fix).
243
+
244
+ ## Inline Plan (Trivial Tasks)
245
+
246
+ For trivial tasks (1-2 phases, < 5 files, < 100 LOC) — skip master + phase files. See inline plan template in `references/plan-templates.md`.
247
+
248
+ ## Re-Planning (Dynamic Adaptation)
249
+
250
+ When cook encounters unexpected conditions during execution:
251
+
252
+ **Trigger Conditions:** Phase hits max debug-fix loops (3) | new files outside plan scope | dependency change | user requests scope change.
253
+
254
+ **Re-Plan Protocol:**
255
+ 1. Read master plan + current phase file + delta context (what changed, what failed)
256
+ 2. Assess impact: which remaining phases are affected?
257
+ 3. Revise: mark ✅ completed phases, modify affected phase files, add new phases if scope expanded. Do NOT rewrite completed phases.
258
+ 4. Present revised master plan with diff summary — get approval before resuming.
259
+
260
+ ## Feature Spec Mode
261
+
262
+ **Step 1** — Problem Statement: what problem, who has it, current workaround?
263
+ **Step 2** — User Stories: primary + 2-3 secondary + edge cases. Format: `As a [persona], I want to [action] so that [benefit]`
264
+ **Step 3** — Acceptance Criteria: `GIVEN [context] WHEN [action] THEN [result]` — happy path + errors + performance
265
+ **Step 4** Scope Definition: In scope / Out of scope / Dependencies / Open questions
266
+ **Step 5** — Write Spec File: save to `.rune/features/<feature-name>/spec.md`
267
+
268
+ After spec approved → transition to Implementation Mode.
269
+
270
+ ## Roadmap Mode
271
+
272
+ **Step 1** — Inventory: scan for open issues, TODO/FIXME, planned features.
273
+ **Step 2** — Prioritize (ICE Scoring): Impact × Confidence × Ease (each 1-10), sort descending.
274
+ **Step 3** — Group into Milestones: M1 = top 3-5 by ICE, M2 = next 3-5, Backlog = remaining.
275
+ **Step 4** — Write to `.rune/roadmap.md`.
276
+
277
+ ## Output Format
278
+
279
+ **Master Plan** (`.rune/plan-<feature>.md`): Overview, Phases table, Key Decisions, Decision Compliance, Architecture, Dependencies/Risks. Max 80 lines. See `references/plan-templates.md`.
280
+
281
+ **Phase File** (`.rune/plan-<feature>-phase<N>.md`): 7 mandatory sections (Amateur-Proof Template). Max 200 lines. Self-contained. See `references/plan-templates.md`.
282
+
283
+ **Inline Plan** (trivial tasks): Changes, Tests, Risks. See `references/plan-templates.md`.
284
+
285
+ ## Outcome Block (Mandatory)
286
+ <MUST-READ path="references/outcome-block.md" trigger="when writing the final section of any plan output"/>
287
+
288
+ Every plan output — master plan, phase file, or inline plan — MUST end with an **Outcome Block** containing: What Was Planned + Immediate Next Action (single action, imperative) + How to Measure table (at least one shell command).
289
+
290
+ ## Change Stacking (Overlap Detection)
291
+
292
+ When producing phase files with wave-based task grouping, every task MUST declare dependency metadata:
293
+
294
+ ```markdown
295
+ ### Task: Implement auth middleware
296
+ - **File**: `src/middleware/auth.ts` new
297
+ - **touches**: [src/middleware/auth.ts, src/types/auth.d.ts]
298
+ - **provides**: [AuthMiddleware, verifyToken()]
299
+ - **requires**: [UserModel from Wave 1]
300
+ - **depends_on**: [task-1a]
301
+ ```
302
+
303
+ **Pre-dispatch validation** (run after all tasks written, before presenting plan):
304
+
305
+ | Check | Detection | Action |
306
+ |-------|-----------|--------|
307
+ | **File overlap** | Same file in `touches[]` of 2+ tasks in same wave | BLOCKmove to sequential waves or merge tasks |
308
+ | **Missing dependency** | Task A's `requires[]` not in any prior task's `provides[]` | BLOCK — add missing task or fix dependency chain |
309
+ | **Cycle detection** | Task A `depends_on` B, B `depends_on` A | BLOCK — decompose into smaller tasks to break cycle |
310
+ | **Orphaned provides** | Task declares `provides[]` but no future task `requires[]` it | WARN — may indicate dead code or missing consumer task |
311
+
312
+ **Skip if**: Inline plan (trivial task), single-phase plan, or all tasks are strictly sequential.
313
+
314
+ ## Constraints
315
+
316
+ 1. MUST produce master plan + phase files for non-trivial tasks (3+ phases OR 5+ files OR 100+ LOC)
317
+ 2. MUST keep master plan under 80 lines overview only, no implementation details
318
+ 3. MUST keep each phase file under 200 lines self-contained, Amateur-proof
319
+ 4. MUST include exact file paths for every task no vague "set up the database"
320
+ 5. MUST include test tasks for every phase that produces code
321
+ 6. MUST include ALL Amateur-Proof sections: data flow, code contracts, tasks, failure scenarios, rejection criteria, cross-phase context, acceptance criteria
322
+ 7. MUST order phases by dependency — don't plan phase 3 before phase 1's output exists
323
+ 8. MUST get user approval before writing phase files
324
+ 9. Phase files MUST be self-containedcoder should NOT need master plan to execute
325
+ 10. Max 8 phases per master plan if more, split into sub-projects
326
+ 11. MUST include failure scenarios tablewhat happens when things go wrong
327
+ 12. MUST include rejection criteria — explicit "DO NOT" anti-patterns to prevent common mistakes
328
+ 13. MUST include cross-phase context — what's assumed from prior phases, what's exported for future
329
+ 14. MUST update `.rune/features.md` after every non-trivial plan — feature map is a living artifact
330
+
331
+ ## Returns
332
+
333
+ | Artifact | Format | Location |
334
+ |----------|--------|----------|
335
+ | Master plan | Markdown | `.rune/plan-<feature>.md` |
336
+ | Phase files | Markdown | `.rune/plan-<feature>-phase<N>.md` (one per phase) |
337
+ | Feature spec | Markdown | `.rune/features/<name>/spec.md` (Feature Spec Mode only) |
338
+ | Roadmap | Markdown | `.rune/roadmap.md` (Roadmap Mode only) |
339
+ | Feature map | Markdown | `.rune/features.md` (auto-maintained) |
340
+ | Inline plan | Markdown (inline) | Emitted directly for trivial tasks |
341
+
342
+ ## Chain Metadata
343
+
344
+ Append to plan output when invoked standalone. Suppress when called as sub-skill inside an L1 orchestrator (cook, team, etc.) — the orchestrator emits a consolidated block. See `docs/references/chain-metadata.md`.
345
+
346
+ ```yaml
347
+ chain_metadata:
348
+ skill: "rune:plan"
349
+ version: "1.5.0"
350
+ status: "[DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED]"
351
+ domain: "[area planned]"
352
+ files_changed:
353
+ - "[.rune/plan-*.md files created]"
354
+ exports:
355
+ plan_file: "[.rune/plan-<feature>.md path]"
356
+ phase_count: [N]
357
+ estimated_complexity: "[low | medium | high]"
358
+ risk_areas: ["[domains with identified risks]"]
359
+ suggested_next:
360
+ - skill: "rune:adversary"
361
+ reason: "[grounded in plan — e.g., 'Plan touches auth + payments — stress-test assumptions']"
362
+ consumes: ["plan_file", "risk_areas"]
363
+ - skill: "rune:autopilot"
364
+ reason: "Plan approved — autonomous execution available (Pro tier, multi-session)"
365
+ consumes: ["plan_file", "phase_count"]
366
+ condition: "Pro tier installed AND phase_count >= 3 AND user signals autonomous intent"
367
+ - skill: "rune:cook"
368
+ reason: "Plan ready for execution"
369
+ consumes: ["plan_file", "phase_count"]
370
+ ```
371
+
372
+ ## Sharp Edges
373
+
374
+ | Failure Mode | Severity | Mitigation |
375
+ |---|---|---|
376
+ | Monolithic plan file that overflows context | CRITICAL | HARD-GATE: non-trivial tasks MUST use master + phase files |
377
+ | Phase file too vague for Amateur to execute | CRITICAL | Amateur-Proof template: ALL 7 mandatory sections required |
378
+ | Coder uses wrong approach (toFixed for money, mutation) | CRITICAL | Rejection Criteria section: explicit "DO NOT" list prevents common traps |
379
+ | Coder doesn't handle errors properly | HIGH | Failure Scenarios table: when/then/error for EVERY error case |
380
+ | Coder doesn't know what other phases expect | HIGH | Cross-Phase Context: explicit imports/exports between phases |
381
+ | Coder over-engineers or under-engineers perf | HIGH | Performance Constraints: specific metrics with thresholds |
382
+ | Master plan contains implementation detail | HIGH | Max 80 lines, overview only detail goes in phase files |
383
+ | Phase file references other phase files | HIGH | Phase files are self-containedcross-phase section handles this |
384
+ | Plan without scout contextinvented file paths | CRITICAL | Step 1: scout first, always |
385
+ | Phase with zero test tasks | CRITICAL | HARD-GATE rejects it |
386
+ | 10+ phases overwhelming the master plan | MEDIUM | Max 8 phases split into sub-projects if more |
387
+ | Task without File path or Verify command | HIGH | Every task MUST have File + Test + Verify + Commit fields no vague "implement the feature" tasks |
388
+ | Horizontal layer planning (all models all APIs → all UI) | HIGH | Vertical slices parallelize better. Use wave-based grouping: independent tasks in same wave, dependent tasks in later waves |
389
+ | Tasks without `depends_on` in Wave 2+ | MEDIUM | Implicit dependencies break parallel dispatch. Every Wave 2+ task MUST declare `depends_on` |
390
+ | Plan ignores locked Decisions from BA | CRITICAL | Decision Compliance section cross-checks requirements.md — locked decisions are non-negotiable |
391
+ | Complex feature missing Workflow Registry components planned but never wired | HIGH | Step 4.5: 4-view registry catches orphaned components, unphased workflows, and missing state transitions before phase files are written |
392
+ | Recommending shortcut approach without Completeness Score | MEDIUM | Step 5.5: every alternative needs X/10 Completeness score + dual effort estimate (human vs AI). "Saves 70 LOC" is not a reason when AI makes the delta cost minutes |
393
+ | Plan output missing Outcome Block | MEDIUM | Every plan output MUST end with Outcome Block (What Was Planned + Immediate Next Action + How to Measure) — executor drift when omitted |
394
+ | Outcome Block "Next Action" is a list, not one action | LOW | One action only — ambiguity about where to start causes re-analysis and lost context |
395
+ | Overlapping file ownership across parallel phases/streams | HIGH | Change Stacking: every task declares `touches[]` — overlap detection flags same file in 2+ tasks before execution |
396
+ | Missing dependency between tasks that share artifacts | HIGH | Every task declares `provides[]` and `requires[]` — cycle detection + missing dep check before dispatch |
397
+ | New feature planned without checking existing feature map | HIGH | Step 1 reads `.rune/features.md` catches overlaps, conflicts, and missing dependencies before planning begins |
398
+ | Feature map never created gaps accumulate silently | MEDIUM | Step 6.5 always runs (create or update) — feature map grows organically with each plan invocation |
399
+
400
+ ## Self-Validation
401
+
402
+ ```
403
+ SELF-VALIDATION (run before presenting plan to user):
404
+ - [ ] Every task has a clear file path no "update relevant files" vagueness
405
+ - [ ] Wave dependencies are acyclic — no task depends on a task in the same or later wave
406
+ - [ ] Every code-producing phase has at least one test task
407
+ - [ ] Phase files have ALL Amateur-Proof sections (data flow, code contracts, failure scenarios, rejection criteria)
408
+ - [ ] Locked decisions from BA are reflected in plan — none contradicted or ignored
409
+ - [ ] Every BA requirement has a corresponding Req ID in at least one phase's Traceability Matrix
410
+ - [ ] `.rune/features.md` updated with current feature (or created if first run)
411
+ - [ ] No cross-feature conflicts detected (or flagged to user if found)
412
+ ```
413
+
414
+ ## Done When
415
+
416
+ - Complexity classified (inline vs master + phase files)
417
+ - Scout output read and conventions/patterns identified
418
+ - BA requirements consumed (if available)
419
+ - Master plan written (< 80 lines) with phase table and key decisions
420
+ - Phase files written (< 200 lines each) with ALL Amateur-Proof sections:
421
+ - Data flow diagram, code contracts, tasks with edge cases
422
+ - Failure scenarios table, rejection criteria (DO NOTs)
423
+ - Cross-phase context (assumes/exports), acceptance criteria
424
+ - Every code-producing phase has test tasks
425
+ - Master plan presented to user with "Awaiting Approval"
426
+ - User has explicitly approved
427
+ - Self-Validation: all checks passed
428
+ - Outcome Block present in every plan output (master plan, phase files, inline plan)
429
+ - Outcome Block contains: What Was Planned + Immediate Next Action (single action) + How to Measure table
430
+ - `.rune/features.md` created (first run) or updated (subsequent) with current feature
431
+ - Cross-feature dependencies validated — no conflicts or orphans left unaddressed
432
+
433
+ ## Cost Profile
434
+
435
+ ~3000-8000 tokens input, ~2000-5000 tokens output (master + all phase files). Opus for architectural reasoning. Most expensive L2 skill but runs infrequently. Phase files are written once, executed by cheaper models (Sonnet/Haiku).