ariadna 1.3.1 → 2.0.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 (148) hide show
  1. checksums.yaml +4 -4
  2. data/ariadna.gemspec +0 -1
  3. data/data/agents/ariadna-codebase-mapper.md +34 -722
  4. data/data/agents/ariadna-debugger.md +44 -1139
  5. data/data/agents/ariadna-executor.md +75 -396
  6. data/data/agents/ariadna-planner.md +78 -1215
  7. data/data/agents/ariadna-roadmapper.md +55 -582
  8. data/data/agents/ariadna-verifier.md +60 -702
  9. data/data/ariadna/templates/config.json +8 -33
  10. data/data/ariadna/workflows/debug.md +28 -0
  11. data/data/ariadna/workflows/execute-phase.md +31 -513
  12. data/data/ariadna/workflows/map-codebase.md +20 -319
  13. data/data/ariadna/workflows/new-milestone.md +20 -365
  14. data/data/ariadna/workflows/new-project.md +19 -880
  15. data/data/ariadna/workflows/plan-phase.md +24 -443
  16. data/data/ariadna/workflows/progress.md +20 -376
  17. data/data/ariadna/workflows/quick.md +19 -221
  18. data/data/ariadna/workflows/roadmap-ops.md +28 -0
  19. data/data/ariadna/workflows/verify-work.md +23 -560
  20. data/data/commands/ariadna/add-phase.md +11 -22
  21. data/data/commands/ariadna/debug.md +11 -143
  22. data/data/commands/ariadna/execute-phase.md +12 -30
  23. data/data/commands/ariadna/insert-phase.md +7 -14
  24. data/data/commands/ariadna/map-codebase.md +16 -49
  25. data/data/commands/ariadna/new-milestone.md +12 -25
  26. data/data/commands/ariadna/new-project.md +22 -26
  27. data/data/commands/ariadna/plan-phase.md +13 -22
  28. data/data/commands/ariadna/progress.md +16 -6
  29. data/data/commands/ariadna/quick.md +9 -11
  30. data/data/commands/ariadna/remove-phase.md +9 -12
  31. data/data/commands/ariadna/verify-work.md +14 -19
  32. data/data/skills/rails-backend/API.md +138 -0
  33. data/data/skills/rails-backend/CONTROLLERS.md +154 -0
  34. data/data/skills/rails-backend/JOBS.md +132 -0
  35. data/data/skills/rails-backend/MODELS.md +213 -0
  36. data/data/skills/rails-backend/SKILL.md +169 -0
  37. data/data/skills/rails-frontend/ASSETS.md +154 -0
  38. data/data/skills/rails-frontend/COMPONENTS.md +253 -0
  39. data/data/skills/rails-frontend/SKILL.md +187 -0
  40. data/data/skills/rails-frontend/VIEWS.md +168 -0
  41. data/data/skills/rails-performance/PROFILING.md +106 -0
  42. data/data/skills/rails-performance/SKILL.md +217 -0
  43. data/data/skills/rails-security/AUDIT.md +118 -0
  44. data/data/skills/rails-security/SKILL.md +422 -0
  45. data/data/skills/rails-testing/FIXTURES.md +78 -0
  46. data/data/skills/rails-testing/SKILL.md +160 -0
  47. data/data/skills/rails-testing/SYSTEM-TESTS.md +73 -0
  48. data/lib/ariadna/installer.rb +11 -15
  49. data/lib/ariadna/tools/cli.rb +0 -12
  50. data/lib/ariadna/tools/config_manager.rb +10 -72
  51. data/lib/ariadna/tools/frontmatter.rb +23 -1
  52. data/lib/ariadna/tools/init.rb +201 -401
  53. data/lib/ariadna/tools/model_profiles.rb +6 -14
  54. data/lib/ariadna/tools/phase_manager.rb +1 -10
  55. data/lib/ariadna/tools/state_manager.rb +170 -451
  56. data/lib/ariadna/tools/template_filler.rb +4 -12
  57. data/lib/ariadna/tools/verification.rb +21 -399
  58. data/lib/ariadna/uninstaller.rb +9 -0
  59. data/lib/ariadna/version.rb +1 -1
  60. metadata +20 -91
  61. data/data/agents/ariadna-backend-executor.md +0 -261
  62. data/data/agents/ariadna-frontend-executor.md +0 -259
  63. data/data/agents/ariadna-integration-checker.md +0 -418
  64. data/data/agents/ariadna-phase-researcher.md +0 -469
  65. data/data/agents/ariadna-plan-checker.md +0 -622
  66. data/data/agents/ariadna-project-researcher.md +0 -618
  67. data/data/agents/ariadna-research-synthesizer.md +0 -236
  68. data/data/agents/ariadna-test-executor.md +0 -266
  69. data/data/ariadna/references/checkpoints.md +0 -772
  70. data/data/ariadna/references/continuation-format.md +0 -249
  71. data/data/ariadna/references/decimal-phase-calculation.md +0 -65
  72. data/data/ariadna/references/git-integration.md +0 -248
  73. data/data/ariadna/references/git-planning-commit.md +0 -38
  74. data/data/ariadna/references/model-profile-resolution.md +0 -32
  75. data/data/ariadna/references/model-profiles.md +0 -73
  76. data/data/ariadna/references/phase-argument-parsing.md +0 -61
  77. data/data/ariadna/references/planning-config.md +0 -194
  78. data/data/ariadna/references/questioning.md +0 -153
  79. data/data/ariadna/references/rails-conventions.md +0 -416
  80. data/data/ariadna/references/tdd.md +0 -267
  81. data/data/ariadna/references/ui-brand.md +0 -160
  82. data/data/ariadna/references/verification-patterns.md +0 -853
  83. data/data/ariadna/templates/codebase/architecture.md +0 -481
  84. data/data/ariadna/templates/codebase/concerns.md +0 -380
  85. data/data/ariadna/templates/codebase/conventions.md +0 -434
  86. data/data/ariadna/templates/codebase/integrations.md +0 -328
  87. data/data/ariadna/templates/codebase/stack.md +0 -189
  88. data/data/ariadna/templates/codebase/structure.md +0 -418
  89. data/data/ariadna/templates/codebase/testing.md +0 -606
  90. data/data/ariadna/templates/context.md +0 -283
  91. data/data/ariadna/templates/continue-here.md +0 -78
  92. data/data/ariadna/templates/debug-subagent-prompt.md +0 -91
  93. data/data/ariadna/templates/phase-prompt.md +0 -609
  94. data/data/ariadna/templates/planner-subagent-prompt.md +0 -117
  95. data/data/ariadna/templates/research-project/ARCHITECTURE.md +0 -439
  96. data/data/ariadna/templates/research-project/FEATURES.md +0 -168
  97. data/data/ariadna/templates/research-project/PITFALLS.md +0 -406
  98. data/data/ariadna/templates/research-project/STACK.md +0 -251
  99. data/data/ariadna/templates/research-project/SUMMARY.md +0 -247
  100. data/data/ariadna/templates/state.md +0 -176
  101. data/data/ariadna/templates/summary-complex.md +0 -59
  102. data/data/ariadna/templates/summary-minimal.md +0 -41
  103. data/data/ariadna/templates/summary-standard.md +0 -48
  104. data/data/ariadna/templates/user-setup.md +0 -310
  105. data/data/ariadna/workflows/add-phase.md +0 -111
  106. data/data/ariadna/workflows/add-todo.md +0 -157
  107. data/data/ariadna/workflows/audit-milestone.md +0 -241
  108. data/data/ariadna/workflows/check-todos.md +0 -176
  109. data/data/ariadna/workflows/complete-milestone.md +0 -644
  110. data/data/ariadna/workflows/diagnose-issues.md +0 -219
  111. data/data/ariadna/workflows/discovery-phase.md +0 -289
  112. data/data/ariadna/workflows/discuss-phase.md +0 -408
  113. data/data/ariadna/workflows/execute-plan.md +0 -448
  114. data/data/ariadna/workflows/help.md +0 -470
  115. data/data/ariadna/workflows/insert-phase.md +0 -129
  116. data/data/ariadna/workflows/list-phase-assumptions.md +0 -178
  117. data/data/ariadna/workflows/pause-work.md +0 -122
  118. data/data/ariadna/workflows/plan-milestone-gaps.md +0 -256
  119. data/data/ariadna/workflows/remove-phase.md +0 -154
  120. data/data/ariadna/workflows/research-phase.md +0 -74
  121. data/data/ariadna/workflows/resume-project.md +0 -306
  122. data/data/ariadna/workflows/set-profile.md +0 -80
  123. data/data/ariadna/workflows/settings.md +0 -145
  124. data/data/ariadna/workflows/transition.md +0 -493
  125. data/data/ariadna/workflows/update.md +0 -212
  126. data/data/ariadna/workflows/verify-phase.md +0 -226
  127. data/data/commands/ariadna/add-todo.md +0 -42
  128. data/data/commands/ariadna/audit-milestone.md +0 -42
  129. data/data/commands/ariadna/check-todos.md +0 -41
  130. data/data/commands/ariadna/complete-milestone.md +0 -136
  131. data/data/commands/ariadna/discuss-phase.md +0 -86
  132. data/data/commands/ariadna/help.md +0 -22
  133. data/data/commands/ariadna/list-phase-assumptions.md +0 -50
  134. data/data/commands/ariadna/pause-work.md +0 -35
  135. data/data/commands/ariadna/plan-milestone-gaps.md +0 -40
  136. data/data/commands/ariadna/reapply-patches.md +0 -110
  137. data/data/commands/ariadna/research-phase.md +0 -187
  138. data/data/commands/ariadna/resume-work.md +0 -40
  139. data/data/commands/ariadna/set-profile.md +0 -34
  140. data/data/commands/ariadna/settings.md +0 -36
  141. data/data/commands/ariadna/update.md +0 -37
  142. data/data/guides/backend.md +0 -3069
  143. data/data/guides/frontend.md +0 -1479
  144. data/data/guides/performance.md +0 -1193
  145. data/data/guides/security.md +0 -1522
  146. data/data/guides/style-guide.md +0 -1091
  147. data/data/guides/testing.md +0 -504
  148. data/data/templates.md +0 -94
@@ -1,609 +0,0 @@
1
- # Phase Prompt Template
2
-
3
- > **Note:** Planning methodology is in `agents/ariadna-planner.md`.
4
- > This template defines the PLAN.md output format that the agent produces.
5
-
6
- Template for `.ariadna_planning/phases/XX-name/{phase}-{plan}-PLAN.md` - executable phase plans optimized for parallel execution.
7
-
8
- **Naming:** Use `{phase}-{plan}-PLAN.md` format (e.g., `01-02-PLAN.md` for Phase 1, Plan 2)
9
-
10
- ---
11
-
12
- ## File Template
13
-
14
- ```markdown
15
- ---
16
- phase: XX-name
17
- plan: NN
18
- type: execute
19
- wave: N # Execution wave (1, 2, 3...). Pre-computed at plan time.
20
- depends_on: [] # Plan IDs this plan requires (e.g., ["01-01"]).
21
- files_modified: [] # Files this plan modifies.
22
- autonomous: true # false if plan has checkpoints requiring user interaction
23
- user_setup: [] # Human-required setup Claude cannot automate (see below)
24
- domain: general # optional: backend, frontend, testing, general
25
- domain_guide: ~ # optional: guide filename (e.g., backend.md)
26
-
27
- # Goal-backward verification (derived during planning, verified after execution)
28
- must_haves:
29
- truths: [] # Observable behaviors that must be true for goal achievement
30
- artifacts: [] # Files that must exist with real implementation
31
- key_links: [] # Critical connections between artifacts
32
- ---
33
-
34
- <objective>
35
- [What this plan accomplishes]
36
-
37
- Purpose: [Why this matters for the project]
38
- Output: [What artifacts will be created]
39
- </objective>
40
-
41
- <execution_context>
42
- @~/.claude/ariadna/workflows/execute-plan.md
43
- @~/.claude/ariadna/templates/summary.md
44
- [If plan contains checkpoint tasks (type="checkpoint:*"), add:]
45
- @~/.claude/ariadna/references/checkpoints.md
46
- </execution_context>
47
-
48
- <context>
49
- @.ariadna_planning/PROJECT.md
50
- @.ariadna_planning/ROADMAP.md
51
- @.ariadna_planning/STATE.md
52
-
53
- # Only reference prior plan SUMMARYs if genuinely needed:
54
- # - This plan uses types/exports from prior plan
55
- # - Prior plan made decision that affects this plan
56
- # Do NOT reflexively chain: Plan 02 refs 01, Plan 03 refs 02...
57
-
58
- [Relevant source files:]
59
- @app/path/to/relevant.rb
60
- </context>
61
-
62
- <tasks>
63
-
64
- <task type="auto">
65
- <name>Task 1: [Action-oriented name]</name>
66
- <files>path/to/file.ext, another/file.ext</files>
67
- <action>[Specific implementation - what to do, how to do it, what to avoid and WHY]</action>
68
- <verify>[Command or check to prove it worked]</verify>
69
- <done>[Measurable acceptance criteria]</done>
70
- </task>
71
-
72
- <task type="auto">
73
- <name>Task 2: [Action-oriented name]</name>
74
- <files>path/to/file.ext</files>
75
- <action>[Specific implementation]</action>
76
- <verify>[Command or check]</verify>
77
- <done>[Acceptance criteria]</done>
78
- </task>
79
-
80
- <!-- For checkpoint task examples and patterns, see @~/.claude/ariadna/references/checkpoints.md -->
81
- <!-- Key rule: Claude starts dev server BEFORE human-verify checkpoints. User only visits URLs. -->
82
-
83
- <task type="checkpoint:decision" gate="blocking">
84
- <decision>[What needs deciding]</decision>
85
- <context>[Why this decision matters]</context>
86
- <options>
87
- <option id="option-a"><name>[Name]</name><pros>[Benefits]</pros><cons>[Tradeoffs]</cons></option>
88
- <option id="option-b"><name>[Name]</name><pros>[Benefits]</pros><cons>[Tradeoffs]</cons></option>
89
- </options>
90
- <resume-signal>Select: option-a or option-b</resume-signal>
91
- </task>
92
-
93
- <task type="checkpoint:human-verify" gate="blocking">
94
- <what-built>[What Claude built] - server running at [URL]</what-built>
95
- <how-to-verify>Visit [URL] and verify: [visual checks only, NO CLI commands]</how-to-verify>
96
- <resume-signal>Type "approved" or describe issues</resume-signal>
97
- </task>
98
-
99
- </tasks>
100
-
101
- <verification>
102
- Before declaring plan complete:
103
- - [ ] [Specific test command]
104
- - [ ] [Build/type check passes]
105
- - [ ] [Behavior verification]
106
- </verification>
107
-
108
- <success_criteria>
109
-
110
- - All tasks completed
111
- - All verification checks pass
112
- - No errors or warnings introduced
113
- - [Plan-specific criteria]
114
- </success_criteria>
115
-
116
- <output>
117
- After completion, create `.ariadna_planning/phases/XX-name/{phase}-{plan}-SUMMARY.md`
118
- </output>
119
- ```
120
-
121
- ---
122
-
123
- ## Frontmatter Fields
124
-
125
- | Field | Required | Purpose |
126
- |-------|----------|---------|
127
- | `phase` | Yes | Phase identifier (e.g., `01-foundation`) |
128
- | `plan` | Yes | Plan number within phase (e.g., `01`, `02`) |
129
- | `type` | Yes | Always `execute` for standard plans, `tdd` for TDD plans |
130
- | `wave` | Yes | Execution wave number (1, 2, 3...). Pre-computed at plan time. |
131
- | `depends_on` | Yes | Array of plan IDs this plan requires. |
132
- | `files_modified` | Yes | Files this plan touches. |
133
- | `autonomous` | Yes | `true` if no checkpoints, `false` if has checkpoints |
134
- | `user_setup` | No | Array of human-required setup items (external services) |
135
- | `domain` | No | Domain assignment: `backend`, `frontend`, `testing`, `general` (for domain-split execution) |
136
- | `domain_guide` | No | Guide filename for domain executor (e.g., `backend.md`) |
137
- | `must_haves` | Yes | Goal-backward verification criteria (see below) |
138
-
139
- **Wave is pre-computed:** Wave numbers are assigned during `/ariadna:plan-phase`. Execute-phase reads `wave` directly from frontmatter and groups plans by wave number. No runtime dependency analysis needed.
140
-
141
- **Must-haves enable verification:** The `must_haves` field carries goal-backward requirements from planning to execution. After all plans complete, execute-phase spawns a verification subagent that checks these criteria against the actual codebase.
142
-
143
- ---
144
-
145
- ## Parallel vs Sequential
146
-
147
- <parallel_examples>
148
-
149
- **Wave 1 candidates (parallel):**
150
-
151
- ```yaml
152
- # Plan 01 - User feature
153
- wave: 1
154
- depends_on: []
155
- files_modified: [app/models/user.rb, app/controllers/users_controller.rb]
156
- autonomous: true
157
-
158
- # Plan 02 - Product feature (no overlap with Plan 01)
159
- wave: 1
160
- depends_on: []
161
- files_modified: [app/models/product.rb, app/controllers/products_controller.rb]
162
- autonomous: true
163
-
164
- # Plan 03 - Order feature (no overlap)
165
- wave: 1
166
- depends_on: []
167
- files_modified: [app/models/order.rb, app/controllers/orders_controller.rb]
168
- autonomous: true
169
- ```
170
-
171
- All three run in parallel (Wave 1) - no dependencies, no file conflicts.
172
-
173
- **Sequential (genuine dependency):**
174
-
175
- ```yaml
176
- # Plan 01 - Auth foundation
177
- wave: 1
178
- depends_on: []
179
- files_modified: [app/services/authentication.rb, app/controllers/concerns/authenticatable.rb]
180
- autonomous: true
181
-
182
- # Plan 02 - Protected features (needs auth)
183
- wave: 2
184
- depends_on: ["01"]
185
- files_modified: [app/controllers/dashboards_controller.rb]
186
- autonomous: true
187
- ```
188
-
189
- Plan 02 in Wave 2 waits for Plan 01 in Wave 1 - genuine dependency on auth types/middleware.
190
-
191
- **Checkpoint plan:**
192
-
193
- ```yaml
194
- # Plan 03 - UI with verification
195
- wave: 3
196
- depends_on: ["01", "02"]
197
- files_modified: [app/views/dashboards/show.html.erb]
198
- autonomous: false # Has checkpoint:human-verify
199
- ```
200
-
201
- Wave 3 runs after Waves 1 and 2. Pauses at checkpoint, orchestrator presents to user, resumes on approval.
202
-
203
- **Domain-split (horizontal by expertise):**
204
-
205
- ```yaml
206
- # Plan 01 - Backend: User model + controller
207
- wave: 1
208
- depends_on: []
209
- files_modified: [app/models/user.rb, app/controllers/users_controller.rb]
210
- autonomous: true
211
- domain: backend
212
- domain_guide: backend.md
213
-
214
- # Plan 02 - Backend: Product model + controller
215
- wave: 1
216
- depends_on: []
217
- files_modified: [app/models/product.rb, app/controllers/products_controller.rb]
218
- autonomous: true
219
- domain: backend
220
- domain_guide: backend.md
221
-
222
- # Plan 03 - Frontend: User + Product views
223
- wave: 2
224
- depends_on: ["01", "02"]
225
- files_modified: [app/views/users/, app/views/products/]
226
- autonomous: true
227
- domain: frontend
228
- domain_guide: frontend.md
229
-
230
- # Plan 04 - Testing: Model + controller tests
231
- wave: 2
232
- depends_on: ["01", "02"]
233
- files_modified: [test/models/user_test.rb, test/controllers/users_controller_test.rb]
234
- autonomous: true
235
- domain: testing
236
- domain_guide: testing.md
237
- ```
238
-
239
- Backend plans run in Wave 1. Frontend and testing plans run in Wave 2 (parallel, both depend on backend). Domain executors load their respective guides for domain-specific expertise.
240
-
241
- </parallel_examples>
242
-
243
- ---
244
-
245
- ## Context Section
246
-
247
- **Parallel-aware context:**
248
-
249
- ```markdown
250
- <context>
251
- @.ariadna_planning/PROJECT.md
252
- @.ariadna_planning/ROADMAP.md
253
- @.ariadna_planning/STATE.md
254
-
255
- # Only include SUMMARY refs if genuinely needed:
256
- # - This plan imports types from prior plan
257
- # - Prior plan made decision affecting this plan
258
- # - Prior plan's output is input to this plan
259
- #
260
- # Independent plans need NO prior SUMMARY references.
261
- # Do NOT reflexively chain: 02 refs 01, 03 refs 02...
262
-
263
- @app/models/relevant.rb
264
- </context>
265
- ```
266
-
267
- **Bad pattern (creates false dependencies):**
268
- ```markdown
269
- <context>
270
- @.ariadna_planning/phases/03-features/03-01-SUMMARY.md # Just because it's earlier
271
- @.ariadna_planning/phases/03-features/03-02-SUMMARY.md # Reflexive chaining
272
- </context>
273
- ```
274
-
275
- ---
276
-
277
- ## Scope Guidance
278
-
279
- **Plan sizing:**
280
-
281
- - 2-3 tasks per plan
282
- - ~50% context usage maximum
283
- - Complex phases: Multiple focused plans, not one large plan
284
-
285
- **When to split:**
286
-
287
- - Different subsystems (auth vs API vs UI)
288
- - >3 tasks
289
- - Risk of context overflow
290
- - TDD candidates - separate plans
291
-
292
- **Vertical slices preferred:**
293
-
294
- ```
295
- PREFER: Plan 01 = User (model + API + UI)
296
- Plan 02 = Product (model + API + UI)
297
-
298
- AVOID: Plan 01 = All models
299
- Plan 02 = All APIs
300
- Plan 03 = All UIs
301
- ```
302
-
303
- ---
304
-
305
- ## TDD Plans
306
-
307
- TDD features get dedicated plans with `type: tdd`.
308
-
309
- **Heuristic:** Can you write `assert_equal expected, fn(input)` before writing `fn`?
310
- → Yes: Create a TDD plan
311
- → No: Standard task in standard plan
312
-
313
- See `~/.claude/ariadna/references/tdd.md` for TDD plan structure.
314
-
315
- ---
316
-
317
- ## Task Types
318
-
319
- | Type | Use For | Autonomy |
320
- |------|---------|----------|
321
- | `auto` | Everything Claude can do independently | Fully autonomous |
322
- | `checkpoint:human-verify` | Visual/functional verification | Pauses, returns to orchestrator |
323
- | `checkpoint:decision` | Implementation choices | Pauses, returns to orchestrator |
324
- | `checkpoint:human-action` | Truly unavoidable manual steps (rare) | Pauses, returns to orchestrator |
325
-
326
- **Checkpoint behavior in parallel execution:**
327
- - Plan runs until checkpoint
328
- - Agent returns with checkpoint details + agent_id
329
- - Orchestrator presents to user
330
- - User responds
331
- - Orchestrator resumes agent with `resume: agent_id`
332
-
333
- ---
334
-
335
- ## Examples
336
-
337
- **Autonomous parallel plan:**
338
-
339
- ```markdown
340
- ---
341
- phase: 03-features
342
- plan: 01
343
- type: execute
344
- wave: 1
345
- depends_on: []
346
- files_modified: [app/models/user.rb, app/controllers/users_controller.rb, app/views/users/index.html.erb]
347
- autonomous: true
348
- ---
349
-
350
- <objective>
351
- Implement complete User feature as vertical slice.
352
-
353
- Purpose: Self-contained user management that can run parallel to other features.
354
- Output: User model, controller, and view templates.
355
- </objective>
356
-
357
- <context>
358
- @.ariadna_planning/PROJECT.md
359
- @.ariadna_planning/ROADMAP.md
360
- @.ariadna_planning/STATE.md
361
- </context>
362
-
363
- <tasks>
364
- <task type="auto">
365
- <name>Task 1: Create User model and migration</name>
366
- <files>app/models/user.rb, db/migrate/create_users.rb</files>
367
- <action>Generate User model with email, name, timestamps. Add validations for presence and uniqueness.</action>
368
- <verify>bundle exec rake test passes</verify>
369
- <done>User model with validations and passing migration</done>
370
- </task>
371
-
372
- <task type="auto">
373
- <name>Task 2: Create User controller and views</name>
374
- <files>app/controllers/users_controller.rb, app/views/users/</files>
375
- <action>RESTful UsersController with index, show, create actions. Add corresponding view templates.</action>
376
- <verify>bundle exec rake test passes</verify>
377
- <done>All CRUD operations work</done>
378
- </task>
379
- </tasks>
380
-
381
- <verification>
382
- - [ ] bundle exec rake test passes
383
- - [ ] API endpoints respond correctly
384
- </verification>
385
-
386
- <success_criteria>
387
- - All tasks completed
388
- - User feature works end-to-end
389
- </success_criteria>
390
-
391
- <output>
392
- After completion, create `.ariadna_planning/phases/03-features/03-01-SUMMARY.md`
393
- </output>
394
- ```
395
-
396
- **Plan with checkpoint (non-autonomous):**
397
-
398
- ```markdown
399
- ---
400
- phase: 03-features
401
- plan: 03
402
- type: execute
403
- wave: 2
404
- depends_on: ["03-01", "03-02"]
405
- files_modified: [app/controllers/dashboards_controller.rb, app/views/dashboards/show.html.erb]
406
- autonomous: false
407
- ---
408
-
409
- <objective>
410
- Build dashboard with visual verification.
411
-
412
- Purpose: Integrate user and product features into unified view.
413
- Output: Working dashboard controller and view.
414
- </objective>
415
-
416
- <execution_context>
417
- @~/.claude/ariadna/workflows/execute-plan.md
418
- @~/.claude/ariadna/templates/summary.md
419
- @~/.claude/ariadna/references/checkpoints.md
420
- </execution_context>
421
-
422
- <context>
423
- @.ariadna_planning/PROJECT.md
424
- @.ariadna_planning/ROADMAP.md
425
- @.ariadna_planning/phases/03-features/03-01-SUMMARY.md
426
- @.ariadna_planning/phases/03-features/03-02-SUMMARY.md
427
- </context>
428
-
429
- <tasks>
430
- <task type="auto">
431
- <name>Task 1: Build Dashboard controller and view</name>
432
- <files>app/controllers/dashboards_controller.rb, app/views/dashboards/show.html.erb</files>
433
- <action>Create DashboardsController#show with users and products data. Build responsive view with partials for user list and product list.</action>
434
- <verify>bundle exec rake test passes</verify>
435
- <done>Dashboard renders without errors</done>
436
- </task>
437
-
438
- <!-- Checkpoint pattern: Claude starts server, user visits URL. See checkpoints.md for full patterns. -->
439
- <task type="auto">
440
- <name>Start dev server</name>
441
- <action>Run `bin/rails server` in background, wait for ready</action>
442
- <verify>curl localhost:3000 returns 200</verify>
443
- </task>
444
-
445
- <task type="checkpoint:human-verify" gate="blocking">
446
- <what-built>Dashboard - server at http://localhost:3000</what-built>
447
- <how-to-verify>Visit localhost:3000/dashboard. Check: desktop grid, mobile stack, no scroll issues.</how-to-verify>
448
- <resume-signal>Type "approved" or describe issues</resume-signal>
449
- </task>
450
- </tasks>
451
-
452
- <verification>
453
- - [ ] bundle exec rake test passes
454
- - [ ] Visual verification passed
455
- </verification>
456
-
457
- <success_criteria>
458
- - All tasks completed
459
- - User approved visual layout
460
- </success_criteria>
461
-
462
- <output>
463
- After completion, create `.ariadna_planning/phases/03-features/03-03-SUMMARY.md`
464
- </output>
465
- ```
466
-
467
- ---
468
-
469
- ## Anti-Patterns
470
-
471
- **Bad: Reflexive dependency chaining**
472
- ```yaml
473
- depends_on: ["03-01"] # Just because 01 comes before 02
474
- ```
475
-
476
- **Bad: Horizontal layer grouping**
477
- ```
478
- Plan 01: All models
479
- Plan 02: All APIs (depends on 01)
480
- Plan 03: All UIs (depends on 02)
481
- ```
482
-
483
- **Bad: Missing autonomy flag**
484
- ```yaml
485
- # Has checkpoint but no autonomous: false
486
- depends_on: []
487
- files_modified: [...]
488
- # autonomous: ??? <- Missing!
489
- ```
490
-
491
- **Bad: Vague tasks**
492
- ```xml
493
- <task type="auto">
494
- <name>Set up authentication</name>
495
- <action>Add auth to the app</action>
496
- </task>
497
- ```
498
-
499
- ---
500
-
501
- ## Guidelines
502
-
503
- - Always use XML structure for Claude parsing
504
- - Include `wave`, `depends_on`, `files_modified`, `autonomous` in every plan
505
- - Prefer vertical slices over horizontal layers
506
- - Only reference prior SUMMARYs when genuinely needed
507
- - Group checkpoints with related auto tasks in same plan
508
- - 2-3 tasks per plan, ~50% context max
509
-
510
- ---
511
-
512
- ## User Setup (External Services)
513
-
514
- When a plan introduces external services requiring human configuration, declare in frontmatter:
515
-
516
- ```yaml
517
- user_setup:
518
- - service: stripe
519
- why: "Payment processing requires API keys"
520
- env_vars:
521
- - name: STRIPE_SECRET_KEY
522
- source: "Stripe Dashboard → Developers → API keys → Secret key"
523
- - name: STRIPE_WEBHOOK_SECRET
524
- source: "Stripe Dashboard → Developers → Webhooks → Signing secret"
525
- dashboard_config:
526
- - task: "Create webhook endpoint"
527
- location: "Stripe Dashboard → Developers → Webhooks → Add endpoint"
528
- details: "URL: https://[your-domain]/api/webhooks/stripe"
529
- local_dev:
530
- - "stripe listen --forward-to localhost:3000/api/webhooks/stripe"
531
- ```
532
-
533
- **The automation-first rule:** `user_setup` contains ONLY what Claude literally cannot do:
534
- - Account creation (requires human signup)
535
- - Secret retrieval (requires dashboard access)
536
- - Dashboard configuration (requires human in browser)
537
-
538
- **NOT included:** Package installs, code changes, file creation, CLI commands Claude can run.
539
-
540
- **Result:** Execute-plan generates `{phase}-USER-SETUP.md` with checklist for the user.
541
-
542
- See `~/.claude/ariadna/templates/user-setup.md` for full schema and examples
543
-
544
- ---
545
-
546
- ## Must-Haves (Goal-Backward Verification)
547
-
548
- The `must_haves` field defines what must be TRUE for the phase goal to be achieved. Derived during planning, verified after execution.
549
-
550
- **Structure:**
551
-
552
- ```yaml
553
- must_haves:
554
- truths:
555
- - "User can see existing messages"
556
- - "User can send a message"
557
- - "Messages persist across refresh"
558
- artifacts:
559
- - path: "app/views/messages/index.html.erb"
560
- provides: "Message list rendering"
561
- min_lines: 30
562
- - path: "app/controllers/messages_controller.rb"
563
- provides: "Message CRUD operations"
564
- exports: ["index", "create"]
565
- - path: "app/models/message.rb"
566
- provides: "Message model"
567
- contains: "class Message"
568
- key_links:
569
- - from: "app/views/messages/index.html.erb"
570
- to: "messages_path"
571
- via: "form_with and turbo_stream"
572
- pattern: "form_with.*message"
573
- - from: "app/controllers/messages_controller.rb"
574
- to: "Message.where"
575
- via: "ActiveRecord query"
576
- pattern: "Message\\.(where|create|find)"
577
- ```
578
-
579
- **Field descriptions:**
580
-
581
- | Field | Purpose |
582
- |-------|---------|
583
- | `truths` | Observable behaviors from user perspective. Each must be testable. |
584
- | `artifacts` | Files that must exist with real implementation. |
585
- | `artifacts[].path` | File path relative to project root. |
586
- | `artifacts[].provides` | What this artifact delivers. |
587
- | `artifacts[].min_lines` | Optional. Minimum lines to be considered substantive. |
588
- | `artifacts[].exports` | Optional. Expected exports to verify. |
589
- | `artifacts[].contains` | Optional. Pattern that must exist in file. |
590
- | `key_links` | Critical connections between artifacts. |
591
- | `key_links[].from` | Source artifact. |
592
- | `key_links[].to` | Target artifact or endpoint. |
593
- | `key_links[].via` | How they connect (description). |
594
- | `key_links[].pattern` | Optional. Regex to verify connection exists. |
595
-
596
- **Why this matters:**
597
-
598
- Task completion ≠ Goal achievement. A task "create chat component" can complete by creating a placeholder. The `must_haves` field captures what must actually work, enabling verification to catch gaps before they compound.
599
-
600
- **Verification flow:**
601
-
602
- 1. Plan-phase derives must_haves from phase goal (goal-backward)
603
- 2. Must_haves written to PLAN.md frontmatter
604
- 3. Execute-phase runs all plans
605
- 4. Verification subagent checks must_haves against codebase
606
- 5. Gaps found → fix plans created → execute → re-verify
607
- 6. All must_haves pass → phase complete
608
-
609
- See `~/.claude/ariadna/workflows/verify-phase.md` for verification logic.