learnship 2.0.8 → 2.0.10

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "learnship",
3
3
  "description": "Agentic engineering done right — 49 structured workflows, 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.0.8",
4
+ "version": "2.0.10",
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 — 49 structured workflows, persistent memory across sessions, integrated learning partner, and impeccable UI design system.",
5
- "version": "2.0.8",
5
+ "version": "2.0.10",
6
6
  "logo": "assets/logo.png",
7
7
  "author": {
8
8
  "name": "Favio Vazquez",
package/SKILL.md CHANGED
@@ -106,6 +106,18 @@ Does .planning/PROJECT.md exist?
106
106
 
107
107
  **This gate applies to ALL messages** — bug reports, feature requests, "quick fixes", detailed specs, anything. The only exception: if the user is currently mid-ceremony in `/new-project` (i.e., they are answering your questions), their messages are workflow answers, not tasks to route.
108
108
 
109
+ ## `/new-project` Ceremony Enforcement
110
+
111
+ When running `/new-project`, these are non-negotiable hard gates. Violating any of them produces a broken project:
112
+
113
+ 1. **Research decision = always ask the user.** After PROJECT.md is confirmed, you MUST ask: "Do you want me to research the domain ecosystem first?" and WAIT for a reply. You are FORBIDDEN from deciding this yourself — even if the tech stack is defined in PROJECT.md, the domain seems trivial, or the user gave detailed answers. Never say "no research needed" or "skipping research" on your own.
114
+
115
+ 2. **Research = 5 separate files.** If the user chooses research, you MUST create exactly 5 files in `.planning/research/`: `STACK.md`, `FEATURES.md`, `ARCHITECTURE.md`, `PITFALLS.md`, `SUMMARY.md`. Do NOT write a single monolithic research file. After writing all 5, run the `node -e` verification command from the workflow. If it fails, fix the files before proceeding.
116
+
117
+ 3. **AGENTS.md = copy from template.** Read `@./templates/agents.md` BEFORE writing AGENTS.md. Sections marked "copy VERBATIM" must be copied word-for-word — do not rewrite, summarize, or rephrase them. After writing, run the `node -e` verification command. If it fails, fix AGENTS.md before proceeding.
118
+
119
+ 4. **Done = STOP.** After displaying the Step 9 done banner, **STOP completely**. Do NOT automatically start `/discuss-phase 1`. Do NOT say "Let me start Phase 1" or "Now starting Phase 1." Wait for the user to type their next command.
120
+
109
121
  ## Key Behaviors
110
122
 
111
123
  - **Context efficiency**: Reference file paths rather than inlining file contents. Load context fresh when needed rather than carrying it forward.
@@ -45,11 +45,15 @@ When the user runs `/new-project`, execute these **9 mandatory steps in order**.
45
45
 
46
46
  1. **Exchange 1 answer does NOT skip Exchanges 2–4.** No matter how detailed the user's answer to "What do you want to build?" — it is raw material for follow-ups, not a replacement. You MUST still ask Exchanges 2, 3, and 4.
47
47
 
48
- 2. **After Step 4 (PROJECT.md confirmed):** Do NOT write REQUIREMENTS.md or ROADMAP.md. First ask: "Before I write the requirements — do you want me to research the domain ecosystem first?" Wait for reply.
48
+ 2. **Research decision = always ask the user.** After PROJECT.md is confirmed, ask: "Do you want me to research the domain ecosystem first?" and WAIT for the user's reply. You are FORBIDDEN from deciding this yourself — even if the tech stack is defined in PROJECT.md, the domain seems trivial, or the user gave detailed answers. Never say "no research needed" or "skipping research" on your own.
49
49
 
50
- 3. **After Step 7 (roadmap approved):** Do NOT display the done banner or suggest next steps. Generate AGENTS.md (Step 8) first.
50
+ 3. **Research = 5 separate files.** If the user chooses research, create exactly 5 files in `.planning/research/`: `STACK.md`, `FEATURES.md`, `ARCHITECTURE.md`, `PITFALLS.md`, `SUMMARY.md`. Do NOT write a single monolithic research file. Run the `node -e` verification command from the workflow — it must print `RESEARCH VERIFIED OK` before proceeding.
51
51
 
52
- 4. **Step 9 next step is `/discuss-phase 1` not `/plan-phase`.** The phase loop is: `discuss-phase` → `plan-phase` → `execute-phase` → `verify-work`. `discuss-phase` is mandatory first — it writes the CONTEXT.md that planning depends on.
52
+ 4. **After Step 7 (roadmap approved):** Do NOT display the done banner or suggest next steps. Generate AGENTS.md (Step 8) first.
53
+
54
+ 5. **AGENTS.md = copy from template.** Read `@./templates/agents.md` BEFORE writing. Sections marked "copy VERBATIM" (Soul, Principles, Request Routing Protocol, Platform Context, Skills, Regressions) must be copied word-for-word. Run the `node -e` verification — it must print `AGENTS.md VERIFIED OK` before proceeding.
55
+
56
+ 6. **Step 9 = STOP.** After displaying the done banner, **STOP completely**. Do NOT automatically start `/discuss-phase 1`. Do NOT say "Let me start Phase 1." Wait for the user's next message. The next step is `/discuss-phase 1` — **start here, not `/plan-phase`**. The phase loop is: `discuss-phase` → `plan-phase` → `execute-phase` → `verify-work`.
53
57
 
54
58
  **Routing protocol suspended during `/new-project`.** Every user message while the ceremony is in progress is an answer to a workflow question, not a task to route.
55
59
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "learnship",
3
- "version": "2.0.8",
3
+ "version": "2.0.10",
4
4
  "description": "Agentic engineering done right — 49 structured workflows, 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/",
@@ -282,13 +282,47 @@ git add .planning/PROJECT.md && git commit -m "docs: initialize project"
282
282
 
283
283
  ## Step 5: Research Decision
284
284
 
285
- > **🔴 MANDATORY USER CHOICE — You must ask this question and wait for a reply. You are NOT allowed to decide this yourself, even if the domain seems trivial, familiar, or well-understood. The user decides. Always.**
285
+ > **🔴 MANDATORY USER CHOICE — You must ask this question and wait for a reply. You are NOT allowed to decide this yourself.**
286
286
 
287
- Ask: **"Before I write the requirements do you want me to research the domain ecosystem first?"**
288
- - **Research first** (recommended) — Discover standard stacks, expected features, architecture patterns
289
- - **Skip research** — I know this domain well, go straight to requirements
287
+ Display this question to the user exactly as written:
290
288
 
291
- > 🛑 STOP. Wait for the user's explicit choice. Do not default to either option. Do not reason about whether research is needed — that is the user's call. Do not write REQUIREMENTS.md yet. Do not proceed until the user replies.
289
+ ```
290
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
291
+ learnship ► RESEARCH DECISION
292
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
293
+
294
+ Before I write the requirements — do you want me to
295
+ research the domain ecosystem first?
296
+
297
+ 1. Research first (recommended)
298
+ → Discover standard stacks, expected features,
299
+ architecture patterns, common pitfalls
300
+
301
+ 2. Skip research
302
+ → Go straight to requirements
303
+
304
+ Reply 1 or 2.
305
+ ```
306
+
307
+ > � **HARD GATE — This is a user decision. You MUST wait for the user to reply.**
308
+ >
309
+ > **You are FORBIDDEN from deciding this yourself.** It does not matter if:
310
+ > - The tech stack is already defined in PROJECT.md
311
+ > - The domain seems trivial or well-understood
312
+ > - You already know the ecosystem
313
+ > - The user gave detailed answers in Deep Questioning
314
+ > - The project seems simple
315
+ >
316
+ > **None of these are valid reasons to skip the question.** The user ALWAYS gets asked. The user ALWAYS decides.
317
+ >
318
+ > **Forbidden responses (do NOT say anything like these):**
319
+ > - "The tech stack is already well-defined in PROJECT.md. No research needed."
320
+ > - "Since you've already described the stack, I'll skip research."
321
+ > - "Moving straight to requirements/roadmap."
322
+ > - "Research isn't necessary for this project."
323
+ > - Any sentence that contains "no research needed" or "skip research" that you wrote yourself (not the user).
324
+ >
325
+ > **The ONLY acceptable next action is: display the question above and wait.** Do not write REQUIREMENTS.md. Do not write ROADMAP.md. Do not proceed to Step 6. Wait for the user's reply.
292
326
 
293
327
  **If Research first:**
294
328
 
@@ -298,46 +332,56 @@ Ask: **"Before I write the requirements — do you want me to research the domai
298
332
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
299
333
  ```
300
334
 
301
- Run 4 research passes sequentially. Each writes a file to `.planning/research/` with **mandatory sections** as specified below. Do not write freeform prose each file must contain the required `##` headers.
335
+ **You MUST create exactly 5 separate markdown files.** Do NOT write a single monolithic research file. Do NOT combine multiple files into one. Each file is a separate write operation.
336
+
337
+ Create the research directory first:
338
+
339
+ ```bash
340
+ node -e "require('fs').mkdirSync('.planning/research',{recursive:true})"
341
+ ```
302
342
 
303
- 1. **STACK.md** Standard tech stack for this domain
304
- - Required sections: `## Recommended Stack`, `## Alternatives Considered`, `## What NOT to Use` (with reasons), `## Versions`
305
- 2. **FEATURES.md** — What features exist in this domain
306
- - Required sections: `## Table Stakes` (must-haves), `## Differentiators` (nice-to-haves), `## Anti-Features` (what to avoid)
307
- 3. **ARCHITECTURE.md** — How systems in this domain are typically structured
308
- - Required sections: `## Component Boundaries`, `## Data Flow`, `## Build Order` (suggested sequence), `## Integration Points`
309
- 4. **PITFALLS.md** — Common mistakes and prevention strategies
310
- - Required sections: `## Common Mistakes`, `## Warning Signs`, `## Prevention Strategies`
343
+ Now create each file one at a time. After writing each file, move to the next.
311
344
 
312
- After all four complete, synthesize into `.planning/research/SUMMARY.md`:
313
- - Required sections: `## Recommended Stack`, `## Table Stakes Features`, `## Key Architecture Decisions`, `## Top Pitfalls`
345
+ **File 1 of 5 Write `.planning/research/STACK.md` now:**
346
+ Research the standard tech stack for this domain. The file MUST contain these exact `##` headers:
347
+ - `## Recommended Stack`
348
+ - `## Alternatives Considered`
349
+ - `## What NOT to Use` (with reasons)
350
+ - `## Versions`
314
351
 
315
- **Post-research verification (cross-platform):**
352
+ **File 2 of 5 — Write `.planning/research/FEATURES.md` now:**
353
+ Research what features exist in this domain. The file MUST contain these exact `##` headers:
354
+ - `## Table Stakes` (must-haves)
355
+ - `## Differentiators` (nice-to-haves)
356
+ - `## Anti-Features` (what to avoid)
357
+
358
+ **File 3 of 5 — Write `.planning/research/ARCHITECTURE.md` now:**
359
+ Research how systems in this domain are typically structured. The file MUST contain these exact `##` headers:
360
+ - `## Component Boundaries`
361
+ - `## Data Flow`
362
+ - `## Build Order` (suggested sequence)
363
+ - `## Integration Points`
364
+
365
+ **File 4 of 5 — Write `.planning/research/PITFALLS.md` now:**
366
+ Research common mistakes and prevention strategies. The file MUST contain these exact `##` headers:
367
+ - `## Common Mistakes`
368
+ - `## Warning Signs`
369
+ - `## Prevention Strategies`
370
+
371
+ **File 5 of 5 — Write `.planning/research/SUMMARY.md` now:**
372
+ Synthesize the 4 files above into a summary. The file MUST contain these exact `##` headers:
373
+ - `## Recommended Stack`
374
+ - `## Table Stakes Features`
375
+ - `## Key Architecture Decisions`
376
+ - `## Top Pitfalls`
377
+
378
+ > 🔴 **HARD GATE — Run this verification command now. Do not skip it. Do not proceed without running it.**
316
379
 
317
380
  ```bash
318
- node -e "
319
- const fs=require('fs'),path=require('path');
320
- const dir='.planning/research/';
321
- const checks={
322
- 'STACK.md':['Recommended Stack','What NOT to Use'],
323
- 'FEATURES.md':['Table Stakes','Differentiators'],
324
- 'ARCHITECTURE.md':['Component Boundaries','Data Flow'],
325
- 'PITFALLS.md':['Common Mistakes','Prevention Strategies'],
326
- 'SUMMARY.md':['Recommended Stack','Top Pitfalls']
327
- };
328
- const missing=[];
329
- for(const[file,sections]of Object.entries(checks)){
330
- const fp=path.join(dir,file);
331
- if(!fs.existsSync(fp)){missing.push(file+' MISSING');continue;}
332
- const c=fs.readFileSync(fp,'utf8');
333
- for(const s of sections){if(!c.includes('## '+s))missing.push(file+': missing ## '+s);}
334
- }
335
- if(missing.length){console.log('RESEARCH INCOMPLETE:\\n'+missing.join('\\n'));process.exit(1);}
336
- console.log('RESEARCH VERIFIED OK');
337
- "
381
+ node -e "const fs=require('fs'),path=require('path');const dir='.planning/research/';const checks={'STACK.md':['Recommended Stack','What NOT to Use'],'FEATURES.md':['Table Stakes','Differentiators'],'ARCHITECTURE.md':['Component Boundaries','Data Flow'],'PITFALLS.md':['Common Mistakes','Prevention Strategies'],'SUMMARY.md':['Recommended Stack','Top Pitfalls']};const missing=[];for(const[file,sections]of Object.entries(checks)){const fp=path.join(dir,file);if(!fs.existsSync(fp)){missing.push(file+' MISSING');continue;}const c=fs.readFileSync(fp,'utf8');for(const s of sections){if(!c.includes('## '+s))missing.push(file+': missing ## '+s);}}if(missing.length){console.log('RESEARCH INCOMPLETE:\\n'+missing.join('\\n'));process.exit(1);}console.log('RESEARCH VERIFIED OK — all 5 files present with required sections');"
338
382
  ```
339
383
 
340
- > 🛑 If verification fails, fix the missing files or sections before proceeding. Do not skip research verification.
384
+ > 🛑 **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.
341
385
 
342
386
  Display key findings:
343
387
  ```
@@ -435,63 +479,49 @@ git add .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md && git
435
479
 
436
480
  > **🔴 MANDATORY — This step must always be completed. Do not skip it, do not defer it, do not move to Step 9 without writing AGENTS.md to the project root. AGENTS.md is the persistent memory file that every future session depends on.**
437
481
 
438
- Start by reading `@./templates/agents.md` in full. This is the **canonical template**. The generated AGENTS.md must follow its exact structure.
439
-
440
- **Sections to copy VERBATIM (do not rewrite, do not summarize, do not rephrase):**
441
- - `## Soul — Who We Are Together` (entire section including Voice & Character and Relationship Model)
442
- - `## Principles How We Operate` (all 10 principles, verbatim)
443
- - `## Platform Context` (the learnship key facts block, verbatim)
444
- - `## SkillsOperational Knowledge` (CHANGELOG Discipline and Decisions Register, verbatim)
445
- - `## RegressionsWhat Broke and What We Learned` (the empty starter block, verbatim)
446
-
447
- **Sections to FILL IN with project-specific information:**
448
-
449
- **Title** Replace `[PROJECT NAME]` with the actual project name.
482
+ **Substep 8a Read the template.** Read `@./templates/agents.md` in full RIGHT NOW before writing anything. This is the canonical template. You need its exact content.
483
+
484
+ > 🛑 **HARD GATE:** Did you just read `@./templates/agents.md`? If not, go back and read it now. The next substep requires copying sections verbatim from the template. You cannot do that without reading it first.
485
+
486
+ **Substep 8bWrite AGENTS.md.** Create the file `AGENTS.md` at the project root. The file structure MUST follow the template exactly. Here is the required section order:
487
+
488
+ 1. `# AGENTS.md[Project Name]` replace `[PROJECT NAME]` with the actual project name
489
+ 2. `## SoulWho We Are Together` **copy VERBATIM from the template** including all of Voice & Character and Relationship Model. Do not rewrite, summarize, or rephrase any of it.
490
+ 3. `## Principles — How We Operate` — **copy VERBATIM from the template**. All 10 numbered principles, word for word.
491
+ 4. `## Request Routing Protocol` — **copy VERBATIM from the template**. The entire decision tree and examples.
492
+ 5. `## Platform Context` — **copy VERBATIM from the template**. The learnship key facts block.
493
+ 6. `## Current Phase` **FILL IN** with project-specific data:
494
+ ```
495
+ **Milestone:** v1.0 — [Milestone Name from PROJECT.md]
496
+ **Phase:** 1 — [Phase 1 name from ROADMAP.md]
497
+ **Status:** planning
498
+ **Last updated:** [today's date]
499
+ ```
500
+ 7. `## Project Structure` — **FILL IN** by scanning existing directories:
501
+ ```bash
502
+ node -e "const{readdirSync,statSync}=require('fs'),{join}=require('path');const walk=(d,dep=0)=>{if(dep>2)return;try{readdirSync(d).filter(f=>!f.startsWith('.')&&f!=='node_modules').forEach(f=>{const p=join(d,f);if(statSync(p).isDirectory()){console.log(' '.repeat(dep*2)+'├── '+f+'/');walk(p,dep+1);}});}catch{}};walk('.');"
503
+ ```
504
+ Populate the tree with real directories and one-line descriptions.
505
+ 8. `## Tech Stack` — **FILL IN** using research output (if available) or user's stated stack:
506
+ - Language + version
507
+ - Framework
508
+ - Key libraries (the 3-5 most important)
509
+ - How to run the dev server
510
+ - How to run tests
511
+ 9. `## Skills — Operational Knowledge` — **copy VERBATIM from the template**. CHANGELOG Discipline, Decisions Register, and Solutions Store sections.
512
+ 10. `## Regressions — What Broke and What We Learned` — **copy VERBATIM from the template**. The empty starter block.
513
+
514
+ **You may ADD project-specific sections** (e.g., Conventions, Content Sources, Definition of Done) **after** Tech Stack and **before** Skills. But you must NEVER remove, rename, or replace the 10 sections listed above.
515
+
516
+ **Substep 8c — Verify AGENTS.md.** Run this command now. Do not skip it.
517
+
518
+ > 🔴 **HARD GATE — Run this verification command now. Do not skip it. Do not proceed without running it.**
450
519
 
451
- **Current Phase** block:
452
- ```
453
- Milestone: v1.0 — [Milestone Name from PROJECT.md]
454
- Phase: 1 — [Phase 1 name from ROADMAP.md]
455
- Status: planning
456
- Last updated: [today's date]
457
- ```
458
-
459
- **Project Structure** — derive from the project description and any existing directories:
460
520
  ```bash
461
- find . -maxdepth 2 -not -path './.git/*' -not -path './node_modules/*' -not -path './.planning/*' -type d | sort | head -20
462
- # PowerShell: Get-ChildItem -Directory -Recurse -Depth 2 | Where-Object { $_.FullName -notmatch '\.git|node_modules|\.planning' } | Select-Object -First 20
521
+ node -e "const fs=require('fs');if(!fs.existsSync('AGENTS.md')){console.log('AGENTS.md NOT FOUND');process.exit(1);}const f=fs.readFileSync('AGENTS.md','utf8');const required=['Soul','Principles','Request Routing Protocol','Platform Context','Current Phase','Project Structure','Tech Stack','Skills','Regressions'];const missing=required.filter(s=>!f.includes('## '+s));if(missing.length){console.log('AGENTS.md INCOMPLETE missing sections:\\n'+missing.map(s=>' ## '+s).join('\\n'));process.exit(1);}const verbatim=['pair programmer','Direct, no fluff','Have opinions','Friction Is Signal','Minimal Upstream Fix','decision tree'];const missingV=verbatim.filter(s=>!f.includes(s));if(missingV.length){console.log('AGENTS.md TEMPLATE VIOLATION — these verbatim phrases are missing (did you rewrite instead of copy?):\\n'+missingV.join('\\n'));process.exit(1);}console.log('AGENTS.md VERIFIED OK — all '+required.length+' sections present, verbatim content intact');"
463
522
  ```
464
523
 
465
- Populate the `## Project Structure` tree with real directories and one-line descriptions.
466
-
467
- **Tech Stack** — use the research output (if research was run) or the user's stated stack:
468
- - Language + version
469
- - Framework
470
- - Key libraries (the 3-5 most important)
471
- - How to run the dev server
472
- - How to run tests
473
-
474
- **You may ADD project-specific sections** (e.g., Conventions, Content Sources, Definition of Done) **after** the Tech Stack section and **before** Skills. But you must NEVER remove, rename, or replace the template sections listed above.
475
-
476
- **Verification checklist (run before committing):**
477
- - [ ] File starts with `# AGENTS.md — [Project Name]`
478
- - [ ] `## Soul — Who We Are Together` exists with Voice & Character and Relationship Model
479
- - [ ] `## Principles — How We Operate` exists with all 10 numbered principles
480
- - [ ] `## Request Routing Protocol` exists with decision tree
481
- - [ ] `## Platform Context` exists with the 7-step phase loop
482
- - [ ] `## Current Phase` exists with milestone, phase, status, and date
483
- - [ ] `## Project Structure` exists with a directory tree
484
- - [ ] `## Tech Stack` exists with language, framework, libraries, dev server, tests
485
- - [ ] `## Skills — Operational Knowledge` exists with CHANGELOG Discipline and Decisions Register
486
- - [ ] `## Regressions — What Broke and What We Learned` exists at the end
487
-
488
- **Automated verification (cross-platform — run this, do not skip):**
489
-
490
- ```bash
491
- node -e "const fs=require('fs');if(!fs.existsSync('AGENTS.md')){console.log('AGENTS.md NOT FOUND');process.exit(1);}const f=fs.readFileSync('AGENTS.md','utf8');const required=['Soul','Principles','Request Routing Protocol','Platform Context','Current Phase','Project Structure','Tech Stack','Skills','Regressions'];const missing=required.filter(s=>!f.includes('## '+s));if(missing.length){console.log('AGENTS.md INCOMPLETE — missing sections:\\n'+missing.map(s=>' ## '+s).join('\\n'));process.exit(1);}console.log('AGENTS.md VERIFIED OK — all '+required.length+' mandatory sections present');"
492
- ```
493
-
494
- > 🛑 If verification fails, fix the missing sections before committing. Do NOT proceed to Step 9 with an incomplete AGENTS.md. Re-read `@./templates/agents.md` and add the missing sections.
524
+ > 🛑 **If the command prints `INCOMPLETE` or `TEMPLATE VIOLATION` or exits with code 1:** The AGENTS.md is broken. Re-read `@./templates/agents.md` and fix the missing sections or restore the verbatim content. Run the verification again. You MUST see `AGENTS.md VERIFIED OK` before continuing to Step 9.
495
525
 
496
526
  **If `commit_mode` is `auto`:**
497
527
  ```bash
@@ -502,6 +532,8 @@ git add AGENTS.md && git commit -m "docs: add AGENTS.md with project context"
502
532
 
503
533
  ## Step 9: Done
504
534
 
535
+ Display this banner and then **STOP. Do not continue. Do not run any other workflow. Do not start Phase 1.**
536
+
505
537
  ```
506
538
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
507
539
  learnship ► PROJECT INITIALIZED ✓
@@ -534,16 +566,26 @@ After verify-work passes: `/review` for multi-persona code review, `/ship` to te
534
566
  > **Platform detected:** `[PLATFORM]` — parallelization is `[true/false]`
535
567
  ```
536
568
 
569
+ > 🔴 **HARD STOP — `/new-project` is now complete. This workflow is FINISHED.**
570
+ >
571
+ > **Do NOT automatically start `/discuss-phase 1`.** Do NOT run any phase workflow. Do NOT begin implementing Phase 1. Do NOT say "Let me start Phase 1" or "Now starting Phase 1" or anything similar.
572
+ >
573
+ > The user must explicitly type `/discuss-phase 1` (or another command) in a **new message** to continue. Your only job now is to display the banner above and wait.
574
+ >
575
+ > If the user's next message is a new task or question, apply the Request Routing Protocol from AGENTS.md — the routing suspension from Step 1 is now lifted.
576
+
537
577
  ---
538
578
 
539
579
  ## Learning Checkpoint
540
580
 
541
581
  Read `learning_mode` from `.planning/config.json`.
542
582
 
543
- **If `auto`:** Offer this now:
583
+ **If `auto`:** Offer this after the done banner (still within this message, but AFTER the banner):
544
584
 
545
585
  > 💡 **Learning moment:** You've just defined what you're building. Want to validate your mental model before coding starts?
546
586
  >
547
587
  > `@agentic-learning brainstorm [your project topic]` — Talk through the design and surface any blind spots before the first line of code.
548
588
 
549
589
  **If `manual`:** Add a quiet note: *"Tip: `@agentic-learning brainstorm [topic]` is available whenever you want to think through the design."*
590
+
591
+ **After displaying the learning checkpoint, STOP. Wait for the user's next message.**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "learnship",
3
- "version": "2.0.8",
3
+ "version": "2.0.10",
4
4
  "description": "Learn as you build. Build with intent. — A multi-platform agentic engineering system for Windsurf, Claude Code, Cursor, OpenCode, Gemini CLI, and Codex: spec-driven workflows, integrated learning, and production-grade design.",
5
5
  "keywords": [
6
6
  "agentic",