learnship 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/.claude-plugin/plugin.json +26 -0
  2. package/.cursor-plugin/plugin.json +26 -0
  3. package/LICENSE +21 -0
  4. package/README.md +791 -0
  5. package/SKILL.md +86 -0
  6. package/agents/debugger.md +102 -0
  7. package/agents/executor.md +115 -0
  8. package/agents/learnship-debugger.md +146 -0
  9. package/agents/learnship-executor.md +155 -0
  10. package/agents/learnship-phase-researcher.md +128 -0
  11. package/agents/learnship-plan-checker.md +119 -0
  12. package/agents/learnship-planner.md +146 -0
  13. package/agents/learnship-verifier.md +157 -0
  14. package/agents/planner.md +109 -0
  15. package/agents/researcher.md +80 -0
  16. package/agents/verifier.md +114 -0
  17. package/bin/install.js +1242 -0
  18. package/bin/learnship.js +56 -0
  19. package/commands/learnship/add-phase.md +22 -0
  20. package/commands/learnship/add-tests.md +24 -0
  21. package/commands/learnship/add-todo.md +21 -0
  22. package/commands/learnship/audit-milestone.md +21 -0
  23. package/commands/learnship/check-todos.md +22 -0
  24. package/commands/learnship/cleanup.md +22 -0
  25. package/commands/learnship/complete-milestone.md +22 -0
  26. package/commands/learnship/debug.md +27 -0
  27. package/commands/learnship/decision-log.md +22 -0
  28. package/commands/learnship/diagnose-issues.md +23 -0
  29. package/commands/learnship/discovery-phase.md +24 -0
  30. package/commands/learnship/discuss-milestone.md +23 -0
  31. package/commands/learnship/discuss-phase.md +23 -0
  32. package/commands/learnship/execute-phase.md +27 -0
  33. package/commands/learnship/execute-plan.md +26 -0
  34. package/commands/learnship/health.md +20 -0
  35. package/commands/learnship/help.md +19 -0
  36. package/commands/learnship/insert-phase.md +22 -0
  37. package/commands/learnship/knowledge-base.md +21 -0
  38. package/commands/learnship/list-phase-assumptions.md +21 -0
  39. package/commands/learnship/ls.md +20 -0
  40. package/commands/learnship/map-codebase.md +23 -0
  41. package/commands/learnship/milestone-retrospective.md +21 -0
  42. package/commands/learnship/new-milestone.md +23 -0
  43. package/commands/learnship/new-project.md +24 -0
  44. package/commands/learnship/next.md +22 -0
  45. package/commands/learnship/pause-work.md +21 -0
  46. package/commands/learnship/plan-milestone-gaps.md +22 -0
  47. package/commands/learnship/plan-phase.md +24 -0
  48. package/commands/learnship/progress.md +20 -0
  49. package/commands/learnship/quick.md +27 -0
  50. package/commands/learnship/reapply-patches.md +21 -0
  51. package/commands/learnship/release.md +21 -0
  52. package/commands/learnship/remove-phase.md +23 -0
  53. package/commands/learnship/research-phase.md +23 -0
  54. package/commands/learnship/resume-work.md +21 -0
  55. package/commands/learnship/set-profile.md +21 -0
  56. package/commands/learnship/settings.md +21 -0
  57. package/commands/learnship/transition.md +21 -0
  58. package/commands/learnship/update.md +21 -0
  59. package/commands/learnship/validate-phase.md +22 -0
  60. package/commands/learnship/verify-work.md +23 -0
  61. package/cursor-rules/learnship.mdc +60 -0
  62. package/gemini-extension.json +10 -0
  63. package/hooks/hooks-claude.json +15 -0
  64. package/hooks/hooks-cursor.json +10 -0
  65. package/hooks/session-start +43 -0
  66. package/install.sh +254 -0
  67. package/learnship/references/design-commands.md +119 -0
  68. package/learnship/references/git-integration.md +249 -0
  69. package/learnship/references/learning-design.md +142 -0
  70. package/learnship/references/model-profiles.md +90 -0
  71. package/learnship/references/planning-config.md +184 -0
  72. package/learnship/references/questioning.md +162 -0
  73. package/learnship/references/ui-brand.md +160 -0
  74. package/learnship/references/verification-patterns.md +608 -0
  75. package/learnship/templates/agents.md +166 -0
  76. package/learnship/templates/context.md +72 -0
  77. package/learnship/templates/plan.md +202 -0
  78. package/learnship/templates/project.md +184 -0
  79. package/learnship/templates/requirements.md +231 -0
  80. package/learnship/templates/state.md +176 -0
  81. package/learnship/templates/uat.md +80 -0
  82. package/learnship/workflows/add-phase.md +84 -0
  83. package/learnship/workflows/add-tests.md +191 -0
  84. package/learnship/workflows/add-todo.md +108 -0
  85. package/learnship/workflows/audit-milestone.md +178 -0
  86. package/learnship/workflows/check-todos.md +138 -0
  87. package/learnship/workflows/cleanup.md +107 -0
  88. package/learnship/workflows/complete-milestone.md +191 -0
  89. package/learnship/workflows/debug.md +245 -0
  90. package/learnship/workflows/decision-log.md +131 -0
  91. package/learnship/workflows/diagnose-issues.md +145 -0
  92. package/learnship/workflows/discovery-phase.md +183 -0
  93. package/learnship/workflows/discuss-milestone.md +136 -0
  94. package/learnship/workflows/discuss-phase.md +244 -0
  95. package/learnship/workflows/execute-phase.md +345 -0
  96. package/learnship/workflows/execute-plan.md +149 -0
  97. package/learnship/workflows/health.md +171 -0
  98. package/learnship/workflows/help.md +153 -0
  99. package/learnship/workflows/insert-phase.md +106 -0
  100. package/learnship/workflows/knowledge-base.md +168 -0
  101. package/learnship/workflows/list-phase-assumptions.md +129 -0
  102. package/learnship/workflows/ls.md +145 -0
  103. package/learnship/workflows/map-codebase.md +142 -0
  104. package/learnship/workflows/milestone-retrospective.md +178 -0
  105. package/learnship/workflows/new-milestone.md +200 -0
  106. package/learnship/workflows/new-project.md +340 -0
  107. package/learnship/workflows/next.md +100 -0
  108. package/learnship/workflows/pause-work.md +122 -0
  109. package/learnship/workflows/plan-milestone-gaps.md +160 -0
  110. package/learnship/workflows/plan-phase.md +288 -0
  111. package/learnship/workflows/progress.md +118 -0
  112. package/learnship/workflows/quick.md +256 -0
  113. package/learnship/workflows/reapply-patches.md +130 -0
  114. package/learnship/workflows/release.md +217 -0
  115. package/learnship/workflows/remove-phase.md +128 -0
  116. package/learnship/workflows/research-phase.md +137 -0
  117. package/learnship/workflows/resume-work.md +162 -0
  118. package/learnship/workflows/set-profile.md +78 -0
  119. package/learnship/workflows/settings.md +204 -0
  120. package/learnship/workflows/sync-upstream-skills.md +269 -0
  121. package/learnship/workflows/transition.md +165 -0
  122. package/learnship/workflows/update.md +166 -0
  123. package/learnship/workflows/validate-phase.md +174 -0
  124. package/learnship/workflows/verify-work.md +264 -0
  125. package/package.json +62 -0
  126. package/references/design-commands.md +119 -0
  127. package/references/git-integration.md +249 -0
  128. package/references/learning-design.md +142 -0
  129. package/references/model-profiles.md +90 -0
  130. package/references/planning-config.md +184 -0
  131. package/references/questioning.md +162 -0
  132. package/references/ui-brand.md +160 -0
  133. package/references/verification-patterns.md +608 -0
  134. package/skills/agentic-learning/SKILL.md +373 -0
  135. package/skills/agentic-learning/references/either-or-format.md +161 -0
  136. package/skills/agentic-learning/references/learning-science.md +190 -0
  137. package/skills/agentic-learning/references/struggle-ladder.md +140 -0
  138. package/skills/impeccable/SKILL.md +125 -0
  139. package/skills/impeccable/adapt/SKILL.md +199 -0
  140. package/skills/impeccable/animate/SKILL.md +190 -0
  141. package/skills/impeccable/audit/SKILL.md +129 -0
  142. package/skills/impeccable/bolder/SKILL.md +132 -0
  143. package/skills/impeccable/clarify/SKILL.md +180 -0
  144. package/skills/impeccable/colorize/SKILL.md +158 -0
  145. package/skills/impeccable/critique/SKILL.md +118 -0
  146. package/skills/impeccable/delight/SKILL.md +317 -0
  147. package/skills/impeccable/distill/SKILL.md +137 -0
  148. package/skills/impeccable/extract/SKILL.md +95 -0
  149. package/skills/impeccable/frontend-design/SKILL.md +127 -0
  150. package/skills/impeccable/frontend-design/reference/color-and-contrast.md +132 -0
  151. package/skills/impeccable/frontend-design/reference/interaction-design.md +123 -0
  152. package/skills/impeccable/frontend-design/reference/motion-design.md +99 -0
  153. package/skills/impeccable/frontend-design/reference/responsive-design.md +114 -0
  154. package/skills/impeccable/frontend-design/reference/spatial-design.md +100 -0
  155. package/skills/impeccable/frontend-design/reference/typography.md +131 -0
  156. package/skills/impeccable/frontend-design/reference/ux-writing.md +107 -0
  157. package/skills/impeccable/harden/SKILL.md +358 -0
  158. package/skills/impeccable/normalize/SKILL.md +67 -0
  159. package/skills/impeccable/onboard/SKILL.md +243 -0
  160. package/skills/impeccable/optimize/SKILL.md +269 -0
  161. package/skills/impeccable/polish/SKILL.md +202 -0
  162. package/skills/impeccable/quieter/SKILL.md +118 -0
  163. package/skills/impeccable/teach-impeccable/SKILL.md +69 -0
  164. package/templates/agents.md +166 -0
  165. package/templates/config.json +22 -0
  166. package/templates/context.md +72 -0
  167. package/templates/plan.md +202 -0
  168. package/templates/project.md +184 -0
  169. package/templates/requirements.md +231 -0
  170. package/templates/state.md +176 -0
  171. package/templates/uat.md +80 -0
@@ -0,0 +1,145 @@
1
+ ---
2
+ description: Batch-diagnose multiple UAT issues after verify-work — groups by root cause, proposes fix plan
3
+ ---
4
+
5
+ # Diagnose Issues
6
+
7
+ Batch-diagnose all open UAT issues after `verify-work`. Groups issues by root cause, identifies shared fixes, and proposes a structured fix plan — more efficient than debugging issues one at a time.
8
+
9
+ **Usage:** `diagnose-issues [phase]`
10
+
11
+ **Run after:** `verify-work [N]` has logged issues in a UAT file.
12
+
13
+ ## Step 1: Load Issues
14
+
15
+ Find the UAT file for the phase:
16
+ ```bash
17
+ ls ".planning/phases/"*[N]*"/"*-UAT.md 2>/dev/null | head -1
18
+ ```
19
+
20
+ If no UAT file found: stop — "Run `verify-work [N]` first to log issues."
21
+
22
+ Read the UAT file. Extract all open issues (status: open).
23
+
24
+ If no open issues:
25
+ ```
26
+ No open issues in Phase [N] UAT. All issues are resolved or deferred.
27
+ ```
28
+ Stop.
29
+
30
+ Display:
31
+ ```
32
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
33
+ learnship ► DIAGNOSE ISSUES — Phase [N]
34
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
35
+
36
+ [N] open issue(s) to diagnose:
37
+ [list of issue titles and severities]
38
+ ```
39
+
40
+ ## Step 2: Read Phase Context
41
+
42
+ Read all PLAN.md and SUMMARY.md files for the phase to understand what was built and how:
43
+ ```bash
44
+ cat ".planning/phases/[phase-dir]/"*-PLAN.md
45
+ cat ".planning/phases/[phase-dir]/"*-SUMMARY.md
46
+ ```
47
+
48
+ Also read `.planning/DECISIONS.md` if it exists — prior decisions often explain why an issue occurred.
49
+
50
+ ## Step 3: Diagnose Each Issue
51
+
52
+ For each open issue, using `@./agents/debugger.md` in diagnosis mode (read-only — no implementation changes):
53
+
54
+ 1. **Trace the symptom** — follow the user-reported behavior inward through the codebase
55
+ 2. **Find the divergence point** — the specific file:line where behavior diverges from expected
56
+ 3. **Classify root cause:**
57
+ - `implementation_bug` — code exists but is wrong
58
+ - `missing_implementation` — code simply wasn't written
59
+ - `integration_gap` — two components don't connect properly
60
+ - `requirements_mismatch` — built correctly but wrong spec
61
+ - `environment` — works in code but breaks in specific environment
62
+
63
+ Record for each issue:
64
+ ```
65
+ Issue: [title]
66
+ Root cause type: [type]
67
+ Location: [file:line]
68
+ Cause: [one sentence]
69
+ Confidence: high | medium | low
70
+ ```
71
+
72
+ ## Step 4: Group by Root Cause
73
+
74
+ Look for shared root causes across issues — frequently multiple UAT issues trace back to the same source:
75
+
76
+ ```
77
+ Root Cause Groups:
78
+
79
+ Group A: [common cause] → affects issues: [1, 3, 5]
80
+ One fix here resolves all three.
81
+
82
+ Group B: [cause] → affects issue: [2]
83
+ Standalone fix needed.
84
+
85
+ Group C: [cause] → affects issues: [4, 6]
86
+ Shared component needs updating.
87
+ ```
88
+
89
+ ## Step 5: Propose Fix Plan
90
+
91
+ For each group, propose a minimal fix approach:
92
+
93
+ ```
94
+ Proposed Fix Plan
95
+
96
+ **Fix 1: [group A description]**
97
+ Closes: Issues [1, 3, 5]
98
+ Approach: [1-2 sentences]
99
+ Files: [list]
100
+ Effort: small | medium | large
101
+
102
+ **Fix 2: [group B description]**
103
+ Closes: Issue [2]
104
+ Approach: [1-2 sentences]
105
+ Files: [list]
106
+ Effort: small | medium | large
107
+ ```
108
+
109
+ Ask: "Does this diagnosis look right? Proceed with creating fix plans?"
110
+
111
+ ## Step 6: Create Fix Plans
112
+
113
+ For each fix group, write a PLAN.md in the phase directory:
114
+
115
+ ```bash
116
+ ls ".planning/phases/[phase-dir]/"*-PLAN.md | wc -l
117
+ # Next plan ID = existing count + 1
118
+ ```
119
+
120
+ Write `[padded_phase]-[next-id]-FIX-PLAN.md` using the standard plan template format.
121
+
122
+ Update the UAT file — for each issue being addressed, add:
123
+ ```yaml
124
+ fix_plan: [padded_phase]-[plan-id]-FIX-PLAN.md
125
+ ```
126
+
127
+ ## Step 7: Commit and Report
128
+
129
+ ```bash
130
+ git add ".planning/phases/[phase-dir]/"
131
+ git commit -m "docs([padded_phase]): add fix plans for [N] UAT issues"
132
+ ```
133
+
134
+ ```
135
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
136
+ learnship ► DIAGNOSIS COMPLETE ✓
137
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
138
+
139
+ Issues diagnosed: [N]
140
+ Root cause groups: [M]
141
+ Fix plans created: [K]
142
+
143
+ ▶ Next: execute-plan [phase] [plan-id] (for each fix plan)
144
+ or: execute-phase [phase] (runs all remaining plans including fixes)
145
+ ```
@@ -0,0 +1,183 @@
1
+ ---
2
+ description: Structured codebase discovery before working on an unfamiliar area — reads code, maps dependencies, surfaces risks
3
+ ---
4
+
5
+ # Discovery Phase
6
+
7
+ Structured discovery for working on an unfamiliar part of the codebase. Maps the relevant code area, traces dependencies, identifies risks, and produces a focused discovery report before planning starts.
8
+
9
+ **Usage:** `discovery-phase [N]` or `discovery-phase [area description]`
10
+
11
+ **Run before:** `discuss-phase [N]` or `plan-phase [N]` when the area is unfamiliar.
12
+
13
+ ## Step 1: Identify Discovery Target
14
+
15
+ If a phase number was provided, read the phase goal from ROADMAP.md:
16
+ ```bash
17
+ cat .planning/ROADMAP.md | grep -A 10 "Phase [N]:"
18
+ ```
19
+
20
+ If a description was provided, use it directly.
21
+
22
+ Display:
23
+ ```
24
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
25
+ learnship ► DISCOVERY — [target area]
26
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
27
+ ```
28
+
29
+ ## Step 2: Locate Relevant Code
30
+
31
+ Search for code related to the target area using key terms from the phase goal:
32
+
33
+ ```bash
34
+ # Find files mentioning key terms
35
+ grep -rl "[key term 1]" src/ 2>/dev/null | head -15
36
+ grep -rl "[key term 2]" src/ 2>/dev/null | head -10
37
+
38
+ # Find related directories
39
+ find src/ -type d | grep -i "[key term]" 2>/dev/null
40
+
41
+ # Find entry points
42
+ grep -rn "export\|module.exports\|def " src/ --include="*.ts" --include="*.js" --include="*.py" 2>/dev/null | grep -i "[key term]" | head -20
43
+ ```
44
+
45
+ Read the 5-8 most relevant files. Focus on interfaces, types, exports, and public API — not implementation details.
46
+
47
+ ## Step 3: Map Dependencies
48
+
49
+ For the relevant files, trace what they depend on and what depends on them:
50
+
51
+ **Incoming dependencies** (who calls this code):
52
+ ```bash
53
+ grep -rl "import.*[module name]\|require.*[module name]" src/ 2>/dev/null | head -10
54
+ ```
55
+
56
+ **Outgoing dependencies** (what this code calls):
57
+ Read import statements from the relevant files.
58
+
59
+ Build a dependency map:
60
+ ```
61
+ [target area]
62
+ ← used by: [file A], [file B]
63
+ → uses: [lib X], [module Y], [service Z]
64
+ ↔ shares state with: [store/context/DB table]
65
+ ```
66
+
67
+ ## Step 4: Identify Integration Points
68
+
69
+ Find where new code for this phase would need to connect:
70
+ - Entry points (routes, event handlers, CLI commands)
71
+ - Shared state (stores, contexts, DB models)
72
+ - External service calls that affect this area
73
+ - Configuration that controls behavior
74
+
75
+ ## Step 5: Surface Risks
76
+
77
+ Look specifically for:
78
+
79
+ **Complexity hotspots:**
80
+ ```bash
81
+ # Files with most lines of code in the area
82
+ wc -l $(find src/ -name "*.ts" -o -name "*.py" 2>/dev/null | xargs grep -l "[key term]" 2>/dev/null) | sort -n | tail -10
83
+ ```
84
+
85
+ **Test coverage gaps:**
86
+ ```bash
87
+ find . -name "*.test.*" -o -name "test_*.py" | xargs grep -l "[key term]" 2>/dev/null
88
+ ```
89
+
90
+ **TODO/FIXME in the area:**
91
+ ```bash
92
+ grep -rn "TODO\|FIXME\|HACK\|XXX" src/ 2>/dev/null | grep -i "[key term]" | head -10
93
+ ```
94
+
95
+ **Known issues from DECISIONS.md:**
96
+ ```bash
97
+ grep -i "[key term]" .planning/DECISIONS.md 2>/dev/null
98
+ ```
99
+
100
+ ## Step 6: Write Discovery Report
101
+
102
+ Write `.planning/phases/[padded_phase]-[slug]/[padded_phase]-DISCOVERY.md`:
103
+
104
+ ```markdown
105
+ ---
106
+ phase: [N]
107
+ area: [target area]
108
+ created: [date]
109
+ ---
110
+
111
+ # Discovery: [target area]
112
+
113
+ ## Relevant Files
114
+
115
+ | File | Role | Lines |
116
+ |------|------|-------|
117
+ | [path] | [what it does] | [N] |
118
+
119
+ ## Dependency Map
120
+
121
+ [ASCII diagram or bullet list]
122
+
123
+ ## Integration Points
124
+
125
+ - **Entry point:** [where new code connects]
126
+ - **Shared state:** [what is shared]
127
+ - **External dependencies:** [services, APIs]
128
+
129
+ ## Risks
130
+
131
+ ### High
132
+ - [risk]: [why it's risky, what to watch for]
133
+
134
+ ### Medium
135
+ - [risk]: [description]
136
+
137
+ ### Low / Acceptable
138
+ - [risk]: [description]
139
+
140
+ ## Test Coverage
141
+
142
+ [Summary of what's tested, what's not]
143
+
144
+ ## Recommendations
145
+
146
+ Before planning Phase [N]:
147
+ - [Specific recommendation 1]
148
+ - [Specific recommendation 2]
149
+ ```
150
+
151
+ ## Step 7: Commit and Report
152
+
153
+ ```bash
154
+ git add ".planning/phases/[padded_phase]-[slug]/"
155
+ git commit -m "docs([padded_phase]): discovery report for [area]"
156
+ ```
157
+
158
+ ```
159
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
160
+ learnship ► DISCOVERY COMPLETE ✓
161
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
162
+
163
+ Area: [target]
164
+ Files mapped: [N]
165
+ Risks found: [high: N, medium: M, low: K]
166
+
167
+ ▶ Next: discuss-phase [N] — your decisions will be informed by this discovery
168
+ or: plan-phase [N] — discovery is available for the planner to read
169
+ ```
170
+
171
+ ---
172
+
173
+ ## Learning Checkpoint
174
+
175
+ Read `learning_mode` from `.planning/config.json`.
176
+
177
+ **If `auto`:** Offer:
178
+
179
+ > 💡 **Learning moment:** Discovery complete. Verify your mental model before building:
180
+ >
181
+ > `@agentic-learning explain [area name]` — Explain the area you just discovered back in your own words. Gaps in the explanation are gaps in the understanding — better to find them now.
182
+
183
+ **If `manual`:** Add quietly: *"Tip: `@agentic-learning explain [area]` to verify your understanding before planning."*
@@ -0,0 +1,136 @@
1
+ ---
2
+ description: Capture milestone-level goals, constraints, and anti-goals before new-milestone starts
3
+ ---
4
+
5
+ # Discuss Milestone
6
+
7
+ Capture what the next milestone should achieve — and what it should explicitly *not* do — before committing to a roadmap. Produces a `MILESTONE-CONTEXT.md` that `new-milestone` reads to skip re-asking.
8
+
9
+ **Usage:** `discuss-milestone [version]` — e.g., `discuss-milestone v2.0`
10
+
11
+ **Run before:** `new-milestone`
12
+
13
+ ## Step 1: Load Prior Context
14
+
15
+ Read what has already shipped:
16
+ ```bash
17
+ cat .planning/PROJECT.md
18
+ cat .planning/STATE.md
19
+ ls .planning/milestones/ 2>/dev/null | sort -V | tail -3
20
+ ```
21
+
22
+ Display the last milestone summary so the conversation starts informed:
23
+ ```
24
+ Last shipped: [VERSION] — [Name]
25
+ [2-sentence summary from milestones archive]
26
+
27
+ Pending todos: [N] items
28
+ ```
29
+
30
+ Check if a MILESTONE-CONTEXT.md already exists:
31
+ ```bash
32
+ test -f .planning/MILESTONE-CONTEXT.md && echo "EXISTS"
33
+ ```
34
+
35
+ If exists: ask "A milestone context file already exists from a prior discussion. Update it or start fresh?"
36
+
37
+ ## Step 2: Discuss Goals
38
+
39
+ Ask openly: **"What do you want this milestone to achieve?"**
40
+
41
+ Follow the thread. Dig into:
42
+ - What user capability will exist after this milestone that doesn't exist now?
43
+ - What's the single most important thing to ship?
44
+ - Are there any dependencies on external things (APIs, other teams, timing)?
45
+ - Is there a deadline or forcing function?
46
+
47
+ ## Step 3: Capture Anti-Goals
48
+
49
+ These are often the most valuable thing to capture explicitly:
50
+
51
+ Ask: **"What should this milestone explicitly NOT do?"**
52
+
53
+ Examples that reveal useful constraints:
54
+ - "Don't touch the auth system — it's in use by paying customers"
55
+ - "Don't add real-time features — that's v3"
56
+ - "Don't change the public API shape — clients depend on it"
57
+
58
+ If the user doesn't have strong anti-goals, prompt: "Any areas of the codebase that should be off-limits? Features that feel like scope creep for this cycle?"
59
+
60
+ ## Step 4: Capture Constraints
61
+
62
+ Ask about practical constraints:
63
+ - **Team/time**: Solo? Team of N? Approximate timeline?
64
+ - **Quality bar**: Prototype/spike, or production-grade?
65
+ - **Known technical debt**: Anything that must be addressed in this milestone?
66
+ - **Architecture decisions already made**: Anything that constrains the approach?
67
+
68
+ ## Step 5: Write MILESTONE-CONTEXT.md
69
+
70
+ Write `.planning/MILESTONE-CONTEXT.md`:
71
+
72
+ ```markdown
73
+ ---
74
+ version: [VERSION]
75
+ created: [date]
76
+ status: ready
77
+ ---
78
+
79
+ # Milestone Context: [VERSION]
80
+
81
+ ## Goals
82
+
83
+ [2-4 bullet points — what the user wants to achieve]
84
+
85
+ ## Must-Have Features
86
+
87
+ [List of features/capabilities that define this milestone's success]
88
+
89
+ ## Anti-Goals
90
+
91
+ [What this milestone explicitly does NOT include — equally important as goals]
92
+
93
+ ## Constraints
94
+
95
+ - **Scope**: [Solo/Team, timeline if known]
96
+ - **Quality bar**: [prototype | production-grade]
97
+ - **Off-limits areas**: [parts of codebase not to touch]
98
+ - **Architecture constraints**: [decisions already locked in]
99
+
100
+ ## Open Questions
101
+
102
+ [Anything unresolved that new-milestone should ask about]
103
+ ```
104
+
105
+ ## Step 6: Commit and Confirm
106
+
107
+ ```bash
108
+ git add .planning/MILESTONE-CONTEXT.md
109
+ git commit -m "docs: capture milestone [VERSION] context"
110
+ ```
111
+
112
+ ```
113
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
114
+ learnship ► MILESTONE CONTEXT CAPTURED ✓
115
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
116
+
117
+ Milestone: [VERSION]
118
+ Goals: [N] captured
119
+ Anti-goals: [N] captured
120
+
121
+ ▶ Next: new-milestone [VERSION] (will read this context automatically)
122
+ ```
123
+
124
+ ---
125
+
126
+ ## Learning Checkpoint
127
+
128
+ Read `learning_mode` from `.planning/config.json`.
129
+
130
+ **If `auto`:** Offer:
131
+
132
+ > 💡 **Learning moment:** About to start a new milestone. Brainstorm the design before locking scope:
133
+ >
134
+ > `@agentic-learning brainstorm [milestone topic]` — Talk through the new capabilities before committing. What's the mental model? What are the 2-3 ways this could be built? Surface blind spots now, not mid-execution.
135
+
136
+ **If `manual`:** Add quietly: *"Tip: `@agentic-learning brainstorm [topic]` before new-milestone to surface approach alternatives."*
@@ -0,0 +1,244 @@
1
+ ---
2
+ description: Capture implementation decisions for a phase before planning starts
3
+ ---
4
+
5
+ # Discuss Phase
6
+
7
+ Extract implementation decisions that downstream planning needs. Analyze the phase to identify gray areas, let the user choose what to discuss, then deep-dive each selected area until satisfied.
8
+
9
+ **Usage:** Run `discuss-phase [N]` before `plan-phase [N]`.
10
+
11
+ **You are a thinking partner, not an interviewer.** The user is the visionary — you are the builder. Capture decisions that will guide research and planning.
12
+
13
+ ## Step 1: Load Phase
14
+
15
+ Read `.planning/ROADMAP.md` and find the requested phase number. If not found, stop and show available phases.
16
+
17
+ Read prior context to avoid re-asking decided questions:
18
+ ```bash
19
+ cat .planning/PROJECT.md
20
+ cat .planning/REQUIREMENTS.md
21
+ cat .planning/STATE.md
22
+ find .planning/phases -name "*-CONTEXT.md" 2>/dev/null | sort
23
+ ```
24
+
25
+ Extract from prior CONTEXT.md files: locked preferences, patterns the user has established (e.g., "user consistently prefers minimal UI", "user rejected single-key shortcuts").
26
+
27
+ ## Step 1b: Load Decisions Register
28
+
29
+ If `.planning/DECISIONS.md` exists, read it:
30
+ ```bash
31
+ cat .planning/DECISIONS.md 2>/dev/null | head -80
32
+ ```
33
+
34
+ Note any decisions that constrain or inform this phase's approach. Surface them during discussion rather than re-asking decided questions.
35
+
36
+ ## Step 2: Check Existing Context
37
+
38
+ ```bash
39
+ ls .planning/phases/*-CONTEXT.md 2>/dev/null
40
+ ```
41
+
42
+ If CONTEXT.md already exists for this phase:
43
+ - Offer: **Update it** / **View it** / **Skip** (use as-is)
44
+ - If "Skip" → exit workflow
45
+
46
+ If no CONTEXT.md exists but plans already exist for this phase:
47
+ - Warn: "Phase [X] already has plans created without user context. Your decisions here won't affect existing plans unless you re-run plan-phase."
48
+ - Ask: **Continue and replan after** / **Cancel**
49
+
50
+ ## Step 3: Scout Codebase
51
+
52
+ Do a lightweight scan to inform the discussion. Look for:
53
+ - Existing components, hooks, utilities relevant to this phase
54
+ - Established patterns (state management, styling, data fetching)
55
+ - Integration points where new code would connect
56
+
57
+ ```bash
58
+ ls src/components/ src/hooks/ src/lib/ src/utils/ 2>/dev/null
59
+ ```
60
+
61
+ Use grep to find files related to the phase goal's key terms. Read 3-5 most relevant files. Store findings internally — don't write to a file yet.
62
+
63
+ ## Step 4: Identify Gray Areas
64
+
65
+ Analyze the phase goal from ROADMAP.md. A gray area is an **implementation decision the user cares about** — something that could go multiple ways and would change the result.
66
+
67
+ **By domain type:**
68
+ - Something users **SEE** → layout, density, interactions, empty states
69
+ - Something users **CALL** → response format, errors, auth flow, versioning
70
+ - Something users **RUN** → output format, flags, modes, error handling
71
+ - Something users **READ** → structure, tone, depth, flow
72
+ - Something being **ORGANIZED** → grouping criteria, naming, duplicates
73
+
74
+ **Check prior decisions first** — don't re-ask what's already locked from earlier phases.
75
+
76
+ Generate 3-4 **phase-specific** gray areas. Not generic categories ("UI", "UX") — concrete decisions:
77
+ ```
78
+ Phase: "User authentication"
79
+ → Session handling, Error responses, Multi-device policy, Recovery flow
80
+
81
+ Phase: "Post Feed"
82
+ → Layout style (cards vs. timeline), Loading behavior, Content metadata, Empty state
83
+ ```
84
+
85
+ If no meaningful gray areas exist (pure infrastructure, all already decided), note this and skip to Step 6.
86
+
87
+ ## Step 5: Present Gray Areas and Discuss
88
+
89
+ Display:
90
+ ```
91
+ Phase [X]: [Name]
92
+ Domain: [what this phase delivers]
93
+
94
+ We'll clarify HOW to implement this — new capabilities belong in other phases.
95
+ ```
96
+
97
+ If prior decisions apply, show them:
98
+ ```
99
+ Carrying forward from earlier phases:
100
+ - [Decision from Phase N]
101
+ ```
102
+
103
+ Present 3-4 gray areas for selection (multi-select). Annotate with:
104
+ - Prior decision context: "You chose X in Phase 5"
105
+ - Code context: "You already have a Card component with shadow/rounded variants"
106
+
107
+ **For each selected area, discuss:**
108
+
109
+ 1. Announce: "Let's talk about [Area]."
110
+ 2. Ask 4 focused questions with concrete options (not abstract). Include the recommended choice. Annotate options with existing code where relevant.
111
+ 3. After 4 questions, ask: "More questions about [area], or move to next?"
112
+ 4. If more → ask 4 more, then check again
113
+
114
+ After all selected areas:
115
+ - Summarize decisions captured
116
+ - Ask: "Which gray areas remain unclear?" → "Explore more" or "I'm ready for context"
117
+
118
+ **Scope guardrail:** If the user suggests a new capability, say:
119
+ ```
120
+ "[Feature X] sounds like a new capability — that's its own phase.
121
+ Want me to note it for the roadmap backlog?
122
+
123
+ Back to [current area]..."
124
+ ```
125
+
126
+ Track deferred ideas internally.
127
+
128
+ ## Step 6: Write CONTEXT.md
129
+
130
+ Find or create the phase directory:
131
+ ```bash
132
+ mkdir -p ".planning/phases/[padded_phase]-[phase_slug]"
133
+ ```
134
+
135
+ Write `.planning/phases/[padded_phase]-[phase_slug]/[padded_phase]-CONTEXT.md`:
136
+
137
+ ```markdown
138
+ # Phase [X]: [Name] - Context
139
+
140
+ **Gathered:** [date]
141
+ **Status:** Ready for planning
142
+
143
+ <domain>
144
+ ## Phase Boundary
145
+
146
+ [Clear statement of what this phase delivers]
147
+
148
+ </domain>
149
+
150
+ <decisions>
151
+ ## Implementation Decisions
152
+
153
+ ### [Category discussed]
154
+ - [Decision captured]
155
+
156
+ ### Claude's Discretion
157
+ [Areas where user said "you decide"]
158
+
159
+ </decisions>
160
+
161
+ <code_context>
162
+ ## Existing Code Insights
163
+
164
+ ### Reusable Assets
165
+ - [Component/hook]: [How it could be used]
166
+
167
+ ### Established Patterns
168
+ - [Pattern]: [How it constrains/enables this phase]
169
+
170
+ ### Integration Points
171
+ - [Where new code connects to existing system]
172
+
173
+ </code_context>
174
+
175
+ <specifics>
176
+ ## Specific Ideas
177
+
178
+ [Any "I want it like X" moments or specific references]
179
+
180
+ [If none: "No specific requirements — open to standard approaches"]
181
+
182
+ </specifics>
183
+
184
+ <deferred>
185
+ ## Deferred Ideas
186
+
187
+ [Ideas that came up but belong in other phases]
188
+
189
+ [If none: "None — discussion stayed within phase scope"]
190
+
191
+ </deferred>
192
+
193
+ ---
194
+ *Phase: [padded_phase]-[phase_slug]*
195
+ *Context gathered: [date]*
196
+ ```
197
+
198
+ ## Step 7: Commit and Confirm
199
+
200
+ ```bash
201
+ git add ".planning/phases/[padded_phase]-[phase_slug]/[padded_phase]-CONTEXT.md"
202
+ git commit -m "docs([padded_phase]): capture phase context"
203
+ ```
204
+
205
+ Update STATE.md with session info, then commit:
206
+ ```bash
207
+ git add .planning/STATE.md && git commit -m "docs(state): record phase [X] context session"
208
+ ```
209
+
210
+ Present summary:
211
+ ```
212
+ Created: .planning/phases/[padded_phase]-[slug]/[padded_phase]-CONTEXT.md
213
+
214
+ ## Decisions Captured
215
+
216
+ ### [Category]
217
+ - [Key decision]
218
+
219
+ [If deferred ideas:]
220
+ ## Noted for Later
221
+ - [Deferred idea] — future phase
222
+
223
+ ---
224
+
225
+ ▶ Next Up: plan-phase [X]
226
+ ```
227
+
228
+ ---
229
+
230
+ ## Learning Checkpoint
231
+
232
+ Read `learning_mode` from `.planning/config.json`.
233
+
234
+ **If `auto`:** Offer based on where you are in the discussion:
235
+
236
+ > 💡 **Learning moment:** Implementation decisions just captured. Make them stick:
237
+ >
238
+ > `@agentic-learning either-or` — Record the decision paths considered, the choice made, and expected consequences. Builds a searchable record of your reasoning that future phases can reference.
239
+ >
240
+ > `@agentic-learning brainstorm [phase topic]` — If any area felt unclear or you settled quickly, talk it through now. Better to surface a blind spot here than mid-execution.
241
+ >
242
+ > `@agentic-learning explain-first [phase topic]` — Explain the planned approach back in your own words. If the explanation has gaps, the CONTEXT.md probably does too.
243
+
244
+ **If `manual`:** Add quietly: *"Tip: `@agentic-learning either-or` to log today's decisions as a decision journal entry."*