learnship 2.0.6 → 2.0.8
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/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 +54 -6
- 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.8",
|
|
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.8",
|
|
6
6
|
"logo": "assets/logo.png",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Favio Vazquez",
|
package/gemini-extension.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "learnship",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.8",
|
|
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,46 @@ Ask: **"Before I write the requirements — do you want me to research the domai
|
|
|
291
298
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
292
299
|
```
|
|
293
300
|
|
|
294
|
-
Run 4 research passes sequentially. Each writes a file to `.planning/research
|
|
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.
|
|
302
|
+
|
|
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`
|
|
311
|
+
|
|
312
|
+
After all four complete, synthesize into `.planning/research/SUMMARY.md`:
|
|
313
|
+
- Required sections: `## Recommended Stack`, `## Table Stakes Features`, `## Key Architecture Decisions`, `## Top Pitfalls`
|
|
295
314
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
315
|
+
**Post-research verification (cross-platform):**
|
|
316
|
+
|
|
317
|
+
```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
|
+
"
|
|
338
|
+
```
|
|
300
339
|
|
|
301
|
-
|
|
340
|
+
> 🛑 If verification fails, fix the missing files or sections before proceeding. Do not skip research verification.
|
|
302
341
|
|
|
303
342
|
Display key findings:
|
|
304
343
|
```
|
|
@@ -438,6 +477,7 @@ Populate the `## Project Structure` tree with real directories and one-line desc
|
|
|
438
477
|
- [ ] File starts with `# AGENTS.md — [Project Name]`
|
|
439
478
|
- [ ] `## Soul — Who We Are Together` exists with Voice & Character and Relationship Model
|
|
440
479
|
- [ ] `## Principles — How We Operate` exists with all 10 numbered principles
|
|
480
|
+
- [ ] `## Request Routing Protocol` exists with decision tree
|
|
441
481
|
- [ ] `## Platform Context` exists with the 7-step phase loop
|
|
442
482
|
- [ ] `## Current Phase` exists with milestone, phase, status, and date
|
|
443
483
|
- [ ] `## Project Structure` exists with a directory tree
|
|
@@ -445,6 +485,14 @@ Populate the `## Project Structure` tree with real directories and one-line desc
|
|
|
445
485
|
- [ ] `## Skills — Operational Knowledge` exists with CHANGELOG Discipline and Decisions Register
|
|
446
486
|
- [ ] `## Regressions — What Broke and What We Learned` exists at the end
|
|
447
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.
|
|
495
|
+
|
|
448
496
|
**If `commit_mode` is `auto`:**
|
|
449
497
|
```bash
|
|
450
498
|
git add AGENTS.md && git commit -m "docs: add AGENTS.md with project context"
|
|
@@ -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.8",
|
|
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",
|