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.
- 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
- data/lib/ariadna.rb +1 -0
- 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,178 +0,0 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Surface Claude's assumptions about a phase before planning, enabling users to correct misconceptions early.
|
|
3
|
-
|
|
4
|
-
Key difference from discuss-phase: This is ANALYSIS of what Claude thinks, not INTAKE of what user knows. No file output - purely conversational to prompt discussion.
|
|
5
|
-
</purpose>
|
|
6
|
-
|
|
7
|
-
<process>
|
|
8
|
-
|
|
9
|
-
<step name="validate_phase" priority="first">
|
|
10
|
-
Phase number: $ARGUMENTS (required)
|
|
11
|
-
|
|
12
|
-
**If argument missing:**
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
Error: Phase number required.
|
|
16
|
-
|
|
17
|
-
Usage: /ariadna:list-phase-assumptions [phase-number]
|
|
18
|
-
Example: /ariadna:list-phase-assumptions 3
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
Exit workflow.
|
|
22
|
-
|
|
23
|
-
**If argument provided:**
|
|
24
|
-
Validate phase exists in roadmap:
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
cat .ariadna_planning/ROADMAP.md | grep -i "Phase ${PHASE}"
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
**If phase not found:**
|
|
31
|
-
|
|
32
|
-
```
|
|
33
|
-
Error: Phase ${PHASE} not found in roadmap.
|
|
34
|
-
|
|
35
|
-
Available phases:
|
|
36
|
-
[list phases from roadmap]
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
Exit workflow.
|
|
40
|
-
|
|
41
|
-
**If phase found:**
|
|
42
|
-
Parse phase details from roadmap:
|
|
43
|
-
|
|
44
|
-
- Phase number
|
|
45
|
-
- Phase name
|
|
46
|
-
- Phase description/goal
|
|
47
|
-
- Any scope details mentioned
|
|
48
|
-
|
|
49
|
-
Continue to analyze_phase.
|
|
50
|
-
</step>
|
|
51
|
-
|
|
52
|
-
<step name="analyze_phase">
|
|
53
|
-
Based on roadmap description and project context, identify assumptions across five areas:
|
|
54
|
-
|
|
55
|
-
**1. Technical Approach:**
|
|
56
|
-
What libraries, frameworks, patterns, or tools would Claude use?
|
|
57
|
-
- "I'd use X library because..."
|
|
58
|
-
- "I'd follow Y pattern because..."
|
|
59
|
-
- "I'd structure this as Z because..."
|
|
60
|
-
|
|
61
|
-
**2. Implementation Order:**
|
|
62
|
-
What would Claude build first, second, third?
|
|
63
|
-
- "I'd start with X because it's foundational"
|
|
64
|
-
- "Then Y because it depends on X"
|
|
65
|
-
- "Finally Z because..."
|
|
66
|
-
|
|
67
|
-
**3. Scope Boundaries:**
|
|
68
|
-
What's included vs excluded in Claude's interpretation?
|
|
69
|
-
- "This phase includes: A, B, C"
|
|
70
|
-
- "This phase does NOT include: D, E, F"
|
|
71
|
-
- "Boundary ambiguities: G could go either way"
|
|
72
|
-
|
|
73
|
-
**4. Risk Areas:**
|
|
74
|
-
Where does Claude expect complexity or challenges?
|
|
75
|
-
- "The tricky part is X because..."
|
|
76
|
-
- "Potential issues: Y, Z"
|
|
77
|
-
- "I'd watch out for..."
|
|
78
|
-
|
|
79
|
-
**5. Dependencies:**
|
|
80
|
-
What does Claude assume exists or needs to be in place?
|
|
81
|
-
- "This assumes X from previous phases"
|
|
82
|
-
- "External dependencies: Y, Z"
|
|
83
|
-
- "This will be consumed by..."
|
|
84
|
-
|
|
85
|
-
Be honest about uncertainty. Mark assumptions with confidence levels:
|
|
86
|
-
- "Fairly confident: ..." (clear from roadmap)
|
|
87
|
-
- "Assuming: ..." (reasonable inference)
|
|
88
|
-
- "Unclear: ..." (could go multiple ways)
|
|
89
|
-
</step>
|
|
90
|
-
|
|
91
|
-
<step name="present_assumptions">
|
|
92
|
-
Present assumptions in a clear, scannable format:
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
## My Assumptions for Phase ${PHASE}: ${PHASE_NAME}
|
|
96
|
-
|
|
97
|
-
### Technical Approach
|
|
98
|
-
[List assumptions about how to implement]
|
|
99
|
-
|
|
100
|
-
### Implementation Order
|
|
101
|
-
[List assumptions about sequencing]
|
|
102
|
-
|
|
103
|
-
### Scope Boundaries
|
|
104
|
-
**In scope:** [what's included]
|
|
105
|
-
**Out of scope:** [what's excluded]
|
|
106
|
-
**Ambiguous:** [what could go either way]
|
|
107
|
-
|
|
108
|
-
### Risk Areas
|
|
109
|
-
[List anticipated challenges]
|
|
110
|
-
|
|
111
|
-
### Dependencies
|
|
112
|
-
**From prior phases:** [what's needed]
|
|
113
|
-
**External:** [third-party needs]
|
|
114
|
-
**Feeds into:** [what future phases need from this]
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
**What do you think?**
|
|
119
|
-
|
|
120
|
-
Are these assumptions accurate? Let me know:
|
|
121
|
-
- What I got right
|
|
122
|
-
- What I got wrong
|
|
123
|
-
- What I'm missing
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
Wait for user response.
|
|
127
|
-
</step>
|
|
128
|
-
|
|
129
|
-
<step name="gather_feedback">
|
|
130
|
-
**If user provides corrections:**
|
|
131
|
-
|
|
132
|
-
Acknowledge the corrections:
|
|
133
|
-
|
|
134
|
-
```
|
|
135
|
-
Key corrections:
|
|
136
|
-
- [correction 1]
|
|
137
|
-
- [correction 2]
|
|
138
|
-
|
|
139
|
-
This changes my understanding significantly. [Summarize new understanding]
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
**If user confirms assumptions:**
|
|
143
|
-
|
|
144
|
-
```
|
|
145
|
-
Assumptions validated.
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
Continue to offer_next.
|
|
149
|
-
</step>
|
|
150
|
-
|
|
151
|
-
<step name="offer_next">
|
|
152
|
-
Present next steps:
|
|
153
|
-
|
|
154
|
-
```
|
|
155
|
-
What's next?
|
|
156
|
-
1. Discuss context (/ariadna:discuss-phase ${PHASE}) - Let me ask you questions to build comprehensive context
|
|
157
|
-
2. Plan this phase (/ariadna:plan-phase ${PHASE}) - Create detailed execution plans
|
|
158
|
-
3. Re-examine assumptions - I'll analyze again with your corrections
|
|
159
|
-
4. Done for now
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
Wait for user selection.
|
|
163
|
-
|
|
164
|
-
If "Discuss context": Note that CONTEXT.md will incorporate any corrections discussed here
|
|
165
|
-
If "Plan this phase": Proceed knowing assumptions are understood
|
|
166
|
-
If "Re-examine": Return to analyze_phase with updated understanding
|
|
167
|
-
</step>
|
|
168
|
-
|
|
169
|
-
</process>
|
|
170
|
-
|
|
171
|
-
<success_criteria>
|
|
172
|
-
- Phase number validated against roadmap
|
|
173
|
-
- Assumptions surfaced across five areas: technical approach, implementation order, scope, risks, dependencies
|
|
174
|
-
- Confidence levels marked where appropriate
|
|
175
|
-
- "What do you think?" prompt presented
|
|
176
|
-
- User feedback acknowledged
|
|
177
|
-
- Clear next steps offered
|
|
178
|
-
</success_criteria>
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Create `.continue-here.md` handoff file to preserve complete work state across sessions. Enables seamless resumption with full context restoration.
|
|
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
|
-
|
|
11
|
-
<step name="detect">
|
|
12
|
-
Find current phase directory from most recently modified files:
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
# Find most recent phase directory with work
|
|
16
|
-
ls -lt .ariadna_planning/phases/*/PLAN.md 2>/dev/null | head -1 | grep -oP 'phases/\K[^/]+'
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
If no active phase detected, ask user which phase they're pausing work on.
|
|
20
|
-
</step>
|
|
21
|
-
|
|
22
|
-
<step name="gather">
|
|
23
|
-
**Collect complete state for handoff:**
|
|
24
|
-
|
|
25
|
-
1. **Current position**: Which phase, which plan, which task
|
|
26
|
-
2. **Work completed**: What got done this session
|
|
27
|
-
3. **Work remaining**: What's left in current plan/phase
|
|
28
|
-
4. **Decisions made**: Key decisions and rationale
|
|
29
|
-
5. **Blockers/issues**: Anything stuck
|
|
30
|
-
6. **Mental context**: The approach, next steps, "vibe"
|
|
31
|
-
7. **Files modified**: What's changed but not committed
|
|
32
|
-
|
|
33
|
-
Ask user for clarifications if needed via conversational questions.
|
|
34
|
-
</step>
|
|
35
|
-
|
|
36
|
-
<step name="write">
|
|
37
|
-
**Write handoff to `.ariadna_planning/phases/XX-name/.continue-here.md`:**
|
|
38
|
-
|
|
39
|
-
```markdown
|
|
40
|
-
---
|
|
41
|
-
phase: XX-name
|
|
42
|
-
task: 3
|
|
43
|
-
total_tasks: 7
|
|
44
|
-
status: in_progress
|
|
45
|
-
last_updated: [timestamp from current-timestamp]
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
<current_state>
|
|
49
|
-
[Where exactly are we? Immediate context]
|
|
50
|
-
</current_state>
|
|
51
|
-
|
|
52
|
-
<completed_work>
|
|
53
|
-
|
|
54
|
-
- Task 1: [name] - Done
|
|
55
|
-
- Task 2: [name] - Done
|
|
56
|
-
- Task 3: [name] - In progress, [what's done]
|
|
57
|
-
</completed_work>
|
|
58
|
-
|
|
59
|
-
<remaining_work>
|
|
60
|
-
|
|
61
|
-
- Task 3: [what's left]
|
|
62
|
-
- Task 4: Not started
|
|
63
|
-
- Task 5: Not started
|
|
64
|
-
</remaining_work>
|
|
65
|
-
|
|
66
|
-
<decisions_made>
|
|
67
|
-
|
|
68
|
-
- Decided to use [X] because [reason]
|
|
69
|
-
- Chose [approach] over [alternative] because [reason]
|
|
70
|
-
</decisions_made>
|
|
71
|
-
|
|
72
|
-
<blockers>
|
|
73
|
-
- [Blocker 1]: [status/workaround]
|
|
74
|
-
</blockers>
|
|
75
|
-
|
|
76
|
-
<context>
|
|
77
|
-
[Mental state, what were you thinking, the plan]
|
|
78
|
-
</context>
|
|
79
|
-
|
|
80
|
-
<next_action>
|
|
81
|
-
Start with: [specific first action when resuming]
|
|
82
|
-
</next_action>
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
Be specific enough for a fresh Claude to understand immediately.
|
|
86
|
-
|
|
87
|
-
Use `current-timestamp` for last_updated field. You can use init todos (which provides timestamps) or call directly:
|
|
88
|
-
```bash
|
|
89
|
-
timestamp=$(ariadna-tools current-timestamp full --raw)
|
|
90
|
-
```
|
|
91
|
-
</step>
|
|
92
|
-
|
|
93
|
-
<step name="commit">
|
|
94
|
-
```bash
|
|
95
|
-
ariadna-tools commit "wip: [phase-name] paused at task [X]/[Y]" --files .ariadna_planning/phases/*/.continue-here.md
|
|
96
|
-
```
|
|
97
|
-
</step>
|
|
98
|
-
|
|
99
|
-
<step name="confirm">
|
|
100
|
-
```
|
|
101
|
-
✓ Handoff created: .ariadna_planning/phases/[XX-name]/.continue-here.md
|
|
102
|
-
|
|
103
|
-
Current state:
|
|
104
|
-
|
|
105
|
-
- Phase: [XX-name]
|
|
106
|
-
- Task: [X] of [Y]
|
|
107
|
-
- Status: [in_progress/blocked]
|
|
108
|
-
- Committed as WIP
|
|
109
|
-
|
|
110
|
-
To resume: /ariadna:resume-work
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
</step>
|
|
114
|
-
|
|
115
|
-
</process>
|
|
116
|
-
|
|
117
|
-
<success_criteria>
|
|
118
|
-
- [ ] .continue-here.md created in correct phase directory
|
|
119
|
-
- [ ] All sections filled with specific content
|
|
120
|
-
- [ ] Committed as WIP
|
|
121
|
-
- [ ] User knows location and how to resume
|
|
122
|
-
</success_criteria>
|
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Create all phases necessary to close gaps identified by `/ariadna:audit-milestone`. Reads MILESTONE-AUDIT.md, groups gaps into logical phases, creates phase entries in ROADMAP.md, and offers to plan each phase. One command creates all fix phases — no manual `/ariadna:add-phase` per gap.
|
|
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
|
-
|
|
11
|
-
## 1. Load Audit Results
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
# Find the most recent audit file
|
|
15
|
-
ls -t .ariadna_planning/v*-MILESTONE-AUDIT.md 2>/dev/null | head -1
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Parse YAML frontmatter to extract structured gaps:
|
|
19
|
-
- `gaps.requirements` — unsatisfied requirements
|
|
20
|
-
- `gaps.integration` — missing cross-phase connections
|
|
21
|
-
- `gaps.flows` — broken E2E flows
|
|
22
|
-
|
|
23
|
-
If no audit file exists or has no gaps, error:
|
|
24
|
-
```
|
|
25
|
-
No audit gaps found. Run `/ariadna:audit-milestone` first.
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## 2. Prioritize Gaps
|
|
29
|
-
|
|
30
|
-
Group gaps by priority from REQUIREMENTS.md:
|
|
31
|
-
|
|
32
|
-
| Priority | Action |
|
|
33
|
-
|----------|--------|
|
|
34
|
-
| `must` | Create phase, blocks milestone |
|
|
35
|
-
| `should` | Create phase, recommended |
|
|
36
|
-
| `nice` | Ask user: include or defer? |
|
|
37
|
-
|
|
38
|
-
For integration/flow gaps, infer priority from affected requirements.
|
|
39
|
-
|
|
40
|
-
## 3. Group Gaps into Phases
|
|
41
|
-
|
|
42
|
-
Cluster related gaps into logical phases:
|
|
43
|
-
|
|
44
|
-
**Grouping rules:**
|
|
45
|
-
- Same affected phase → combine into one fix phase
|
|
46
|
-
- Same subsystem (auth, API, UI) → combine
|
|
47
|
-
- Dependency order (fix stubs before wiring)
|
|
48
|
-
- Keep phases focused: 2-4 tasks each
|
|
49
|
-
|
|
50
|
-
**Example grouping:**
|
|
51
|
-
```
|
|
52
|
-
Gap: DASH-01 unsatisfied (Dashboard doesn't fetch)
|
|
53
|
-
Gap: Integration Phase 1→3 (Auth not passed to API calls)
|
|
54
|
-
Gap: Flow "View dashboard" broken at data fetch
|
|
55
|
-
|
|
56
|
-
→ Phase 6: "Wire Dashboard to API"
|
|
57
|
-
- Add controller action for dashboard data
|
|
58
|
-
- Include authentication before_action
|
|
59
|
-
- Load data into @instance_vars
|
|
60
|
-
- Render user data in ERB view
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
## 4. Determine Phase Numbers
|
|
64
|
-
|
|
65
|
-
Find highest existing phase:
|
|
66
|
-
```bash
|
|
67
|
-
# Get sorted phase list, extract last one
|
|
68
|
-
PHASES=$(ariadna-tools phases list)
|
|
69
|
-
HIGHEST=$(echo "$PHASES" | jq -r '.directories[-1]')
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
New phases continue from there:
|
|
73
|
-
- If Phase 5 is highest, gaps become Phase 6, 7, 8...
|
|
74
|
-
|
|
75
|
-
## 5. Present Gap Closure Plan
|
|
76
|
-
|
|
77
|
-
```markdown
|
|
78
|
-
## Gap Closure Plan
|
|
79
|
-
|
|
80
|
-
**Milestone:** {version}
|
|
81
|
-
**Gaps to close:** {N} requirements, {M} integration, {K} flows
|
|
82
|
-
|
|
83
|
-
### Proposed Phases
|
|
84
|
-
|
|
85
|
-
**Phase {N}: {Name}**
|
|
86
|
-
Closes:
|
|
87
|
-
- {REQ-ID}: {description}
|
|
88
|
-
- Integration: {from} → {to}
|
|
89
|
-
Tasks: {count}
|
|
90
|
-
|
|
91
|
-
**Phase {N+1}: {Name}**
|
|
92
|
-
Closes:
|
|
93
|
-
- {REQ-ID}: {description}
|
|
94
|
-
- Flow: {flow name}
|
|
95
|
-
Tasks: {count}
|
|
96
|
-
|
|
97
|
-
{If nice-to-have gaps exist:}
|
|
98
|
-
|
|
99
|
-
### Deferred (nice-to-have)
|
|
100
|
-
|
|
101
|
-
These gaps are optional. Include them?
|
|
102
|
-
- {gap description}
|
|
103
|
-
- {gap description}
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
Create these {X} phases? (yes / adjust / defer all optional)
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Wait for user confirmation.
|
|
111
|
-
|
|
112
|
-
## 6. Update ROADMAP.md
|
|
113
|
-
|
|
114
|
-
Add new phases to current milestone:
|
|
115
|
-
|
|
116
|
-
```markdown
|
|
117
|
-
### Phase {N}: {Name}
|
|
118
|
-
**Goal:** {derived from gaps being closed}
|
|
119
|
-
**Requirements:** {REQ-IDs being satisfied}
|
|
120
|
-
**Gap Closure:** Closes gaps from audit
|
|
121
|
-
|
|
122
|
-
### Phase {N+1}: {Name}
|
|
123
|
-
...
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
## 7. Create Phase Directories
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
mkdir -p ".ariadna_planning/phases/{NN}-{name}"
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
## 8. Commit Roadmap Update
|
|
133
|
-
|
|
134
|
-
```bash
|
|
135
|
-
ariadna-tools commit "docs(roadmap): add gap closure phases {N}-{M}" --files .ariadna_planning/ROADMAP.md
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
## 9. Offer Next Steps
|
|
139
|
-
|
|
140
|
-
```markdown
|
|
141
|
-
## ✓ Gap Closure Phases Created
|
|
142
|
-
|
|
143
|
-
**Phases added:** {N} - {M}
|
|
144
|
-
**Gaps addressed:** {count} requirements, {count} integration, {count} flows
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## ▶ Next Up
|
|
149
|
-
|
|
150
|
-
**Plan first gap closure phase**
|
|
151
|
-
|
|
152
|
-
`/ariadna:plan-phase {N}`
|
|
153
|
-
|
|
154
|
-
<sub>`/clear` first → fresh context window</sub>
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
**Also available:**
|
|
159
|
-
- `/ariadna:execute-phase {N}` — if plans already exist
|
|
160
|
-
- `cat .ariadna_planning/ROADMAP.md` — see updated roadmap
|
|
161
|
-
|
|
162
|
-
---
|
|
163
|
-
|
|
164
|
-
**After all gap phases complete:**
|
|
165
|
-
|
|
166
|
-
`/ariadna:audit-milestone` — re-audit to verify gaps closed
|
|
167
|
-
`/ariadna:complete-milestone {version}` — archive when audit passes
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
</process>
|
|
171
|
-
|
|
172
|
-
<gap_to_phase_mapping>
|
|
173
|
-
|
|
174
|
-
## How Gaps Become Tasks
|
|
175
|
-
|
|
176
|
-
**Requirement gap → Tasks:**
|
|
177
|
-
```yaml
|
|
178
|
-
gap:
|
|
179
|
-
id: DASH-01
|
|
180
|
-
description: "User sees their data"
|
|
181
|
-
reason: "Dashboard exists but doesn't fetch from API"
|
|
182
|
-
missing:
|
|
183
|
-
- "Turbo Frame with controller action for /dashboards/show"
|
|
184
|
-
- "Instance variables for user data"
|
|
185
|
-
- "Render user data in ERB"
|
|
186
|
-
|
|
187
|
-
becomes:
|
|
188
|
-
|
|
189
|
-
phase: "Wire Dashboard Data"
|
|
190
|
-
tasks:
|
|
191
|
-
- name: "Add data fetching"
|
|
192
|
-
files: [app/views/dashboards/show.html.erb, app/controllers/dashboards_controller.rb]
|
|
193
|
-
action: "Add Turbo Frame that loads user data via controller action"
|
|
194
|
-
|
|
195
|
-
- name: "Add data loading"
|
|
196
|
-
files: [app/controllers/dashboards_controller.rb]
|
|
197
|
-
action: "Load user data into @user_data, handle loading and error states"
|
|
198
|
-
|
|
199
|
-
- name: "Render user data"
|
|
200
|
-
files: [app/views/dashboards/show.html.erb]
|
|
201
|
-
action: "Replace placeholder with @user_data rendering in ERB partial"
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
**Integration gap → Tasks:**
|
|
205
|
-
```yaml
|
|
206
|
-
gap:
|
|
207
|
-
from_phase: 1
|
|
208
|
-
to_phase: 3
|
|
209
|
-
connection: "Auth token → API calls"
|
|
210
|
-
reason: "Dashboard API calls don't include auth header"
|
|
211
|
-
missing:
|
|
212
|
-
- "Auth header in fetch calls"
|
|
213
|
-
- "Token refresh on 401"
|
|
214
|
-
|
|
215
|
-
becomes:
|
|
216
|
-
|
|
217
|
-
phase: "Add Auth to Dashboard Actions"
|
|
218
|
-
tasks:
|
|
219
|
-
- name: "Add authentication to controller"
|
|
220
|
-
files: [app/controllers/dashboards_controller.rb, app/services/api_client.rb]
|
|
221
|
-
action: "Add before_action :authenticate_user! and include auth token in API calls"
|
|
222
|
-
|
|
223
|
-
- name: "Handle 401 responses"
|
|
224
|
-
files: [app/services/api_client.rb]
|
|
225
|
-
action: "Add error handling to refresh token or redirect to login on 401"
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
**Flow gap → Tasks:**
|
|
229
|
-
```yaml
|
|
230
|
-
gap:
|
|
231
|
-
name: "User views dashboard after login"
|
|
232
|
-
broken_at: "Dashboard data load"
|
|
233
|
-
reason: "No fetch call"
|
|
234
|
-
missing:
|
|
235
|
-
- "Fetch user data on mount"
|
|
236
|
-
- "Display loading state"
|
|
237
|
-
- "Render user data"
|
|
238
|
-
|
|
239
|
-
becomes:
|
|
240
|
-
|
|
241
|
-
# Usually same phase as requirement/integration gap
|
|
242
|
-
# Flow gaps often overlap with other gap types
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
</gap_to_phase_mapping>
|
|
246
|
-
|
|
247
|
-
<success_criteria>
|
|
248
|
-
- [ ] MILESTONE-AUDIT.md loaded and gaps parsed
|
|
249
|
-
- [ ] Gaps prioritized (must/should/nice)
|
|
250
|
-
- [ ] Gaps grouped into logical phases
|
|
251
|
-
- [ ] User confirmed phase plan
|
|
252
|
-
- [ ] ROADMAP.md updated with new phases
|
|
253
|
-
- [ ] Phase directories created
|
|
254
|
-
- [ ] Changes committed
|
|
255
|
-
- [ ] User knows to run `/ariadna:plan-phase` next
|
|
256
|
-
</success_criteria>
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Remove an unstarted future phase from the project roadmap, delete its directory, renumber all subsequent phases to maintain a clean linear sequence, and commit the change. The git commit serves as the historical record of removal.
|
|
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
|
-
|
|
11
|
-
<step name="parse_arguments">
|
|
12
|
-
Parse the command arguments:
|
|
13
|
-
- Argument is the phase number to remove (integer or decimal)
|
|
14
|
-
- Example: `/ariadna:remove-phase 17` → phase = 17
|
|
15
|
-
- Example: `/ariadna:remove-phase 16.1` → phase = 16.1
|
|
16
|
-
|
|
17
|
-
If no argument provided:
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
ERROR: Phase number required
|
|
21
|
-
Usage: /ariadna:remove-phase <phase-number>
|
|
22
|
-
Example: /ariadna:remove-phase 17
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
Exit.
|
|
26
|
-
</step>
|
|
27
|
-
|
|
28
|
-
<step name="init_context">
|
|
29
|
-
Load phase operation context:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
INIT=$(ariadna-tools init phase-op "${target}")
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
Extract: `phase_found`, `phase_dir`, `phase_number`, `commit_docs`, `roadmap_exists`.
|
|
36
|
-
|
|
37
|
-
Also read STATE.md and ROADMAP.md content for parsing current position.
|
|
38
|
-
</step>
|
|
39
|
-
|
|
40
|
-
<step name="validate_future_phase">
|
|
41
|
-
Verify the phase is a future phase (not started):
|
|
42
|
-
|
|
43
|
-
1. Compare target phase to current phase from STATE.md
|
|
44
|
-
2. Target must be > current phase number
|
|
45
|
-
|
|
46
|
-
If target <= current phase:
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
ERROR: Cannot remove Phase {target}
|
|
50
|
-
|
|
51
|
-
Only future phases can be removed:
|
|
52
|
-
- Current phase: {current}
|
|
53
|
-
- Phase {target} is current or completed
|
|
54
|
-
|
|
55
|
-
To abandon current work, use /ariadna:pause-work instead.
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Exit.
|
|
59
|
-
</step>
|
|
60
|
-
|
|
61
|
-
<step name="confirm_removal">
|
|
62
|
-
Present removal summary and confirm:
|
|
63
|
-
|
|
64
|
-
```
|
|
65
|
-
Removing Phase {target}: {Name}
|
|
66
|
-
|
|
67
|
-
This will:
|
|
68
|
-
- Delete: .ariadna_planning/phases/{target}-{slug}/
|
|
69
|
-
- Renumber all subsequent phases
|
|
70
|
-
- Update: ROADMAP.md, STATE.md
|
|
71
|
-
|
|
72
|
-
Proceed? (y/n)
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
Wait for confirmation.
|
|
76
|
-
</step>
|
|
77
|
-
|
|
78
|
-
<step name="execute_removal">
|
|
79
|
-
**Delegate the entire removal operation to ariadna-tools:**
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
RESULT=$(ariadna-tools phase remove "${target}")
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
If the phase has executed plans (SUMMARY.md files), ariadna-tools will error. Use `--force` only if the user confirms:
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
RESULT=$(ariadna-tools phase remove "${target}" --force)
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
The CLI handles:
|
|
92
|
-
- Deleting the phase directory
|
|
93
|
-
- Renumbering all subsequent directories (in reverse order to avoid conflicts)
|
|
94
|
-
- Renaming all files inside renumbered directories (PLAN.md, SUMMARY.md, etc.)
|
|
95
|
-
- Updating ROADMAP.md (removing section, renumbering all phase references, updating dependencies)
|
|
96
|
-
- Updating STATE.md (decrementing phase count)
|
|
97
|
-
|
|
98
|
-
Extract from result: `removed`, `directory_deleted`, `renamed_directories`, `renamed_files`, `roadmap_updated`, `state_updated`.
|
|
99
|
-
</step>
|
|
100
|
-
|
|
101
|
-
<step name="commit">
|
|
102
|
-
Stage and commit the removal:
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
ariadna-tools commit "chore: remove phase {target} ({original-phase-name})" --files .ariadna_planning/
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
The commit message preserves the historical record of what was removed.
|
|
109
|
-
</step>
|
|
110
|
-
|
|
111
|
-
<step name="completion">
|
|
112
|
-
Present completion summary:
|
|
113
|
-
|
|
114
|
-
```
|
|
115
|
-
Phase {target} ({original-name}) removed.
|
|
116
|
-
|
|
117
|
-
Changes:
|
|
118
|
-
- Deleted: .ariadna_planning/phases/{target}-{slug}/
|
|
119
|
-
- Renumbered: {N} directories and {M} files
|
|
120
|
-
- Updated: ROADMAP.md, STATE.md
|
|
121
|
-
- Committed: chore: remove phase {target} ({original-name})
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
## What's Next
|
|
126
|
-
|
|
127
|
-
Would you like to:
|
|
128
|
-
- `/ariadna:progress` — see updated roadmap status
|
|
129
|
-
- Continue with current phase
|
|
130
|
-
- Review roadmap
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
```
|
|
134
|
-
</step>
|
|
135
|
-
|
|
136
|
-
</process>
|
|
137
|
-
|
|
138
|
-
<anti_patterns>
|
|
139
|
-
|
|
140
|
-
- Don't remove completed phases (have SUMMARY.md files) without --force
|
|
141
|
-
- Don't remove current or past phases
|
|
142
|
-
- Don't manually renumber — use `ariadna-tools phase remove` which handles all renumbering
|
|
143
|
-
- Don't add "removed phase" notes to STATE.md — git commit is the record
|
|
144
|
-
- Don't modify completed phase directories
|
|
145
|
-
</anti_patterns>
|
|
146
|
-
|
|
147
|
-
<success_criteria>
|
|
148
|
-
Phase removal is complete when:
|
|
149
|
-
|
|
150
|
-
- [ ] Target phase validated as future/unstarted
|
|
151
|
-
- [ ] `ariadna-tools phase remove` executed successfully
|
|
152
|
-
- [ ] Changes committed with descriptive message
|
|
153
|
-
- [ ] User informed of changes
|
|
154
|
-
</success_criteria>
|