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.
- checksums.yaml +4 -4
- data/ariadna.gemspec +0 -1
- data/data/agents/ariadna-codebase-mapper.md +34 -722
- data/data/agents/ariadna-debugger.md +44 -1139
- data/data/agents/ariadna-executor.md +75 -396
- data/data/agents/ariadna-planner.md +78 -1215
- data/data/agents/ariadna-roadmapper.md +55 -582
- data/data/agents/ariadna-verifier.md +60 -702
- data/data/ariadna/templates/config.json +8 -33
- data/data/ariadna/workflows/debug.md +28 -0
- data/data/ariadna/workflows/execute-phase.md +31 -513
- data/data/ariadna/workflows/map-codebase.md +20 -319
- data/data/ariadna/workflows/new-milestone.md +20 -365
- data/data/ariadna/workflows/new-project.md +19 -880
- data/data/ariadna/workflows/plan-phase.md +24 -443
- data/data/ariadna/workflows/progress.md +20 -376
- data/data/ariadna/workflows/quick.md +19 -221
- data/data/ariadna/workflows/roadmap-ops.md +28 -0
- data/data/ariadna/workflows/verify-work.md +23 -560
- data/data/commands/ariadna/add-phase.md +11 -22
- data/data/commands/ariadna/debug.md +11 -143
- data/data/commands/ariadna/execute-phase.md +12 -30
- data/data/commands/ariadna/insert-phase.md +7 -14
- data/data/commands/ariadna/map-codebase.md +16 -49
- data/data/commands/ariadna/new-milestone.md +12 -25
- data/data/commands/ariadna/new-project.md +22 -26
- data/data/commands/ariadna/plan-phase.md +13 -22
- data/data/commands/ariadna/progress.md +16 -6
- data/data/commands/ariadna/quick.md +9 -11
- data/data/commands/ariadna/remove-phase.md +9 -12
- data/data/commands/ariadna/verify-work.md +14 -19
- data/data/skills/rails-backend/API.md +138 -0
- data/data/skills/rails-backend/CONTROLLERS.md +154 -0
- data/data/skills/rails-backend/JOBS.md +132 -0
- data/data/skills/rails-backend/MODELS.md +213 -0
- data/data/skills/rails-backend/SKILL.md +169 -0
- data/data/skills/rails-frontend/ASSETS.md +154 -0
- data/data/skills/rails-frontend/COMPONENTS.md +253 -0
- data/data/skills/rails-frontend/SKILL.md +187 -0
- data/data/skills/rails-frontend/VIEWS.md +168 -0
- data/data/skills/rails-performance/PROFILING.md +106 -0
- data/data/skills/rails-performance/SKILL.md +217 -0
- data/data/skills/rails-security/AUDIT.md +118 -0
- data/data/skills/rails-security/SKILL.md +422 -0
- data/data/skills/rails-testing/FIXTURES.md +78 -0
- data/data/skills/rails-testing/SKILL.md +160 -0
- data/data/skills/rails-testing/SYSTEM-TESTS.md +73 -0
- data/lib/ariadna/installer.rb +11 -15
- data/lib/ariadna/tools/cli.rb +0 -12
- data/lib/ariadna/tools/config_manager.rb +10 -72
- data/lib/ariadna/tools/frontmatter.rb +23 -1
- data/lib/ariadna/tools/init.rb +201 -401
- data/lib/ariadna/tools/model_profiles.rb +6 -14
- data/lib/ariadna/tools/phase_manager.rb +1 -10
- data/lib/ariadna/tools/state_manager.rb +170 -451
- data/lib/ariadna/tools/template_filler.rb +4 -12
- data/lib/ariadna/tools/verification.rb +21 -399
- data/lib/ariadna/uninstaller.rb +9 -0
- data/lib/ariadna/version.rb +1 -1
- metadata +20 -91
- data/data/agents/ariadna-backend-executor.md +0 -261
- data/data/agents/ariadna-frontend-executor.md +0 -259
- data/data/agents/ariadna-integration-checker.md +0 -418
- data/data/agents/ariadna-phase-researcher.md +0 -469
- data/data/agents/ariadna-plan-checker.md +0 -622
- data/data/agents/ariadna-project-researcher.md +0 -618
- data/data/agents/ariadna-research-synthesizer.md +0 -236
- data/data/agents/ariadna-test-executor.md +0 -266
- data/data/ariadna/references/checkpoints.md +0 -772
- data/data/ariadna/references/continuation-format.md +0 -249
- data/data/ariadna/references/decimal-phase-calculation.md +0 -65
- data/data/ariadna/references/git-integration.md +0 -248
- data/data/ariadna/references/git-planning-commit.md +0 -38
- data/data/ariadna/references/model-profile-resolution.md +0 -32
- data/data/ariadna/references/model-profiles.md +0 -73
- data/data/ariadna/references/phase-argument-parsing.md +0 -61
- data/data/ariadna/references/planning-config.md +0 -194
- data/data/ariadna/references/questioning.md +0 -153
- data/data/ariadna/references/rails-conventions.md +0 -416
- data/data/ariadna/references/tdd.md +0 -267
- data/data/ariadna/references/ui-brand.md +0 -160
- data/data/ariadna/references/verification-patterns.md +0 -853
- data/data/ariadna/templates/codebase/architecture.md +0 -481
- data/data/ariadna/templates/codebase/concerns.md +0 -380
- data/data/ariadna/templates/codebase/conventions.md +0 -434
- data/data/ariadna/templates/codebase/integrations.md +0 -328
- data/data/ariadna/templates/codebase/stack.md +0 -189
- data/data/ariadna/templates/codebase/structure.md +0 -418
- data/data/ariadna/templates/codebase/testing.md +0 -606
- data/data/ariadna/templates/context.md +0 -283
- data/data/ariadna/templates/continue-here.md +0 -78
- data/data/ariadna/templates/debug-subagent-prompt.md +0 -91
- data/data/ariadna/templates/phase-prompt.md +0 -609
- data/data/ariadna/templates/planner-subagent-prompt.md +0 -117
- data/data/ariadna/templates/research-project/ARCHITECTURE.md +0 -439
- data/data/ariadna/templates/research-project/FEATURES.md +0 -168
- data/data/ariadna/templates/research-project/PITFALLS.md +0 -406
- data/data/ariadna/templates/research-project/STACK.md +0 -251
- data/data/ariadna/templates/research-project/SUMMARY.md +0 -247
- data/data/ariadna/templates/state.md +0 -176
- data/data/ariadna/templates/summary-complex.md +0 -59
- data/data/ariadna/templates/summary-minimal.md +0 -41
- data/data/ariadna/templates/summary-standard.md +0 -48
- data/data/ariadna/templates/user-setup.md +0 -310
- data/data/ariadna/workflows/add-phase.md +0 -111
- data/data/ariadna/workflows/add-todo.md +0 -157
- data/data/ariadna/workflows/audit-milestone.md +0 -241
- data/data/ariadna/workflows/check-todos.md +0 -176
- data/data/ariadna/workflows/complete-milestone.md +0 -644
- data/data/ariadna/workflows/diagnose-issues.md +0 -219
- data/data/ariadna/workflows/discovery-phase.md +0 -289
- data/data/ariadna/workflows/discuss-phase.md +0 -408
- data/data/ariadna/workflows/execute-plan.md +0 -448
- data/data/ariadna/workflows/help.md +0 -470
- data/data/ariadna/workflows/insert-phase.md +0 -129
- data/data/ariadna/workflows/list-phase-assumptions.md +0 -178
- data/data/ariadna/workflows/pause-work.md +0 -122
- data/data/ariadna/workflows/plan-milestone-gaps.md +0 -256
- data/data/ariadna/workflows/remove-phase.md +0 -154
- data/data/ariadna/workflows/research-phase.md +0 -74
- data/data/ariadna/workflows/resume-project.md +0 -306
- data/data/ariadna/workflows/set-profile.md +0 -80
- data/data/ariadna/workflows/settings.md +0 -145
- data/data/ariadna/workflows/transition.md +0 -493
- data/data/ariadna/workflows/update.md +0 -212
- data/data/ariadna/workflows/verify-phase.md +0 -226
- data/data/commands/ariadna/add-todo.md +0 -42
- data/data/commands/ariadna/audit-milestone.md +0 -42
- data/data/commands/ariadna/check-todos.md +0 -41
- data/data/commands/ariadna/complete-milestone.md +0 -136
- data/data/commands/ariadna/discuss-phase.md +0 -86
- data/data/commands/ariadna/help.md +0 -22
- data/data/commands/ariadna/list-phase-assumptions.md +0 -50
- data/data/commands/ariadna/pause-work.md +0 -35
- data/data/commands/ariadna/plan-milestone-gaps.md +0 -40
- data/data/commands/ariadna/reapply-patches.md +0 -110
- data/data/commands/ariadna/research-phase.md +0 -187
- data/data/commands/ariadna/resume-work.md +0 -40
- data/data/commands/ariadna/set-profile.md +0 -34
- data/data/commands/ariadna/settings.md +0 -36
- data/data/commands/ariadna/update.md +0 -37
- data/data/guides/backend.md +0 -3069
- data/data/guides/frontend.md +0 -1479
- data/data/guides/performance.md +0 -1193
- data/data/guides/security.md +0 -1522
- data/data/guides/style-guide.md +0 -1091
- data/data/guides/testing.md +0 -504
- 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.
|