ariadna 1.2.0 → 1.2.2

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 (117) hide show
  1. checksums.yaml +4 -4
  2. data/data/agents/ariadna-backend-executor.md +9 -6
  3. data/data/agents/ariadna-codebase-mapper.md +5 -5
  4. data/data/agents/ariadna-debugger.md +13 -13
  5. data/data/agents/ariadna-executor.md +9 -6
  6. data/data/agents/ariadna-frontend-executor.md +9 -6
  7. data/data/agents/ariadna-integration-checker.md +1 -1
  8. data/data/agents/ariadna-phase-researcher.md +1 -1
  9. data/data/agents/ariadna-planner.md +17 -17
  10. data/data/agents/ariadna-project-researcher.md +10 -10
  11. data/data/agents/ariadna-research-synthesizer.md +11 -11
  12. data/data/agents/ariadna-roadmapper.md +8 -8
  13. data/data/agents/ariadna-test-executor.md +9 -6
  14. data/data/agents/ariadna-verifier.md +4 -4
  15. data/data/ariadna/references/decimal-phase-calculation.md +2 -2
  16. data/data/ariadna/references/git-integration.md +4 -4
  17. data/data/ariadna/references/git-planning-commit.md +7 -7
  18. data/data/ariadna/references/model-profile-resolution.md +1 -1
  19. data/data/ariadna/references/model-profiles.md +2 -2
  20. data/data/ariadna/references/planning-config.md +13 -13
  21. data/data/ariadna/references/rails-conventions.md +9 -2
  22. data/data/ariadna/references/tdd.md +2 -2
  23. data/data/ariadna/templates/DEBUG.md +2 -2
  24. data/data/ariadna/templates/UAT.md +3 -3
  25. data/data/ariadna/templates/codebase/architecture.md +1 -1
  26. data/data/ariadna/templates/codebase/concerns.md +1 -1
  27. data/data/ariadna/templates/codebase/conventions.md +1 -1
  28. data/data/ariadna/templates/codebase/integrations.md +1 -1
  29. data/data/ariadna/templates/codebase/stack.md +1 -1
  30. data/data/ariadna/templates/codebase/structure.md +1 -1
  31. data/data/ariadna/templates/codebase/testing.md +1 -1
  32. data/data/ariadna/templates/context.md +2 -2
  33. data/data/ariadna/templates/continue-here.md +1 -1
  34. data/data/ariadna/templates/debug-subagent-prompt.md +2 -2
  35. data/data/ariadna/templates/discovery.md +2 -2
  36. data/data/ariadna/templates/milestone-archive.md +4 -4
  37. data/data/ariadna/templates/milestone.md +1 -1
  38. data/data/ariadna/templates/phase-prompt.md +19 -19
  39. data/data/ariadna/templates/planner-subagent-prompt.md +9 -9
  40. data/data/ariadna/templates/project.md +2 -2
  41. data/data/ariadna/templates/requirements.md +1 -1
  42. data/data/ariadna/templates/research-project/ARCHITECTURE.md +1 -1
  43. data/data/ariadna/templates/research-project/FEATURES.md +1 -1
  44. data/data/ariadna/templates/research-project/PITFALLS.md +1 -1
  45. data/data/ariadna/templates/research-project/STACK.md +1 -1
  46. data/data/ariadna/templates/research-project/SUMMARY.md +1 -1
  47. data/data/ariadna/templates/research.md +2 -2
  48. data/data/ariadna/templates/roadmap.md +1 -1
  49. data/data/ariadna/templates/state.md +4 -4
  50. data/data/ariadna/templates/summary.md +12 -1
  51. data/data/ariadna/templates/user-setup.md +2 -2
  52. data/data/ariadna/templates/verification-report.md +1 -1
  53. data/data/ariadna/workflows/add-phase.md +5 -5
  54. data/data/ariadna/workflows/add-todo.md +7 -7
  55. data/data/ariadna/workflows/audit-milestone.md +7 -7
  56. data/data/ariadna/workflows/check-todos.md +4 -4
  57. data/data/ariadna/workflows/complete-milestone.md +18 -18
  58. data/data/ariadna/workflows/diagnose-issues.md +4 -4
  59. data/data/ariadna/workflows/discovery-phase.md +4 -4
  60. data/data/ariadna/workflows/discuss-phase.md +2 -2
  61. data/data/ariadna/workflows/execute-phase.md +97 -9
  62. data/data/ariadna/workflows/execute-plan.md +30 -19
  63. data/data/ariadna/workflows/help.md +18 -18
  64. data/data/ariadna/workflows/insert-phase.md +6 -6
  65. data/data/ariadna/workflows/list-phase-assumptions.md +1 -1
  66. data/data/ariadna/workflows/map-codebase.md +22 -22
  67. data/data/ariadna/workflows/new-milestone.md +16 -16
  68. data/data/ariadna/workflows/new-project.md +39 -39
  69. data/data/ariadna/workflows/pause-work.md +4 -4
  70. data/data/ariadna/workflows/plan-milestone-gaps.md +4 -4
  71. data/data/ariadna/workflows/plan-phase.md +43 -19
  72. data/data/ariadna/workflows/progress.md +6 -6
  73. data/data/ariadna/workflows/quick.md +6 -6
  74. data/data/ariadna/workflows/remove-phase.md +3 -3
  75. data/data/ariadna/workflows/research-phase.md +4 -4
  76. data/data/ariadna/workflows/resume-project.md +9 -9
  77. data/data/ariadna/workflows/set-profile.md +2 -2
  78. data/data/ariadna/workflows/settings.md +4 -4
  79. data/data/ariadna/workflows/transition.md +11 -11
  80. data/data/ariadna/workflows/verify-phase.md +2 -2
  81. data/data/ariadna/workflows/verify-work.md +8 -8
  82. data/data/commands/ariadna/add-phase.md +2 -2
  83. data/data/commands/ariadna/add-todo.md +1 -1
  84. data/data/commands/ariadna/audit-milestone.md +6 -6
  85. data/data/commands/ariadna/check-todos.md +2 -2
  86. data/data/commands/ariadna/complete-milestone.md +11 -11
  87. data/data/commands/ariadna/debug.md +3 -3
  88. data/data/commands/ariadna/discuss-phase.md +2 -2
  89. data/data/commands/ariadna/execute-phase.md +6 -5
  90. data/data/commands/ariadna/insert-phase.md +2 -2
  91. data/data/commands/ariadna/list-phase-assumptions.md +2 -2
  92. data/data/commands/ariadna/map-codebase.md +7 -7
  93. data/data/commands/ariadna/new-milestone.md +10 -10
  94. data/data/commands/ariadna/new-project.md +6 -6
  95. data/data/commands/ariadna/pause-work.md +1 -1
  96. data/data/commands/ariadna/plan-milestone-gaps.md +5 -5
  97. data/data/commands/ariadna/quick.md +2 -2
  98. data/data/commands/ariadna/remove-phase.md +2 -2
  99. data/data/commands/ariadna/research-phase.md +6 -6
  100. data/data/commands/ariadna/verify-work.md +2 -2
  101. data/data/guides/frontend.md +1044 -9
  102. data/data/statusline/ariadna-statusline.sh +47 -0
  103. data/data/templates.md +1 -1
  104. data/exe/ariadna +2 -1
  105. data/lib/ariadna/installer.rb +30 -1
  106. data/lib/ariadna/tools/config_manager.rb +12 -6
  107. data/lib/ariadna/tools/git_integration.rb +2 -2
  108. data/lib/ariadna/tools/init.rb +66 -61
  109. data/lib/ariadna/tools/phase_manager.rb +31 -13
  110. data/lib/ariadna/tools/roadmap_analyzer.rb +5 -5
  111. data/lib/ariadna/tools/state_manager.rb +14 -14
  112. data/lib/ariadna/tools/template_filler.rb +5 -5
  113. data/lib/ariadna/tools/utilities.rb +4 -4
  114. data/lib/ariadna/tools/verification.rb +4 -4
  115. data/lib/ariadna/uninstaller.rb +17 -0
  116. data/lib/ariadna/version.rb +1 -1
  117. metadata +2 -1
@@ -19,11 +19,11 @@ Load all context in one call:
19
19
  INIT=$(ariadna-tools init execute-phase "${PHASE_ARG}")
20
20
  ```
21
21
 
22
- Parse JSON for: `executor_model`, `verifier_model`, `commit_docs`, `parallelization`, `branching_strategy`, `branch_name`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `plans`, `incomplete_plans`, `plan_count`, `incomplete_count`, `state_exists`, `roadmap_exists`.
22
+ Parse JSON for: `executor_model`, `verifier_model`, `commit_docs`, `parallelization`, `branching_strategy`, `branch_name`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `plans`, `incomplete_plans`, `plan_count`, `incomplete_count`, `team_execution`, `execution_mode`, `backend_executor_model`, `frontend_executor_model`, `test_executor_model`, `state_exists`, `roadmap_exists`.
23
23
 
24
24
  **If `phase_found` is false:** Error — phase directory not found.
25
25
  **If `plan_count` is 0:** Error — no plans found in phase.
26
- **If `state_exists` is false but `.planning/` exists:** Offer reconstruct or continue.
26
+ **If `state_exists` is false but `.ariadna_planning/` exists:** Offer reconstruct or continue.
27
27
 
28
28
  When `parallelization` is false, plans within a wave execute sequentially.
29
29
  </step>
@@ -54,7 +54,7 @@ Load plan inventory with wave grouping in one call:
54
54
  PLAN_INDEX=$(ariadna-tools phase-plan-index "${PHASE_NUMBER}")
55
55
  ```
56
56
 
57
- Parse JSON for: `phase`, `plans[]` (each with `id`, `wave`, `autonomous`, `objective`, `files_modified`, `task_count`, `has_summary`), `waves` (map of wave number → plan IDs), `incomplete`, `has_checkpoints`.
57
+ Parse JSON for: `plans[]` (each with `file`, `phase`, `plan`, `wave`, `type`, `completed`, `domain`, `depends_on`, `files_modified`, `autonomous`, `objective`, `task_count`), `count`, `domains`, `domain_count`, `multi_domain`, `recommend_team`.
58
58
 
59
59
  **Filtering:** Skip plans where `has_summary: true`. If `--gaps-only`: also skip non-gap_closure plans. If all filtered: "No matching incomplete plans" → exit.
60
60
 
@@ -71,6 +71,28 @@ Report:
71
71
  ```
72
72
  </step>
73
73
 
74
+ <step name="decide_execution_mode">
75
+ **Determine execution mode:**
76
+
77
+ 1. If `--team` flag → team execution
78
+ 2. If `--no-team` flag → wave execution
79
+ 3. If `team_execution` from init is `true` → team execution
80
+ 4. If `team_execution` from init is `false` → wave execution
81
+ 5. If `team_execution` is `"auto"` → check plan index:
82
+ - Parse `multi_domain` and `recommend_team` from PLAN_INDEX
83
+ - If `recommend_team` is true (3+ plans, 2+ non-general domains) → team execution
84
+ - Otherwise → wave execution
85
+
86
+ Report:
87
+ ```
88
+ **Execution mode:** {Team | Wave}
89
+ {If auto: "Auto-detected: {plan_count} plans across {domains}"}
90
+ ```
91
+
92
+ If team mode: proceed to `team_execution` step.
93
+ If wave mode: proceed to `execute_waves` step.
94
+ </step>
95
+
74
96
  <step name="execute_waves">
75
97
  Execute each wave in sequence. Within a wave: parallel if `PARALLELIZATION=true`, sequential if `false`.
76
98
 
@@ -135,8 +157,8 @@ Execute each wave in sequence. Within a wave: parallel if `PARALLELIZATION=true`
135
157
  <files_to_read>
136
158
  Read these files at execution start using the Read tool:
137
159
  - Plan: {phase_dir}/{plan_file}
138
- - State: .planning/STATE.md
139
- - Config: .planning/config.json (if exists)
160
+ - State: .ariadna_planning/STATE.md
161
+ - Config: .ariadna_planning/config.json (if exists)
140
162
  </files_to_read>
141
163
 
142
164
  <success_criteria>
@@ -249,6 +271,17 @@ If `TEAM_MODE` is `true` OR `--team` flag present → use team execution. Otherw
249
271
  - Assign unblocked tasks to idle agents of the matching domain
250
272
  - Cross-domain handoffs: if a frontend task depends on a backend task, the frontend executor can read the backend SUMMARY.md for context
251
273
 
274
+ **Progress reporting (on each task completion message from an agent):**
275
+ Check `TaskList` and display:
276
+ ```
277
+ ## Team Progress
278
+ | Agent | Status | Current Task | Completed |
279
+ |-------------------|---------|-------------|-----------|
280
+ | backend-executor | working | Plan 03-01 | 1/3 |
281
+ | frontend-executor | idle | waiting | 0/2 |
282
+ | test-executor | working | Plan 03-03 | 0/1 |
283
+ ```
284
+
252
285
  6. **Handle checkpoints:** Same as wave-based — agent sends message to orchestrator, orchestrator presents checkpoint to user, spawns continuation agent.
253
286
 
254
287
  7. **Shutdown team:** When all tasks are complete:
@@ -261,6 +294,10 @@ If `TEAM_MODE` is `true` OR `--team` flag present → use team execution. Otherw
261
294
  ```
262
295
 
263
296
  **Conflict prevention:** File ownership is enforced by `files_modified` frontmatter — the planner ensures no overlap between concurrent plans assigned to different agents.
297
+
298
+ **STATE.md serialization:** Agents do NOT update STATE.md in team mode.
299
+ The orchestrator reads each SUMMARY.md after all tasks complete and
300
+ updates STATE.md sequentially. This prevents concurrent write corruption.
264
301
  </step>
265
302
 
266
303
  <step name="checkpoint_handling">
@@ -296,12 +333,28 @@ Plans with `autonomous: false` require user interaction.
296
333
  </step>
297
334
 
298
335
  <step name="aggregate_results">
299
- After all waves:
336
+ After all waves (or after all team tasks complete):
337
+
338
+ **Team mode state aggregation (if team execution was used):**
339
+
340
+ For each completed task's SUMMARY.md, in plan order:
341
+ ```bash
342
+ ariadna-tools state advance-plan
343
+ ariadna-tools state record-metric \
344
+ --phase "${PHASE}" --plan "${PLAN}" --duration "${DURATION}" \
345
+ --tasks "${TASK_COUNT}" --files "${FILE_COUNT}"
346
+ ```
347
+ This runs sequentially from the orchestrator to prevent concurrent writes.
348
+
349
+ **Aggregate requirements coverage:** Parse `requirements_covered` from all SUMMARY.md frontmatter in this phase. Cross-check against `requirements_content` (from INIT or re-read REQUIREMENTS.md) for requirements mapped to this phase. Flag uncovered requirements. Show coverage count.
350
+
351
+ If covered requirements exist, update REQUIREMENTS.md traceability table: set status to "Complete" for each covered REQ-ID, with evidence from the SUMMARY frontmatter.
300
352
 
301
353
  ```markdown
302
354
  ## Phase {X}: {Name} Execution Complete
303
355
 
304
356
  **Waves:** {N} | **Plans:** {M}/{total} complete
357
+ **Requirements:** {covered}/{total_for_phase} covered
305
358
 
306
359
  | Wave | Plans | Status |
307
360
  |------|-------|--------|
@@ -313,6 +366,14 @@ After all waves:
313
366
  1. **03-01**: [one-liner from SUMMARY.md]
314
367
  2. **03-02**: [one-liner from SUMMARY.md]
315
368
 
369
+ ### Requirements Coverage
370
+ | REQ-ID | Requirement | Evidence |
371
+ |--------|-------------|----------|
372
+ | {id} | {description} | {evidence from SUMMARY} |
373
+ | {id} | {description} | ⚠ Not covered |
374
+
375
+ [Omit section if no REQUIREMENTS.md or no requirements for this phase]
376
+
316
377
  ### Issues Encountered
317
378
  [Aggregate from SUMMARYs, or "None"]
318
379
  ```
@@ -339,8 +400,8 @@ grep "^status:" "$PHASE_DIR"/*-VERIFICATION.md | cut -d: -f2 | tr -d ' '
339
400
 
340
401
  | Status | Action |
341
402
  |--------|--------|
342
- | `passed` | → update_roadmap |
343
- | `human_needed` | Present items for human testing, get approval or feedback |
403
+ | `passed` | → user_acceptance |
404
+ | `human_needed` | Present items for human testing, get approval or feedback → user_acceptance |
344
405
  | `gaps_found` | Present gap summary, offer `/ariadna:plan-phase {phase} --gaps` |
345
406
 
346
407
  **If human_needed:**
@@ -378,11 +439,38 @@ Also: `/ariadna:verify-work {X}` — manual testing first
378
439
  Gap closure cycle: `/ariadna:plan-phase {X} --gaps` reads VERIFICATION.md → creates gap plans with `gap_closure: true` → user runs `/ariadna:execute-phase {X} --gaps-only` → verifier re-runs.
379
440
  </step>
380
441
 
442
+ <step name="user_acceptance">
443
+ **Trigger:** After verifier returns `passed` (or `human_needed` items are approved by user).
444
+
445
+ **Skip if:** `--no-review` flag, or ALL plans in this phase have `domain: backend` or `domain: testing` only (no user-facing deliverables).
446
+
447
+ **Otherwise:** Show a lightweight acceptance gate. Gather one-liners from each SUMMARY.md + key decisions Claude made during execution:
448
+
449
+ ```
450
+ questions: [
451
+ {
452
+ header: "Acceptance",
453
+ question: "Phase {X}: {Name} — verified and passing.\n\nWhat was built:\n- {one-liner from SUMMARY 1}\n- {one-liner from SUMMARY 2}\n\nKey decisions made:\n- {decision 1 from SUMMARY}\n- {decision 2 from SUMMARY}\n\nDoes the direction look right?",
454
+ multiSelect: false,
455
+ options: [
456
+ { label: "Looks good", description: "Mark phase complete and continue" },
457
+ { label: "Test first", description: "Run /ariadna:verify-work before marking complete" },
458
+ { label: "Issues", description: "Record blocker and suggest gap closure" }
459
+ ]
460
+ }
461
+ ]
462
+ ```
463
+
464
+ - **"Looks good":** Proceed to `update_roadmap`.
465
+ - **"Test first":** Display: `Run /ariadna:verify-work {X} to test, then re-run /ariadna:execute-phase {X} to continue.` Exit without marking phase complete.
466
+ - **"Issues":** Ask user to describe the issue. Record as blocker in STATE.md via `ariadna-tools state add-blocker "{issue}"`. Display: `Blocker recorded. Run /ariadna:plan-phase {X} --gaps to create fix plans.` Exit without marking phase complete.
467
+ </step>
468
+
381
469
  <step name="update_roadmap">
382
470
  Mark phase complete in ROADMAP.md (date, status).
383
471
 
384
472
  ```bash
385
- ariadna-tools commit "docs(phase-{X}): complete phase execution" --files .planning/ROADMAP.md .planning/STATE.md .planning/phases/{phase_dir}/*-VERIFICATION.md .planning/REQUIREMENTS.md
473
+ ariadna-tools commit "docs(phase-{X}): complete phase execution" --files .ariadna_planning/ROADMAP.md .ariadna_planning/STATE.md .ariadna_planning/phases/{phase_dir}/*-VERIFICATION.md .ariadna_planning/REQUIREMENTS.md
386
474
  ```
387
475
  </step>
388
476
 
@@ -26,14 +26,14 @@ STATE_CONTENT=$(echo "$INIT" | jq -r '.state_content // empty')
26
26
  CONFIG_CONTENT=$(echo "$INIT" | jq -r '.config_content // empty')
27
27
  ```
28
28
 
29
- If `.planning/` missing: error.
29
+ If `.ariadna_planning/` missing: error.
30
30
  </step>
31
31
 
32
32
  <step name="identify_plan">
33
33
  ```bash
34
34
  # Use plans/summaries from INIT JSON, or list files
35
- ls .planning/phases/XX-name/*-PLAN.md 2>/dev/null | sort
36
- ls .planning/phases/XX-name/*-SUMMARY.md 2>/dev/null | sort
35
+ ls .ariadna_planning/phases/XX-name/*-PLAN.md 2>/dev/null | sort
36
+ ls .ariadna_planning/phases/XX-name/*-SUMMARY.md 2>/dev/null | sort
37
37
  ```
38
38
 
39
39
  Find first PLAN without matching SUMMARY. Decimal phases supported (`01.1-hotfix/`):
@@ -61,7 +61,7 @@ PLAN_START_EPOCH=$(date +%s)
61
61
 
62
62
  <step name="parse_segments">
63
63
  ```bash
64
- grep -n "type=\"checkpoint" .planning/phases/XX-name/{phase}-{plan}-PLAN.md
64
+ grep -n "type=\"checkpoint" .ariadna_planning/phases/XX-name/{phase}-{plan}-PLAN.md
65
65
  ```
66
66
 
67
67
  **Routing by checkpoint type:**
@@ -83,12 +83,12 @@ Fresh context per subagent preserves peak quality. Main context stays lean.
83
83
 
84
84
  <step name="init_agent_tracking">
85
85
  ```bash
86
- if [ ! -f .planning/agent-history.json ]; then
87
- echo '{"version":"1.0","max_entries":50,"entries":[]}' > .planning/agent-history.json
86
+ if [ ! -f .ariadna_planning/agent-history.json ]; then
87
+ echo '{"version":"1.0","max_entries":50,"entries":[]}' > .ariadna_planning/agent-history.json
88
88
  fi
89
- rm -f .planning/current-agent-id.txt
90
- if [ -f .planning/current-agent-id.txt ]; then
91
- INTERRUPTED_ID=$(cat .planning/current-agent-id.txt)
89
+ rm -f .ariadna_planning/current-agent-id.txt
90
+ if [ -f .ariadna_planning/current-agent-id.txt ]; then
91
+ INTERRUPTED_ID=$(cat .ariadna_planning/current-agent-id.txt)
92
92
  echo "Found interrupted agent: $INTERRUPTED_ID"
93
93
  fi
94
94
  ```
@@ -121,14 +121,14 @@ Pattern B only (verify-only checkpoints). Skip for A/C.
121
121
 
122
122
  <step name="load_prompt">
123
123
  ```bash
124
- cat .planning/phases/XX-name/{phase}-{plan}-PLAN.md
124
+ cat .ariadna_planning/phases/XX-name/{phase}-{plan}-PLAN.md
125
125
  ```
126
126
  This IS the execution instructions. Follow exactly. If plan references CONTEXT.md: honor user's vision throughout.
127
127
  </step>
128
128
 
129
129
  <step name="previous_phase_check">
130
130
  ```bash
131
- ls .planning/phases/*/SUMMARY.md 2>/dev/null | sort -r | head -2 | tail -1
131
+ ls .ariadna_planning/phases/*/SUMMARY.md 2>/dev/null | sort -r | head -2 | tail -1
132
132
  ```
133
133
  If previous SUMMARY has unresolved "Issues Encountered" or "Next Phase Readiness" blockers: AskUserQuestion(header="Previous Issues", options: "Proceed anyway" | "Address first" | "Review previous").
134
134
  </step>
@@ -312,16 +312,27 @@ fi
312
312
 
313
313
  <step name="generate_user_setup">
314
314
  ```bash
315
- grep -A 50 "^user_setup:" .planning/phases/XX-name/{phase}-{plan}-PLAN.md | head -50
315
+ grep -A 50 "^user_setup:" .ariadna_planning/phases/XX-name/{phase}-{plan}-PLAN.md | head -50
316
316
  ```
317
317
 
318
318
  If user_setup exists: create `{phase}-USER-SETUP.md` using template `~/.claude/ariadna/templates/user-setup.md`. Per service: env vars table, account setup checklist, dashboard config, local dev notes, verification commands. Status "Incomplete". Set `USER_SETUP_CREATED=true`. If empty/missing: skip.
319
319
  </step>
320
320
 
321
321
  <step name="create_summary">
322
- Create `{phase}-{plan}-SUMMARY.md` at `.planning/phases/XX-name/`. Use `~/.claude/ariadna/templates/summary.md`.
322
+ Create `{phase}-{plan}-SUMMARY.md` at `.ariadna_planning/phases/XX-name/`. Use `~/.claude/ariadna/templates/summary.md`.
323
323
 
324
- **Frontmatter:** phase, plan, subsystem, tags | requires/provides/affects | tech-stack.added/patterns | key-files.created/modified | key-decisions | duration ($DURATION), completed ($PLAN_END_TIME date).
324
+ **Frontmatter:** phase, plan, subsystem, tags | requires/provides/affects | tech-stack.added/patterns | key-files.created/modified | key-decisions | requirements_covered | duration ($DURATION), completed ($PLAN_END_TIME date).
325
+
326
+ **Requirements traceability:** Cross-reference plan tasks against `requirements_content` (from INIT, or read `.ariadna_planning/REQUIREMENTS.md`). For each requirement mapped to this phase that was implemented by tasks in this plan, populate the `requirements_covered` frontmatter:
327
+ ```yaml
328
+ requirements_covered:
329
+ - id: "AUTH-01"
330
+ description: "User can sign up with email and password"
331
+ evidence: "SessionsController#create + User model with has_secure_password"
332
+ ```
333
+ Use the actual REQ-ID and description from REQUIREMENTS.md. Evidence should reference the specific file/class/method that implements the requirement. Omit the `requirements_covered` field entirely if no REQUIREMENTS.md exists or no requirements map to this plan.
334
+
335
+ Also populate the `## Requirements Covered` markdown section (after Accomplishments) with the same data in table format.
325
336
 
326
337
  Title: `# Phase [X] Plan [Y]: [Name] Summary`
327
338
 
@@ -386,12 +397,12 @@ More plans → update plan count, keep "In progress". Last plan → mark phase "
386
397
  Task code already committed per-task. Commit plan metadata:
387
398
 
388
399
  ```bash
389
- ariadna-tools commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md
400
+ ariadna-tools commit "docs({phase}-{plan}): complete [plan-name] plan" --files .ariadna_planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .ariadna_planning/STATE.md .ariadna_planning/ROADMAP.md
390
401
  ```
391
402
  </step>
392
403
 
393
404
  <step name="update_codebase_map">
394
- If .planning/codebase/ doesn't exist: skip.
405
+ If .ariadna_planning/codebase/ doesn't exist: skip.
395
406
 
396
407
  ```bash
397
408
  FIRST_TASK=$(git log --oneline --grep="feat({phase}-{plan}):" --grep="fix({phase}-{plan}):" --grep="test({phase}-{plan}):" --reverse | head -1 | cut -d' ' -f1)
@@ -401,7 +412,7 @@ git diff --name-only ${FIRST_TASK}^..HEAD 2>/dev/null
401
412
  Update only structural changes: new src/ dir → STRUCTURE.md | deps → STACK.md | file pattern → CONVENTIONS.md | API client → INTEGRATIONS.md | config → STACK.md | renamed → update paths. Skip code-only/bugfix/content changes.
402
413
 
403
414
  ```bash
404
- ariadna-tools commit "" --files .planning/codebase/*.md --amend
415
+ ariadna-tools commit "" --files .ariadna_planning/codebase/*.md --amend
405
416
  ```
406
417
  </step>
407
418
 
@@ -409,8 +420,8 @@ ariadna-tools commit "" --files .planning/codebase/*.md --amend
409
420
  If `USER_SETUP_CREATED=true`: display `⚠️ USER SETUP REQUIRED` with path + env/config tasks at TOP.
410
421
 
411
422
  ```bash
412
- ls -1 .planning/phases/[current-phase-dir]/*-PLAN.md 2>/dev/null | wc -l
413
- ls -1 .planning/phases/[current-phase-dir]/*-SUMMARY.md 2>/dev/null | wc -l
423
+ ls -1 .ariadna_planning/phases/[current-phase-dir]/*-PLAN.md 2>/dev/null | wc -l
424
+ ls -1 .ariadna_planning/phases/[current-phase-dir]/*-SUMMARY.md 2>/dev/null | wc -l
414
425
  ```
415
426
 
416
427
  | Condition | Route | Action |
@@ -38,7 +38,7 @@ One command takes you from idea to ready-for-planning:
38
38
  - Requirements definition with v1/v2/out-of-scope scoping
39
39
  - Roadmap creation with phase breakdown and success criteria
40
40
 
41
- Creates all `.planning/` artifacts:
41
+ Creates all `.ariadna_planning/` artifacts:
42
42
  - `PROJECT.md` — vision and requirements
43
43
  - `config.json` — workflow mode (interactive/yolo)
44
44
  - `research/` — domain research (if selected)
@@ -52,7 +52,7 @@ Usage: `/ariadna:new-project`
52
52
  Map an existing codebase for brownfield projects.
53
53
 
54
54
  - Analyzes codebase with parallel Explore agents
55
- - Creates `.planning/codebase/` with 7 focused documents
55
+ - Creates `.ariadna_planning/codebase/` with 7 focused documents
56
56
  - Covers stack, architecture, structure, conventions, testing, integrations, concerns
57
57
  - Use before `/ariadna:new-project` on existing codebases
58
58
 
@@ -91,13 +91,13 @@ Usage: `/ariadna:list-phase-assumptions 3`
91
91
  **`/ariadna:plan-phase <number>`**
92
92
  Create detailed execution plan for a specific phase.
93
93
 
94
- - Generates `.planning/phases/XX-phase-name/XX-YY-PLAN.md`
94
+ - Generates `.ariadna_planning/phases/XX-phase-name/XX-YY-PLAN.md`
95
95
  - Breaks phase into concrete, actionable tasks
96
96
  - Includes verification criteria and success measures
97
97
  - Multiple plans per phase supported (XX-01, XX-02, etc.)
98
98
 
99
99
  Usage: `/ariadna:plan-phase 1`
100
- Result: Creates `.planning/phases/01-foundation/01-01-PLAN.md`
100
+ Result: Creates `.ariadna_planning/phases/01-foundation/01-01-PLAN.md`
101
101
 
102
102
  ### Execution
103
103
 
@@ -118,13 +118,13 @@ Execute small, ad-hoc tasks with Ariadna guarantees but skip optional agents.
118
118
 
119
119
  Quick mode uses the same system with a shorter path:
120
120
  - Spawns planner + executor (skips researcher, checker, verifier)
121
- - Quick tasks live in `.planning/quick/` separate from planned phases
121
+ - Quick tasks live in `.ariadna_planning/quick/` separate from planned phases
122
122
  - Updates STATE.md tracking (not ROADMAP.md)
123
123
 
124
124
  Use when you know exactly what to do and the task is small enough to not need research or verification.
125
125
 
126
126
  Usage: `/ariadna:quick`
127
- Result: Creates `.planning/quick/NNN-slug/PLAN.md`, `.planning/quick/NNN-slug/SUMMARY.md`
127
+ Result: Creates `.ariadna_planning/quick/NNN-slug/PLAN.md`, `.ariadna_planning/quick/NNN-slug/SUMMARY.md`
128
128
 
129
129
  ### Roadmap Management
130
130
 
@@ -222,10 +222,10 @@ Usage: `/ariadna:pause-work`
222
222
  Systematic debugging with persistent state across context resets.
223
223
 
224
224
  - Gathers symptoms through adaptive questioning
225
- - Creates `.planning/debug/[slug].md` to track investigation
225
+ - Creates `.ariadna_planning/debug/[slug].md` to track investigation
226
226
  - Investigates using scientific method (evidence → hypothesis → test)
227
227
  - Survives `/clear` — run `/ariadna:debug` with no args to resume
228
- - Archives resolved issues to `.planning/debug/resolved/`
228
+ - Archives resolved issues to `.ariadna_planning/debug/resolved/`
229
229
 
230
230
  Usage: `/ariadna:debug "login button doesn't work"`
231
231
  Usage: `/ariadna:debug` (resume active session)
@@ -236,7 +236,7 @@ Usage: `/ariadna:debug` (resume active session)
236
236
  Capture idea or task as todo from current conversation.
237
237
 
238
238
  - Extracts context from conversation (or uses provided description)
239
- - Creates structured todo file in `.planning/todos/pending/`
239
+ - Creates structured todo file in `.ariadna_planning/todos/pending/`
240
240
  - Infers area from file paths for grouping
241
241
  - Checks for duplicates before creating
242
242
  - Updates STATE.md todo count
@@ -297,7 +297,7 @@ Configure workflow toggles and model profile interactively.
297
297
 
298
298
  - Toggle researcher, plan checker, verifier agents
299
299
  - Select model profile (quality/balanced/budget)
300
- - Updates `.planning/config.json`
300
+ - Updates `.ariadna_planning/config.json`
301
301
 
302
302
  Usage: `/ariadna:settings`
303
303
 
@@ -337,7 +337,7 @@ Usage: `/ariadna:join-discord`
337
337
  ## Files & Structure
338
338
 
339
339
  ```
340
- .planning/
340
+ .ariadna_planning/
341
341
  ├── PROJECT.md # Project vision
342
342
  ├── ROADMAP.md # Current phase breakdown
343
343
  ├── STATE.md # Project memory & context
@@ -380,24 +380,24 @@ Set during `/ariadna:new-project`:
380
380
  - Executes plans without confirmation
381
381
  - Only stops for critical checkpoints
382
382
 
383
- Change anytime by editing `.planning/config.json`
383
+ Change anytime by editing `.ariadna_planning/config.json`
384
384
 
385
385
  ## Planning Configuration
386
386
 
387
- Configure how planning artifacts are managed in `.planning/config.json`:
387
+ Configure how planning artifacts are managed in `.ariadna_planning/config.json`:
388
388
 
389
389
  **`planning.commit_docs`** (default: `true`)
390
390
  - `true`: Planning artifacts committed to git (standard workflow)
391
391
  - `false`: Planning artifacts kept local-only, not committed
392
392
 
393
393
  When `commit_docs: false`:
394
- - Add `.planning/` to your `.gitignore`
394
+ - Add `.ariadna_planning/` to your `.gitignore`
395
395
  - Useful for OSS contributions, client projects, or keeping planning private
396
396
  - All planning files still work normally, just not tracked in git
397
397
 
398
398
  **`planning.search_gitignored`** (default: `false`)
399
399
  - `true`: Add `--no-ignore` to broad ripgrep searches
400
- - Only needed when `.planning/` is gitignored and you want project-wide searches to include it
400
+ - Only needed when `.ariadna_planning/` is gitignored and you want project-wide searches to include it
401
401
 
402
402
  Example config:
403
403
  ```json
@@ -463,8 +463,8 @@ Example config:
463
463
 
464
464
  ## Getting Help
465
465
 
466
- - Read `.planning/PROJECT.md` for project vision
467
- - Read `.planning/STATE.md` for current context
468
- - Check `.planning/ROADMAP.md` for phase status
466
+ - Read `.ariadna_planning/PROJECT.md` for project vision
467
+ - Read `.ariadna_planning/STATE.md` for current context
468
+ - Check `.ariadna_planning/ROADMAP.md` for phase status
469
469
  - Run `/ariadna:progress` to check where you're up to
470
470
  </reference>
@@ -39,7 +39,7 @@ INIT=$(ariadna-tools init phase-op "${after_phase}")
39
39
 
40
40
  Check `roadmap_exists` from init JSON. If false:
41
41
  ```
42
- ERROR: No roadmap found (.planning/ROADMAP.md)
42
+ ERROR: No roadmap found (.ariadna_planning/ROADMAP.md)
43
43
  ```
44
44
  Exit.
45
45
  </step>
@@ -55,7 +55,7 @@ The CLI handles:
55
55
  - Verifying target phase exists in ROADMAP.md
56
56
  - Calculating next decimal phase number (checking existing decimals on disk)
57
57
  - Generating slug from description
58
- - Creating the phase directory (`.planning/phases/{N.M}-{slug}/`)
58
+ - Creating the phase directory (`.ariadna_planning/phases/{N.M}-{slug}/`)
59
59
  - Inserting the phase entry into ROADMAP.md after the target phase with (INSERTED) marker
60
60
 
61
61
  Extract from result: `phase_number`, `after_phase`, `name`, `slug`, `directory`.
@@ -64,7 +64,7 @@ Extract from result: `phase_number`, `after_phase`, `name`, `slug`, `directory`.
64
64
  <step name="update_project_state">
65
65
  Update STATE.md to reflect the inserted phase:
66
66
 
67
- 1. Read `.planning/STATE.md`
67
+ 1. Read `.ariadna_planning/STATE.md`
68
68
  2. Under "## Accumulated Context" → "### Roadmap Evolution" add entry:
69
69
  ```
70
70
  - Phase {decimal_phase} inserted after Phase {after_phase}: {description} (URGENT)
@@ -79,12 +79,12 @@ Present completion summary:
79
79
  ```
80
80
  Phase {decimal_phase} inserted after Phase {after_phase}:
81
81
  - Description: {description}
82
- - Directory: .planning/phases/{decimal-phase}-{slug}/
82
+ - Directory: .ariadna_planning/phases/{decimal-phase}-{slug}/
83
83
  - Status: Not planned yet
84
84
  - Marker: (INSERTED) - indicates urgent work
85
85
 
86
- Roadmap updated: .planning/ROADMAP.md
87
- Project state updated: .planning/STATE.md
86
+ Roadmap updated: .ariadna_planning/ROADMAP.md
87
+ Project state updated: .ariadna_planning/STATE.md
88
88
 
89
89
  ---
90
90
 
@@ -24,7 +24,7 @@ Exit workflow.
24
24
  Validate phase exists in roadmap:
25
25
 
26
26
  ```bash
27
- cat .planning/ROADMAP.md | grep -i "Phase ${PHASE}"
27
+ cat .ariadna_planning/ROADMAP.md | grep -i "Phase ${PHASE}"
28
28
  ```
29
29
 
30
30
  **If phase not found:**
@@ -1,9 +1,9 @@
1
1
  <purpose>
2
- Orchestrate parallel codebase mapper agents to analyze codebase and produce structured documents in .planning/codebase/
2
+ Orchestrate parallel codebase mapper agents to analyze codebase and produce structured documents in .ariadna_planning/codebase/
3
3
 
4
4
  Each agent has fresh context, explores a specific focus area, and **writes documents directly**. The orchestrator only receives confirmation + line counts, then writes a summary.
5
5
 
6
- Output: .planning/codebase/ folder with 7 structured documents about the codebase state.
6
+ Output: .ariadna_planning/codebase/ folder with 7 structured documents about the codebase state.
7
7
  </purpose>
8
8
 
9
9
  <philosophy>
@@ -33,17 +33,17 @@ Extract from init JSON: `mapper_model`, `commit_docs`, `codebase_dir`, `existing
33
33
  </step>
34
34
 
35
35
  <step name="check_existing">
36
- Check if .planning/codebase/ already exists using `has_maps` from init context.
36
+ Check if .ariadna_planning/codebase/ already exists using `has_maps` from init context.
37
37
 
38
38
  If `codebase_dir_exists` is true:
39
39
  ```bash
40
- ls -la .planning/codebase/
40
+ ls -la .ariadna_planning/codebase/
41
41
  ```
42
42
 
43
43
  **If exists:**
44
44
 
45
45
  ```
46
- .planning/codebase/ already exists with these documents:
46
+ .ariadna_planning/codebase/ already exists with these documents:
47
47
  [List files found]
48
48
 
49
49
  What's next?
@@ -54,7 +54,7 @@ What's next?
54
54
 
55
55
  Wait for user response.
56
56
 
57
- If "Refresh": Delete .planning/codebase/, continue to create_structure
57
+ If "Refresh": Delete .ariadna_planning/codebase/, continue to create_structure
58
58
  If "Update": Ask which documents to update, continue to spawn_agents (filtered)
59
59
  If "Skip": Exit workflow
60
60
 
@@ -63,10 +63,10 @@ Continue to create_structure.
63
63
  </step>
64
64
 
65
65
  <step name="create_structure">
66
- Create .planning/codebase/ directory:
66
+ Create .ariadna_planning/codebase/ directory:
67
67
 
68
68
  ```bash
69
- mkdir -p .planning/codebase
69
+ mkdir -p .ariadna_planning/codebase
70
70
  ```
71
71
 
72
72
  **Expected output files:**
@@ -104,7 +104,7 @@ Focus: tech
104
104
 
105
105
  Analyze this codebase for technology stack and external integrations.
106
106
 
107
- Write these documents to .planning/codebase/:
107
+ Write these documents to .ariadna_planning/codebase/:
108
108
  - STACK.md - Languages, runtime, frameworks, dependencies, configuration
109
109
  - INTEGRATIONS.md - External APIs, databases, auth providers, webhooks
110
110
 
@@ -127,7 +127,7 @@ Focus: arch
127
127
 
128
128
  Analyze this codebase architecture and directory structure.
129
129
 
130
- Write these documents to .planning/codebase/:
130
+ Write these documents to .ariadna_planning/codebase/:
131
131
  - ARCHITECTURE.md - Pattern, layers, data flow, abstractions, entry points
132
132
  - STRUCTURE.md - Directory layout, key locations, naming conventions
133
133
 
@@ -150,7 +150,7 @@ Focus: quality
150
150
 
151
151
  Analyze this codebase for coding conventions and testing patterns.
152
152
 
153
- Write these documents to .planning/codebase/:
153
+ Write these documents to .ariadna_planning/codebase/:
154
154
  - CONVENTIONS.md - Code style, naming, patterns, error handling
155
155
  - TESTING.md - Framework, structure, mocking, coverage
156
156
 
@@ -173,7 +173,7 @@ Focus: concerns
173
173
 
174
174
  Analyze this codebase for technical debt, known issues, and areas of concern.
175
175
 
176
- Write this document to .planning/codebase/:
176
+ Write this document to .ariadna_planning/codebase/:
177
177
  - CONCERNS.md - Tech debt, bugs, security, performance, fragile areas
178
178
 
179
179
  Explore thoroughly. Write document directly using template. Return confirmation only.
@@ -193,8 +193,8 @@ Read each agent's output file to collect confirmations.
193
193
 
194
194
  **Focus:** {focus}
195
195
  **Documents written:**
196
- - `.planning/codebase/{DOC1}.md` ({N} lines)
197
- - `.planning/codebase/{DOC2}.md` ({N} lines)
196
+ - `.ariadna_planning/codebase/{DOC1}.md` ({N} lines)
197
+ - `.ariadna_planning/codebase/{DOC2}.md` ({N} lines)
198
198
 
199
199
  Ready for orchestrator summary.
200
200
  ```
@@ -210,8 +210,8 @@ Continue to verify_output.
210
210
  Verify all documents created successfully:
211
211
 
212
212
  ```bash
213
- ls -la .planning/codebase/
214
- wc -l .planning/codebase/*.md
213
+ ls -la .ariadna_planning/codebase/
214
+ wc -l .ariadna_planning/codebase/*.md
215
215
  ```
216
216
 
217
217
  **Verification checklist:**
@@ -230,7 +230,7 @@ Run secret pattern detection:
230
230
 
231
231
  ```bash
232
232
  # Check for common API key patterns in generated docs
233
- grep -E '(sk-[a-zA-Z0-9]{20,}|sk_live_[a-zA-Z0-9]+|sk_test_[a-zA-Z0-9]+|ghp_[a-zA-Z0-9]{36}|gho_[a-zA-Z0-9]{36}|glpat-[a-zA-Z0-9_-]+|AKIA[A-Z0-9]{16}|xox[baprs]-[a-zA-Z0-9-]+|-----BEGIN.*PRIVATE KEY|eyJ[a-zA-Z0-9_-]+\.eyJ[a-zA-Z0-9_-]+\.)' .planning/codebase/*.md 2>/dev/null && SECRETS_FOUND=true || SECRETS_FOUND=false
233
+ grep -E '(sk-[a-zA-Z0-9]{20,}|sk_live_[a-zA-Z0-9]+|sk_test_[a-zA-Z0-9]+|ghp_[a-zA-Z0-9]{36}|gho_[a-zA-Z0-9]{36}|glpat-[a-zA-Z0-9_-]+|AKIA[A-Z0-9]{16}|xox[baprs]-[a-zA-Z0-9-]+|-----BEGIN.*PRIVATE KEY|eyJ[a-zA-Z0-9_-]+\.eyJ[a-zA-Z0-9_-]+\.)' .ariadna_planning/codebase/*.md 2>/dev/null && SECRETS_FOUND=true || SECRETS_FOUND=false
234
234
  ```
235
235
 
236
236
  **If SECRETS_FOUND=true:**
@@ -262,7 +262,7 @@ Continue to commit_codebase_map.
262
262
  Commit the codebase map:
263
263
 
264
264
  ```bash
265
- ariadna-tools commit "docs: map existing codebase" --files .planning/codebase/*.md
265
+ ariadna-tools commit "docs: map existing codebase" --files .ariadna_planning/codebase/*.md
266
266
  ```
267
267
 
268
268
  Continue to offer_next.
@@ -273,7 +273,7 @@ Present completion summary and next steps.
273
273
 
274
274
  **Get line counts:**
275
275
  ```bash
276
- wc -l .planning/codebase/*.md
276
+ wc -l .ariadna_planning/codebase/*.md
277
277
  ```
278
278
 
279
279
  **Output format:**
@@ -281,7 +281,7 @@ wc -l .planning/codebase/*.md
281
281
  ```
282
282
  Codebase mapping complete.
283
283
 
284
- Created .planning/codebase/:
284
+ Created .ariadna_planning/codebase/:
285
285
  - STACK.md ([N] lines) - Technologies and dependencies
286
286
  - ARCHITECTURE.md ([N] lines) - System design and patterns
287
287
  - STRUCTURE.md ([N] lines) - Directory layout and organization
@@ -305,7 +305,7 @@ Created .planning/codebase/:
305
305
 
306
306
  **Also available:**
307
307
  - Re-run mapping: `/ariadna:map-codebase`
308
- - Review specific file: `cat .planning/codebase/STACK.md`
308
+ - Review specific file: `cat .ariadna_planning/codebase/STACK.md`
309
309
  - Edit any document before proceeding
310
310
 
311
311
  ---
@@ -317,7 +317,7 @@ End workflow.
317
317
  </process>
318
318
 
319
319
  <success_criteria>
320
- - .planning/codebase/ directory created
320
+ - .ariadna_planning/codebase/ directory created
321
321
  - 4 parallel ariadna-codebase-mapper agents spawned with run_in_background=true
322
322
  - Agents write documents directly (orchestrator doesn't receive document contents)
323
323
  - Read agent output files to collect confirmations