learnship 2.0.10 → 2.1.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 (79) hide show
  1. package/.claude-plugin/plugin.json +2 -2
  2. package/.cursor-plugin/plugin.json +2 -2
  3. package/README.md +59 -14
  4. package/SKILL.md +24 -2
  5. package/agents/learnship-doc-writer.md +63 -0
  6. package/agents/learnship-security-auditor.md +67 -0
  7. package/bin/install.js +9 -4
  8. package/commands/learnship/discuss-phase.md +1 -1
  9. package/commands/learnship/docs-update.md +22 -0
  10. package/commands/learnship/execute-phase.md +2 -6
  11. package/commands/learnship/extract-learnings.md +22 -0
  12. package/commands/learnship/forensics.md +21 -0
  13. package/commands/learnship/help.md +2 -1
  14. package/commands/learnship/ideate.md +1 -1
  15. package/commands/learnship/milestone-summary.md +22 -0
  16. package/commands/learnship/note.md +22 -0
  17. package/commands/learnship/plan-phase.md +0 -1
  18. package/commands/learnship/quick.md +1 -5
  19. package/commands/learnship/secure-phase.md +23 -0
  20. package/commands/learnship/session-report.md +21 -0
  21. package/commands/learnship/undo.md +22 -0
  22. package/commands/learnship/verify-work.md +1 -1
  23. package/cursor-rules/learnship.mdc +12 -2
  24. package/gemini-extension.json +2 -2
  25. package/hooks/session-start +12 -1
  26. package/learnship/agents/doc-writer.md +63 -0
  27. package/learnship/agents/security-auditor.md +67 -0
  28. package/learnship/references/common-bug-patterns.md +92 -0
  29. package/learnship/references/context-budget.md +49 -0
  30. package/learnship/references/domain-probes.md +133 -0
  31. package/learnship/references/gates.md +72 -0
  32. package/learnship/references/planning-config.md +99 -9
  33. package/learnship/references/thinking-models.md +61 -0
  34. package/learnship/references/universal-anti-patterns.md +51 -0
  35. package/learnship/templates/agents.md +20 -6
  36. package/learnship/templates/context.md +207 -32
  37. package/learnship/templates/discussion-log.md +49 -0
  38. package/learnship/templates/security.md +61 -0
  39. package/learnship/templates/ui-spec.md +107 -0
  40. package/learnship/workflows/complete-milestone.md +4 -5
  41. package/learnship/workflows/compound.md +2 -0
  42. package/learnship/workflows/debug.md +2 -0
  43. package/learnship/workflows/discuss-phase.md +73 -15
  44. package/learnship/workflows/docs-update.md +144 -0
  45. package/learnship/workflows/execute-phase.md +42 -7
  46. package/learnship/workflows/extract-learnings.md +161 -0
  47. package/learnship/workflows/forensics.md +118 -0
  48. package/learnship/workflows/help.md +20 -2
  49. package/learnship/workflows/ideate.md +63 -4
  50. package/learnship/workflows/ls.md +1 -1
  51. package/learnship/workflows/milestone-summary.md +150 -0
  52. package/learnship/workflows/new-project.md +68 -4
  53. package/learnship/workflows/next.md +1 -1
  54. package/learnship/workflows/note.md +110 -0
  55. package/learnship/workflows/pause-work.md +2 -0
  56. package/learnship/workflows/plan-phase.md +17 -2
  57. package/learnship/workflows/quick.md +28 -8
  58. package/learnship/workflows/review.md +1 -0
  59. package/learnship/workflows/secure-phase.md +147 -0
  60. package/learnship/workflows/session-report.md +133 -0
  61. package/learnship/workflows/settings.md +40 -46
  62. package/learnship/workflows/ship.md +2 -0
  63. package/learnship/workflows/undo.md +151 -0
  64. package/learnship/workflows/verify-work.md +36 -4
  65. package/package.json +1 -1
  66. package/references/common-bug-patterns.md +92 -0
  67. package/references/context-budget.md +49 -0
  68. package/references/domain-probes.md +133 -0
  69. package/references/gates.md +72 -0
  70. package/references/planning-config.md +139 -0
  71. package/references/solution-schema.md +159 -0
  72. package/references/thinking-models.md +61 -0
  73. package/references/universal-anti-patterns.md +51 -0
  74. package/templates/agents.md +80 -7
  75. package/templates/config.json +28 -3
  76. package/templates/context.md +207 -32
  77. package/templates/discussion-log.md +49 -0
  78. package/templates/security.md +61 -0
  79. package/templates/ui-spec.md +107 -0
@@ -0,0 +1,161 @@
1
+ ---
2
+ description: Extract structured learnings from completed phase artifacts — decisions, lessons, patterns, surprises
3
+ ---
4
+
5
+ # Extract Learnings
6
+
7
+ Extract decisions, lessons learned, patterns discovered, and surprises encountered from completed phase artifacts into a structured LEARNINGS.md file. Captures institutional knowledge that would otherwise be lost between phases.
8
+
9
+ **Usage:** `extract-learnings [N]` — extract from phase N
10
+
11
+ **Complements `/compound`:** compound captures reusable solutions, extract-learnings captures meta-knowledge (why things worked, what surprised you, what patterns emerged).
12
+
13
+ ## Step 1: Initialize
14
+
15
+ Find the phase directory:
16
+ ```bash
17
+ ls ".planning/phases/" | grep "^[0-9]" | sort
18
+ ```
19
+
20
+ Find the phase matching `[N]`. If not found, stop and list available phases.
21
+
22
+ Verify required artifacts exist:
23
+ ```bash
24
+ ls ".planning/phases/[padded_phase]-[phase_slug]/"*-PLAN.md 2>/dev/null
25
+ ls ".planning/phases/[padded_phase]-[phase_slug]/"*-SUMMARY.md 2>/dev/null
26
+ ```
27
+
28
+ If PLAN.md or SUMMARY.md files are missing: "Required artifacts missing. PLAN.md and SUMMARY.md are required for learning extraction."
29
+
30
+ ## Step 2: Collect Artifacts
31
+
32
+ **Required (must exist):**
33
+ - All `*-PLAN.md` files for the phase
34
+ - All `*-SUMMARY.md` files for the phase
35
+
36
+ **Optional (read if available, skip if not):**
37
+ - `*-VERIFICATION.md` — verification results
38
+ - `*-UAT.md` — user acceptance test results
39
+ - `*-SECURITY.md` — security verification
40
+ - `.planning/STATE.md` — project state with decisions and blockers
41
+
42
+ Track which optional artifacts are missing for the frontmatter.
43
+
44
+ ## Step 3: Extract Learnings
45
+
46
+ Analyze all collected artifacts and extract learnings into 4 categories:
47
+
48
+ ### 1. Decisions
49
+ Technical and architectural decisions made during the phase:
50
+ - Explicit decisions documented in PLAN.md or SUMMARY.md
51
+ - Technology choices and their rationale
52
+ - Trade-offs that were evaluated
53
+
54
+ Each entry: **What** was decided, **Why** (rationale), **Source** (which artifact).
55
+
56
+ ### 2. Lessons
57
+ What worked well and what didn't:
58
+ - Approaches that succeeded or failed
59
+ - Time estimates vs actual (if observable from git timestamps)
60
+ - Unexpected complexity or simplicity
61
+
62
+ Each entry: **What happened**, **Why it matters**, **Source**.
63
+
64
+ ### 3. Patterns
65
+ Reusable patterns that emerged:
66
+ - Code patterns used across multiple tasks
67
+ - Process patterns that worked well
68
+ - Integration patterns between components
69
+
70
+ Each entry: **Pattern name**, **When to use**, **Source**.
71
+
72
+ ### 4. Surprises
73
+ Things that didn't go as expected:
74
+ - Unexpected bugs or behaviors
75
+ - Assumptions that were wrong
76
+ - External factors that affected the work
77
+
78
+ Each entry: **What was surprising**, **Impact**, **Source**.
79
+
80
+ ## Step 4: Write LEARNINGS.md
81
+
82
+ Write `.planning/phases/[padded_phase]-[phase_slug]/[padded_phase]-LEARNINGS.md`:
83
+
84
+ ```markdown
85
+ ---
86
+ phase: [N]
87
+ phase_name: [name]
88
+ extracted: [date]
89
+ plan_count: [N]
90
+ summary_count: [N]
91
+ missing_artifacts: [list or "none"]
92
+ ---
93
+
94
+ # Phase [N]: [Name] — Learnings
95
+
96
+ ## Decisions
97
+
98
+ ### D1: [Decision title]
99
+ **What:** [what was decided]
100
+ **Why:** [rationale]
101
+ **Source:** [artifact file]
102
+
103
+ ## Lessons
104
+
105
+ ### L1: [Lesson title]
106
+ **What happened:** [description]
107
+ **Why it matters:** [impact on future work]
108
+ **Source:** [artifact file]
109
+
110
+ ## Patterns
111
+
112
+ ### P1: [Pattern name]
113
+ **When to use:** [conditions]
114
+ **Source:** [artifact file]
115
+
116
+ ## Surprises
117
+
118
+ ### S1: [Surprise title]
119
+ **What was surprising:** [description]
120
+ **Impact:** [how it affected the work]
121
+ **Source:** [artifact file]
122
+
123
+ ---
124
+
125
+ *Extracted from Phase [N] artifacts on [date]*
126
+ ```
127
+
128
+ ## Step 5: Commit and Report
129
+
130
+ ```bash
131
+ git add ".planning/phases/[padded_phase]-[phase_slug]/[padded_phase]-LEARNINGS.md"
132
+ git commit -m "docs([padded_phase]): extract phase learnings"
133
+ ```
134
+
135
+ ```
136
+ learnship > LEARNINGS EXTRACTED
137
+
138
+ Phase [N]: [Name]
139
+ Decisions: [N] | Lessons: [N] | Patterns: [N] | Surprises: [N]
140
+
141
+ Report: [path to LEARNINGS.md]
142
+
143
+ These learnings feed into future planning — the planner will reference them
144
+ when working on related phases.
145
+ ```
146
+
147
+ ---
148
+
149
+ ## Learning Checkpoint
150
+
151
+ Read `learning_mode` from `.planning/config.json`.
152
+
153
+ **If `auto`:**
154
+
155
+ > **Learning moment:** You just extracted meta-knowledge from a phase. Make it stick:
156
+ >
157
+ > `@agentic-learning space` — Schedule the key patterns and lessons for spaced review. The extraction just identified WHAT you learned — spacing ensures you RETAIN it.
158
+ >
159
+ > `@agentic-learning interleave [phase topic]` — Mix these learnings with concepts from earlier phases to strengthen cross-cutting understanding.
160
+
161
+ **If `manual`:** Add quietly: *"Tip: `@agentic-learning space` to schedule these learnings for spaced review."*
@@ -0,0 +1,118 @@
1
+ ---
2
+ description: Post-mortem investigation for failed or stuck workflows — read-only diagnostic report
3
+ ---
4
+
5
+ # Forensics
6
+
7
+ Post-mortem investigation for failed or stuck workflows. Analyzes git history, `.planning/` artifacts, and file system state to detect anomalies and generate a structured diagnostic report.
8
+
9
+ **Usage:** `forensics` or `forensics [problem description]`
10
+
11
+ **Principle:** This is a read-only investigation. Do not modify project files. Only write the forensic report.
12
+
13
+ ## Step 1: Get Problem Description
14
+
15
+ If a description was provided as an argument, use it. Otherwise ask:
16
+
17
+ > "What went wrong? Describe the issue."
18
+
19
+ Record the problem description for the report.
20
+
21
+ ## Step 2: Gather Evidence
22
+
23
+ Collect data from all available sources. Missing sources are fine — adapt to what exists.
24
+
25
+ ### 2a. Git History
26
+
27
+ ```bash
28
+ git log --oneline -30
29
+ git log --format="%H %ai %s" -30
30
+ git log --name-only --format="" -20 | sort | uniq -c | sort -rn | head -20
31
+ git status --short
32
+ git diff --stat
33
+ ```
34
+
35
+ Record:
36
+ - Commit timeline (dates, messages, frequency)
37
+ - Most-edited files (potential stuck-loop indicator)
38
+ - Uncommitted changes (potential crash/interruption indicator)
39
+
40
+ ### 2b. Planning State
41
+
42
+ Read these files if they exist:
43
+ - `.planning/STATE.md` — current milestone, phase, progress, blockers
44
+ - `.planning/ROADMAP.md` — phase list with status
45
+ - `.planning/config.json` — workflow configuration
46
+
47
+ ### 2c. Phase Artifacts
48
+
49
+ ```bash
50
+ ls .planning/phases/*/
51
+ ```
52
+
53
+ For each phase, check which artifacts exist (PLAN, SUMMARY, VERIFICATION, CONTEXT, RESEARCH, UAT). Track which phases have complete artifact sets vs gaps.
54
+
55
+ ## Step 3: Analyze Anomalies
56
+
57
+ | Pattern | Indicates | Severity |
58
+ |---------|-----------|----------|
59
+ | Same file edited 5+ times in 20 commits | Stuck execution loop | High |
60
+ | PLAN.md exists but no SUMMARY.md | Execution interrupted | Medium |
61
+ | Large time gap between consecutive commits | Session interrupted or context exhausted | Medium |
62
+ | VERIFICATION.md with `gaps_found` | Phase incomplete | Medium |
63
+ | STATE.md references non-existent phase dir | State/filesystem mismatch | High |
64
+ | Uncommitted changes + old timestamps | Abandoned session | Low |
65
+
66
+ ## Step 4: Determine Root Cause
67
+
68
+ | Category | Description | Recovery |
69
+ |----------|-------------|----------|
70
+ | **Execution stuck** | Agent looped on same files/tests | Re-run with `--wave` or fix trigger |
71
+ | **Context exhaustion** | Agent ran out of context mid-phase | Break into smaller plans, re-run |
72
+ | **Session interrupted** | Human or system terminated mid-work | Resume with `/resume-work` |
73
+ | **State mismatch** | STATE.md doesn't match filesystem | Manual STATE.md correction |
74
+ | **Plan deficiency** | Plans were wrong | Re-plan with `plan-phase --gaps` |
75
+ | **External failure** | API, dependency, or environment issue | Fix external issue, re-run |
76
+
77
+ ## Step 5: Write Forensic Report
78
+
79
+ ```bash
80
+ node -e "require('fs').mkdirSync('.planning/reports',{recursive:true})"
81
+ ```
82
+
83
+ Write `.planning/reports/FORENSIC-[YYYY-MM-DD].md` with: evidence summary, anomalies detected, root cause (category + explanation + confidence), recommended recovery steps, and prevention advice.
84
+
85
+ Commit:
86
+ ```bash
87
+ git add .planning/reports/
88
+ git commit -m "docs: forensic report"
89
+ ```
90
+
91
+ ## Step 6: Present Findings
92
+
93
+ ```
94
+ learnship > FORENSIC REPORT COMPLETE
95
+
96
+ Root Cause: [category] — [one-line explanation]
97
+ Confidence: [high/medium/low]
98
+
99
+ Recovery:
100
+ 1. [action]
101
+ 2. [action]
102
+
103
+ Report: .planning/reports/FORENSIC-[date].md
104
+ ```
105
+
106
+ ---
107
+
108
+ ## Learning Checkpoint
109
+
110
+ Read `learning_mode` from `.planning/config.json`.
111
+
112
+ **If `auto`:**
113
+
114
+ > **Learning moment:** Failures are high-signal learning opportunities:
115
+ >
116
+ > `@agentic-learning reflect` — What pattern caused this failure? What would you watch for next time? Structured reflection on failures builds diagnostic intuition.
117
+
118
+ **If `manual`:** Add quietly: *"Tip: `@agentic-learning reflect` to extract lessons from this failure."*
@@ -16,7 +16,7 @@ You only need to remember **5 commands** to use learnship effectively:
16
16
  | `/next` | Auto-pilot — reads state and runs the right workflow for you |
17
17
  | `/new-project` | Starting a brand new project |
18
18
  | `/quick "..."` | One-off task with atomic commit, no ceremony |
19
- | `/help` | This screen — see all 49 commands |
19
+ | `/help` | This screen — see all 57 commands |
20
20
 
21
21
  Everything else below is discoverable from `/ls` as you go.
22
22
 
@@ -87,9 +87,11 @@ Everything else below is discoverable from `/ls` as you go.
87
87
  | `/review [mode]` | Multi-persona code review (correctness, testing, security, performance, maintainability) |
88
88
  | `/challenge [description]` | Product + engineering challenge gate — is this worth building? |
89
89
  | `/ship` | Ship pipeline: test → lint → commit → push → PR |
90
- | `/ideate [focus]` | Codebase-grounded divergent thinking — discover what to work on |
90
+ | `/ideate [focus]` | Codebase-grounded divergent thinking — discover what to work on (`--explore` for Socratic mode) |
91
91
  | `/guard [scope\|off]` | Safety mode — warn on destructive commands, lock file scope |
92
92
  | `/sync-docs` | Detect stale documentation after code changes |
93
+ | `/docs-update` | Generate, update, and verify project documentation |
94
+ | `/secure-phase [N]` | Per-phase STRIDE security verification |
93
95
 
94
96
  ### Decision Intelligence — institutional memory
95
97
 
@@ -99,6 +101,22 @@ Everything else below is discoverable from `/ls` as you go.
99
101
  | `/knowledge-base` | Aggregate all decisions + lessons into searchable KNOWLEDGE.md |
100
102
  | `/knowledge-base search [query]` | Search the project knowledge base |
101
103
 
104
+ ### Recovery — when things go wrong
105
+
106
+ | Workflow | What it does |
107
+ |----------|-------------|
108
+ | `/forensics [problem]` | Post-mortem investigation for failed/stuck workflows (read-only) |
109
+ | `/undo --last N\|--phase NN\|--plan NN-MM` | Safe git revert — preserves history, checks dependencies |
110
+
111
+ ### Session — capture and report
112
+
113
+ | Workflow | What it does |
114
+ |----------|-------------|
115
+ | `/note [text]` | Zero-friction idea capture — no questions, just write |
116
+ | `/session-report` | Post-session summary for stakeholder sharing |
117
+ | `/extract-learnings [N]` | Structured learning extraction from phase artifacts |
118
+ | `/milestone-summary [version]` | Comprehensive milestone summary for team onboarding |
119
+
102
120
  ### Milestone Intelligence — reflect and hand off
103
121
 
104
122
  | Workflow | What it does |
@@ -4,10 +4,11 @@ description: Codebase-grounded divergent thinking — discover what is worth wor
4
4
 
5
5
  # Ideate
6
6
 
7
- Codebase-grounded divergent ideation. Scans the actual codebase for hotspots, TODOs, test gaps, and friction points, then generates 15-25 improvement ideas across multiple thinking frames. Adversarial filter eliminates weak ideas. Presents top 5-7 ranked survivors.
7
+ Codebase-grounded divergent ideation with Socratic exploration. Two modes: **scan mode** (default) scans the actual codebase for hotspots and generates ranked improvement ideas. **Explore mode** (`--explore`) uses Socratic questioning to help you think through an idea before committing to artifacts.
8
8
 
9
- **Usage:** `ideate` — open-ended ideation on the current project
9
+ **Usage:** `ideate` — open-ended scan-based ideation on the current project
10
10
  **Usage:** `ideate [focus]` — focused ideation on a specific area, concept, or constraint
11
+ **Usage:** `ideate --explore [topic]` — Socratic exploration of an idea with mid-conversation research
11
12
 
12
13
  **Sequencing:** Run between milestones — after `/complete-milestone`, before `/discuss-milestone` or `/new-milestone`. Requires an existing project with `AGENTS.md` and `.planning/`.
13
14
 
@@ -26,7 +27,14 @@ ls AGENTS.md 2>/dev/null && ls .planning/PROJECT.md 2>/dev/null
26
27
 
27
28
  **If project exists:** Continue.
28
29
 
29
- ## Step 2: Scope
30
+ ## Step 2: Mode Selection
31
+
32
+ Parse arguments for `--explore` flag.
33
+
34
+ **If `--explore` is present:** Jump to Step 2b (Socratic Exploration).
35
+ **Otherwise:** Continue to Step 2a (Scan Mode).
36
+
37
+ ## Step 2a: Scope (Scan Mode)
30
38
 
31
39
  If a focus argument was provided, use it as the ideation lens.
32
40
  If no argument, proceed with open-ended ideation.
@@ -38,7 +46,57 @@ find .planning/ -name "*-ideation-*.md" -mtime -30 2>/dev/null
38
46
 
39
47
  If recent ideation exists, ask: "Found recent ideation work. Resume from it, or start fresh?"
40
48
 
41
- ## Step 3: Codebase Scan
49
+ ## Step 2b: Socratic Exploration (only with `--explore`)
50
+
51
+ If a topic was provided, acknowledge it and begin exploring:
52
+ ```
53
+ ## Explore: {topic}
54
+
55
+ Let's think through this together. I'll ask questions to help clarify the idea
56
+ before we commit to any artifacts.
57
+ ```
58
+
59
+ If no topic, ask:
60
+ ```
61
+ ## Explore
62
+
63
+ What's on your mind? This could be a feature idea, an architectural question,
64
+ a problem you're trying to solve, or something you're not sure about yet.
65
+ ```
66
+
67
+ **Conversation rules (2-5 exchanges):**
68
+ - Ask **one question at a time** (never a list of questions)
69
+ - Questions should probe: constraints, tradeoffs, users, scope, dependencies, risks
70
+ - Listen for signals: "or" / "versus" / "tradeoff" indicate competing priorities worth exploring
71
+ - Reflect back what you hear to confirm understanding before moving forward
72
+ - **Follow the user's energy** — if they're excited about one aspect, go deeper there
73
+
74
+ **Mid-conversation research offer (after 2-3 exchanges):**
75
+
76
+ If the conversation surfaces factual questions, technology comparisons, or unknowns:
77
+ ```
78
+ This touches on [specific question]. Want me to do a quick research pass before we continue?
79
+ This would take ~30 seconds and might surface useful context.
80
+
81
+ [Yes, research this] / [No, let's keep exploring]
82
+ ```
83
+
84
+ If yes and parallelization is enabled, spawn a research agent. Otherwise do an inline research pass. Share findings and continue.
85
+
86
+ **Crystallize outputs (after 3-6 exchanges):**
87
+
88
+ When the conversation reaches natural conclusions, propose **up to 4 outputs**:
89
+
90
+ | Type | Destination | When to suggest |
91
+ |------|-------------|----------------|
92
+ | Note | `.planning/notes/{slug}.md` | Observations, context, decisions worth remembering |
93
+ | Todo | via `/add-todo` | Concrete actionable tasks identified |
94
+ | Decision | via `/decision-log` | Architectural or scope decisions made |
95
+ | Phase proposal | via `/add-phase` | Idea crystallized into a deliverable phase |
96
+
97
+ Write selected outputs, then jump to Step 7 (Present Results) with a tailored summary.
98
+
99
+ ## Step 3: Codebase Scan (Scan Mode)
42
100
 
43
101
  Gather grounding context before generating ideas:
44
102
 
@@ -175,6 +233,7 @@ git commit -m "docs: ideation — [focus or 'open-ended'] ([N] survivors)"
175
233
  Present the "What's next?" options using the platform's blocking question tool:
176
234
 
177
235
  - **Deep-dive an idea** → expand on the selected idea with more detail
236
+ - **Explore an idea** → run `ideate --explore [idea]` for Socratic deep-dive
178
237
  - **Add to current milestone** → feed into `/add-phase`
179
238
  - **Start a new milestone** → feed into `/discuss-milestone` then `/new-milestone`
180
239
  - **Challenge an idea** → run `/challenge [idea]` to stress-test it
@@ -148,4 +148,4 @@ If the user says yes (or "go", "do it", "run it", "proceed") — immediately inv
148
148
 
149
149
  - `/ls` is an alias for the status + routing logic in `progress`. Use either.
150
150
  - For full auto-pilot (no prompt), use `/next` instead.
151
- - To see all 49 available commands: `/help`
151
+ - To see all 57 available commands: `/help`
@@ -0,0 +1,150 @@
1
+ ---
2
+ description: Generate a comprehensive milestone summary for team onboarding — a new contributor reads it and understands the project
3
+ ---
4
+
5
+ # Milestone Summary
6
+
7
+ Generate a comprehensive, human-friendly project summary from completed milestone artifacts. Designed for team onboarding — a new contributor can read the output and understand the entire project.
8
+
9
+ **Usage:** `milestone-summary` or `milestone-summary [version]`
10
+
11
+ ## Step 1: Resolve Version
12
+
13
+ If a version was provided, use it. Otherwise:
14
+ 1. Check `.planning/STATE.md` for current milestone version
15
+ 2. Check `.planning/milestones/` for the latest archived version
16
+ 3. If nothing found: "No milestone found. Run `/new-project` or `/new-milestone` first."
17
+
18
+ ## Step 2: Locate Artifacts
19
+
20
+ **Archived milestone** (`.planning/milestones/v{VERSION}-ROADMAP.md` exists):
21
+ ```
22
+ ROADMAP_PATH=".planning/milestones/v${VERSION}-ROADMAP.md"
23
+ REQUIREMENTS_PATH=".planning/milestones/v${VERSION}-REQUIREMENTS.md"
24
+ ```
25
+
26
+ **Current/in-progress milestone** (no archive yet):
27
+ ```
28
+ ROADMAP_PATH=".planning/ROADMAP.md"
29
+ REQUIREMENTS_PATH=".planning/REQUIREMENTS.md"
30
+ ```
31
+
32
+ **Always available:**
33
+ ```
34
+ PROJECT_PATH=".planning/PROJECT.md"
35
+ STATE_PATH=".planning/STATE.md"
36
+ ```
37
+
38
+ Read all files that exist. Missing files are fine — the summary adapts.
39
+
40
+ ## Step 3: Discover Phase Artifacts
41
+
42
+ For each phase directory in `.planning/phases/`:
43
+
44
+ ```bash
45
+ ls .planning/phases/*/
46
+ ```
47
+
48
+ For each phase, read:
49
+ - CONTEXT.md — what was decided
50
+ - SUMMARY.md files — what was built
51
+ - VERIFICATION.md — quality status
52
+ - UAT.md — test results
53
+ - LEARNINGS.md — extracted learnings (if exists)
54
+ - SECURITY.md — security status (if exists)
55
+
56
+ ## Step 4: Generate Summary
57
+
58
+ Write `.planning/MILESTONE-SUMMARY-v{VERSION}.md`:
59
+
60
+ ```markdown
61
+ # Milestone {VERSION}: {Name} — Summary
62
+
63
+ **Generated:** [date]
64
+ **Status:** [complete / in-progress]
65
+
66
+ ---
67
+
68
+ ## Project Overview
69
+
70
+ [From PROJECT.md — 3-5 sentences describing what the project is and why it exists]
71
+
72
+ ## Milestone Goal
73
+
74
+ [From ROADMAP.md — what this milestone set out to deliver]
75
+
76
+ ## What Was Built
77
+
78
+ ### Phase 1: [Name]
79
+ **Goal:** [from ROADMAP.md]
80
+ **Status:** [complete/partial]
81
+ **Key deliverables:**
82
+ - [from SUMMARY.md files — what was actually built]
83
+
84
+ **Decisions made:**
85
+ - [from CONTEXT.md — key implementation choices]
86
+
87
+ ### Phase 2: [Name]
88
+ [...]
89
+
90
+ ## Architecture
91
+
92
+ [Synthesized from AGENTS.md project structure, phase summaries, and any ARCHITECTURE.md]
93
+
94
+ ## Key Decisions
95
+
96
+ [Aggregated from DECISIONS.md and phase CONTEXT.md files — the top 5-10 decisions that shaped the project]
97
+
98
+ ## Lessons Learned
99
+
100
+ [Aggregated from LEARNINGS.md files if they exist, or synthesized from SUMMARYs]
101
+
102
+ ## Current State
103
+
104
+ - **Last phase completed:** [N]
105
+ - **Open items:** [from STATE.md blockers]
106
+ - **Test status:** [from UAT/VERIFICATION files]
107
+ - **Security status:** [from SECURITY files if they exist]
108
+
109
+ ## How to Get Started
110
+
111
+ [Practical instructions: how to clone, install deps, run the dev server, run tests]
112
+
113
+ ---
114
+
115
+ *Generated by learnship milestone-summary*
116
+ ```
117
+
118
+ ## Step 5: Commit and Present
119
+
120
+ ```bash
121
+ git add ".planning/MILESTONE-SUMMARY-v${VERSION}.md"
122
+ git commit -m "docs: milestone ${VERSION} summary"
123
+ ```
124
+
125
+ ```
126
+ learnship > MILESTONE SUMMARY COMPLETE
127
+
128
+ Milestone {VERSION}: {Name}
129
+ Phases covered: [N]
130
+ Decisions documented: [N]
131
+ Lessons captured: [N]
132
+
133
+ Report: .planning/MILESTONE-SUMMARY-v{VERSION}.md
134
+
135
+ Share this with new team members or stakeholders for a complete project overview.
136
+ ```
137
+
138
+ ---
139
+
140
+ ## Learning Checkpoint
141
+
142
+ Read `learning_mode` from `.planning/config.json`.
143
+
144
+ **If `auto`:**
145
+
146
+ > **Learning moment:** Summarizing a milestone is a natural point for comprehensive reflection:
147
+ >
148
+ > `@agentic-learning reflect` — What was the most significant thing you learned across this entire milestone? What would you do differently if starting over? Milestone-level reflection reveals patterns invisible at the phase level.
149
+
150
+ **If `manual`:** Add quietly: *"Tip: `@agentic-learning reflect` for milestone-level learning consolidation."*