ariadna 1.3.0 → 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 (149) 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. data/lib/ariadna.rb +1 -0
  61. metadata +20 -91
  62. data/data/agents/ariadna-backend-executor.md +0 -261
  63. data/data/agents/ariadna-frontend-executor.md +0 -259
  64. data/data/agents/ariadna-integration-checker.md +0 -418
  65. data/data/agents/ariadna-phase-researcher.md +0 -469
  66. data/data/agents/ariadna-plan-checker.md +0 -622
  67. data/data/agents/ariadna-project-researcher.md +0 -618
  68. data/data/agents/ariadna-research-synthesizer.md +0 -236
  69. data/data/agents/ariadna-test-executor.md +0 -266
  70. data/data/ariadna/references/checkpoints.md +0 -772
  71. data/data/ariadna/references/continuation-format.md +0 -249
  72. data/data/ariadna/references/decimal-phase-calculation.md +0 -65
  73. data/data/ariadna/references/git-integration.md +0 -248
  74. data/data/ariadna/references/git-planning-commit.md +0 -38
  75. data/data/ariadna/references/model-profile-resolution.md +0 -32
  76. data/data/ariadna/references/model-profiles.md +0 -73
  77. data/data/ariadna/references/phase-argument-parsing.md +0 -61
  78. data/data/ariadna/references/planning-config.md +0 -194
  79. data/data/ariadna/references/questioning.md +0 -153
  80. data/data/ariadna/references/rails-conventions.md +0 -416
  81. data/data/ariadna/references/tdd.md +0 -267
  82. data/data/ariadna/references/ui-brand.md +0 -160
  83. data/data/ariadna/references/verification-patterns.md +0 -853
  84. data/data/ariadna/templates/codebase/architecture.md +0 -481
  85. data/data/ariadna/templates/codebase/concerns.md +0 -380
  86. data/data/ariadna/templates/codebase/conventions.md +0 -434
  87. data/data/ariadna/templates/codebase/integrations.md +0 -328
  88. data/data/ariadna/templates/codebase/stack.md +0 -189
  89. data/data/ariadna/templates/codebase/structure.md +0 -418
  90. data/data/ariadna/templates/codebase/testing.md +0 -606
  91. data/data/ariadna/templates/context.md +0 -283
  92. data/data/ariadna/templates/continue-here.md +0 -78
  93. data/data/ariadna/templates/debug-subagent-prompt.md +0 -91
  94. data/data/ariadna/templates/phase-prompt.md +0 -609
  95. data/data/ariadna/templates/planner-subagent-prompt.md +0 -117
  96. data/data/ariadna/templates/research-project/ARCHITECTURE.md +0 -439
  97. data/data/ariadna/templates/research-project/FEATURES.md +0 -168
  98. data/data/ariadna/templates/research-project/PITFALLS.md +0 -406
  99. data/data/ariadna/templates/research-project/STACK.md +0 -251
  100. data/data/ariadna/templates/research-project/SUMMARY.md +0 -247
  101. data/data/ariadna/templates/state.md +0 -176
  102. data/data/ariadna/templates/summary-complex.md +0 -59
  103. data/data/ariadna/templates/summary-minimal.md +0 -41
  104. data/data/ariadna/templates/summary-standard.md +0 -48
  105. data/data/ariadna/templates/user-setup.md +0 -310
  106. data/data/ariadna/workflows/add-phase.md +0 -111
  107. data/data/ariadna/workflows/add-todo.md +0 -157
  108. data/data/ariadna/workflows/audit-milestone.md +0 -241
  109. data/data/ariadna/workflows/check-todos.md +0 -176
  110. data/data/ariadna/workflows/complete-milestone.md +0 -644
  111. data/data/ariadna/workflows/diagnose-issues.md +0 -219
  112. data/data/ariadna/workflows/discovery-phase.md +0 -289
  113. data/data/ariadna/workflows/discuss-phase.md +0 -408
  114. data/data/ariadna/workflows/execute-plan.md +0 -448
  115. data/data/ariadna/workflows/help.md +0 -470
  116. data/data/ariadna/workflows/insert-phase.md +0 -129
  117. data/data/ariadna/workflows/list-phase-assumptions.md +0 -178
  118. data/data/ariadna/workflows/pause-work.md +0 -122
  119. data/data/ariadna/workflows/plan-milestone-gaps.md +0 -256
  120. data/data/ariadna/workflows/remove-phase.md +0 -154
  121. data/data/ariadna/workflows/research-phase.md +0 -74
  122. data/data/ariadna/workflows/resume-project.md +0 -306
  123. data/data/ariadna/workflows/set-profile.md +0 -80
  124. data/data/ariadna/workflows/settings.md +0 -145
  125. data/data/ariadna/workflows/transition.md +0 -493
  126. data/data/ariadna/workflows/update.md +0 -212
  127. data/data/ariadna/workflows/verify-phase.md +0 -226
  128. data/data/commands/ariadna/add-todo.md +0 -42
  129. data/data/commands/ariadna/audit-milestone.md +0 -42
  130. data/data/commands/ariadna/check-todos.md +0 -41
  131. data/data/commands/ariadna/complete-milestone.md +0 -136
  132. data/data/commands/ariadna/discuss-phase.md +0 -86
  133. data/data/commands/ariadna/help.md +0 -22
  134. data/data/commands/ariadna/list-phase-assumptions.md +0 -50
  135. data/data/commands/ariadna/pause-work.md +0 -35
  136. data/data/commands/ariadna/plan-milestone-gaps.md +0 -40
  137. data/data/commands/ariadna/reapply-patches.md +0 -110
  138. data/data/commands/ariadna/research-phase.md +0 -187
  139. data/data/commands/ariadna/resume-work.md +0 -40
  140. data/data/commands/ariadna/set-profile.md +0 -34
  141. data/data/commands/ariadna/settings.md +0 -36
  142. data/data/commands/ariadna/update.md +0 -37
  143. data/data/guides/backend.md +0 -3069
  144. data/data/guides/frontend.md +0 -1479
  145. data/data/guides/performance.md +0 -1193
  146. data/data/guides/security.md +0 -1522
  147. data/data/guides/style-guide.md +0 -1091
  148. data/data/guides/testing.md +0 -504
  149. data/data/templates.md +0 -94
@@ -1,385 +1,29 @@
1
- <purpose>
2
- Check project progress, summarize recent work and what's ahead, then intelligently route to the next action — either executing an existing plan or creating the next one. Provides situational awareness before continuing work.
3
- </purpose>
4
-
5
- <required_reading>
6
- Read all files referenced by the invoking prompt's execution_context before starting.
7
- </required_reading>
8
-
9
- <process>
1
+ ---
2
+ name: progress
3
+ description: Check project progress and route to the next action — absorbs resume-project and pause-work.
4
+ ---
10
5
 
11
- <step name="init_context">
12
- **Load progress context (with file contents to avoid redundant reads):**
6
+ ## Goal
7
+ Give instant situational awareness (recent work, current position, blockers) then route precisely to the next command — execute an existing plan, create the next one, fix UAT gaps, complete a milestone, or start the next milestone cycle. Also handles session pause (create `.continue-here.md`) and resume (restore from checkpoint).
13
8
 
9
+ ## Context Loading
14
10
  ```bash
15
11
  INIT=$(ariadna-tools init progress --include state,roadmap,project,config)
16
- ```
17
-
18
- Extract from init JSON: `project_exists`, `roadmap_exists`, `state_exists`, `phases`, `current_phase`, `next_phase`, `milestone_version`, `completed_count`, `phase_count`, `paused_at`.
19
-
20
- **File contents (from --include):** `state_content`, `roadmap_content`, `project_content`, `config_content`. These are null if files don't exist.
21
-
22
- If `project_exists` is false (no `.ariadna_planning/` directory):
23
-
24
- ```
25
- No planning structure found.
26
-
27
- Run /ariadna:new-project to start a new project.
28
- ```
29
-
30
- Exit.
31
-
32
- If missing STATE.md: suggest `/ariadna:new-project`.
33
-
34
- **If ROADMAP.md missing but PROJECT.md exists:**
35
-
36
- This means a milestone was completed and archived. Go to **Route F** (between milestones).
37
-
38
- If missing both ROADMAP.md and PROJECT.md: suggest `/ariadna:new-project`.
39
- </step>
40
-
41
- <step name="load">
42
- **Use project context from INIT:**
43
-
44
- All file contents are already loaded via `--include` in init_context step:
45
- - `state_content` — living memory (position, decisions, issues)
46
- - `roadmap_content` — phase structure and objectives
47
- - `project_content` — current state (What This Is, Core Value, Requirements)
48
- - `config_content` — settings (model_profile, workflow toggles)
49
-
50
- No additional file reads needed.
51
- </step>
52
-
53
- <step name="analyze_roadmap">
54
- **Get comprehensive roadmap analysis (replaces manual parsing):**
55
-
56
- ```bash
57
12
  ROADMAP=$(ariadna-tools roadmap analyze)
58
13
  ```
14
+ Parse from init: `project_exists`, `roadmap_exists`, `paused_at`. If `project_exists` is false, suggest `/ariadna:new-project` and exit. If ROADMAP.md missing but PROJECT.md exists, route to **between milestones** (suggest `/ariadna:new-milestone`). Read 2-3 most recent SUMMARY.md files for recent-work context.
59
15
 
60
- This returns structured JSON with:
61
- - All phases with disk status (complete/partial/planned/empty/no_directory)
62
- - Goal and dependencies per phase
63
- - Plan and summary counts per phase
64
- - Aggregated stats: total plans, summaries, progress percent
65
- - Current and next phase identification
66
-
67
- Use this instead of manually reading/parsing ROADMAP.md.
68
- </step>
69
-
70
- <step name="recent">
71
- **Gather recent work context:**
72
-
73
- - Find the 2-3 most recent SUMMARY.md files
74
- - Use `summary-extract` for efficient parsing:
75
- ```bash
76
- ariadna-tools summary-extract <path> --fields one_liner
77
- ```
78
- - This shows "what we've been working on"
79
- </step>
80
-
81
- <step name="position">
82
- **Parse current position from init context and roadmap analysis:**
83
-
84
- - Use `current_phase` and `next_phase` from roadmap analyze
85
- - Use phase-level `has_context` and `has_research` flags from analyze
86
- - Note `paused_at` if work was paused (from init context)
87
- - Count pending todos: use `init todos` or `list-todos`
88
- - Check for active debug sessions: `ls .ariadna_planning/debug/*.md 2>/dev/null | grep -v resolved | wc -l`
89
- </step>
90
-
91
- <step name="report">
92
- **Generate progress bar from ariadna-tools, then present rich status report:**
93
-
94
- ```bash
95
- # Get formatted progress bar
96
- PROGRESS_BAR=$(ariadna-tools progress bar --raw)
97
- ```
98
-
99
- Present:
100
-
101
- ```
102
- # [Project Name]
103
-
104
- **Progress:** {PROGRESS_BAR}
105
- **Profile:** [quality/balanced/budget]
106
-
107
- ## Recent Work
108
- - [Phase X, Plan Y]: [what was accomplished - 1 line from summary-extract]
109
- - [Phase X, Plan Z]: [what was accomplished - 1 line from summary-extract]
110
-
111
- ## Current Position
112
- Phase [N] of [total]: [phase-name]
113
- Plan [M] of [phase-total]: [status]
114
- CONTEXT: [✓ if has_context | - if not]
115
-
116
- ## Key Decisions Made
117
- - [decision 1 from STATE.md]
118
- - [decision 2]
119
-
120
- ## Blockers/Concerns
121
- - [any blockers or concerns from STATE.md]
122
-
123
- ## Pending Todos
124
- - [count] pending — /ariadna:check-todos to review
125
-
126
- ## Active Debug Sessions
127
- - [count] active — /ariadna:debug to continue
128
- (Only show this section if count > 0)
129
-
130
- ## What's Next
131
- [Next phase/plan objective from roadmap analyze]
132
- ```
133
-
134
- </step>
135
-
136
- <step name="route">
137
- **Determine next action based on verified counts.**
138
-
139
- **Step 1: Count plans, summaries, and issues in current phase**
140
-
141
- List files in the current phase directory:
142
-
143
- ```bash
144
- ls -1 .ariadna_planning/phases/[current-phase-dir]/*-PLAN.md 2>/dev/null | wc -l
145
- ls -1 .ariadna_planning/phases/[current-phase-dir]/*-SUMMARY.md 2>/dev/null | wc -l
146
- ls -1 .ariadna_planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null | wc -l
147
- ```
148
-
149
- State: "This phase has {X} plans, {Y} summaries."
150
-
151
- **Step 1.5: Check for unaddressed UAT gaps**
152
-
153
- Check for UAT.md files with status "diagnosed" (has gaps needing fixes).
154
-
155
- ```bash
156
- # Check for diagnosed UAT with gaps
157
- grep -l "status: diagnosed" .ariadna_planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null
158
- ```
159
-
160
- Track:
161
- - `uat_with_gaps`: UAT.md files with status "diagnosed" (gaps need fixing)
162
-
163
- **Step 2: Route based on counts**
164
-
165
- | Condition | Meaning | Action |
166
- |-----------|---------|--------|
167
- | uat_with_gaps > 0 | UAT gaps need fix plans | Go to **Route E** |
168
- | summaries < plans | Unexecuted plans exist | Go to **Route A** |
169
- | summaries = plans AND plans > 0 | Phase complete | Go to Step 3 |
170
- | plans = 0 | Phase not yet planned | Go to **Route B** |
171
-
172
- ---
173
-
174
- **Route A: Unexecuted plan exists**
175
-
176
- Find the first PLAN.md without matching SUMMARY.md.
177
- Read its `<objective>` section.
178
-
179
- ```
180
- ---
181
-
182
- ## ▶ Next Up
183
-
184
- **{phase}-{plan}: [Plan Name]** — [objective summary from PLAN.md]
185
-
186
- `/ariadna:execute-phase {phase}`
187
-
188
- <sub>`/clear` first → fresh context window</sub>
189
-
190
- ---
191
- ```
192
-
193
- ---
194
-
195
- **Route B: Phase needs planning**
196
-
197
- Check if `{phase}-CONTEXT.md` exists in phase directory.
198
-
199
- **If CONTEXT.md exists:**
200
-
201
- ```
202
- ---
203
-
204
- ## ▶ Next Up
205
-
206
- **Phase {N}: {Name}** — {Goal from ROADMAP.md}
207
- <sub>✓ Context gathered, ready to plan</sub>
208
-
209
- `/ariadna:plan-phase {phase-number}`
210
-
211
- <sub>`/clear` first → fresh context window</sub>
212
-
213
- ---
214
- ```
215
-
216
- **If CONTEXT.md does NOT exist:**
217
-
218
- ```
219
- ---
220
-
221
- ## ▶ Next Up
222
-
223
- **Phase {N}: {Name}** — {Goal from ROADMAP.md}
224
-
225
- `/ariadna:discuss-phase {phase}` — gather context and clarify approach
226
-
227
- <sub>`/clear` first → fresh context window</sub>
228
-
229
- ---
230
-
231
- **Also available:**
232
- - `/ariadna:plan-phase {phase}` — skip discussion, plan directly
233
- - `/ariadna:list-phase-assumptions {phase}` — see Claude's assumptions
234
-
235
- ---
236
- ```
237
-
238
- ---
239
-
240
- **Route E: UAT gaps need fix plans**
241
-
242
- UAT.md exists with gaps (diagnosed issues). User needs to plan fixes.
243
-
244
- ```
245
- ---
246
-
247
- ## ⚠ UAT Gaps Found
248
-
249
- **{phase}-UAT.md** has {N} gaps requiring fixes.
250
-
251
- `/ariadna:plan-phase {phase} --gaps`
252
-
253
- <sub>`/clear` first → fresh context window</sub>
254
-
255
- ---
256
-
257
- **Also available:**
258
- - `/ariadna:execute-phase {phase}` — execute phase plans
259
- - `/ariadna:verify-work {phase}` — run more UAT testing
260
-
261
- ---
262
- ```
263
-
264
- ---
265
-
266
- **Step 3: Check milestone status (only when phase complete)**
267
-
268
- Read ROADMAP.md and identify:
269
- 1. Current phase number
270
- 2. All phase numbers in the current milestone section
271
-
272
- Count total phases and identify the highest phase number.
273
-
274
- State: "Current phase is {X}. Milestone has {N} phases (highest: {Y})."
275
-
276
- **Route based on milestone status:**
277
-
278
- | Condition | Meaning | Action |
279
- |-----------|---------|--------|
280
- | current phase < highest phase | More phases remain | Go to **Route C** |
281
- | current phase = highest phase | Milestone complete | Go to **Route D** |
282
-
283
- ---
284
-
285
- **Route C: Phase complete, more phases remain**
286
-
287
- Read ROADMAP.md to get the next phase's name and goal.
288
-
289
- ```
290
- ---
291
-
292
- ## ✓ Phase {Z} Complete
293
-
294
- ## ▶ Next Up
295
-
296
- **Phase {Z+1}: {Name}** — {Goal from ROADMAP.md}
297
-
298
- `/ariadna:discuss-phase {Z+1}` — gather context and clarify approach
299
-
300
- <sub>`/clear` first → fresh context window</sub>
301
-
302
- ---
303
-
304
- **Also available:**
305
- - `/ariadna:plan-phase {Z+1}` — skip discussion, plan directly
306
- - `/ariadna:verify-work {Z}` — user acceptance test before continuing
307
-
308
- ---
309
- ```
310
-
311
- ---
312
-
313
- **Route D: Milestone complete**
314
-
315
- ```
316
- ---
317
-
318
- ## 🎉 Milestone Complete
319
-
320
- All {N} phases finished!
321
-
322
- ## ▶ Next Up
323
-
324
- **Complete Milestone** — archive and prepare for next
325
-
326
- `/ariadna:complete-milestone`
327
-
328
- <sub>`/clear` first → fresh context window</sub>
329
-
330
- ---
331
-
332
- **Also available:**
333
- - `/ariadna:verify-work` — user acceptance test before completing milestone
334
-
335
- ---
336
- ```
337
-
338
- ---
339
-
340
- **Route F: Between milestones (ROADMAP.md missing, PROJECT.md exists)**
341
-
342
- A milestone was completed and archived. Ready to start the next milestone cycle.
343
-
344
- Read MILESTONES.md to find the last completed milestone version.
345
-
346
- ```
347
- ---
348
-
349
- ## ✓ Milestone v{X.Y} Complete
350
-
351
- Ready to plan the next milestone.
352
-
353
- ## ▶ Next Up
354
-
355
- **Start Next Milestone** — questioning → research → requirements → roadmap
356
-
357
- `/ariadna:new-milestone`
358
-
359
- <sub>`/clear` first → fresh context window</sub>
360
-
361
- ---
362
- ```
363
-
364
- </step>
365
-
366
- <step name="edge_cases">
367
- **Handle edge cases:**
368
-
369
- - Phase complete but next phase not planned → offer `/ariadna:plan-phase [next]`
370
- - All work complete → offer milestone completion
371
- - Blockers present → highlight before offering to continue
372
- - Handoff file exists → mention it, offer `/ariadna:resume-work`
373
- </step>
374
-
375
- </process>
16
+ ## Constraints
17
+ - Never take action automatically — always present status first, then route with a command suggestion
18
+ - Routing priority: UAT gaps → unexecuted plans → plan the current phase → complete milestone → new milestone
19
+ - Pause mode: if user says "pause" or "stop", write `.ariadna_planning/phases/{dir}/.continue-here.md` with full work state and commit as WIP
20
+ - Resume mode: detect `.continue-here.md` or incomplete PLAN (no matching SUMMARY) and surface as "Incomplete work detected" before routing
21
+ - Use `ariadna-tools progress bar --raw` for the visual progress bar
376
22
 
377
- <success_criteria>
23
+ ## Success Criteria
24
+ - Status report shows: progress bar, recent work, current position, decisions, blockers, pending todos
25
+ - Routing suggestion is unambiguous — one primary command with `/clear` reminder
26
+ - Pause/resume produces or consumes `.continue-here.md` with specific enough context for a fresh session
378
27
 
379
- - [ ] Rich context provided (recent work, decisions, issues)
380
- - [ ] Current position clear with visual progress
381
- - [ ] What's next clearly explained
382
- - [ ] Smart routing: /ariadna:execute-phase if plans exist, /ariadna:plan-phase if not
383
- - [ ] User confirms before any action
384
- - [ ] Seamless handoff to appropriate ariadna command
385
- </success_criteria>
28
+ ## On Completion
29
+ Present the "Next Up" block with the exact command to run. For pause, confirm handoff file location and show `/ariadna:progress` as the resume trigger.
@@ -1,230 +1,28 @@
1
- <purpose>
2
- Execute small, ad-hoc tasks with Ariadna guarantees (atomic commits, STATE.md tracking) while skipping optional agents (research, plan-checker, verifier). Quick mode spawns ariadna-planner (quick mode) + ariadna-executor(s), tracks tasks in `.ariadna_planning/quick/`, and updates STATE.md's "Quick Tasks Completed" table.
3
- </purpose>
4
-
5
- <required_reading>
6
- Read all files referenced by the invoking prompt's execution_context before starting.
7
- </required_reading>
8
-
9
- <process>
10
- **Step 1: Get task description**
11
-
12
- Prompt user interactively for the task description:
13
-
14
- ```
15
- AskUserQuestion(
16
- header: "Quick Task",
17
- question: "What do you want to do?",
18
- followUp: null
19
- )
20
- ```
21
-
22
- Store response as `$DESCRIPTION`.
23
-
24
- If empty, re-prompt: "Please provide a task description."
25
-
26
- ---
27
-
28
- **Step 2: Initialize**
29
-
30
- ```bash
31
- INIT=$(ariadna-tools init quick "$DESCRIPTION")
32
- ```
33
-
34
- Parse JSON for: `planner_model`, `executor_model`, `commit_docs`, `next_num`, `slug`, `date`, `timestamp`, `quick_dir`, `task_dir`, `roadmap_exists`, `planning_exists`.
35
-
36
- **If `roadmap_exists` is false:** Error — Quick mode requires an active project with ROADMAP.md. Run `/ariadna:new-project` first.
37
-
38
- Quick tasks can run mid-phase - validation only checks ROADMAP.md exists, not phase status.
39
-
40
1
  ---
41
-
42
- **Step 3: Create task directory**
43
-
44
- ```bash
45
- mkdir -p "${task_dir}"
46
- ```
47
-
2
+ name: quick
3
+ description: Execute a small ad-hoc task with Ariadna guarantees — atomic commits and STATE.md tracking — without the full phase workflow.
48
4
  ---
49
5
 
50
- **Step 4: Create quick task directory**
51
-
52
- Create the directory for this quick task:
6
+ ## Goal
7
+ Run a focused, self-contained task outside the planned phase cycle. Spawns a planner (quick mode, 1-3 tasks) and an executor, commits artifacts, and records the task in STATE.md's "Quick Tasks Completed" table.
53
8
 
9
+ ## Context Loading
54
10
  ```bash
55
- QUICK_DIR=".ariadna_planning/quick/${next_num}-${slug}"
56
- mkdir -p "$QUICK_DIR"
57
- ```
58
-
59
- Report to user:
60
- ```
61
- Creating quick task ${next_num}: ${DESCRIPTION}
62
- Directory: ${QUICK_DIR}
63
- ```
64
-
65
- Store `$QUICK_DIR` for use in orchestration.
66
-
67
- ---
68
-
69
- **Step 5: Spawn planner (quick mode)**
70
-
71
- Spawn ariadna-planner with quick mode context:
72
-
73
- ```
74
- Task(
75
- prompt="
76
- <planning_context>
77
-
78
- **Mode:** quick
79
- **Directory:** ${QUICK_DIR}
80
- **Description:** ${DESCRIPTION}
81
-
82
- **Project State:**
83
- @.ariadna_planning/STATE.md
84
-
85
- </planning_context>
86
-
87
- <constraints>
88
- - Create a SINGLE plan with 1-3 focused tasks
89
- - Quick tasks should be atomic and self-contained
90
- - No research phase, no checker phase
91
- - Target ~30% context usage (simple, focused)
92
- </constraints>
93
-
94
- <output>
95
- Write plan to: ${QUICK_DIR}/${next_num}-PLAN.md
96
- Return: ## PLANNING COMPLETE with plan path
97
- </output>
98
- ",
99
- subagent_type="ariadna-planner",
100
- model="{planner_model}",
101
- description="Quick plan: ${DESCRIPTION}"
102
- )
103
- ```
104
-
105
- After planner returns:
106
- 1. Verify plan exists at `${QUICK_DIR}/${next_num}-PLAN.md`
107
- 2. Extract plan count (typically 1 for quick tasks)
108
- 3. Report: "Plan created: ${QUICK_DIR}/${next_num}-PLAN.md"
109
-
110
- If plan not found, error: "Planner failed to create ${next_num}-PLAN.md"
111
-
112
- ---
113
-
114
- **Step 6: Spawn executor**
115
-
116
- Spawn ariadna-executor with plan reference:
117
-
118
- ```
119
- Task(
120
- prompt="
121
- Execute quick task ${next_num}.
122
-
123
- Plan: @${QUICK_DIR}/${next_num}-PLAN.md
124
- Project state: @.ariadna_planning/STATE.md
125
-
126
- <constraints>
127
- - Execute all tasks in the plan
128
- - Commit each task atomically
129
- - Create summary at: ${QUICK_DIR}/${next_num}-SUMMARY.md
130
- - Do NOT update ROADMAP.md (quick tasks are separate from planned phases)
131
- </constraints>
132
- ",
133
- subagent_type="ariadna-executor",
134
- model="{executor_model}",
135
- description="Execute: ${DESCRIPTION}"
136
- )
137
- ```
138
-
139
- After executor returns:
140
- 1. Verify summary exists at `${QUICK_DIR}/${next_num}-SUMMARY.md`
141
- 2. Extract commit hash from executor output
142
- 3. Report completion status
143
-
144
- **Known Claude Code bug (classifyHandoffIfNeeded):** If executor reports "failed" with error `classifyHandoffIfNeeded is not defined`, this is a Claude Code runtime bug — not a real failure. Check if summary file exists and git log shows commits. If so, treat as successful.
145
-
146
- If summary not found, error: "Executor failed to create ${next_num}-SUMMARY.md"
147
-
148
- Note: For quick tasks producing multiple plans (rare), spawn executors in parallel waves per execute-phase patterns.
149
-
150
- ---
151
-
152
- **Step 7: Update STATE.md**
153
-
154
- Update STATE.md with quick task completion record.
155
-
156
- **7a. Check if "Quick Tasks Completed" section exists:**
157
-
158
- Read STATE.md and check for `### Quick Tasks Completed` section.
159
-
160
- **7b. If section doesn't exist, create it:**
161
-
162
- Insert after `### Blockers/Concerns` section:
163
-
164
- ```markdown
165
- ### Quick Tasks Completed
166
-
167
- | # | Description | Date | Commit | Directory |
168
- |---|-------------|------|--------|-----------|
169
- ```
170
-
171
- **7c. Append new row to table:**
172
-
173
- Use `date` from init:
174
- ```markdown
175
- | ${next_num} | ${DESCRIPTION} | ${date} | ${commit_hash} | [${next_num}-${slug}](./quick/${next_num}-${slug}/) |
176
- ```
177
-
178
- **7d. Update "Last activity" line:**
179
-
180
- Use `date` from init:
181
- ```
182
- Last activity: ${date} - Completed quick task ${next_num}: ${DESCRIPTION}
183
- ```
184
-
185
- Use Edit tool to make these changes atomically
186
-
187
- ---
188
-
189
- **Step 8: Final commit and completion**
190
-
191
- Stage and commit quick task artifacts:
192
-
193
- ```bash
194
- ariadna-tools commit "docs(quick-${next_num}): ${DESCRIPTION}" --files ${QUICK_DIR}/${next_num}-PLAN.md ${QUICK_DIR}/${next_num}-SUMMARY.md .ariadna_planning/STATE.md
195
- ```
196
-
197
- Get final commit hash:
198
- ```bash
199
- commit_hash=$(git rev-parse --short HEAD)
200
- ```
201
-
202
- Display completion output:
11
+ INIT=$(ariadna-tools init quick "$DESCRIPTION")
203
12
  ```
204
- ---
205
-
206
- Ariadna > QUICK TASK COMPLETE
13
+ Ask the user for `$DESCRIPTION` first via AskUserQuestion if not provided. Parse: `planner_model`, `executor_model`, `next_num`, `slug`, `task_dir`, `roadmap_exists`. If `roadmap_exists` is false, error — run `/ariadna:new-project` first.
207
14
 
208
- Quick Task ${next_num}: ${DESCRIPTION}
209
-
210
- Summary: ${QUICK_DIR}/${next_num}-SUMMARY.md
211
- Commit: ${commit_hash}
212
-
213
- ---
214
-
215
- Ready for next task: /ariadna:quick
216
- ```
15
+ ## Constraints
16
+ - One plan per quick task (1-3 focused tasks inside the plan); no research, no plan-checker, no verifier
17
+ - Executor must NOT update ROADMAP.md — quick tasks are separate from planned phases
18
+ - Task directory: `.ariadna_planning/quick/{NNN}-{slug}/`; numbered sequentially (001, 002…)
19
+ - Both `{NNN}-PLAN.md` and `{NNN}-SUMMARY.md` must exist before STATE.md update
20
+ - If executor returns `classifyHandoffIfNeeded` error, check for summary file + git log before treating as failure
217
21
 
218
- </process>
22
+ ## Success Criteria
23
+ - `{NNN}-PLAN.md` and `{NNN}-SUMMARY.md` exist in the task directory
24
+ - STATE.md "Quick Tasks Completed" table updated with task row and "Last activity" line
25
+ - All artifacts committed atomically
219
26
 
220
- <success_criteria>
221
- - [ ] ROADMAP.md validation passes
222
- - [ ] User provides task description
223
- - [ ] Slug generated (lowercase, hyphens, max 40 chars)
224
- - [ ] Next number calculated (001, 002, 003...)
225
- - [ ] Directory created at `.ariadna_planning/quick/NNN-slug/`
226
- - [ ] `${next_num}-PLAN.md` created by planner
227
- - [ ] `${next_num}-SUMMARY.md` created by executor
228
- - [ ] STATE.md updated with quick task row
229
- - [ ] Artifacts committed
230
- </success_criteria>
27
+ ## On Completion
28
+ Display task number, description, summary path, and commit hash. Offer `/ariadna:quick` for the next ad-hoc task.
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: roadmap-ops
3
+ description: Modify the roadmap structure — add a phase at the end, insert a decimal phase between existing phases, or remove an unstarted phase with renumbering.
4
+ ---
5
+
6
+ ## Goal
7
+ Apply structural changes to ROADMAP.md cleanly and atomically. Delegates all heavy lifting (directory creation/deletion, renumbering, ROADMAP.md edits) to `ariadna-tools phase {op}` and records the change in STATE.md's "Roadmap Evolution" section.
8
+
9
+ ## Context Loading
10
+ ```bash
11
+ INIT=$(ariadna-tools init phase-op "${target_phase_or_0}")
12
+ ```
13
+ Parse: `roadmap_exists`, `phase_found`, `phase_dir`. If `roadmap_exists` is false, error and exit. Determine operation from `$ARGUMENTS`: `add <description>`, `insert <after_phase> <description>`, or `remove <phase_number>`.
14
+
15
+ ## Constraints
16
+ - **add**: appends a new integer phase (max + 1) at end of milestone; requires description; use for planned work
17
+ - **insert**: inserts a decimal phase (e.g., 72.1) immediately after an existing integer phase; requires `<after_phase>` and description; marks as `(INSERTED)` in ROADMAP.md; use for urgent mid-milestone work only
18
+ - **remove**: only future phases (target > current); requires user confirmation before executing; use `--force` only if user explicitly confirms removal of a phase with existing SUMMARY.md files; the git commit is the historical record — do NOT add redundant notes to STATE.md
19
+ - All three operations commit immediately after execution
20
+ - Do NOT create plans during these operations — that is `/ariadna:plan-phase`'s job
21
+
22
+ ## Success Criteria
23
+ - `ariadna-tools phase {add|insert|remove}` exits successfully with no errors
24
+ - Phase directory created (add/insert) or deleted and subsequent phases renumbered (remove)
25
+ - ROADMAP.md and STATE.md updated; changes committed
26
+
27
+ ## On Completion
28
+ Display a summary of what changed (new phase number/directory, or removed phase + renumber count). For add/insert, suggest `/ariadna:plan-phase {N}` as next step. For remove, suggest `/ariadna:progress` to see the updated roadmap.