learnship 2.0.7 → 2.0.9
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.
- package/.claude-plugin/plugin.json +1 -1
- package/.cursor-plugin/plugin.json +1 -1
- package/SKILL.md +10 -0
- package/cursor-rules/learnship.mdc +6 -2
- package/gemini-extension.json +1 -1
- package/learnship/templates/agents.md +10 -1
- package/learnship/workflows/audit-milestone.md +4 -0
- package/learnship/workflows/discuss-phase.md +3 -0
- package/learnship/workflows/execute-phase.md +8 -0
- package/learnship/workflows/ls.md +2 -0
- package/learnship/workflows/new-project.md +107 -51
- package/learnship/workflows/next.md +6 -2
- package/learnship/workflows/quick.md +3 -0
- package/package.json +1 -1
|
@@ -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.
|
|
4
|
+
"version": "2.0.9",
|
|
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.
|
|
5
|
+
"version": "2.0.9",
|
|
6
6
|
"logo": "assets/logo.png",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Favio Vazquez",
|
package/SKILL.md
CHANGED
|
@@ -106,6 +106,16 @@ 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 = 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.
|
|
114
|
+
|
|
115
|
+
2. **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.
|
|
116
|
+
|
|
117
|
+
3. **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.
|
|
118
|
+
|
|
109
119
|
## Key Behaviors
|
|
110
120
|
|
|
111
121
|
- **Context efficiency**: Reference file paths rather than inlining file contents. Load context fresh when needed rather than carrying it forward.
|
|
@@ -47,9 +47,13 @@ When the user runs `/new-project`, execute these **9 mandatory steps in order**.
|
|
|
47
47
|
|
|
48
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.
|
|
49
49
|
|
|
50
|
-
3. **
|
|
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
|
|
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
|
|
package/gemini-extension.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "learnship",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
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/",
|
|
@@ -204,7 +204,16 @@ When a new decision is made during a session, capture it with `/decision-log`.
|
|
|
204
204
|
|
|
205
205
|
### Solutions Store
|
|
206
206
|
|
|
207
|
-
Compounded solutions live in `.planning/solutions/` — organized by category (build-errors, runtime-errors, best-practices, etc.) with YAML frontmatter for searchability.
|
|
207
|
+
Compounded solutions live in `.planning/solutions/` — organized by category (build-errors, runtime-errors, best-practices, etc.) with YAML frontmatter for searchability. The `/plan-phase` workflow automatically searches these before planning.
|
|
208
|
+
|
|
209
|
+
**Run `/compound` after any of these events — do not skip:**
|
|
210
|
+
- Fixing a bug (especially root-cause discoveries)
|
|
211
|
+
- Completing a phase (`execute-phase` → `verify-work` → `/compound`)
|
|
212
|
+
- Shipping a feature (`/ship` → `/compound`)
|
|
213
|
+
- Any aha moment or pattern discovery during development
|
|
214
|
+
- Resolving a debugging session (`/debug` → `/compound`)
|
|
215
|
+
|
|
216
|
+
Context fades fast. If a solution was worth finding, it's worth capturing.
|
|
208
217
|
|
|
209
218
|
---
|
|
210
219
|
|
|
@@ -154,6 +154,8 @@ Status: [PASSED ✓ | GAPS FOUND ⚠️]
|
|
|
154
154
|
Milestone [VERSION] is ready to ship.
|
|
155
155
|
|
|
156
156
|
▶ Next: complete-milestone
|
|
157
|
+
|
|
158
|
+
💡 Run `/sync-docs` first to check for stale documentation before release.
|
|
157
159
|
```
|
|
158
160
|
|
|
159
161
|
**If GAPS FOUND:**
|
|
@@ -164,6 +166,8 @@ Milestone [VERSION] is ready to ship.
|
|
|
164
166
|
|
|
165
167
|
▶ Next: plan-milestone-gaps — create fix phases for all gaps
|
|
166
168
|
OR: complete-milestone — ship anyway (mark gaps as known issues)
|
|
169
|
+
|
|
170
|
+
💡 Run `/sync-docs` to check for stale documentation alongside the gap fixes.
|
|
167
171
|
```
|
|
168
172
|
|
|
169
173
|
---
|
|
@@ -224,6 +224,9 @@ Created: .planning/phases/[padded_phase]-[slug]/[padded_phase]-CONTEXT.md
|
|
|
224
224
|
---
|
|
225
225
|
|
|
226
226
|
▶ Next Up: plan-phase [X]
|
|
227
|
+
|
|
228
|
+
💡 Ambitious scope? `/challenge` — stress-test the approach before planning
|
|
229
|
+
💡 Made important decisions? `/compound` — capture them while context is fresh
|
|
227
230
|
```
|
|
228
231
|
|
|
229
232
|
---
|
|
@@ -329,6 +329,14 @@ If `AGENTS.md` exists at the project root, update the `## Current Phase` block t
|
|
|
329
329
|
|
|
330
330
|
Also append any newly created key files or modules to the `## Project Structure` tree if significant new directories were created during this phase.
|
|
331
331
|
|
|
332
|
+
**Post-update verification (cross-platform):**
|
|
333
|
+
|
|
334
|
+
```bash
|
|
335
|
+
node -e "const fs=require('fs');if(!fs.existsSync('AGENTS.md')){process.exit(0);}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 sections lost during update:\\n'+missing.map(s=>' ## '+s).join('\\n'));process.exit(1);}console.log('AGENTS.md sections intact');"
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
> If verification fails, restore the missing sections from `@./templates/agents.md` before committing.
|
|
339
|
+
|
|
332
340
|
```bash
|
|
333
341
|
git add AGENTS.md
|
|
334
342
|
git commit -m "docs: update AGENTS.md — phase [X] complete"
|
|
@@ -30,6 +30,8 @@ spec-driven phases, context-engineered plans, atomic execution,
|
|
|
30
30
|
and a learning partner woven into every phase transition.
|
|
31
31
|
|
|
32
32
|
▶ To start: /new-project
|
|
33
|
+
▶ Not sure what to build? `@agentic-learning brainstorm [idea]` — think through it first
|
|
34
|
+
▶ Have an existing codebase? /ideate — scan for improvement opportunities
|
|
33
35
|
▶ For a quick one-off task: /quick "description"
|
|
34
36
|
▶ To see all commands: /help
|
|
35
37
|
```
|
|
@@ -243,6 +243,13 @@ Based on all previous answers, ask a third follow-up that clarifies scope, edge
|
|
|
243
243
|
|
|
244
244
|
**Gate check — before proceeding to Step 4:**
|
|
245
245
|
|
|
246
|
+
> 🛑 **HARD GATE — count your messages.** Before continuing, verify:
|
|
247
|
+
> 1. You sent exactly **4 separate question messages** (Exchanges 1–4)
|
|
248
|
+
> 2. You received exactly **4 separate user answers** (`ANSWER_1` through `ANSWER_4`)
|
|
249
|
+
> 3. Each answer came from a **different user message** (not extracted from one long reply)
|
|
250
|
+
>
|
|
251
|
+
> If any count is wrong, go back and complete the missing exchanges. Do NOT proceed with fewer than 4 exchanges under any circumstances — even if the user's first answer was extremely detailed.
|
|
252
|
+
|
|
246
253
|
Verify internally: do you have `ANSWER_1`, `ANSWER_2`, `ANSWER_3`, and `ANSWER_4` recorded? If any is missing, go back and ask it. Only after all four answers are in hand may you ask:
|
|
247
254
|
|
|
248
255
|
"I think I have a solid picture of what you're building. Ready for me to write PROJECT.md, or is there more you want to cover first?"
|
|
@@ -291,14 +298,56 @@ Ask: **"Before I write the requirements — do you want me to research the domai
|
|
|
291
298
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
292
299
|
```
|
|
293
300
|
|
|
294
|
-
|
|
301
|
+
**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.
|
|
302
|
+
|
|
303
|
+
Create the research directory first:
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
node -e "require('fs').mkdirSync('.planning/research',{recursive:true})"
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
Now create each file one at a time. After writing each file, move to the next.
|
|
295
310
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
311
|
+
**File 1 of 5 — Write `.planning/research/STACK.md` now:**
|
|
312
|
+
Research the standard tech stack for this domain. The file MUST contain these exact `##` headers:
|
|
313
|
+
- `## Recommended Stack`
|
|
314
|
+
- `## Alternatives Considered`
|
|
315
|
+
- `## What NOT to Use` (with reasons)
|
|
316
|
+
- `## Versions`
|
|
317
|
+
|
|
318
|
+
**File 2 of 5 — Write `.planning/research/FEATURES.md` now:**
|
|
319
|
+
Research what features exist in this domain. The file MUST contain these exact `##` headers:
|
|
320
|
+
- `## Table Stakes` (must-haves)
|
|
321
|
+
- `## Differentiators` (nice-to-haves)
|
|
322
|
+
- `## Anti-Features` (what to avoid)
|
|
323
|
+
|
|
324
|
+
**File 3 of 5 — Write `.planning/research/ARCHITECTURE.md` now:**
|
|
325
|
+
Research how systems in this domain are typically structured. The file MUST contain these exact `##` headers:
|
|
326
|
+
- `## Component Boundaries`
|
|
327
|
+
- `## Data Flow`
|
|
328
|
+
- `## Build Order` (suggested sequence)
|
|
329
|
+
- `## Integration Points`
|
|
330
|
+
|
|
331
|
+
**File 4 of 5 — Write `.planning/research/PITFALLS.md` now:**
|
|
332
|
+
Research common mistakes and prevention strategies. The file MUST contain these exact `##` headers:
|
|
333
|
+
- `## Common Mistakes`
|
|
334
|
+
- `## Warning Signs`
|
|
335
|
+
- `## Prevention Strategies`
|
|
336
|
+
|
|
337
|
+
**File 5 of 5 — Write `.planning/research/SUMMARY.md` now:**
|
|
338
|
+
Synthesize the 4 files above into a summary. The file MUST contain these exact `##` headers:
|
|
339
|
+
- `## Recommended Stack`
|
|
340
|
+
- `## Table Stakes Features`
|
|
341
|
+
- `## Key Architecture Decisions`
|
|
342
|
+
- `## Top Pitfalls`
|
|
343
|
+
|
|
344
|
+
> 🔴 **HARD GATE — Run this verification command now. Do not skip it. Do not proceed without running it.**
|
|
345
|
+
|
|
346
|
+
```bash
|
|
347
|
+
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');"
|
|
348
|
+
```
|
|
300
349
|
|
|
301
|
-
|
|
350
|
+
> 🛑 **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.
|
|
302
351
|
|
|
303
352
|
Display key findings:
|
|
304
353
|
```
|
|
@@ -396,54 +445,49 @@ git add .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md && git
|
|
|
396
445
|
|
|
397
446
|
> **🔴 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.**
|
|
398
447
|
|
|
399
|
-
|
|
448
|
+
**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.
|
|
449
|
+
|
|
450
|
+
> 🛑 **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.
|
|
451
|
+
|
|
452
|
+
**Substep 8b — Write 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:
|
|
453
|
+
|
|
454
|
+
1. `# AGENTS.md — [Project Name]` — replace `[PROJECT NAME]` with the actual project name
|
|
455
|
+
2. `## Soul — Who 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.
|
|
456
|
+
3. `## Principles — How We Operate` — **copy VERBATIM from the template**. All 10 numbered principles, word for word.
|
|
457
|
+
4. `## Request Routing Protocol` — **copy VERBATIM from the template**. The entire decision tree and examples.
|
|
458
|
+
5. `## Platform Context` — **copy VERBATIM from the template**. The learnship key facts block.
|
|
459
|
+
6. `## Current Phase` — **FILL IN** with project-specific data:
|
|
460
|
+
```
|
|
461
|
+
**Milestone:** v1.0 — [Milestone Name from PROJECT.md]
|
|
462
|
+
**Phase:** 1 — [Phase 1 name from ROADMAP.md]
|
|
463
|
+
**Status:** planning
|
|
464
|
+
**Last updated:** [today's date]
|
|
465
|
+
```
|
|
466
|
+
7. `## Project Structure` — **FILL IN** by scanning existing directories:
|
|
467
|
+
```bash
|
|
468
|
+
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('.');"
|
|
469
|
+
```
|
|
470
|
+
Populate the tree with real directories and one-line descriptions.
|
|
471
|
+
8. `## Tech Stack` — **FILL IN** using research output (if available) or user's stated stack:
|
|
472
|
+
- Language + version
|
|
473
|
+
- Framework
|
|
474
|
+
- Key libraries (the 3-5 most important)
|
|
475
|
+
- How to run the dev server
|
|
476
|
+
- How to run tests
|
|
477
|
+
9. `## Skills — Operational Knowledge` — **copy VERBATIM from the template**. CHANGELOG Discipline, Decisions Register, and Solutions Store sections.
|
|
478
|
+
10. `## Regressions — What Broke and What We Learned` — **copy VERBATIM from the template**. The empty starter block.
|
|
479
|
+
|
|
480
|
+
**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.
|
|
481
|
+
|
|
482
|
+
**Substep 8c — Verify AGENTS.md.** Run this command now. Do not skip it.
|
|
483
|
+
|
|
484
|
+
> 🔴 **HARD GATE — Run this verification command now. Do not skip it. Do not proceed without running it.**
|
|
400
485
|
|
|
401
|
-
**Sections to copy VERBATIM (do not rewrite, do not summarize, do not rephrase):**
|
|
402
|
-
- `## Soul — Who We Are Together` (entire section including Voice & Character and Relationship Model)
|
|
403
|
-
- `## Principles — How We Operate` (all 10 principles, verbatim)
|
|
404
|
-
- `## Platform Context` (the learnship key facts block, verbatim)
|
|
405
|
-
- `## Skills — Operational Knowledge` (CHANGELOG Discipline and Decisions Register, verbatim)
|
|
406
|
-
- `## Regressions — What Broke and What We Learned` (the empty starter block, verbatim)
|
|
407
|
-
|
|
408
|
-
**Sections to FILL IN with project-specific information:**
|
|
409
|
-
|
|
410
|
-
**Title** — Replace `[PROJECT NAME]` with the actual project name.
|
|
411
|
-
|
|
412
|
-
**Current Phase** block:
|
|
413
|
-
```
|
|
414
|
-
Milestone: v1.0 — [Milestone Name from PROJECT.md]
|
|
415
|
-
Phase: 1 — [Phase 1 name from ROADMAP.md]
|
|
416
|
-
Status: planning
|
|
417
|
-
Last updated: [today's date]
|
|
418
|
-
```
|
|
419
|
-
|
|
420
|
-
**Project Structure** — derive from the project description and any existing directories:
|
|
421
486
|
```bash
|
|
422
|
-
|
|
423
|
-
# PowerShell: Get-ChildItem -Directory -Recurse -Depth 2 | Where-Object { $_.FullName -notmatch '\.git|node_modules|\.planning' } | Select-Object -First 20
|
|
487
|
+
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');"
|
|
424
488
|
```
|
|
425
489
|
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
**Tech Stack** — use the research output (if research was run) or the user's stated stack:
|
|
429
|
-
- Language + version
|
|
430
|
-
- Framework
|
|
431
|
-
- Key libraries (the 3-5 most important)
|
|
432
|
-
- How to run the dev server
|
|
433
|
-
- How to run tests
|
|
434
|
-
|
|
435
|
-
**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.
|
|
436
|
-
|
|
437
|
-
**Verification checklist (run before committing):**
|
|
438
|
-
- [ ] File starts with `# AGENTS.md — [Project Name]`
|
|
439
|
-
- [ ] `## Soul — Who We Are Together` exists with Voice & Character and Relationship Model
|
|
440
|
-
- [ ] `## Principles — How We Operate` exists with all 10 numbered principles
|
|
441
|
-
- [ ] `## Platform Context` exists with the 7-step phase loop
|
|
442
|
-
- [ ] `## Current Phase` exists with milestone, phase, status, and date
|
|
443
|
-
- [ ] `## Project Structure` exists with a directory tree
|
|
444
|
-
- [ ] `## Tech Stack` exists with language, framework, libraries, dev server, tests
|
|
445
|
-
- [ ] `## Skills — Operational Knowledge` exists with CHANGELOG Discipline and Decisions Register
|
|
446
|
-
- [ ] `## Regressions — What Broke and What We Learned` exists at the end
|
|
490
|
+
> 🛑 **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.
|
|
447
491
|
|
|
448
492
|
**If `commit_mode` is `auto`:**
|
|
449
493
|
```bash
|
|
@@ -454,6 +498,8 @@ git add AGENTS.md && git commit -m "docs: add AGENTS.md with project context"
|
|
|
454
498
|
|
|
455
499
|
## Step 9: Done
|
|
456
500
|
|
|
501
|
+
Display this banner and then **STOP. Do not continue. Do not run any other workflow. Do not start Phase 1.**
|
|
502
|
+
|
|
457
503
|
```
|
|
458
504
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
459
505
|
learnship ► PROJECT INITIALIZED ✓
|
|
@@ -486,16 +532,26 @@ After verify-work passes: `/review` for multi-persona code review, `/ship` to te
|
|
|
486
532
|
> **Platform detected:** `[PLATFORM]` — parallelization is `[true/false]`
|
|
487
533
|
```
|
|
488
534
|
|
|
535
|
+
> 🔴 **HARD STOP — `/new-project` is now complete. This workflow is FINISHED.**
|
|
536
|
+
>
|
|
537
|
+
> **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.
|
|
538
|
+
>
|
|
539
|
+
> 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.
|
|
540
|
+
>
|
|
541
|
+
> 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.
|
|
542
|
+
|
|
489
543
|
---
|
|
490
544
|
|
|
491
545
|
## Learning Checkpoint
|
|
492
546
|
|
|
493
547
|
Read `learning_mode` from `.planning/config.json`.
|
|
494
548
|
|
|
495
|
-
**If `auto`:** Offer this
|
|
549
|
+
**If `auto`:** Offer this after the done banner (still within this message, but AFTER the banner):
|
|
496
550
|
|
|
497
551
|
> 💡 **Learning moment:** You've just defined what you're building. Want to validate your mental model before coding starts?
|
|
498
552
|
>
|
|
499
553
|
> `@agentic-learning brainstorm [your project topic]` — Talk through the design and surface any blind spots before the first line of code.
|
|
500
554
|
|
|
501
555
|
**If `manual`:** Add a quiet note: *"Tip: `@agentic-learning brainstorm [topic]` is available whenever you want to think through the design."*
|
|
556
|
+
|
|
557
|
+
**After displaying the learning checkpoint, STOP. Wait for the user's next message.**
|
|
@@ -19,10 +19,14 @@ node -e "const fs=require('fs'); console.log(fs.existsSync('.planning/PROJECT.md
|
|
|
19
19
|
**If MISSING:**
|
|
20
20
|
|
|
21
21
|
```
|
|
22
|
-
No project found.
|
|
22
|
+
No project found.
|
|
23
|
+
|
|
24
|
+
▶ Starting: /new-project — initialize a new project
|
|
25
|
+
▶ Not sure what to build? `@agentic-learning brainstorm [idea]` — think through it first
|
|
26
|
+
▶ Have an existing codebase? /ideate — scan for improvement opportunities
|
|
23
27
|
```
|
|
24
28
|
|
|
25
|
-
|
|
29
|
+
Ask the user which option they'd like. If they choose `/new-project` or don't specify, run the `new-project` workflow. Stop here.
|
|
26
30
|
|
|
27
31
|
---
|
|
28
32
|
|
|
@@ -238,6 +238,9 @@ Summary: .planning/quick/[NEXT_NUM]-[SLUG]/[NEXT_NUM]-SUMMARY.md
|
|
|
238
238
|
[If --full: Verification: [status]]
|
|
239
239
|
Commit: [hash]
|
|
240
240
|
|
|
241
|
+
💡 Solved something notable? `/compound` — capture the solution while context is fresh
|
|
242
|
+
💡 Ready to push? `/ship` — test → commit → push → PR
|
|
243
|
+
|
|
241
244
|
Ready for next task: quick
|
|
242
245
|
```
|
|
243
246
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "learnship",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
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",
|