learnship 2.0.11 → 2.1.1

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 +2 -0
  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 +3 -0
  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 +35 -6
  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 +78 -8
  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,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."*
@@ -152,7 +152,6 @@ Create `.planning/config.json` with all settings:
152
152
  "granularity": "coarse|standard|fine",
153
153
  "model_profile": "quality|balanced|budget",
154
154
  "learning_mode": "auto|manual",
155
- "parallelization": false|true,
156
155
  "test_first": false|true,
157
156
  "planning": {
158
157
  "commit_docs": true|false,
@@ -165,7 +164,30 @@ Create `.planning/config.json` with all settings:
165
164
  "verifier": true|false,
166
165
  "validation": true|false,
167
166
  "review": true|false,
168
- "solutions_search": true|false
167
+ "solutions_search": true|false,
168
+ "security_enforcement": true|false,
169
+ "discuss_mode": "discuss",
170
+ "tdd_mode": false|true
171
+ },
172
+ "parallelization": {
173
+ "enabled": false|true,
174
+ "plan_level": true,
175
+ "task_level": false,
176
+ "max_concurrent_agents": 5,
177
+ "min_plans_for_parallel": 2
178
+ },
179
+ "gates": {
180
+ "confirm_project": true,
181
+ "confirm_phases": true,
182
+ "confirm_roadmap": true,
183
+ "confirm_plan": true,
184
+ "execute_next_plan": true,
185
+ "issues_review": true,
186
+ "confirm_transition": true
187
+ },
188
+ "safety": {
189
+ "always_confirm_destructive": true,
190
+ "always_confirm_external_services": true
169
191
  },
170
192
  "review": {
171
193
  "auto_after_verify": false|true
@@ -175,6 +197,9 @@ Create `.planning/config.json` with all settings:
175
197
  "conventional_commits": true|false,
176
198
  "pr_template": true|false
177
199
  },
200
+ "hooks": {
201
+ "context_warnings": true
202
+ },
178
203
  "git": {
179
204
  "branching_strategy": "none|phase|milestone",
180
205
  "phase_branch_template": "phase-{phase}-{slug}",
@@ -183,6 +208,8 @@ Create `.planning/config.json` with all settings:
183
208
  }
184
209
  ```
185
210
 
211
+ **Note:** The `parallelization` field is now an object (not a flat boolean). Legacy flat `"parallelization": true` is still honored for backward compatibility. The `gates` and `safety` sections use sensible defaults — only ask users about them if they specifically want to customize.
212
+
186
213
  If `planning.commit_docs` is false, add `.planning/` to `.gitignore`:
187
214
  ```bash
188
215
  echo ".planning/" >> .gitignore
@@ -257,7 +284,7 @@ Verify internally: do you have `ANSWER_1`, `ANSWER_2`, `ANSWER_3`, and `ANSWER_4
257
284
  - **Write PROJECT.md** → proceed to Step 4
258
285
  - **More to cover** → continue asking follow-ups, then re-ask this gate question
259
286
 
260
- Use the questioning techniques from `@./references/questioning.md` to shape the follow-up questions.
287
+ Use the questioning techniques from `@./references/questioning.md` and domain-aware probes from `@./references/domain-probes.md` to shape the follow-up questions. When the user mentions a known domain (auth, real-time, dashboard, API, database, search, file uploads, caching, testing, deployment, AI/ML), use the relevant probes to ask sharper questions.
261
288
 
262
289
  ## Step 4: Write PROJECT.md
263
290
 
@@ -383,19 +410,62 @@ node -e "const fs=require('fs'),path=require('path');const dir='.planning/resear
383
410
 
384
411
  > 🛑 **If the command prints `RESEARCH INCOMPLETE` or exits with code 1:** Go back and create or fix the missing files. Then run the verification again. You MUST see `RESEARCH VERIFIED OK` before continuing. Do NOT proceed to Step 6 without a passing verification.
385
412
 
386
- Display key findings:
413
+ **Read all 5 research files now** and present their findings in full. Do NOT summarize into 3 bullets. Display this exact structure, populated from the actual file contents:
414
+
387
415
  ```
388
416
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
389
417
  learnship ► RESEARCH COMPLETE ✓
390
418
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
391
419
 
392
- **Stack:** [key recommendation]
393
- **Table Stakes:** [top 3 must-have features]
394
- **Watch Out For:** [top 2 pitfalls]
420
+ ## Recommended Stack
421
+ [Full content from STACK.md ## Recommended Stack — include all items, versions, and rationale]
422
+
423
+ **Alternatives Considered:** [From STACK.md ## Alternatives Considered]
424
+ **What NOT to Use:** [From STACK.md ## What NOT to Use — include reasons]
425
+
426
+ ## Features
427
+ **Table Stakes (must have for v1):**
428
+ [Full list from FEATURES.md ## Table Stakes]
429
+
430
+ **Differentiators (v2 candidates):**
431
+ [Full list from FEATURES.md ## Differentiators]
432
+
433
+ **Anti-Features (avoid):**
434
+ [From FEATURES.md ## Anti-Features]
435
+
436
+ ## Architecture
437
+ **Component Boundaries:**
438
+ [From ARCHITECTURE.md ## Component Boundaries]
439
+
440
+ **Data Flow:**
441
+ [From ARCHITECTURE.md ## Data Flow]
395
442
 
396
- Files: .planning/research/
443
+ **Recommended Build Order:**
444
+ [From ARCHITECTURE.md ## Build Order]
445
+
446
+ **Integration Points:**
447
+ [From ARCHITECTURE.md ## Integration Points]
448
+
449
+ ## Top Pitfalls to Avoid
450
+ [Full list from PITFALLS.md ## Common Mistakes]
451
+
452
+ **Warning Signs:**
453
+ [From PITFALLS.md ## Warning Signs]
454
+
455
+ **Prevention Strategies:**
456
+ [From PITFALLS.md ## Prevention Strategies]
457
+
458
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
459
+ Files written: .planning/research/STACK.md, FEATURES.md, ARCHITECTURE.md, PITFALLS.md, SUMMARY.md
460
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
397
461
  ```
398
462
 
463
+ Then ask exactly this:
464
+
465
+ "Research is complete. Does this align with what you had in mind, or are there stack/architecture decisions you want to override before I define requirements? Reply **continue** to proceed, or tell me what to change."
466
+
467
+ > 🛑 **HARD GATE — Wait for the user's reply before proceeding to Step 6.** Do NOT automatically continue to requirements. Do NOT write REQUIREMENTS.md. The user must explicitly say "continue" or give a change request. If they request changes, update the relevant research file(s) and re-display the affected section, then re-ask this question.
468
+
399
469
  ## Step 6: Define Requirements
400
470
 
401
471
  > 🛑 STOP. Do not write REQUIREMENTS.md until you have presented feature categories to the user and received their explicit v1 selections. This is a fully interactive step — you must wait for input.
@@ -102,4 +102,4 @@ If no — show `/ls` output so the user can choose manually.
102
102
 
103
103
  - `/next` always confirms before acting (never fully silent).
104
104
  - For status-only with manual choice, use `/ls` instead.
105
- - To see all 49 available commands: `/help`
105
+ - To see all 57 available commands: `/help`
@@ -0,0 +1,110 @@
1
+ ---
2
+ description: Zero-friction idea capture — one write, one confirmation line, no questions
3
+ ---
4
+
5
+ # Note
6
+
7
+ Zero-friction idea capture. One write call, one confirmation line. No questions, no prompts. Runs inline — no subagents.
8
+
9
+ **Usage:**
10
+ - `note [text]` — save a note
11
+ - `note list` — show all notes
12
+ - `note promote [N]` — promote note N to a todo or decision
13
+
14
+ Notes are different from todos: **notes are observations**, todos are actions.
15
+
16
+ ## Step 1: Parse Subcommand
17
+
18
+ | Condition | Subcommand |
19
+ |-----------|------------|
20
+ | Arguments are exactly `list` (case-insensitive) | **list** |
21
+ | Arguments are exactly `promote [N]` where N is a number | **promote** |
22
+ | Arguments are empty (no text at all) | **list** |
23
+ | Anything else | **append** (the text IS the note) |
24
+
25
+ **Critical:** `list` is only a subcommand when it's the ENTIRE argument. `note list of groceries` saves a note with text "list of groceries".
26
+
27
+ ## Step 2: Determine Scope
28
+
29
+ - **Project scope** (default): `.planning/notes/` — used when `.planning/` exists
30
+ - **Global scope** (fallback): use project scope if `.planning/` exists, otherwise tell user no project is initialized
31
+
32
+ **Important:** Do NOT create `.planning/` if it doesn't exist. Fall back gracefully.
33
+
34
+ ## Step 3a: Append — Create a Timestamped Note
35
+
36
+ 1. Ensure notes directory exists:
37
+ ```bash
38
+ node -e "require('fs').mkdirSync('.planning/notes',{recursive:true})"
39
+ ```
40
+
41
+ 2. Generate slug: first ~4 meaningful words, lowercase, hyphen-separated
42
+ 3. Generate filename: `{YYYY-MM-DD}-{slug}.md`
43
+ - If file exists, append `-2`, `-3`, etc.
44
+
45
+ 4. Write the file:
46
+ ```markdown
47
+ ---
48
+ date: "YYYY-MM-DD HH:mm"
49
+ promoted: false
50
+ ---
51
+
52
+ {note text verbatim}
53
+ ```
54
+
55
+ 5. Confirm with exactly one line: `Noted: {note text}`
56
+
57
+ **Constraints:**
58
+ - **Never modify the note text** — capture verbatim, including typos
59
+ - **Never ask questions** — just write and confirm
60
+
61
+ ## Step 3b: List — Show All Notes
62
+
63
+ ```bash
64
+ ls .planning/notes/*.md 2>/dev/null
65
+ ```
66
+
67
+ For each file, read frontmatter to get `date` and `promoted` status. Sort by date, number sequentially.
68
+
69
+ Display:
70
+ ```
71
+ ## Notes
72
+
73
+ # | Date | Note
74
+ ----|------------|------
75
+ 1 | 2025-01-20 | [first line of note text]
76
+ 2 | 2025-01-21 | [first line of note text]
77
+ *3 | 2025-01-22 | [promoted — first line]
78
+
79
+ [N] notes ([M] active, [K] promoted)
80
+ ```
81
+
82
+ Promoted notes shown with `*` prefix and dimmed.
83
+
84
+ ## Step 3c: Promote — Convert Note to Action
85
+
86
+ Read note N from the numbered list. Display the full note text.
87
+
88
+ Ask: "Promote this note to:"
89
+ - **Todo** — create via `/add-todo [note text]`
90
+ - **Decision** — create via `/decision-log [note text]`
91
+ - **Phase proposal** — create via `/add-phase [note text]`
92
+ - **Keep as note** — cancel
93
+
94
+ After promoting, update the note's frontmatter: `promoted: true`.
95
+
96
+ ---
97
+
98
+ ## Learning Checkpoint
99
+
100
+ Read `learning_mode` from `.planning/config.json`.
101
+
102
+ **If `auto` and this is an append:** No learning prompt for notes — keep it fast.
103
+
104
+ **If `auto` and this is a promote:**
105
+
106
+ > **Learning moment:** Promoting a note means the idea had lasting value:
107
+ >
108
+ > `@agentic-learning either-or` — Why did this note survive? What made it worth promoting over others? Log the reasoning.
109
+
110
+ **If `manual`:** No note for notes — keep it fast.
@@ -103,6 +103,8 @@ Current state:
103
103
  - Committed as WIP
104
104
 
105
105
  ▶ To resume: resume-work
106
+ ▶ Capture an idea before you go: /note [text]
107
+ ▶ Generate a session summary: /session-report
106
108
  ```
107
109
 
108
110
  ---