@leeovery/claude-technical-workflows 2.1.40 → 2.1.41

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 (110) hide show
  1. package/README.md +1 -1
  2. package/agents/implementation-analysis-architecture.md +2 -2
  3. package/agents/implementation-analysis-duplication.md +2 -2
  4. package/agents/implementation-analysis-standards.md +2 -2
  5. package/agents/implementation-analysis-synthesizer.md +3 -3
  6. package/agents/implementation-analysis-task-writer.md +1 -1
  7. package/agents/implementation-task-executor.md +3 -0
  8. package/agents/planning-phase-designer.md +8 -6
  9. package/agents/planning-task-designer.md +8 -6
  10. package/agents/review-findings-synthesizer.md +2 -2
  11. package/agents/review-task-verifier.md +1 -1
  12. package/hooks/workflows/compact-recovery.sh +1 -1
  13. package/hooks/workflows/session-cleanup.sh +1 -1
  14. package/hooks/workflows/write-session-state.sh +1 -1
  15. package/package.json +1 -1
  16. package/skills/begin-implementation/SKILL.md +5 -5
  17. package/skills/begin-planning/SKILL.md +2 -1
  18. package/skills/begin-review/SKILL.md +1 -1
  19. package/skills/continue-feature/references/detect-phase.md +5 -5
  20. package/skills/continue-feature/references/invoke-implementation.md +2 -2
  21. package/skills/continue-feature/references/invoke-planning.md +2 -2
  22. package/skills/continue-feature/references/invoke-review.md +2 -2
  23. package/skills/continue-feature/references/invoke-specification.md +3 -3
  24. package/skills/continue-feature/scripts/discovery.sh +5 -5
  25. package/skills/link-dependencies/SKILL.md +5 -5
  26. package/skills/migrate/SKILL.md +1 -1
  27. package/skills/migrate/scripts/migrate.sh +56 -25
  28. package/skills/migrate/scripts/migrations/011-rename-workflow-directory.sh +73 -0
  29. package/skills/migrate/scripts/migrations/012-environment-setup-to-state.sh +23 -0
  30. package/skills/start-discussion/SKILL.md +2 -2
  31. package/skills/start-discussion/references/gather-context-research.md +1 -1
  32. package/skills/start-discussion/references/handle-selection.md +1 -1
  33. package/skills/start-discussion/references/invoke-skill.md +3 -3
  34. package/skills/start-discussion/references/research-analysis.md +3 -3
  35. package/skills/start-discussion/scripts/discovery.sh +3 -3
  36. package/skills/start-feature/SKILL.md +5 -5
  37. package/skills/start-feature/references/phase-bridge.md +1 -1
  38. package/skills/start-implementation/SKILL.md +6 -6
  39. package/skills/start-implementation/scripts/discovery.sh +4 -4
  40. package/skills/start-planning/SKILL.md +5 -3
  41. package/skills/start-planning/references/display-state.md +31 -1
  42. package/skills/start-planning/references/invoke-skill.md +3 -3
  43. package/skills/start-planning/scripts/discovery.sh +32 -3
  44. package/skills/start-research/SKILL.md +1 -1
  45. package/skills/start-research/references/invoke-skill.md +1 -1
  46. package/skills/start-review/SKILL.md +1 -1
  47. package/skills/start-review/references/invoke-skill.md +4 -4
  48. package/skills/start-review/scripts/discovery.sh +5 -5
  49. package/skills/start-specification/SKILL.md +1 -1
  50. package/skills/start-specification/references/analysis-flow.md +2 -2
  51. package/skills/start-specification/references/confirm-continue.md +3 -3
  52. package/skills/start-specification/references/confirm-create.md +2 -2
  53. package/skills/start-specification/references/confirm-refine.md +1 -1
  54. package/skills/start-specification/references/confirm-unify.md +2 -2
  55. package/skills/start-specification/references/display-analyze.md +1 -1
  56. package/skills/start-specification/references/display-groupings.md +3 -3
  57. package/skills/start-specification/references/display-specs-menu.md +1 -1
  58. package/skills/start-specification/references/handoffs/continue-concluded.md +4 -4
  59. package/skills/start-specification/references/handoffs/continue.md +4 -4
  60. package/skills/start-specification/references/handoffs/create-with-incorporation.md +5 -5
  61. package/skills/start-specification/references/handoffs/create.md +4 -4
  62. package/skills/start-specification/references/handoffs/unify-with-incorporation.md +6 -6
  63. package/skills/start-specification/references/handoffs/unify.md +4 -4
  64. package/skills/start-specification/scripts/discovery.sh +3 -3
  65. package/skills/status/SKILL.md +1 -1
  66. package/skills/status/scripts/discovery.sh +5 -5
  67. package/skills/technical-discussion/SKILL.md +3 -3
  68. package/skills/technical-discussion/references/template.md +2 -2
  69. package/skills/technical-implementation/SKILL.md +11 -10
  70. package/skills/technical-implementation/references/analysis-loop.md +45 -9
  71. package/skills/technical-implementation/references/environment-setup.md +3 -3
  72. package/skills/technical-implementation/references/invoke-task-writer.md +1 -1
  73. package/skills/technical-implementation/references/task-loop.md +1 -1
  74. package/skills/technical-planning/SKILL.md +8 -7
  75. package/skills/technical-planning/references/analyze-task-graph.md +1 -1
  76. package/skills/technical-planning/references/author-tasks.md +5 -5
  77. package/skills/technical-planning/references/define-phases.md +5 -2
  78. package/skills/technical-planning/references/define-tasks.md +6 -3
  79. package/skills/technical-planning/references/invoke-review-integrity.md +1 -1
  80. package/skills/technical-planning/references/invoke-review-traceability.md +1 -1
  81. package/skills/technical-planning/references/output-formats/local-markdown/about.md +2 -2
  82. package/skills/technical-planning/references/output-formats/local-markdown/authoring.md +2 -2
  83. package/skills/technical-planning/references/output-formats/local-markdown/reading.md +3 -3
  84. package/skills/technical-planning/references/output-formats/local-markdown/updating.md +1 -1
  85. package/skills/technical-planning/references/phase-design/bugfix.md +75 -0
  86. package/skills/technical-planning/references/phase-design/feature.md +77 -0
  87. package/skills/technical-planning/references/phase-design/greenfield.md +75 -0
  88. package/skills/technical-planning/references/phase-design.md +7 -57
  89. package/skills/technical-planning/references/plan-index-schema.md +3 -1
  90. package/skills/technical-planning/references/review-integrity.md +1 -1
  91. package/skills/technical-planning/references/review-traceability.md +1 -1
  92. package/skills/technical-planning/references/task-design/bugfix.md +65 -0
  93. package/skills/technical-planning/references/task-design/feature.md +61 -0
  94. package/skills/technical-planning/references/task-design/greenfield.md +47 -0
  95. package/skills/technical-planning/references/task-design.md +6 -39
  96. package/skills/technical-planning/references/verify-source-material.md +2 -2
  97. package/skills/technical-research/SKILL.md +2 -2
  98. package/skills/technical-research/references/interview.md +2 -2
  99. package/skills/technical-review/SKILL.md +1 -1
  100. package/skills/technical-review/references/invoke-review-synthesizer.md +3 -3
  101. package/skills/technical-review/references/invoke-review-task-writer.md +2 -2
  102. package/skills/technical-review/references/invoke-task-verifiers.md +3 -3
  103. package/skills/technical-review/references/produce-review.md +1 -1
  104. package/skills/technical-review/references/review-actions-loop.md +7 -5
  105. package/skills/technical-specification/SKILL.md +5 -5
  106. package/skills/technical-specification/references/dependencies.md +2 -2
  107. package/skills/technical-specification/references/review-tracking-format.md +1 -1
  108. package/skills/technical-specification/references/specification-format.md +1 -1
  109. package/skills/technical-specification/references/verify-source-material.md +2 -2
  110. package/skills/view-plan/SKILL.md +2 -2
package/README.md CHANGED
@@ -212,7 +212,7 @@ npx claude-manager remove @leeovery/claude-technical-workflows && npm rm @leeove
212
212
  Documents are stored in your project using a **phase-first** organisation. Early phases use flat files; later phases use topic directories with multiple files for tracking and analysis.
213
213
 
214
214
  ```
215
- docs/workflow/
215
+ .workflows/
216
216
  ├── research/ # Phase 1 — flat, semantically named
217
217
  │ ├── exploration.md
218
218
  │ ├── competitor-analysis.md
@@ -38,7 +38,7 @@ You receive via the orchestrator's prompt:
38
38
  3. **Read specification** — understand design intent and boundaries
39
39
  4. **Read all implementation files** — understand the full picture
40
40
  5. **Analyze architecture** — evaluate how the pieces compose as a whole
41
- 6. **Write findings** to `docs/workflow/implementation/{topic}/analysis-architecture-c{cycle-number}.md`
41
+ 6. **Write findings** to `.workflows/implementation/{topic}/analysis-architecture-c{cycle-number}.md`
42
42
 
43
43
  ## Hard Rules
44
44
 
@@ -52,7 +52,7 @@ You receive via the orchestrator's prompt:
52
52
 
53
53
  ## Output File Format
54
54
 
55
- Write to `docs/workflow/implementation/{topic}/analysis-architecture-c{cycle-number}.md`:
55
+ Write to `.workflows/implementation/{topic}/analysis-architecture-c{cycle-number}.md`:
56
56
 
57
57
  ```
58
58
  AGENT: architecture
@@ -34,7 +34,7 @@ You receive via the orchestrator's prompt:
34
34
  3. **Read specification** — understand design intent
35
35
  4. **Read all implementation files** — build a mental map of the full codebase
36
36
  5. **Analyze for duplication** — compare patterns across files, identify extraction candidates
37
- 6. **Write findings** to `docs/workflow/implementation/{topic}/analysis-duplication-c{cycle-number}.md`
37
+ 6. **Write findings** to `.workflows/implementation/{topic}/analysis-duplication-c{cycle-number}.md`
38
38
 
39
39
  ## Hard Rules
40
40
 
@@ -48,7 +48,7 @@ You receive via the orchestrator's prompt:
48
48
 
49
49
  ## Output File Format
50
50
 
51
- Write to `docs/workflow/implementation/{topic}/analysis-duplication-c{cycle-number}.md`:
51
+ Write to `.workflows/implementation/{topic}/analysis-duplication-c{cycle-number}.md`:
52
52
 
53
53
  ```
54
54
  AGENT: duplication
@@ -34,7 +34,7 @@ You receive via the orchestrator's prompt:
34
34
  3. **Read code-quality.md** — understand quality standards
35
35
  4. **Read all implementation files** — map each file back to its spec requirements
36
36
  5. **Compare implementation against spec** — check every decision point
37
- 6. **Write findings** to `docs/workflow/implementation/{topic}/analysis-standards-c{cycle-number}.md`
37
+ 6. **Write findings** to `.workflows/implementation/{topic}/analysis-standards-c{cycle-number}.md`
38
38
 
39
39
  ## Hard Rules
40
40
 
@@ -48,7 +48,7 @@ You receive via the orchestrator's prompt:
48
48
 
49
49
  ## Output File Format
50
50
 
51
- Write to `docs/workflow/implementation/{topic}/analysis-standards-c{cycle-number}.md`:
51
+ Write to `.workflows/implementation/{topic}/analysis-standards-c{cycle-number}.md`:
52
52
 
53
53
  ```
54
54
  AGENT: standards
@@ -20,13 +20,13 @@ You receive via the orchestrator's prompt:
20
20
 
21
21
  ## Your Process
22
22
 
23
- 1. **Read all findings files** from `docs/workflow/implementation/{topic}/` — look for `analysis-duplication-c{cycle-number}.md`, `analysis-standards-c{cycle-number}.md`, and `analysis-architecture-c{cycle-number}.md`
23
+ 1. **Read all findings files** from `.workflows/implementation/{topic}/` — look for `analysis-duplication-c{cycle-number}.md`, `analysis-standards-c{cycle-number}.md`, and `analysis-architecture-c{cycle-number}.md`
24
24
  2. **Deduplicate** — same issue found by multiple agents → one finding, note all sources
25
25
  3. **Group related findings** — multiple findings about the same pattern become one task (e.g., 3 duplication findings about the same helper pattern = 1 "extract helper" task)
26
26
  4. **Filter** — discard low-severity findings unless they cluster into a pattern. Never discard high-severity.
27
27
  5. **Normalize** — convert each group into a task using the canonical task template (Problem / Solution / Outcome / Do / Acceptance Criteria / Tests)
28
- 6. **Write report** — output to `docs/workflow/implementation/{topic}/analysis-report-c{cycle-number}.md`
29
- 7. **Write staging file** — if actionable tasks exist, write to `docs/workflow/implementation/{topic}/analysis-tasks-c{cycle-number}.md` with `status: pending` for each task
28
+ 6. **Write report** — output to `.workflows/implementation/{topic}/analysis-report-c{cycle-number}.md`
29
+ 7. **Write staging file** — if actionable tasks exist, write to `.workflows/implementation/{topic}/analysis-tasks-c{cycle-number}.md` with `status: pending` for each task
30
30
 
31
31
  ## Report Format
32
32
 
@@ -32,7 +32,7 @@ You receive via the orchestrator's prompt:
32
32
 
33
33
  ## Update the Plan Index File
34
34
 
35
- The Plan Index File (`docs/workflow/planning/{topic}/plan.md`) is the single source of truth for planning progress. After creating task files, you **must** append the new phase and task table to its body.
35
+ The Plan Index File (`.workflows/planning/{topic}/plan.md`) is the single source of truth for planning progress. After creating task files, you **must** append the new phase and task table to its body.
36
36
 
37
37
  Append at the end of the Plan Index File body, following the **Phase Entry** and **Task Table** templates from plan-index-schema:
38
38
 
@@ -36,6 +36,9 @@ You are stateless — each invocation starts fresh. The full task content is alw
36
36
  - Read files and tests related to the task's domain
37
37
  - Identify patterns, conventions, and structures you'll need to follow or extend
38
38
  - Check for existing code that the task builds on or integrates with
39
+ - Find similar implementations — if the task is "add endpoint X", find existing endpoints and follow the same pattern
40
+ - Understand inputs, outputs, and callers of any code you'll modify
41
+ - Note the testing approach used in this area — use the same patterns
39
42
  6. **Execute TDD cycle** — follow the process in tdd-workflow.md for each acceptance criterion and test case.
40
43
  7. **Verify all acceptance criteria met** — every criterion from the task must be satisfied
41
44
  8. **Return structured result**
@@ -17,8 +17,9 @@ You receive file paths via the orchestrator's prompt:
17
17
  2. **Specification path** — The validated specification to plan from
18
18
  3. **Cross-cutting spec paths** (if any) — Architectural decisions that influence planning
19
19
  4. **phase-design.md** — Phase design principles
20
- 5. **task-design.md** — Task design principles (for phase granularity awareness)
21
- 6. **plan-index-schema.md** — Canonical plan index structure
20
+ 5. **Context-specific phase design** — Work-type guidance (greenfield, feature, or bugfix)
21
+ 6. **task-design.md** — Task design principles (for phase granularity awareness)
22
+ 7. **plan-index-schema.md** — Canonical plan index structure
22
23
 
23
24
  On **amendment**, you also receive:
24
25
  - **Previous output** — Your prior phase structure
@@ -30,9 +31,10 @@ On **amendment**, you also receive:
30
31
  2. Read the specification in full, following the ingestion protocol
31
32
  3. Read any cross-cutting specifications
32
33
  4. Read `phase-design.md` — absorb the phase design principles
33
- 5. Read `task-design.md` understand task granularity (needed to judge phase scope)
34
- 6. Read `plan-index-schema.md` — understand the plan index structure
35
- 7. Design the phase structure
34
+ 5. Read the context-specific phase design guidance
35
+ 6. Read `task-design.md` — understand task granularity (needed to judge phase scope)
36
+ 7. Read `plan-index-schema.md` — understand the plan index structure
37
+ 8. Design the phase structure
36
38
 
37
39
  If this is an **amendment**: read your previous output and the user's feedback, then revise accordingly.
38
40
 
@@ -59,7 +61,7 @@ Continue for all phases.
59
61
 
60
62
  ## Rules
61
63
 
62
- 1. **Walking skeleton first** — Phase 1 is always the thinnest end-to-end slice
64
+ 1. **Strongest foundation first** — Phase 1 establishes the pattern for subsequent phases. Follow the Phase 1 strategy from the loaded context guidance.
63
65
  2. **Vertical phases** — each phase delivers working functionality, not technical layers
64
66
  3. **Clear acceptance** — every criterion is pass/fail verifiable
65
67
  4. **No forward references** — no phase depends on something not yet built
@@ -17,9 +17,10 @@ You receive file paths via the orchestrator's prompt:
17
17
  2. **Specification path** — The validated specification to plan from
18
18
  3. **Cross-cutting spec paths** (if any) — Architectural decisions that influence planning
19
19
  4. **task-design.md** — Task design principles
20
- 5. **All approved phases** — The complete phase structure (from the Plan Index File)
21
- 6. **Target phase number** — Which phase to break into tasks
22
- 7. **plan-index-schema.md** — Canonical plan index structure
20
+ 5. **Context-specific task design** — Work-type guidance (greenfield, feature, or bugfix)
21
+ 6. **All approved phases** — The complete phase structure (from the Plan Index File)
22
+ 7. **Target phase number** — Which phase to break into tasks
23
+ 8. **plan-index-schema.md** — Canonical plan index structure
23
24
 
24
25
  On **amendment**, you also receive:
25
26
  - **Previous output** — Your prior task list
@@ -31,9 +32,10 @@ On **amendment**, you also receive:
31
32
  2. Read the specification in full, following the ingestion protocol
32
33
  3. Read any cross-cutting specifications
33
34
  4. Read `task-design.md` — absorb the task design principles
34
- 5. Read the approved phases understand the full plan structure and where this phase fits
35
- 6. Read `plan-index-schema.md` — understand the plan index structure
36
- 7. Design the task list for the target phase
35
+ 5. Read the context-specific task design guidance
36
+ 6. Read the approved phases — understand the full plan structure and where this phase fits
37
+ 7. Read `plan-index-schema.md` understand the plan index structure
38
+ 8. Design the task list for the target phase
37
39
 
38
40
  If this is an **amendment**: read your previous output and the user's feedback, then revise accordingly.
39
41
 
@@ -26,8 +26,8 @@ You receive via the orchestrator's prompt:
26
26
  4. **Group related findings** — multiple findings about the same concern become one task (e.g., 3 QA findings about missing error handling in the same module = 1 "add error handling" task)
27
27
  5. **Filter** — discard low-severity non-blocking findings unless they cluster into a pattern. Never discard high-severity or blocking findings.
28
28
  6. **Normalize** — convert each group into a task using the canonical task template (Problem / Solution / Outcome / Do / Acceptance Criteria / Tests)
29
- 7. **Write report** — output to `docs/workflow/implementation/{topic}/review-report-c{cycle}.md`
30
- 8. **Write staging file** — if actionable tasks exist, write to `docs/workflow/implementation/{topic}/review-tasks-c{cycle}.md` with `status: pending` for each task
29
+ 7. **Write report** — output to `.workflows/implementation/{topic}/review-report-c{cycle}.md`
30
+ 8. **Write staging file** — if actionable tasks exist, write to `.workflows/implementation/{topic}/review-tasks-c{cycle}.md` with `status: pending` for each task
31
31
 
32
32
  ## Report Format
33
33
 
@@ -87,7 +87,7 @@ Review the implementation as a senior architect would:
87
87
 
88
88
  ## Output File Format
89
89
 
90
- Write to `docs/workflow/review/{topic}/r{N}/qa-task-{index}.md`:
90
+ Write to `.workflows/review/{topic}/r{N}/qa-task-{index}.md`:
91
91
 
92
92
  ```
93
93
  TASK: [Task name/description]
@@ -21,7 +21,7 @@ if [ -z "$session_id" ]; then
21
21
  exit 0
22
22
  fi
23
23
 
24
- SESSION_FILE="$PROJECT_DIR/docs/workflow/.cache/sessions/${session_id}.yaml"
24
+ SESSION_FILE="$PROJECT_DIR/.workflows/.cache/sessions/${session_id}.yaml"
25
25
 
26
26
  if [ ! -f "$SESSION_FILE" ]; then
27
27
  exit 0
@@ -17,7 +17,7 @@ fi
17
17
  session_id=$(cat | grep -o '"session_id" *: *"[^"]*"' | sed 's/.*: *"//;s/"//')
18
18
 
19
19
  if [ -n "$session_id" ]; then
20
- session_file="$PROJECT_DIR/docs/workflow/.cache/sessions/${session_id}.yaml"
20
+ session_file="$PROJECT_DIR/.workflows/.cache/sessions/${session_id}.yaml"
21
21
  if [ -f "$session_file" ]; then
22
22
  rm -f "$session_file"
23
23
  fi
@@ -42,7 +42,7 @@ while [ $# -gt 0 ]; do
42
42
  esac
43
43
  done
44
44
 
45
- SESSIONS_DIR="$PROJECT_DIR/docs/workflow/.cache/sessions"
45
+ SESSIONS_DIR="$PROJECT_DIR/.workflows/.cache/sessions"
46
46
  mkdir -p "$SESSIONS_DIR"
47
47
 
48
48
  SESSION_FILE="$SESSIONS_DIR/${CLAUDE_SESSION_ID}.yaml"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leeovery/claude-technical-workflows",
3
- "version": "2.1.40",
3
+ "version": "2.1.41",
4
4
  "description": "Technical workflow skills & commands for Claude Code",
5
5
  "license": "MIT",
6
6
  "author": "Lee Overy <me@leeovery.com>",
@@ -117,7 +117,7 @@ Environment: No special setup required.
117
117
  > *Output the next fenced block as a code block:*
118
118
 
119
119
  ```
120
- Environment setup file found: docs/workflow/environment-setup.md
120
+ Environment setup file found: .workflows/environment-setup.md
121
121
  ```
122
122
 
123
123
  → Proceed to **Step 4**.
@@ -133,8 +133,8 @@ Are there any environment setup instructions I should follow before implementati
133
133
 
134
134
  **STOP.** Wait for user response.
135
135
 
136
- - If the user provides instructions, save them to `docs/workflow/environment-setup.md`, commit
137
- - If the user says no/none, create `docs/workflow/environment-setup.md` with "No special setup required." and commit
136
+ - If the user provides instructions, save them to `.workflows/environment-setup.md`, commit
137
+ - If the user says no/none, create `.workflows/environment-setup.md` with "No special setup required." and commit
138
138
 
139
139
  → Proceed to **Step 4**.
140
140
 
@@ -150,10 +150,10 @@ Construct the handoff and invoke the [technical-implementation](../technical-imp
150
150
 
151
151
  ```
152
152
  Implementation session for: {topic}
153
- Plan: docs/workflow/planning/{topic}/plan.md
153
+ Plan: .workflows/planning/{topic}/plan.md
154
154
  Format: {format}
155
155
  Plan ID: {plan_id} (if applicable)
156
- Specification: docs/workflow/specification/{topic}/specification.md (exists: {true|false})
156
+ Specification: .workflows/specification/{topic}/specification.md (exists: {true|false})
157
157
  Implementation tracking: {exists | new} (status: {status})
158
158
  Dependencies: {All satisfied | notes}
159
159
  Environment: {Setup required | No special setup required}
@@ -82,7 +82,8 @@ Construct the handoff and invoke the [technical-planning](../technical-planning/
82
82
 
83
83
  ```
84
84
  Planning session for: {topic}
85
- Specification: docs/workflow/specification/{topic}/specification.md
85
+ Specification: .workflows/specification/{topic}/specification.md
86
+ Work type: feature
86
87
  Additional context: {summary of user's answer from Step 3, or "none"}
87
88
  Cross-cutting references: {list of applicable cross-cutting specs with brief summaries, or "none"}
88
89
  Recommended output format: {common_format from discovery if non-empty, otherwise "none"}
@@ -80,7 +80,7 @@ Construct the handoff and invoke the [technical-review](../technical-review/SKIL
80
80
  Review session
81
81
  Plans to review:
82
82
  - topic: {topic}
83
- plan: docs/workflow/planning/{topic}/plan.md
83
+ plan: .workflows/planning/{topic}/plan.md
84
84
  format: {format}
85
85
  plan_id: {plan_id} (if applicable)
86
86
  specification: {specification} (exists: {true|false})
@@ -14,22 +14,22 @@ Either use the `next_phase` from discovery output (if discovery was run), or com
14
14
 
15
15
  Check artifacts in this order (first match wins):
16
16
 
17
- 1. Check `docs/workflow/review/{topic}/r*/review.md`
17
+ 1. Check `.workflows/review/{topic}/r*/review.md`
18
18
  - If any review exists → next_phase is **"done"**
19
19
 
20
- 2. Read `docs/workflow/implementation/{topic}/tracking.md`
20
+ 2. Read `.workflows/implementation/{topic}/tracking.md`
21
21
  - If exists with `status: completed` → next_phase is **"review"**
22
22
  - If exists with `status: in-progress` → next_phase is **"implementation"**
23
23
 
24
- 3. Read `docs/workflow/planning/{topic}/plan.md`
24
+ 3. Read `.workflows/planning/{topic}/plan.md`
25
25
  - If exists with `status: concluded` → next_phase is **"implementation"**
26
26
  - If exists with other status → next_phase is **"planning"**
27
27
 
28
- 4. Read `docs/workflow/specification/{topic}/specification.md`
28
+ 4. Read `.workflows/specification/{topic}/specification.md`
29
29
  - If exists with `status: concluded` → next_phase is **"planning"**
30
30
  - If exists with other status → next_phase is **"specification"**
31
31
 
32
- 5. Check `docs/workflow/discussion/{topic}.md`
32
+ 5. Check `.workflows/discussion/{topic}.md`
33
33
  - If exists with `status: concluded` → next_phase is **"specification"**
34
34
  - If exists with other status → next_phase is **"discussion"**
35
35
 
@@ -20,7 +20,7 @@ Saving session state so Claude can pick up where it left off and continue the fe
20
20
  .claude/hooks/workflows/write-session-state.sh \
21
21
  "{topic}" \
22
22
  "skills/technical-implementation/SKILL.md" \
23
- "docs/workflow/implementation/{topic}/tracking.md" \
23
+ ".workflows/implementation/{topic}/tracking.md" \
24
24
  --pipeline "This session is part of the feature pipeline. After implementation completes, return to the continue-feature skill and execute Step 7 (Phase Bridge). Load: skills/continue-feature/references/phase-bridge.md"
25
25
  ```
26
26
 
@@ -30,7 +30,7 @@ Invoke the [begin-implementation](../../begin-implementation/SKILL.md) skill:
30
30
 
31
31
  ```
32
32
  Implementation pre-flight for: {topic}
33
- Plan: docs/workflow/planning/{topic}/plan.md
33
+ Plan: .workflows/planning/{topic}/plan.md
34
34
 
35
35
  PIPELINE CONTINUATION — When implementation completes (tracking status: completed),
36
36
  you MUST return to the continue-feature skill and execute Step 7 (Phase Bridge).
@@ -20,7 +20,7 @@ Saving session state so Claude can pick up where it left off and continue the fe
20
20
  .claude/hooks/workflows/write-session-state.sh \
21
21
  "{topic}" \
22
22
  "skills/technical-planning/SKILL.md" \
23
- "docs/workflow/planning/{topic}/plan.md" \
23
+ ".workflows/planning/{topic}/plan.md" \
24
24
  --pipeline "This session is part of the feature pipeline. After the plan concludes, return to the continue-feature skill and execute Step 7 (Phase Bridge). Load: skills/continue-feature/references/phase-bridge.md"
25
25
  ```
26
26
 
@@ -30,7 +30,7 @@ Invoke the [begin-planning](../../begin-planning/SKILL.md) skill:
30
30
 
31
31
  ```
32
32
  Planning pre-flight for: {topic}
33
- Specification: docs/workflow/specification/{topic}/specification.md
33
+ Specification: .workflows/specification/{topic}/specification.md
34
34
 
35
35
  PIPELINE CONTINUATION — When planning concludes (plan status: concluded),
36
36
  you MUST return to the continue-feature skill and execute Step 7 (Phase Bridge).
@@ -20,7 +20,7 @@ Saving session state so Claude can pick up where it left off and continue the fe
20
20
  .claude/hooks/workflows/write-session-state.sh \
21
21
  "{topic}" \
22
22
  "skills/technical-review/SKILL.md" \
23
- "docs/workflow/review/{topic}/r{N}/review.md" \
23
+ ".workflows/review/{topic}/r{N}/review.md" \
24
24
  --pipeline "This session is part of the feature pipeline. After the review concludes, return to the continue-feature skill and execute Step 7 (Phase Bridge). Load: skills/continue-feature/references/phase-bridge.md"
25
25
  ```
26
26
 
@@ -30,7 +30,7 @@ Invoke the [begin-review](../../begin-review/SKILL.md) skill:
30
30
 
31
31
  ```
32
32
  Review pre-flight for: {topic}
33
- Plan: docs/workflow/planning/{topic}/plan.md
33
+ Plan: .workflows/planning/{topic}/plan.md
34
34
 
35
35
  PIPELINE CONTINUATION — When review concludes,
36
36
  you MUST return to the continue-feature skill and execute Step 7 (Phase Bridge).
@@ -10,7 +10,7 @@ Invoke the specification skill for this topic.
10
10
 
11
11
  The specification needs source material. Check what's available:
12
12
 
13
- 1. **Discussion document**: `docs/workflow/discussion/{topic}.md`
13
+ 1. **Discussion document**: `.workflows/discussion/{topic}.md`
14
14
  - If exists and concluded → use as primary source
15
15
  - If exists and in-progress → this shouldn't happen (detect-phase would have routed to discussion)
16
16
 
@@ -30,7 +30,7 @@ Saving session state so Claude can pick up where it left off and continue the fe
30
30
  .claude/hooks/workflows/write-session-state.sh \
31
31
  "{topic}" \
32
32
  "skills/technical-specification/SKILL.md" \
33
- "docs/workflow/specification/{topic}/specification.md" \
33
+ ".workflows/specification/{topic}/specification.md" \
34
34
  --pipeline "This session is part of the feature pipeline. After the specification concludes, return to the continue-feature skill and execute Step 7 (Phase Bridge). Load: skills/continue-feature/references/phase-bridge.md"
35
35
  ```
36
36
 
@@ -42,7 +42,7 @@ Invoke the [technical-specification](../../technical-specification/SKILL.md) ski
42
42
  Specification session for: {topic}
43
43
 
44
44
  Source material:
45
- - Discussion: docs/workflow/discussion/{topic}.md
45
+ - Discussion: .workflows/discussion/{topic}.md
46
46
 
47
47
  Topic name: {topic}
48
48
 
@@ -11,11 +11,11 @@
11
11
 
12
12
  set -eo pipefail
13
13
 
14
- DISC_DIR="docs/workflow/discussion"
15
- SPEC_DIR="docs/workflow/specification"
16
- PLAN_DIR="docs/workflow/planning"
17
- IMPL_DIR="docs/workflow/implementation"
18
- REVIEW_DIR="docs/workflow/review"
14
+ DISC_DIR=".workflows/discussion"
15
+ SPEC_DIR=".workflows/specification"
16
+ PLAN_DIR=".workflows/planning"
17
+ IMPL_DIR=".workflows/implementation"
18
+ REVIEW_DIR=".workflows/review"
19
19
 
20
20
  # Helper: Extract a frontmatter field value from a file
21
21
  # Usage: extract_field <file> <field_name>
@@ -24,8 +24,8 @@ Use simple, individual commands. Never combine multiple operations into bash loo
24
24
 
25
25
  Scan the codebase for existing plans:
26
26
 
27
- 1. **Find plan files**: Look in `docs/workflow/planning/`
28
- - Run `ls docs/workflow/planning/` to list plan files
27
+ 1. **Find plan files**: Look in `.workflows/planning/`
28
+ - Run `ls .workflows/planning/` to list plan files
29
29
  - Each topic is a directory containing `plan.md`
30
30
 
31
31
  2. **Extract plan metadata**: For each plan file
@@ -39,7 +39,7 @@ Scan the codebase for existing plans:
39
39
  ```
40
40
  Dependency Linking
41
41
 
42
- No plans found in docs/workflow/planning/
42
+ No plans found in .workflows/planning/
43
43
 
44
44
  There are no plans to link. Create plans first.
45
45
  ```
@@ -122,7 +122,7 @@ Key:
122
122
 
123
123
  For each unresolved dependency:
124
124
 
125
- 1. **Search for matching plan**: Does `docs/workflow/planning/{dependency-topic}/plan.md` exist?
125
+ 1. **Search for matching plan**: Does `.workflows/planning/{dependency-topic}/plan.md` exist?
126
126
  - If no match: Mark as "no plan exists" - cannot resolve yet
127
127
 
128
128
  2. **If plan exists**: Load the format's reading reference
@@ -174,7 +174,7 @@ Unresolved (no matching plan exists):
174
174
  • {source} → {target}: {description}
175
175
 
176
176
  Updated files:
177
- docs/workflow/planning/{topic}/plan.md
177
+ .workflows/planning/{topic}/plan.md
178
178
  ```
179
179
 
180
180
  If any dependencies remain unresolved:
@@ -39,7 +39,7 @@ Return control silently - no user interaction needed.
39
39
  ## Notes
40
40
 
41
41
  - This skill is run automatically at the start of every workflow skill
42
- - Migrations are tracked in `docs/workflow/.state/migrations` (one migration ID per line)
42
+ - Migrations are tracked in `.workflows/.state/migrations` (one migration ID per line)
43
43
  - The orchestrator skips entire migrations once recorded — individual scripts don't track
44
44
  - To force re-running all migrations, delete the tracking file
45
45
  - Each migration is idempotent - safe to run multiple times
@@ -9,7 +9,7 @@
9
9
  # ./scripts/migrate.sh
10
10
  #
11
11
  # Tracking:
12
- # Migrations are tracked in docs/workflow/.state/migrations
12
+ # Migrations are tracked in .workflows/.state/migrations
13
13
  # Format: "migration_id" per line (e.g., "001", "002")
14
14
  # The orchestrator checks/records migration IDs — individual scripts don't track.
15
15
  # Delete the log file to force re-running all migrations.
@@ -24,28 +24,65 @@ set -eo pipefail
24
24
 
25
25
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
26
26
  MIGRATIONS_DIR="$SCRIPT_DIR/migrations"
27
- TRACKING_FILE="docs/workflow/.state/migrations"
28
27
 
29
- # Track counts for final report
30
- FILES_UPDATED=0
31
- FILES_SKIPPED=0
32
- MIGRATIONS_RUN=0
28
+ # === LEGACY TRACKING SUPPORT (remove after 2026-06) ===
29
+ #
30
+ # Handles tracking file discovery across historical locations and formats.
31
+ # Once all users have run migration 011, replace this section with:
32
+ # TRACKING_FILE=".workflows/.state/migrations"
33
+ # mkdir -p "$(dirname "$TRACKING_FILE")"
34
+
35
+ find_tracking_file() {
36
+ for candidate in \
37
+ ".workflows/.state/migrations" \
38
+ "docs/workflow/.state/migrations" \
39
+ "docs/workflow/.cache/migrations" \
40
+ "docs/workflow/.cache/migrations.log"
41
+ do
42
+ [ -f "$candidate" ] && echo "$candidate" && return
43
+ done
44
+ echo ".workflows/.state/migrations"
45
+ }
33
46
 
34
- # Ensure state directory exists
35
- mkdir -p "$(dirname "$TRACKING_FILE")"
47
+ normalize_tracking_format() {
48
+ local file="$1"
49
+ [ ! -f "$file" ] && return
50
+ # Old: "docs/workflow/discussion/auth.md: 001" → New: "001"
51
+ if grep -q ': [0-9]' "$file" 2>/dev/null; then
52
+ grep -oE '[0-9]+$' "$file" | sort -u > "${file}.tmp"
53
+ mv "${file}.tmp" "$file"
54
+ fi
55
+ }
36
56
 
37
- # Self-healing: merge entries from old locations into .state/migrations
38
- OLD_CACHE_LOG="docs/workflow/.cache/migrations.log"
39
- OLD_CACHE_FILE="docs/workflow/.cache/migrations"
40
- if [ -f "$OLD_CACHE_LOG" ] || [ -f "$OLD_CACHE_FILE" ]; then
41
- { cat "$OLD_CACHE_LOG" 2>/dev/null || true; cat "$OLD_CACHE_FILE" 2>/dev/null || true; cat "$TRACKING_FILE" 2>/dev/null || true; } | sort -u > "${TRACKING_FILE}.tmp"
42
- mv "${TRACKING_FILE}.tmp" "$TRACKING_FILE"
43
- rm -f "$OLD_CACHE_LOG" "$OLD_CACHE_FILE"
44
- fi
57
+ stabilize_tracking_location() {
58
+ local file="$1"
59
+ local stable="docs/workflow/.state/migrations"
60
+ # If tracking is at a legacy .cache/ location, move to .state/ so it survives migration 010
61
+ case "$file" in
62
+ docs/workflow/.cache/*)
63
+ mkdir -p "$(dirname "$stable")"
64
+ mv "$file" "$stable"
65
+ echo "$stable"
66
+ ;;
67
+ *)
68
+ echo "$file"
69
+ ;;
70
+ esac
71
+ }
45
72
 
46
- # Touch tracking file if it doesn't exist
73
+ TRACKING_FILE=$(find_tracking_file)
74
+ normalize_tracking_format "$TRACKING_FILE"
75
+ TRACKING_FILE=$(stabilize_tracking_location "$TRACKING_FILE")
76
+ mkdir -p "$(dirname "$TRACKING_FILE")"
47
77
  touch "$TRACKING_FILE"
48
78
 
79
+ # === END LEGACY TRACKING SUPPORT ===
80
+
81
+ # Track counts for final report
82
+ FILES_UPDATED=0
83
+ FILES_SKIPPED=0
84
+ MIGRATIONS_RUN=0
85
+
49
86
  #
50
87
  # Helper function: Report a file update (for migration scripts to call)
51
88
  # Usage: report_update "filepath" "description"
@@ -88,14 +125,6 @@ if [ ${#MIGRATION_SCRIPTS[@]} -eq 0 ]; then
88
125
  exit 0
89
126
  fi
90
127
 
91
- # One-time: convert old per-file format to per-migration format
92
- # Old: "docs/workflow/discussion/auth.md: 001" → extracts "001"
93
- # New: "001" → already correct
94
- if grep -q ': [0-9]' "$TRACKING_FILE" 2>/dev/null; then
95
- grep -oE '[0-9]+$' "$TRACKING_FILE" | sort -u > "${TRACKING_FILE}.tmp"
96
- mv "${TRACKING_FILE}.tmp" "$TRACKING_FILE"
97
- fi
98
-
99
128
  for script in "${MIGRATION_SCRIPTS[@]}"; do
100
129
  # Extract migration ID from filename (e.g., "001" from "001-discussion-frontmatter.sh")
101
130
  migration_id=$(basename "$script" .sh | grep -oE '^[0-9]+')
@@ -115,6 +144,8 @@ for script in "${MIGRATION_SCRIPTS[@]}"; do
115
144
  # shellcheck source=/dev/null
116
145
  source "$script"
117
146
 
147
+ # Re-find tracking file (migration 011 moves it)
148
+ TRACKING_FILE=$(find_tracking_file)
118
149
  echo "$migration_id" >> "$TRACKING_FILE"
119
150
  MIGRATIONS_RUN=$((MIGRATIONS_RUN + 1))
120
151
  done