learnship 2.3.2 → 2.3.4

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 (35) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.cursor-plugin/plugin.json +1 -1
  3. package/README.md +17 -6
  4. package/agents/learnship-plan-checker.md +6 -1
  5. package/agents/learnship-planner.md +21 -11
  6. package/bin/install.js +1 -1
  7. package/cursor-rules/learnship.mdc +3 -1
  8. package/gemini-extension.json +1 -1
  9. package/learnship/agents/plan-checker.md +5 -0
  10. package/learnship/agents/planner.md +14 -1
  11. package/learnship/references/planning-config.md +1 -1
  12. package/learnship/templates/plan.md +8 -0
  13. package/learnship/workflows/audit-milestone.md +5 -0
  14. package/learnship/workflows/challenge.md +10 -0
  15. package/learnship/workflows/compound.md +5 -0
  16. package/learnship/workflows/debug.md +10 -0
  17. package/learnship/workflows/diagnose-issues.md +5 -0
  18. package/learnship/workflows/discuss-phase.md +38 -3
  19. package/learnship/workflows/docs-update.md +92 -0
  20. package/learnship/workflows/execute-phase.md +10 -0
  21. package/learnship/workflows/execute-plan.md +5 -0
  22. package/learnship/workflows/ideate.md +10 -0
  23. package/learnship/workflows/map-codebase.md +5 -0
  24. package/learnship/workflows/new-milestone.md +10 -0
  25. package/learnship/workflows/new-project.md +127 -20
  26. package/learnship/workflows/plan-phase.md +44 -16
  27. package/learnship/workflows/quick.md +25 -0
  28. package/learnship/workflows/research-phase.md +11 -4
  29. package/learnship/workflows/review.md +5 -0
  30. package/learnship/workflows/secure-phase.md +5 -0
  31. package/learnship/workflows/settings.md +1 -1
  32. package/learnship/workflows/validate-phase.md +5 -0
  33. package/learnship/workflows/verify-work.md +15 -0
  34. package/package.json +1 -1
  35. package/templates/plan.md +8 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "learnship",
3
3
  "description": "Agentic engineering done right — 57 structured workflows, 17 specialist agent personas, persistent memory across sessions, integrated learning partner, and impeccable UI design system. Works with Claude Code, Windsurf, Cursor, Gemini CLI, OpenCode, and Codex.",
4
- "version": "2.3.2",
4
+ "version": "2.3.4",
5
5
  "author": {
6
6
  "name": "Favio Vazquez",
7
7
  "email": "favio.vazquezp@gmail.com"
@@ -2,7 +2,7 @@
2
2
  "name": "learnship",
3
3
  "displayName": "learnship",
4
4
  "description": "Agentic engineering done right — 57 structured workflows, 17 specialist agent personas, persistent memory across sessions, integrated learning partner, and impeccable UI design system.",
5
- "version": "2.3.2",
5
+ "version": "2.3.4",
6
6
  "logo": "assets/logo.png",
7
7
  "author": {
8
8
  "name": "Favio Vazquez",
package/README.md CHANGED
@@ -121,7 +121,7 @@ Every feature ships through a 7-step loop:
121
121
  ```mermaid
122
122
  flowchart LR
123
123
  DP["/discuss-phase N<br/>Capture decisions"]
124
- PP["/plan-phase N<br/>Research + plans"]
124
+ PP["/plan-phase N<br/>Vertical slice plans"]
125
125
  EP["/execute-phase N<br/>Build + commit"]
126
126
  VW["/verify-work N<br/>UAT + diagnose"]
127
127
  RV["/review<br/>Multi-persona review"]
@@ -136,8 +136,8 @@ flowchart LR
136
136
 
137
137
  | Step | Command | What happens |
138
138
  |------|---------|-------------|
139
- | **1. Discuss** | `/discuss-phase N` | You and the agent align on implementation decisions before any code |
140
- | **2. Plan** | `/plan-phase N` | Agent researches the domain, creates executable plans, verifies them |
139
+ | **1. Discuss** | `/discuss-phase N` | You and the agent align on implementation decisions before any code. Add `--deep` for extended deep questioning that walks every branch (v2.3.4) |
140
+ | **2. Plan** | `/plan-phase N` | Agent researches the domain, creates vertical slice plans (tracer bullets), verifies them — including horizontal slice detection (v2.3.4) |
141
141
  | **3. Execute** | `/execute-phase N` | Plans run in dependency order, one atomic commit per task |
142
142
  | **4. Verify** | `/verify-work N` | You do UAT; agent diagnoses any gaps and creates fix plans |
143
143
  | **5. Review** | `/review` | Multi-persona code review through 6 lenses (v2.0) |
@@ -252,6 +252,14 @@ It's probably overkill for one-off scripts. Use `/quick` for that.
252
252
 
253
253
  ## 🆕 What's New
254
254
 
255
+ ### What's new in v2.3.4
256
+
257
+ v2.3.4 adds two planning quality features:
258
+
259
+ **Deep questioning mode** (`--deep` flag or `workflow.discuss_mode: "deep"` in config): Both `/discuss-phase` and `/new-project` now support extended questioning that walks every decision branch until shared understanding is reached. Each question includes a recommended answer. Standard mode (4 focused exchanges) remains the default.
260
+
261
+ **Vertical slice planning** (enforced in `plan-phase`): Plans are now required to be tracer bullets — thin vertical slices through all integration layers (data → logic → API → UI → test) for one demoable user-facing behavior. The plan-checker flags any plan that covers only one architectural layer across all features. Single-layer phases (migrations, style passes) use `single_layer_justified: true` in the plan frontmatter.
262
+
255
263
  ### What's new in v2.3
256
264
 
257
265
  v2.3 adds 5 new agent personas, Windsurf-native persona adoption via `model_decision` rules, and inline `<persona_context>` blocks across all 18 persona-aware workflows:
@@ -294,7 +302,7 @@ v2.1 adds 8 new workflows, 5 new references, 3 new templates, and 2 new agents:
294
302
  | **Session** | `/note` — zero-friction capture · `/session-report` — stakeholder summaries |
295
303
  | **Learning** | `/extract-learnings` — decisions, lessons, patterns, surprises · `/milestone-summary` — team onboarding |
296
304
 
297
- Enhanced: `/discuss-phase` (scope guardrails + domain probes), `/execute-phase` (`--wave` flag + context scaling), `/quick` (`--research --validate --full` composable flags), `/ideate` (`--explore` Socratic mode).
305
+ Enhanced: `/discuss-phase` (scope guardrails + domain probes + `--deep` extended questioning v2.3.4), `/new-project` (`--deep` extended questioning v2.3.4), `/plan-phase` (vertical slice tracer bullets + horizontal slice detection v2.3.4), `/execute-phase` (`--wave` flag + context scaling), `/quick` (`--research --validate --full` composable flags), `/ideate` (`--explore` Socratic mode).
298
306
 
299
307
  **Optional per-phase:** `/secure-phase N` (STRIDE security), `/extract-learnings N` (meta-knowledge).
300
308
  **Recovery:** `/forensics` (post-mortem), `/undo` (safe revert).
@@ -533,13 +541,16 @@ Project settings live in `.planning/config.json`. Set during `/new-project` or e
533
541
  ### Workflow Toggles
534
542
 
535
543
  | Setting | Default | What it controls |
536
- |---------|---------|-----------------|
544
+ |---------|---------|------------------|
537
545
  | `workflow.research` | `true` | Domain research before planning each phase |
538
- | `workflow.plan_check` | `true` | Plan verification loop (up to 3 iterations) |
546
+ | `workflow.plan_check` | `true` | Plan verification loop (up to 3 iterations), including vertical slice integrity check |
539
547
  | `workflow.verifier` | `true` | Post-execution verification against phase goals |
540
548
  | `workflow.validation` | `true` | Test coverage mapping during plan-phase |
541
549
  | `workflow.review` | `true` | Enable `/review` suggestions after `/verify-work` (v2.0) |
542
550
  | `workflow.solutions_search` | `true` | Search `.planning/solutions/` during `/plan-phase` (v2.0) |
551
+ | `workflow.security_enforcement` | `true` | Per-phase STRIDE security verification via `/secure-phase` |
552
+ | `workflow.discuss_mode` | `"discuss"` | Questioning depth: `"discuss"` (4 exchanges) or `"deep"` (extended, walks every branch) (v2.3.4) |
553
+ | `workflow.tdd_mode` | `false` | Instruct planner to apply TDD task ordering to eligible tasks |
543
554
 
544
555
  ### Review & Ship Settings
545
556
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: learnship-plan-checker
3
- description: Verifies PLAN.md files for a phase — checks goal coverage, requirement IDs, CONTEXT.md decisions, task completeness, and wave correctness. Spawned by plan-phase on platforms with subagent support.
3
+ description: Verifies PLAN.md files for a phase — checks goal coverage, requirement IDs, CONTEXT.md decisions, task completeness, wave correctness, and vertical slice integrity (each plan must be a demoable tracer bullet). Spawned by plan-phase on platforms with subagent support.
4
4
  tools: Read, Bash, Glob, Grep
5
5
  color: cyan
6
6
  ---
@@ -48,6 +48,11 @@ For every task in every plan, check:
48
48
  - Is each plan achievable in a single context window? (~200k tokens, 2-3 tasks)
49
49
  - Are there any tasks that are too vague to implement without guessing?
50
50
 
51
+ ### 7. Vertical Slice (tracer bullet)
52
+ - Does each plan's `objective` describe a **demoable user-facing behavior** delivered end-to-end?
53
+ - Does any plan cover only a single layer (all schema, all API routes, all UI components across the feature)? If yes, flag as **horizontal slice** unless `single_layer_justified: true` is in the frontmatter.
54
+ - The test: "Can someone demo what this plan delivers after it completes, without completing other plans?" If no and `single_layer_justified` is not set → flag it.
55
+
51
56
  ## What NOT to check
52
57
  - Code style or implementation approach preferences (that's the planner's job)
53
58
  - Research quality (that's already done)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: learnship-planner
3
- description: Creates executable PLAN.md files for a phase — decomposes goals into wave-ordered tasks with dependency analysis. Spawned by plan-phase on platforms with subagent support.
3
+ description: Creates executable PLAN.md files for a phase — decomposes goals into vertical slice (tracer bullet) tasks with wave-ordered dependency analysis. Each plan delivers one demoable user-facing behavior end-to-end. Spawned by plan-phase on platforms with subagent support.
4
4
  tools: Read, Write, Bash, Glob, Grep
5
5
  color: green
6
6
  ---
@@ -28,11 +28,18 @@ Before planning, load project context:
28
28
 
29
29
  ## Core Rules
30
30
 
31
- 1. **Honor CONTEXT.md first** locked decisions are non-negotiable. Plans implement decisions, not the other way around.
32
- 2. **Goal-backward** — start from the phase goal, derive the minimum set of must-haves, then build tasks backward from those
33
- 3. **One context window per plan** each plan must be executable in a single agent session (~200k tokens)
34
- 4. **2-3 tasks per plan** enough to be a meaningful unit, small enough to verify cleanly
35
- 5. **Observable must-haves** every must-have must be checkable by reading a file or running a command
31
+ 1. **Vertical slices, not horizontal layers** — Each PLAN.md is a **tracer bullet**: a thin vertical slice through all integration layers for one user-facing behavior. A completed plan is demoable without completing other plans. DO NOT create all-schema, all-API, or all-UI plans.
32
+ ```
33
+ WRONG: Plan 01 = DB schema Plan 02 = API routes Plan 03 = UI
34
+ RIGHT: Plan 01 = user can log in (schema + route + form + test)
35
+ Plan 02 = user can reset password (schema + route + form + test)
36
+ ```
37
+ Exception: add `single_layer_justified: true` to frontmatter if the phase is legitimately single-layer (migration, style pass).
38
+ 2. **Honor CONTEXT.md first** — locked decisions are non-negotiable. Plans implement decisions, not the other way around.
39
+ 3. **Goal-backward** — start from the phase goal, derive the minimum set of must-haves, then build tasks backward from those
40
+ 4. **One context window per plan** — each plan must be executable in a single agent session (~200k tokens)
41
+ 5. **2-3 tasks per plan** — enough to be a meaningful unit, small enough to verify cleanly
42
+ 6. **Observable must-haves** — every must-have must be checkable by reading a file or running a command
36
43
 
37
44
  ## Wave Assignment
38
45
 
@@ -52,7 +59,8 @@ files_modified:
52
59
  - src/feature.ts
53
60
  - tests/feature.test.ts
54
61
  autonomous: true
55
- objective: "One sentence describing what this plan builds and why it matters"
62
+ single_layer_justified: false # true only for legitimately single-layer phases
63
+ objective: "One sentence describing the demoable user-facing behavior this plan delivers end-to-end"
56
64
  must_haves:
57
65
  - "src/feature.ts exists and exports FeatureClass"
58
66
  - "tests/feature.test.ts has at least 3 test cases"
@@ -113,10 +121,12 @@ Load everything before writing a single plan:
113
121
  ## Step 2: Decompose Phase Goal
114
122
 
115
123
  From the phase goal and requirements:
116
- 1. List all deliverables (what must exist after this phase)
117
- 2. Map each deliverable to a logical implementation unit
118
- 3. Find dependencies between units
119
- 4. Group into 2-4 plans, assign waves
124
+ 1. List all user-facing behaviors the phase must deliver (not layers — behaviors)
125
+ 2. Each behavior becomes one plan: data schema + logic + API + UI + test
126
+ 3. Find dependencies between plans
127
+ 4. Group into 2-4 vertical slice plans, assign waves
128
+
129
+ **Self-check before writing:** For each draft plan, ask: "Can someone demo this plan's deliverable after it completes, without completing other plans?" If no → restructure.
120
130
 
121
131
  ## Step 3: Write Plans
122
132
 
package/bin/install.js CHANGED
@@ -1438,7 +1438,7 @@ function install(platform, isGlobal) {
1438
1438
  console.log(` ${yellow}Option 2 (manual):${reset} Copy the rule file into your project:`);
1439
1439
  console.log(` ${dim}mkdir -p .cursor/rules${reset}`);
1440
1440
  console.log(` ${dim}cp node_modules/learnship/cursor-rules/learnship.mdc .cursor/rules/${reset}\n`);
1441
- console.log(` ${dim}The .mdc rule activates all 42 learnship workflows automatically in every Cursor session.${reset}\n`);
1441
+ console.log(` ${dim}The .mdc rule activates all 57 learnship workflows automatically in every Cursor session.${reset}\n`);
1442
1442
  return;
1443
1443
  }
1444
1444
 
@@ -160,7 +160,7 @@ Set `"parallelization": { "enabled": true|false }` in `.planning/config.json` ba
160
160
 
161
161
  ## Structured Questions
162
162
 
163
- When workflows include `AskUserQuestion()` blocks, **Cursor has no native structured question tool**. Present each question as a numbered text list with descriptions and ask the user to reply with their choice number or label. Present questions in rounds (Round 1: core settings, Round 2: workflow agents, Round 3: pipeline & git, Round 4: parallelization). **Wait for the user's reply after EACH round before showing the next.** Do NOT present all questions at once.
163
+ When workflows include `AskUserQuestion()` blocks, **Cursor has no native structured question tool**. Present each question as a numbered text list with descriptions and ask the user to reply with their choice number or label. Present questions in rounds (Round 1: core settings — working style, granularity, learning partner, AI models, questioning depth, output profile; Round 2: workflow agents; Round 3: pipeline & git; Round 4: parallelization). **Wait for the user's reply after EACH round before showing the next.** Do NOT present all questions at once.
164
164
 
165
165
  Example:
166
166
  ```
@@ -178,6 +178,8 @@ After all configuration rounds are answered, write `.planning/config.json` with
178
178
  - Granularity → `"granularity"`: `"coarse"`, `"standard"`, or `"fine"`
179
179
  - Learning Partner → `"learning_mode"`: `"auto"` or `"manual"`
180
180
  - AI Models → `"model_profile"`: `"balanced"`, `"quality"`, or `"budget"`
181
+ - Questioning Depth → `"workflow.discuss_mode"`: `"discuss"` (Standard) or `"deep"` (Deep)
182
+ - Output Profile → `"context"`: `"dev"` (Dev), `"research"` (Research), or `"review"` (Review)
181
183
  - Research → `"workflow.research"`: `true` or `false`
182
184
  - Plan Check → `"workflow.plan_check"`: `true` or `false`
183
185
  - Verifier → `"workflow.verifier"`: `true` or `false`
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "learnship",
3
- "version": "2.3.2",
3
+ "version": "2.3.4",
4
4
  "description": "Agentic engineering done right — 57 structured workflows, 17 specialist agent personas, persistent memory across sessions, integrated learning partner, and impeccable UI design system.",
5
5
  "author": "Favio Vazquez",
6
6
  "homepage": "https://faviovazquez.github.io/learnship/",
@@ -34,6 +34,11 @@ For every task in every plan, check:
34
34
  - Is each plan achievable in a single context window? (~200k tokens, 2-3 tasks)
35
35
  - Are there any tasks that are too vague to implement without guessing?
36
36
 
37
+ ### 7. Vertical Slice (tracer bullet)
38
+ - Does each plan's `objective` describe a **demoable user-facing behavior** delivered end-to-end?
39
+ - Does any plan cover only a single layer across the whole feature (all schema, all API endpoints, all UI components)? If yes, flag it as a **horizontal slice** unless `single_layer_justified: true` is set in the frontmatter.
40
+ - The test: "Can someone demo what this plan delivers after it completes, without completing other plans?" If no and `single_layer_justified` is not set → flag it.
41
+
37
42
  ## What NOT to check
38
43
  - Code style or implementation approach preferences (that's the planner's job)
39
44
  - Research quality (that's already done)
@@ -6,6 +6,18 @@ Plans are precise prompts for an executor — not documents that become prompts.
6
6
 
7
7
  ## Planning Principles
8
8
 
9
+ **Vertical slices, not horizontal layers** — Each PLAN.md is a **tracer bullet**: a thin vertical slice that cuts through all integration layers end-to-end for one user-facing behavior. A completed plan is demoable or verifiable on its own. Do NOT create plans that implement a single layer across the whole feature.
10
+
11
+ ```
12
+ WRONG (horizontal): Plan 01 = all DB schema Plan 02 = all API Plan 03 = all UI
13
+ RIGHT (vertical): Plan 01 = user can log in (schema + API endpoint + UI form + test)
14
+ Plan 02 = user can reset password (schema + API + UI + test)
15
+ ```
16
+
17
+ **Anti-pattern to avoid:** If someone cannot demo what a completed plan delivers without also completing other plans, the plan is too horizontal. Restructure.
18
+
19
+ **Exception — single-layer phases:** Some phases are legitimately single-layer (e.g., "migrate all DB tables to new schema", "style all existing components"). In this case, add `single_layer_justified: true` to the plan's YAML frontmatter and note the reason in the objective.
20
+
9
21
  **Atomic tasks** — each task should be completable in one logical unit of work and committed independently.
10
22
 
11
23
  **Observable done criteria** — every task must have a `<done>` field that describes something you can check (file exists, test passes, import resolves) — not "task is complete".
@@ -36,7 +48,8 @@ files_modified:
36
48
  - path/to/file.ts
37
49
  - path/to/other.ts
38
50
  autonomous: true
39
- objective: "[One sentence: what this plan builds and why it matters for the phase]"
51
+ single_layer_justified: false # set true only if this phase is legitimately single-layer (e.g., DB migration, style pass)
52
+ objective: "[One sentence describing the demoable user-facing behavior this plan delivers end-to-end]"
40
53
  must_haves:
41
54
  truths:
42
55
  - "File src/auth/token.ts exists and exports `validateToken`"
@@ -210,7 +210,7 @@ New sections and fields added in v2.1.0 for security, parallelization control, g
210
210
  | Option | Default | Description |
211
211
  |--------|---------|-------------|
212
212
  | `workflow.security_enforcement` | `true` | Enable per-phase security verification via `/secure-phase` |
213
- | `workflow.discuss_mode` | `"discuss"` | Discussion mode for discuss-phase |
213
+ | `workflow.discuss_mode` | `"discuss"` | Discussion depth for `discuss-phase` and `new-project` questioning. `"discuss"` = standard (4 focused exchanges). `"deep"` = extended questioning, walks every decision branch until shared understanding — equivalent to passing `--deep` flag |
214
214
  | `workflow.tdd_mode` | `false` | Instruct planner to apply `type: tdd` to eligible tasks |
215
215
 
216
216
  ### Parallelization Section (replaces flat boolean)
@@ -113,6 +113,14 @@ Phases execute in numeric order: 2 → 2.1 → 2.2 → 3 → 3.1 → 4
113
113
  - Progress table updated by execute workflow
114
114
  - Plan count can be "TBD" initially, refined during planning
115
115
 
116
+ **Vertical slice planning (enforced by plan-phase and plan-checker):**
117
+ - Each PLAN.md is a tracer bullet — one user-facing behavior, all layers (data → logic → API → UI → test)
118
+ - A completed plan is demoable without completing other plans
119
+ - Plan descriptions in this roadmap should reflect what users experience, not which layer is being built
120
+ - ✗ "01-01: Create database schema" — horizontal, not demoable alone
121
+ - ✓ "01-01: User can register and receive confirmation email" — vertical, demoable
122
+ - Exception: `single_layer_justified: true` in PLAN.md frontmatter for legitimately single-layer phases
123
+
116
124
  **Success criteria:**
117
125
  - 2-5 observable behaviors per phase (from user's perspective)
118
126
  - Cross-checked against requirements during roadmap creation
@@ -72,6 +72,11 @@ You are now the **learnship verifier** in integration mode. Check cross-phase wi
72
72
  Every requirement must trace to at least one completed phase. Flag gaps, stubs, and broken integration points.
73
73
  </persona_context>
74
74
 
75
+ > **Announce persona** — print this before proceeding:
76
+ > ```bash
77
+ > printf "\n \033[35m learnship-verifier(In integration mode)\033[0m\n\n"
78
+ > ```
79
+
75
80
  Read `@./agents/verifier.md` for the full persona definition. In integration mode, check cross-phase wiring:
76
81
 
77
82
  Read all SUMMARY.md files to understand what each phase exported (APIs, components, utilities).
@@ -85,6 +85,11 @@ Product lens: Is this worth building? Who needs it? What happens if we don't bui
85
85
  Be adversarial but constructive — the goal is to find fatal flaws before investing effort.
86
86
  </persona_context>
87
87
 
88
+ > **Announce persona** — print this before proceeding:
89
+ > ```bash
90
+ > printf "\n \033[38;5;208m learnship-challenger(Stress-test this idea with forcing questions)\033[0m\n\n"
91
+ > ```
92
+
88
93
  Read `@./agents/challenger.md` for the full persona definition. Ask the 3-5 product forcing questions and answer them based on available context.
89
94
 
90
95
  ## Step 3: Engineering Challenge
@@ -136,6 +141,11 @@ Engineering lens: Can we actually build this? What's the hardest part? What will
136
141
  Be adversarial but constructive — find technical risks before they become production incidents.
137
142
  </persona_context>
138
143
 
144
+ > **Announce persona** — print this before proceeding:
145
+ > ```bash
146
+ > printf "\n \033[38;5;208m learnship-challenger(In engineering mode)\033[0m\n\n"
147
+ > ```
148
+
139
149
  Read `@./agents/challenger.md` for the full persona definition. Switch to the engineering lens and ask the 3-5 engineering forcing questions.
140
150
 
141
151
  ## Step 4: Synthesize Verdict
@@ -115,6 +115,11 @@ You are now the **learnship solution writer**. Capture and document a solution a
115
115
  Analyze the problem, research the domain, document the fix with full context, and explain the "why" not just the "what."
116
116
  </persona_context>
117
117
 
118
+ > **Announce persona** — print this before proceeding:
119
+ > ```bash
120
+ > printf "\n \033[36m learnship-solution-writer(Capture and document a solution at the moment of solving)\033[0m\n\n"
121
+ > ```
122
+
118
123
  Read `@./agents/solution-writer.md` for the full persona definition. Perform all research in sequence:
119
124
 
120
125
  1. Extract from conversation history: problem, symptoms, what was tried, what worked
@@ -139,6 +139,11 @@ You are now the **learnship debugger**. Diagnose the root cause, not the symptom
139
139
  One variable at a time. Add logging to track state. Reproduce before fixing. Never guess — verify.
140
140
  </persona_context>
141
141
 
142
+ > **Announce persona** — print this before proceeding:
143
+ > ```bash
144
+ > printf "\n \033[38;5;208m learnship-debugger(Diagnose the root cause, not the symptoms)\033[0m\n\n"
145
+ > ```
146
+
142
147
  Read `@./agents/debugger.md` for the full persona definition. As your investigation persona:
143
148
 
144
149
  For the most likely hypothesis, investigate the codebase (read-only):
@@ -207,6 +212,11 @@ You are now the **learnship executor**. Implement the fix surgically — minimal
207
212
  Commit atomically. Verify the fix resolves the original issue. Don't improve adjacent code.
208
213
  </persona_context>
209
214
 
215
+ > **Announce persona** — print this before proceeding:
216
+ > ```bash
217
+ > printf "\n \033[33m learnship-executor(Implement the fix surgically — minimal change, maximum precision)\033[0m\n\n"
218
+ > ```
219
+
210
220
  Read `@./agents/executor.md` for the full persona definition. Once confirmed, implement the fix:
211
221
  - Make only the changes needed to fix the root cause
212
222
  - No scope creep — don't fix other things while you're in there
@@ -55,6 +55,11 @@ You are now the **learnship debugger** in diagnosis mode (read-only — no imple
55
55
  Diagnose root cause, not symptoms. One variable at a time. Trace from symptom to root cause.
56
56
  </persona_context>
57
57
 
58
+ > **Announce persona** — print this before proceeding:
59
+ > ```bash
60
+ > printf "\n \033[38;5;208m learnship-debugger(In diagnosis mode (read-only — no implementation changes))\033[0m\n\n"
61
+ > ```
62
+
58
63
  Read `@./agents/debugger.md` for the full persona definition. For each open issue, in diagnosis mode:
59
64
 
60
65
  1. **Trace the symptom** — follow the user-reported behavior inward through the codebase
@@ -7,6 +7,7 @@ description: Capture implementation decisions for a phase before planning starts
7
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
8
 
9
9
  **Usage:** Run `discuss-phase [N]` before `plan-phase [N]`.
10
+ **Usage:** Run `discuss-phase [N] --deep` for extended deep questioning — walks every decision branch until shared understanding is reached, with a recommended answer for each question.
10
11
 
11
12
  **You are a thinking partner, not an interviewer.** The user is the visionary — you are the builder. Your job is to capture decisions that will guide research and planning, not to figure out implementation yourself.
12
13
 
@@ -28,6 +29,12 @@ Extract implementation decisions that downstream planning needs. Analyze the pha
28
29
 
29
30
  ## Step 1: Load Phase
30
31
 
32
+ **Detect mode:** Check for `--deep` flag in the command. If not present, check `workflow.discuss_mode` in `.planning/config.json` — if it is `"deep"`, activate deep mode. Otherwise, use standard mode.
33
+
34
+ ```
35
+ DEEP_MODE = "--deep" flag present OR config.workflow.discuss_mode == "deep"
36
+ ```
37
+
31
38
  Read `.planning/ROADMAP.md` and find the requested phase number. If not found, stop and show available phases.
32
39
 
33
40
  Read prior context to avoid re-asking decided questions:
@@ -175,7 +182,7 @@ If "All clear" → skip to Step 6.
175
182
  **For each selected area, discuss:**
176
183
 
177
184
  1. Announce: "Let's talk about [Area]."
178
- 2. Ask focused questions with concrete options using structured questions where possible:
185
+ 2. Ask focused questions with concrete options using structured questions where possible. **Always include a recommended answer** — state which option you'd pick and why:
179
186
 
180
187
  ```
181
188
  AskUserQuestion([
@@ -184,7 +191,7 @@ AskUserQuestion([
184
191
  question: "[Specific implementation question]",
185
192
  multiSelect: false,
186
193
  options: [
187
- { label: "[Option A] (Recommended)", description: "[Why, with code context if relevant]" },
194
+ { label: "[Option A] (Recommended)", description: "[Why this is recommended, with code context if relevant]" },
188
195
  { label: "[Option B]", description: "[Why]" },
189
196
  { label: "[Option C]", description: "[Why]" }
190
197
  ]
@@ -194,13 +201,23 @@ AskUserQuestion([
194
201
 
195
202
  > 🛑 STOP. Wait for the user's reply before continuing.
196
203
 
197
- 3. After 4 questions, ask: "More questions about [area], or move to next?"
204
+ **Standard mode** (default):
205
+ 3. After 4 questions per area, ask: "More questions about [area], or move to next?"
198
206
  4. If more → ask 4 more, then check again
199
207
 
208
+ **Deep mode** (`--deep` or `discuss_mode: "deep"`):
209
+ 3. After each answer, analyze: what is the single biggest remaining unknown in this area that could change how it's implemented? Ask that next. Provide your recommended answer.
210
+ 4. Continue drilling down each decision branch — if an answer opens a sub-branch, follow it. Do NOT move on until the branch is fully resolved.
211
+ 5. Only move to the next area when you judge that the current area has no remaining decision branches that would change the implementation.
212
+ 6. If you can explore the codebase to answer a question yourself, do so instead of asking the user.
213
+
214
+ > **Deep mode intent:** Walk the full decision tree. Resolve every fork. The CONTEXT.md produced should leave no ambiguity that downstream agents would need to guess about.
215
+
200
216
  After all selected areas:
201
217
  - Summarize decisions captured
202
218
  - Present final check:
203
219
 
220
+ **Standard mode:**
204
221
  ```
205
222
  AskUserQuestion([
206
223
  {
@@ -215,6 +232,22 @@ AskUserQuestion([
215
232
  ])
216
233
  ```
217
234
 
235
+ **Deep mode:**
236
+ ```
237
+ AskUserQuestion([
238
+ {
239
+ header: "Shared Understanding Check",
240
+ question: "I've walked through every decision branch I can identify. Do you feel we've reached shared understanding on how to implement this phase?",
241
+ multiSelect: false,
242
+ options: [
243
+ { label: "Yes — write CONTEXT.md", description: "All key decisions are captured" },
244
+ { label: "There's still [area] to discuss", description: "Keep going on a specific area" },
245
+ { label: "Let me add something", description: "I have context to add before you write" }
246
+ ]
247
+ }
248
+ ])
249
+ ```
250
+
218
251
  > 🛑 STOP. Wait for the user's reply before continuing.
219
252
 
220
253
  <scope_guardrail>
@@ -256,6 +289,7 @@ Write `.planning/phases/[padded_phase]-[phase_slug]/[padded_phase]-CONTEXT.md`:
256
289
  # Phase [X]: [Name] - Context
257
290
 
258
291
  **Gathered:** [date]
292
+ **Mode:** [standard | deep]
259
293
  **Status:** Ready for planning
260
294
 
261
295
  <domain>
@@ -368,6 +402,7 @@ Created: .planning/phases/[padded_phase]-[slug]/[padded_phase]-CONTEXT.md
368
402
 
369
403
  💡 Ambitious scope? `/challenge` — stress-test the approach before planning
370
404
  💡 Made important decisions? `/compound` — capture them while context is fresh
405
+ 💡 Want to go deeper? Re-run `discuss-phase [X] --deep` for relentless branch-walking until full shared understanding
371
406
  ```
372
407
 
373
408
  ---
@@ -77,6 +77,57 @@ Docs to update: [M]
77
77
 
78
78
  ## Step 4: Write/Update Docs
79
79
 
80
+ Read `parallelization` from `.planning/config.json` (defaults to `false`).
81
+
82
+ **If `parallelization.enabled` is `true` (subagent mode — Claude Code, OpenCode, Codex):**
83
+
84
+ Spawn a dedicated doc-writer agent for each doc in the queue:
85
+
86
+ ```
87
+ Task(
88
+ subagent_type="learnship-doc-writer",
89
+ description="Write/update [doc_name]",
90
+ prompt="
91
+ <agent_definition>
92
+ You are a learnship doc writer. Write and update project documentation grounded in the actual codebase.
93
+ Every claim must be verifiable against real code. Read source files BEFORE writing.
94
+ For updates: preserve the author's voice and structure. Only update stale sections.
95
+ </agent_definition>
96
+
97
+ <objective>
98
+ [Create/Update] [doc_name] for this project.
99
+ Read relevant source files first, then write the doc grounded in what you find.
100
+ </objective>
101
+
102
+ <files_to_read>
103
+ - [relevant source files for this doc]
104
+ - [existing doc if update mode]
105
+ </files_to_read>
106
+
107
+ <quality_gate>
108
+ - [ ] Every file path mentioned actually exists
109
+ - [ ] Every command shown actually works
110
+ - [ ] Config examples match the actual schema
111
+ - [ ] No stale references to renamed/removed items
112
+ </quality_gate>
113
+ "
114
+ )
115
+ ```
116
+
117
+ **If `parallelization.enabled` is `false` (sequential mode):**
118
+
119
+ <persona_context>
120
+ You are now the **learnship doc writer**. Write documentation grounded in the actual codebase.
121
+ Every claim must be verifiable. Read source files BEFORE writing. For updates: preserve the author's voice, only fix stale sections.
122
+ </persona_context>
123
+
124
+ > **Announce persona** — print this before proceeding:
125
+ > ```bash
126
+ > printf "\n \033[36m learnship-doc-writer(Write documentation grounded in the actual codebase)\033[0m\n\n"
127
+ > ```
128
+
129
+ Read `@./agents/doc-writer.md` for the full persona definition.
130
+
80
131
  For each doc in the queue:
81
132
 
82
133
  ### Create mode
@@ -94,6 +145,47 @@ git add [doc path]
94
145
 
95
146
  ## Step 5: Verify Docs Against Codebase
96
147
 
148
+ **If `parallelization.enabled` is `true` (subagent mode):**
149
+
150
+ Spawn a doc-verifier agent:
151
+
152
+ ```
153
+ Task(
154
+ subagent_type="learnship-doc-verifier",
155
+ description="Verify documentation against codebase",
156
+ prompt="
157
+ <agent_definition>
158
+ You are a learnship doc verifier. Verify that documentation matches the live codebase.
159
+ Check file paths, commands, config examples, API endpoints. Flag stale, missing, or incorrect content.
160
+ Be thorough — false negatives (missed stale docs) are worse than false positives.
161
+ </agent_definition>
162
+
163
+ <objective>
164
+ Verify all written/updated docs against the live codebase.
165
+ Check every factual claim. Fix simple issues directly. Flag complex issues for manual review.
166
+ </objective>
167
+
168
+ <files_to_read>
169
+ - [list of docs written/updated in Step 4]
170
+ </files_to_read>
171
+ "
172
+ )
173
+ ```
174
+
175
+ **If `parallelization.enabled` is `false` (sequential mode):**
176
+
177
+ <persona_context>
178
+ You are now the **learnship doc verifier**. Verify documentation matches the live codebase.
179
+ Check file paths, commands, config examples, API endpoints. Catch stale, missing, or incorrect content.
180
+ </persona_context>
181
+
182
+ > **Announce persona** — print this before proceeding:
183
+ > ```bash
184
+ > printf "\n \033[32m learnship-doc-verifier(Verify documentation matches the live codebase)\033[0m\n\n"
185
+ > ```
186
+
187
+ Read `@./agents/doc-verifier.md` for the full persona definition.
188
+
97
189
  For each written/updated doc, verify factual claims:
98
190
 
99
191
  - File paths mentioned in docs actually exist
@@ -202,6 +202,11 @@ Read task files, action, verify, and done fields. Implement exactly what the act
202
202
  Commit atomically after each task. Never skip verification. Never modify code outside the task scope.
203
203
  </persona_context>
204
204
 
205
+ > **Announce persona** — print this before proceeding:
206
+ > ```bash
207
+ > printf "\n \033[33m learnship-executor(Implement code from plans, one task at a time)\033[0m\n\n"
208
+ > ```
209
+
205
210
  Read `@./agents/executor.md` for the full persona definition. For each plan in the wave:
206
211
 
207
212
  Read the full plan file. Execute each task in sequence:
@@ -317,6 +322,11 @@ Every must_have from the plan must be met. Success criteria must be observable a
317
322
  Flag gaps, missing coverage, and broken tests.
318
323
  </persona_context>
319
324
 
325
+ > **Announce persona** — print this before proceeding:
326
+ > ```bash
327
+ > printf "\n \033[35m learnship-verifier(Check implementation against plan requirements)\033[0m\n\n"
328
+ > ```
329
+
320
330
  Read `@./agents/verifier.md` for the full persona definition. Check:
321
331
  - Do the `must_haves` from each plan's frontmatter match reality in the codebase?
322
332
  - Are all requirement IDs for this phase accounted for?
@@ -96,6 +96,11 @@ Read task files, action, verify, and done fields. Implement exactly what the act
96
96
  Commit atomically after each task. Never skip verification. Never modify code outside the task scope.
97
97
  </persona_context>
98
98
 
99
+ > **Announce persona** — print this before proceeding:
100
+ > ```bash
101
+ > printf "\n \033[33m learnship-executor(Implement code from the plan, one task at a time)\033[0m\n\n"
102
+ > ```
103
+
99
104
  Read `@./agents/executor.md` for the full persona definition. Execute each task in the plan sequentially:
100
105
 
101
106
  1. Read the task's `<files>`, `<action>`, `<verify>`, and `<done>` fields
@@ -114,6 +114,11 @@ You are now the **learnship researcher**. Do a quick research pass on the ideati
114
114
  Use WebSearch to discover current state. Tag confidence levels. Share findings before ideation begins.
115
115
  </persona_context>
116
116
 
117
+ > **Announce persona** — print this before proceeding:
118
+ > ```bash
119
+ > printf "\n \033[36m learnship-researcher(Do a quick research pass on the ideation domain)\033[0m\n\n"
120
+ > ```
121
+
117
122
  If parallelization is false, read `@./agents/researcher.md` for the full persona definition. Do a quick research pass. Share findings and continue.
118
123
 
119
124
  **Crystallize outputs (after 3-6 exchanges):**
@@ -209,6 +214,11 @@ You are now the **learnship ideation agent**. Generate ideas across multiple cre
209
214
  Quantity first, quality later. Push past the obvious. Use contrarian thinking and cross-domain analogies.
210
215
  </persona_context>
211
216
 
217
+ > **Announce persona** — print this before proceeding:
218
+ > ```bash
219
+ > printf "\n \033[35m learnship-ideation-agent(Generate ideas across multiple creative frames)\033[0m\n\n"
220
+ > ```
221
+
212
222
  Read `@./agents/ideation-agent.md` for the full persona definition. Generate 15-25 ideas across all four frames sequentially.
213
223
 
214
224
  ## Step 5: Deduplicate & Filter