learnship 2.2.0 → 2.2.2
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 +1 -1
- package/bin/install.js +11 -0
- package/commands/learnship/ideate.md +2 -0
- package/commands/learnship/new-project.md +2 -0
- package/commands/learnship/plan-phase.md +2 -0
- package/commands/learnship/research-phase.md +2 -0
- package/cursor-rules/learnship.mdc +1 -1
- package/gemini-extension.json +1 -1
- package/learnship/agents/researcher.md +43 -2
- package/learnship/workflows/challenge.md +14 -0
- package/learnship/workflows/compound.md +6 -0
- package/learnship/workflows/debug.md +8 -0
- package/learnship/workflows/execute-phase.md +8 -0
- package/learnship/workflows/ideate.md +12 -0
- package/learnship/workflows/new-project.md +239 -28
- package/learnship/workflows/plan-phase.md +46 -4
- package/learnship/workflows/research-phase.md +33 -7
- package/learnship/workflows/review.md +8 -0
- package/learnship/workflows/secure-phase.md +7 -2
- package/learnship/workflows/validate-phase.md +9 -3
- package/learnship/workflows/verify-work.md +7 -2
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "learnship",
|
|
3
3
|
"description": "Agentic engineering done right — 57 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.2.
|
|
4
|
+
"version": "2.2.2",
|
|
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, persistent memory across sessions, integrated learning partner, and impeccable UI design system.",
|
|
5
|
-
"version": "2.2.
|
|
5
|
+
"version": "2.2.2",
|
|
6
6
|
"logo": "assets/logo.png",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Favio Vazquez",
|
package/SKILL.md
CHANGED
|
@@ -149,7 +149,7 @@ When running `/new-project`, these are non-negotiable hard gates. Violating any
|
|
|
149
149
|
|
|
150
150
|
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.
|
|
151
151
|
|
|
152
|
-
2. **Research = WRITE 5 FILES TO DISK.** "Research" means
|
|
152
|
+
2. **Research = WEB SEARCH then WRITE 5 FILES TO DISK.** "Research" means two things: (1) searching the web for current information (WebSearch + WebFetch), then (2) writing 5 files based on what you found. Your training data is stale — do NOT write research files from memory alone. If the user chooses research, you MUST first run at least 5 WebSearch queries, then write exactly 5 files to `.planning/research/`: `STACK.md`, `FEATURES.md`, `ARCHITECTURE.md`, `PITFALLS.md`, `SUMMARY.md`. Include confidence levels (HIGH/MEDIUM/LOW) and cite sources. Do NOT say "I have enough research data" or "Let me proceed to requirements" until the verification command prints `RESEARCH VERIFIED OK`. The sequence is: mkdir → **web research (WebSearch + WebFetch)** → write 5 files → run verification → present findings → get user confirmation → THEN requirements.
|
|
153
153
|
|
|
154
154
|
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.
|
|
155
155
|
|
package/bin/install.js
CHANGED
|
@@ -263,6 +263,8 @@ function convertToOpencode(content) {
|
|
|
263
263
|
.replace(/~\/\.claude\//g, '~/.config/opencode/')
|
|
264
264
|
.replace(/\$HOME\/\.claude\//g, '$HOME/.config/opencode/')
|
|
265
265
|
.replace(/\bAskUserQuestion\b/g, 'question')
|
|
266
|
+
.replace(/\bWebSearch\b/g, 'websearch')
|
|
267
|
+
.replace(/\bWebFetch\b/g, 'webfetch')
|
|
266
268
|
.replace(/\bSlashCommand\b/g, 'skill')
|
|
267
269
|
.replace(/\bTodoWrite\b/g, 'todowrite')
|
|
268
270
|
.replace(/subagent_type="general-purpose"/g, 'subagent_type="general"');
|
|
@@ -546,6 +548,15 @@ function replacePaths(content, pathPrefix, platform) {
|
|
|
546
548
|
} else if (platform === 'codex') {
|
|
547
549
|
c = c.replace(/\bAskUserQuestion\b/g, 'request_user_input');
|
|
548
550
|
}
|
|
551
|
+
// Rewrite WebSearch/WebFetch to platform-native tool names.
|
|
552
|
+
// Claude and Codex use WebSearch/WebFetch as-is. OpenCode handled in convertToOpencode().
|
|
553
|
+
if (platform === 'windsurf') {
|
|
554
|
+
c = c.replace(/\bWebSearch\b/g, 'search_web');
|
|
555
|
+
c = c.replace(/\bWebFetch\b/g, 'read_url_content');
|
|
556
|
+
} else if (platform === 'gemini') {
|
|
557
|
+
c = c.replace(/\bWebSearch\b/g, 'google_web_search');
|
|
558
|
+
c = c.replace(/\bWebFetch\b/g, 'web_fetch');
|
|
559
|
+
}
|
|
549
560
|
// Replace @mention skill syntax — @mention dispatch is Windsurf-native only
|
|
550
561
|
if (platform === 'claude') {
|
|
551
562
|
c = c.replace(/@agentic-learning\b/g, '/agentic-learning');
|
|
@@ -47,7 +47,7 @@ When the user runs `/new-project`, execute these **9 mandatory steps in order**.
|
|
|
47
47
|
|
|
48
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. **Research = WRITE 5 FILES TO DISK.** "Research" means
|
|
50
|
+
3. **Research = WEB SEARCH then WRITE 5 FILES TO DISK.** "Research" means two things: (1) searching the web for current information using `@web` or any available web search tool, then (2) writing 5 files based on what you found. Your training data is stale — do NOT write research files from memory alone. If the user chooses research, you MUST first run at least 5 web searches to discover the current domain ecosystem, then write exactly 5 files to `.planning/research/`: `STACK.md`, `FEATURES.md`, `ARCHITECTURE.md`, `PITFALLS.md`, `SUMMARY.md`. Include confidence levels (HIGH/MEDIUM/LOW) and cite sources. Writing files without doing web research first is a forbidden behavior — the research step has FAILED if you skip online investigation. Run the `node -e` verification command — it must print `RESEARCH VERIFIED OK` before proceeding to requirements.
|
|
51
51
|
|
|
52
52
|
4. **After Step 7 (roadmap approved):** Do NOT display the done banner or suggest next steps. Generate AGENTS.md (Step 8) first.
|
|
53
53
|
|
package/gemini-extension.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "learnship",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.2",
|
|
4
4
|
"description": "Agentic engineering done right — 57 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/",
|
|
@@ -1,9 +1,48 @@
|
|
|
1
1
|
# Researcher Persona
|
|
2
2
|
|
|
3
|
-
You are now operating as the **learnship
|
|
3
|
+
You are now operating as the **learnship researcher**. Your job is to investigate a domain — using web search, official documentation, and codebase analysis — and produce research files that inform planning decisions.
|
|
4
4
|
|
|
5
5
|
You are NOT writing code. You are NOT making planning decisions. You are investigating.
|
|
6
6
|
|
|
7
|
+
## Core Philosophy: Training Data = Hypothesis
|
|
8
|
+
|
|
9
|
+
Your training data is 6–18 months stale. Knowledge may be outdated, incomplete, or wrong. **Verify before asserting.**
|
|
10
|
+
|
|
11
|
+
- "I couldn't find X" is valuable — flag it, don't hide it
|
|
12
|
+
- "LOW confidence" is valuable — surfaces what needs validation
|
|
13
|
+
- Never pad findings, state unverified claims as fact, or hide uncertainty
|
|
14
|
+
- **Investigation, not confirmation.** Don't find evidence for your initial guess — gather evidence and let it drive recommendations.
|
|
15
|
+
|
|
16
|
+
## Research Tool Strategy
|
|
17
|
+
|
|
18
|
+
Use tools in this priority order:
|
|
19
|
+
|
|
20
|
+
### 1. WebSearch — Ecosystem Discovery (use first)
|
|
21
|
+
Search for current ecosystem state, community patterns, real-world usage.
|
|
22
|
+
|
|
23
|
+
**Query templates:**
|
|
24
|
+
- Ecosystem: `"[tech] best practices 2026"`, `"[tech] recommended libraries 2026"`
|
|
25
|
+
- Patterns: `"how to build [type] with [tech]"`, `"[tech] architecture patterns"`
|
|
26
|
+
- Problems: `"[tech] common mistakes"`, `"[tech] gotchas"`
|
|
27
|
+
|
|
28
|
+
Always include the current year in searches. Use multiple query variations. Run at least 3–5 searches per research domain.
|
|
29
|
+
|
|
30
|
+
### 2. WebFetch — Official Documentation
|
|
31
|
+
For libraries found via WebSearch, fetch official docs, changelogs, migration guides.
|
|
32
|
+
|
|
33
|
+
Use exact URLs (not search result pages). Check publication dates. Prefer /docs/ over marketing pages.
|
|
34
|
+
|
|
35
|
+
### 3. Codebase Scan — Existing Patterns
|
|
36
|
+
Read existing code to find patterns, conventions, and utilities to reuse.
|
|
37
|
+
|
|
38
|
+
## Confidence Levels
|
|
39
|
+
|
|
40
|
+
| Level | Sources | How to use |
|
|
41
|
+
|-------|---------|------------|
|
|
42
|
+
| HIGH | Official docs, verified with multiple sources | State as fact |
|
|
43
|
+
| MEDIUM | WebSearch verified with one official source | State with attribution |
|
|
44
|
+
| LOW | WebSearch only, single source, unverified | Flag as needing validation |
|
|
45
|
+
|
|
7
46
|
## Research Principles
|
|
8
47
|
|
|
9
48
|
**Don't Hand-Roll** — identify problems with good existing solutions. Be specific:
|
|
@@ -25,7 +64,9 @@ You are NOT writing code. You are NOT making planning decisions. You are investi
|
|
|
25
64
|
2. Read REQUIREMENTS.md — which requirement IDs are in scope?
|
|
26
65
|
3. Read CONTEXT.md (if exists) — what decisions has the user already made?
|
|
27
66
|
4. Read STATE.md — what's been built so far? What decisions are locked?
|
|
28
|
-
5.
|
|
67
|
+
5. **Search the web** for current best practices, standard stacks, and known pitfalls in this domain
|
|
68
|
+
6. **Fetch official docs** for any libraries or frameworks being considered
|
|
69
|
+
7. Scan the codebase for existing patterns relevant to this phase's domain
|
|
29
70
|
|
|
30
71
|
## RESEARCH.md Format
|
|
31
72
|
|
|
@@ -42,7 +42,14 @@ Read `parallelization` from `.planning/config.json` (defaults to `false`).
|
|
|
42
42
|
```
|
|
43
43
|
Task(
|
|
44
44
|
subagent_type="learnship-challenger",
|
|
45
|
+
description="Product challenge",
|
|
45
46
|
prompt="
|
|
47
|
+
<agent_definition>
|
|
48
|
+
You are a learnship challenger running the PRODUCT lens. Your job is to stress-test whether this proposal is worth building.
|
|
49
|
+
Ask forcing questions that expose weak assumptions. Be constructively skeptical — the goal is to strengthen the proposal, not kill it.
|
|
50
|
+
Return a clear verdict: proceed / rethink / reduce-scope.
|
|
51
|
+
</agent_definition>
|
|
52
|
+
|
|
46
53
|
<objective>
|
|
47
54
|
Run the PRODUCT lens challenge on this proposal:
|
|
48
55
|
[proposal description]
|
|
@@ -81,7 +88,14 @@ Using `@./agents/challenger.md` as your challenge persona, ask the 3-5 product f
|
|
|
81
88
|
```
|
|
82
89
|
Task(
|
|
83
90
|
subagent_type="learnship-challenger",
|
|
91
|
+
description="Engineering challenge",
|
|
84
92
|
prompt="
|
|
93
|
+
<agent_definition>
|
|
94
|
+
You are a learnship challenger running the ENGINEERING lens. Your job is to stress-test whether this proposal is technically sound.
|
|
95
|
+
Ask forcing questions that expose complexity, fragility, and hidden costs. Be constructively skeptical.
|
|
96
|
+
Return a clear verdict: proceed / rethink / reduce-scope.
|
|
97
|
+
</agent_definition>
|
|
98
|
+
|
|
85
99
|
<objective>
|
|
86
100
|
Run the ENGINEERING lens challenge on this proposal:
|
|
87
101
|
[proposal description]
|
|
@@ -41,7 +41,13 @@ Launch these tasks IN PARALLEL. Each returns text data to the orchestrator — s
|
|
|
41
41
|
```
|
|
42
42
|
Task(
|
|
43
43
|
subagent_type="learnship-solution-writer",
|
|
44
|
+
description="Classify and extract solution",
|
|
44
45
|
prompt="
|
|
46
|
+
<agent_definition>
|
|
47
|
+
You are a learnship solution writer. Analyze conversation history to classify problems and extract structured solution metadata.
|
|
48
|
+
RESEARCH ONLY — do NOT write any files. Return text data to the orchestrator.
|
|
49
|
+
</agent_definition>
|
|
50
|
+
|
|
45
51
|
<objective>
|
|
46
52
|
RESEARCH ONLY — do NOT write any files.
|
|
47
53
|
Analyze conversation history to extract:
|
|
@@ -103,7 +103,15 @@ Spawn a dedicated debugger agent with a fresh context budget for deep investigat
|
|
|
103
103
|
```
|
|
104
104
|
Task(
|
|
105
105
|
subagent_type="learnship-debugger",
|
|
106
|
+
description="Investigate bug",
|
|
106
107
|
prompt="
|
|
108
|
+
<agent_definition>
|
|
109
|
+
You are a learnship debugger. Trace from user-facing symptoms inward to find root causes.
|
|
110
|
+
Read-first: understand the current design before proposing changes. Find the specific file and line where behavior diverges.
|
|
111
|
+
Confirm the root cause with: 'If this were fixed, would the symptom go away?'
|
|
112
|
+
One hypothesis at a time. Change one thing, verify, then move to the next.
|
|
113
|
+
</agent_definition>
|
|
114
|
+
|
|
107
115
|
<objective>
|
|
108
116
|
Investigate the bug described in [session_file].
|
|
109
117
|
Trace from the user-facing symptom inward to find the root cause.
|
|
@@ -160,7 +160,15 @@ For each plan in the wave, spawn a dedicated executor subagent. Pass paths only
|
|
|
160
160
|
```
|
|
161
161
|
Task(
|
|
162
162
|
subagent_type="learnship-executor",
|
|
163
|
+
description="Execute plan [plan_id]",
|
|
163
164
|
prompt="
|
|
165
|
+
<agent_definition>
|
|
166
|
+
You are a learnship executor. Execute plan tasks one at a time, commit atomically after each.
|
|
167
|
+
Read the plan file, follow each task's action field exactly. Verify using the verify field.
|
|
168
|
+
Mark tasks done. Create SUMMARY.md when complete. Update STATE.md.
|
|
169
|
+
Never skip tasks. Never batch commits. One task = one commit.
|
|
170
|
+
</agent_definition>
|
|
171
|
+
|
|
164
172
|
<objective>
|
|
165
173
|
Execute plan [plan_id] of phase [phase_number]-[phase_name].
|
|
166
174
|
Commit each task atomically. Create SUMMARY.md. Update STATE.md and ROADMAP.md.
|
|
@@ -93,7 +93,13 @@ If yes: read `parallelization` from `.planning/config.json`. If `parallelization
|
|
|
93
93
|
```
|
|
94
94
|
Task(
|
|
95
95
|
subagent_type="learnship-researcher",
|
|
96
|
+
description="Quick research pass",
|
|
96
97
|
prompt="
|
|
98
|
+
<agent_definition>
|
|
99
|
+
You are a learnship researcher doing a quick, focused research pass.
|
|
100
|
+
Your training data is stale — use WebSearch to verify current state. Be concise.
|
|
101
|
+
</agent_definition>
|
|
102
|
+
|
|
97
103
|
<objective>
|
|
98
104
|
Quick research pass on: [specific question].
|
|
99
105
|
Search web, scan codebase for relevant patterns, and return a concise summary of findings.
|
|
@@ -159,7 +165,13 @@ Spawn 3-4 ideation agents in parallel, each with a different thinking frame:
|
|
|
159
165
|
```
|
|
160
166
|
Task(
|
|
161
167
|
subagent_type="learnship-ideation-agent",
|
|
168
|
+
description="Ideate: [FRAME] lens",
|
|
162
169
|
prompt="
|
|
170
|
+
<agent_definition>
|
|
171
|
+
You are a learnship ideation agent. Generate improvement ideas grounded in the actual codebase — no abstract advice.
|
|
172
|
+
Every idea must cite specific files, patterns, or evidence. Be creative but practical.
|
|
173
|
+
</agent_definition>
|
|
174
|
+
|
|
163
175
|
<objective>
|
|
164
176
|
Generate 6-8 improvement ideas for this project using the [FRAME] lens.
|
|
165
177
|
Ground every idea in the codebase scan results — no abstract advice.
|
|
@@ -444,16 +444,17 @@ AskUserQuestion([
|
|
|
444
444
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
445
445
|
```
|
|
446
446
|
|
|
447
|
-
> 🔴 **CRITICAL — "Research" in this step means
|
|
447
|
+
> 🔴 **CRITICAL — "Research" in this step means TWO things: (1) SEARCHING THE WEB for current information, then (2) WRITING 5 FILES to disk based on what you found. The deliverable is 5 markdown files grounded in real online research, not training data. You are not done with research until all 5 files exist and pass verification.**
|
|
448
448
|
>
|
|
449
449
|
> **Forbidden behaviors (if you do any of these, the research step has FAILED):**
|
|
450
|
+
> - **Writing files without doing web research first** — reading templates and writing from training data is NOT research. You must run WebSearch queries and WebFetch official docs BEFORE writing any file.
|
|
450
451
|
> - Doing web searches or thinking about the domain and then saying "I have enough research data" WITHOUT writing the 5 files
|
|
451
452
|
> - Writing research findings only in your response text instead of to files
|
|
452
453
|
> - Writing fewer than 5 files (e.g., one combined file)
|
|
453
454
|
> - Moving to Step 6 or writing REQUIREMENTS.md before the verification command below prints `RESEARCH VERIFIED OK`
|
|
454
455
|
> - Saying "Let me proceed to requirements" or "Moving to requirements" before verification passes
|
|
455
456
|
>
|
|
456
|
-
> **The ONLY acceptable sequence is:** mkdir → write file 1 → write file 2 → write file 3 → write file 4 → write file 5 → run verification → see `RESEARCH VERIFIED OK` → present findings → get user confirmation.
|
|
457
|
+
> **The ONLY acceptable sequence is:** mkdir → **web research (WebSearch + WebFetch)** → write file 1 → write file 2 → write file 3 → write file 4 → write file 5 → run verification → see `RESEARCH VERIFIED OK` → present findings → get user confirmation.
|
|
457
458
|
|
|
458
459
|
**Step 5a — Create the research directory.** Run this command now:
|
|
459
460
|
|
|
@@ -467,48 +468,258 @@ Read `parallelization` from `.planning/config.json` (defaults to `false`).
|
|
|
467
468
|
|
|
468
469
|
**If `parallelization.enabled` is `true` (subagent mode — Claude Code, OpenCode, Codex):**
|
|
469
470
|
|
|
470
|
-
|
|
471
|
+
Display spawning indicator:
|
|
471
472
|
```
|
|
473
|
+
◆ Spawning 4 researchers in parallel...
|
|
474
|
+
→ Stack research
|
|
475
|
+
→ Features research
|
|
476
|
+
→ Architecture research
|
|
477
|
+
→ Pitfalls research
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
Spawn 4 parallel researcher agents — one per research dimension. Each agent writes ONE file.
|
|
481
|
+
|
|
482
|
+
```
|
|
483
|
+
Task(
|
|
484
|
+
subagent_type="learnship-researcher",
|
|
485
|
+
description="Stack research",
|
|
486
|
+
prompt="
|
|
487
|
+
<agent_definition>
|
|
488
|
+
You are a learnship researcher. Your training data is 6-18 months stale — treat it as hypothesis, not fact.
|
|
489
|
+
Verify before asserting. Flag uncertainty with confidence levels (HIGH/MEDIUM/LOW). Be prescriptive: 'Use X because Y' not 'Options are X, Y, Z.'
|
|
490
|
+
Tool priority: 1. WebSearch (ecosystem discovery — always include current year), 2. WebFetch (official docs), 3. Codebase scan.
|
|
491
|
+
</agent_definition>
|
|
492
|
+
|
|
493
|
+
<objective>
|
|
494
|
+
Research the standard tech stack for [project domain]. Write .planning/research/STACK.md.
|
|
495
|
+
You MUST run WebSearch queries BEFORE writing the file. Do NOT write from training data alone.
|
|
496
|
+
</objective>
|
|
497
|
+
|
|
498
|
+
<research_steps>
|
|
499
|
+
1. Read .planning/PROJECT.md to understand the project domain and goals
|
|
500
|
+
2. Run 2-3 WebSearch queries: '[domain] recommended tech stack [current year]', '[domain] best libraries [current year]'
|
|
501
|
+
3. WebFetch official docs for any key libraries discovered
|
|
502
|
+
4. Write .planning/research/STACK.md with confidence levels and source citations
|
|
503
|
+
</research_steps>
|
|
504
|
+
|
|
505
|
+
<files_to_read>
|
|
506
|
+
- .planning/PROJECT.md (project context and goals)
|
|
507
|
+
</files_to_read>
|
|
508
|
+
|
|
509
|
+
<downstream_consumer>
|
|
510
|
+
Your STACK.md feeds into roadmap creation. Be prescriptive:
|
|
511
|
+
- Specific libraries with versions
|
|
512
|
+
- Clear rationale for each choice
|
|
513
|
+
- What NOT to use and why
|
|
514
|
+
</downstream_consumer>
|
|
515
|
+
|
|
516
|
+
<quality_gate>
|
|
517
|
+
- [ ] Versions are current (verified via WebSearch/WebFetch, not training data)
|
|
518
|
+
- [ ] Rationale explains WHY, not just WHAT
|
|
519
|
+
- [ ] Confidence levels assigned to each recommendation
|
|
520
|
+
</quality_gate>
|
|
521
|
+
|
|
522
|
+
<output>
|
|
523
|
+
Write to: .planning/research/STACK.md
|
|
524
|
+
Required sections: ## Recommended Stack, ## Alternatives Considered, ## What NOT to Use, ## Versions
|
|
525
|
+
</output>
|
|
526
|
+
"
|
|
527
|
+
)
|
|
528
|
+
|
|
472
529
|
Task(
|
|
473
530
|
subagent_type="learnship-researcher",
|
|
531
|
+
description="Features research",
|
|
474
532
|
prompt="
|
|
533
|
+
<agent_definition>
|
|
534
|
+
You are a learnship researcher. Your training data is 6-18 months stale — treat it as hypothesis, not fact.
|
|
535
|
+
Verify before asserting. Flag uncertainty with confidence levels (HIGH/MEDIUM/LOW). Be prescriptive: 'Use X because Y' not 'Options are X, Y, Z.'
|
|
536
|
+
Tool priority: 1. WebSearch (ecosystem discovery — always include current year), 2. WebFetch (official docs), 3. Codebase scan.
|
|
537
|
+
</agent_definition>
|
|
538
|
+
|
|
539
|
+
<objective>
|
|
540
|
+
Research what features [project domain] products typically have. Write .planning/research/FEATURES.md.
|
|
541
|
+
You MUST run WebSearch queries BEFORE writing the file. Do NOT write from training data alone.
|
|
542
|
+
</objective>
|
|
543
|
+
|
|
544
|
+
<research_steps>
|
|
545
|
+
1. Read .planning/PROJECT.md to understand the project domain and goals
|
|
546
|
+
2. Run 2-3 WebSearch queries: '[domain] features table stakes [current year]', '[domain] product features comparison'
|
|
547
|
+
3. WebFetch any relevant product comparison pages or feature lists
|
|
548
|
+
4. Write .planning/research/FEATURES.md with confidence levels and source citations
|
|
549
|
+
</research_steps>
|
|
550
|
+
|
|
551
|
+
<files_to_read>
|
|
552
|
+
- .planning/PROJECT.md (project context and goals)
|
|
553
|
+
</files_to_read>
|
|
554
|
+
|
|
555
|
+
<downstream_consumer>
|
|
556
|
+
Your FEATURES.md feeds into requirements definition. Categorize clearly:
|
|
557
|
+
- Table stakes (must have or users leave)
|
|
558
|
+
- Differentiators (competitive advantage)
|
|
559
|
+
- Anti-features (things to deliberately NOT build)
|
|
560
|
+
</downstream_consumer>
|
|
561
|
+
|
|
562
|
+
<quality_gate>
|
|
563
|
+
- [ ] Categories are clear (table stakes vs differentiators vs anti-features)
|
|
564
|
+
- [ ] Complexity noted for each feature
|
|
565
|
+
- [ ] Dependencies between features identified
|
|
566
|
+
</quality_gate>
|
|
567
|
+
|
|
568
|
+
<output>
|
|
569
|
+
Write to: .planning/research/FEATURES.md
|
|
570
|
+
Required sections: ## Table Stakes, ## Differentiators, ## Anti-Features
|
|
571
|
+
</output>
|
|
572
|
+
"
|
|
573
|
+
)
|
|
574
|
+
|
|
575
|
+
Task(
|
|
576
|
+
subagent_type="learnship-researcher",
|
|
577
|
+
description="Architecture research",
|
|
578
|
+
prompt="
|
|
579
|
+
<agent_definition>
|
|
580
|
+
You are a learnship researcher. Your training data is 6-18 months stale — treat it as hypothesis, not fact.
|
|
581
|
+
Verify before asserting. Flag uncertainty with confidence levels (HIGH/MEDIUM/LOW). Be prescriptive: 'Use X because Y' not 'Options are X, Y, Z.'
|
|
582
|
+
Tool priority: 1. WebSearch (ecosystem discovery — always include current year), 2. WebFetch (official docs), 3. Codebase scan.
|
|
583
|
+
</agent_definition>
|
|
584
|
+
|
|
475
585
|
<objective>
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
Files to write:
|
|
480
|
-
1. STACK.md — Must have: ## Recommended Stack, ## Alternatives Considered, ## What NOT to Use, ## Versions
|
|
481
|
-
2. FEATURES.md — Must have: ## Table Stakes, ## Differentiators, ## Anti-Features
|
|
482
|
-
3. ARCHITECTURE.md — Must have: ## Component Boundaries, ## Data Flow, ## Build Order, ## Integration Points
|
|
483
|
-
4. PITFALLS.md — Must have: ## Common Mistakes, ## Warning Signs, ## Prevention Strategies
|
|
484
|
-
5. SUMMARY.md — Must have: ## Recommended Stack, ## Table Stakes Features, ## Key Architecture Decisions, ## Top Pitfalls
|
|
485
|
-
|
|
486
|
-
After writing all 5 files, run the verification command to confirm all files exist with required sections.
|
|
487
|
-
Return: confirmation that all 5 files pass verification.
|
|
586
|
+
Research how [project domain] systems are typically structured. Write .planning/research/ARCHITECTURE.md.
|
|
587
|
+
You MUST run WebSearch queries BEFORE writing the file. Do NOT write from training data alone.
|
|
488
588
|
</objective>
|
|
489
589
|
|
|
590
|
+
<research_steps>
|
|
591
|
+
1. Read .planning/PROJECT.md to understand the project domain and goals
|
|
592
|
+
2. Run 2-3 WebSearch queries: '[domain] architecture patterns', '[domain] system design components'
|
|
593
|
+
3. WebFetch architectural guides or documentation for the chosen stack
|
|
594
|
+
4. Write .planning/research/ARCHITECTURE.md with confidence levels and source citations
|
|
595
|
+
</research_steps>
|
|
596
|
+
|
|
490
597
|
<files_to_read>
|
|
491
|
-
- .planning/PROJECT.md (project
|
|
492
|
-
- @./templates/research-project/STACK.md (template for STACK.md)
|
|
493
|
-
- @./templates/research-project/FEATURES.md (template for FEATURES.md)
|
|
494
|
-
- @./templates/research-project/ARCHITECTURE.md (template for ARCHITECTURE.md)
|
|
495
|
-
- @./templates/research-project/PITFALLS.md (template for PITFALLS.md)
|
|
496
|
-
- @./templates/research-project/SUMMARY.md (template for SUMMARY.md)
|
|
598
|
+
- .planning/PROJECT.md (project context and goals)
|
|
497
599
|
</files_to_read>
|
|
600
|
+
|
|
601
|
+
<downstream_consumer>
|
|
602
|
+
Your ARCHITECTURE.md informs phase structure in roadmap. Include:
|
|
603
|
+
- Component boundaries (what talks to what)
|
|
604
|
+
- Data flow (how information moves)
|
|
605
|
+
- Suggested build order (dependencies between components)
|
|
606
|
+
</downstream_consumer>
|
|
607
|
+
|
|
608
|
+
<quality_gate>
|
|
609
|
+
- [ ] Components clearly defined with boundaries
|
|
610
|
+
- [ ] Data flow direction explicit
|
|
611
|
+
- [ ] Build order implications noted
|
|
612
|
+
</quality_gate>
|
|
613
|
+
|
|
614
|
+
<output>
|
|
615
|
+
Write to: .planning/research/ARCHITECTURE.md
|
|
616
|
+
Required sections: ## Component Boundaries, ## Data Flow, ## Build Order, ## Integration Points
|
|
617
|
+
</output>
|
|
618
|
+
"
|
|
619
|
+
)
|
|
620
|
+
|
|
621
|
+
Task(
|
|
622
|
+
subagent_type="learnship-researcher",
|
|
623
|
+
description="Pitfalls research",
|
|
624
|
+
prompt="
|
|
625
|
+
<agent_definition>
|
|
626
|
+
You are a learnship researcher. Your training data is 6-18 months stale — treat it as hypothesis, not fact.
|
|
627
|
+
Verify before asserting. Flag uncertainty with confidence levels (HIGH/MEDIUM/LOW). Be prescriptive: 'Use X because Y' not 'Options are X, Y, Z.'
|
|
628
|
+
Tool priority: 1. WebSearch (ecosystem discovery — always include current year), 2. WebFetch (official docs), 3. Codebase scan.
|
|
629
|
+
</agent_definition>
|
|
630
|
+
|
|
631
|
+
<objective>
|
|
632
|
+
Research what [project domain] projects commonly get wrong. Write .planning/research/PITFALLS.md.
|
|
633
|
+
You MUST run WebSearch queries BEFORE writing the file. Do NOT write from training data alone.
|
|
634
|
+
</objective>
|
|
635
|
+
|
|
636
|
+
<research_steps>
|
|
637
|
+
1. Read .planning/PROJECT.md to understand the project domain and goals
|
|
638
|
+
2. Run 2-3 WebSearch queries: '[domain] common mistakes gotchas', '[domain] pitfalls beginners'
|
|
639
|
+
3. WebFetch any detailed postmortems or lessons-learned articles
|
|
640
|
+
4. Write .planning/research/PITFALLS.md with confidence levels and source citations
|
|
641
|
+
</research_steps>
|
|
642
|
+
|
|
643
|
+
<files_to_read>
|
|
644
|
+
- .planning/PROJECT.md (project context and goals)
|
|
645
|
+
</files_to_read>
|
|
646
|
+
|
|
647
|
+
<downstream_consumer>
|
|
648
|
+
Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
|
|
649
|
+
- Warning signs (how to detect early)
|
|
650
|
+
- Prevention strategy (how to avoid)
|
|
651
|
+
- Which phase should address it
|
|
652
|
+
</downstream_consumer>
|
|
653
|
+
|
|
654
|
+
<quality_gate>
|
|
655
|
+
- [ ] Pitfalls are specific to this domain (not generic advice)
|
|
656
|
+
- [ ] Prevention strategies are actionable
|
|
657
|
+
- [ ] Phase mapping included where relevant
|
|
658
|
+
</quality_gate>
|
|
659
|
+
|
|
660
|
+
<output>
|
|
661
|
+
Write to: .planning/research/PITFALLS.md
|
|
662
|
+
Required sections: ## Common Mistakes, ## Warning Signs, ## Prevention Strategies
|
|
663
|
+
</output>
|
|
498
664
|
"
|
|
499
665
|
)
|
|
500
666
|
```
|
|
501
667
|
|
|
502
|
-
|
|
668
|
+
After all 4 agents complete, spawn a synthesizer to create SUMMARY.md from the other 4 files:
|
|
669
|
+
|
|
670
|
+
```
|
|
671
|
+
Task(
|
|
672
|
+
subagent_type="learnship-researcher",
|
|
673
|
+
description="Synthesize research",
|
|
674
|
+
prompt="
|
|
675
|
+
<objective>
|
|
676
|
+
Synthesize the 4 research files into a single SUMMARY.md.
|
|
677
|
+
Read all 4 files, extract the key findings, and write a cohesive summary.
|
|
678
|
+
</objective>
|
|
679
|
+
|
|
680
|
+
<files_to_read>
|
|
681
|
+
- .planning/research/STACK.md
|
|
682
|
+
- .planning/research/FEATURES.md
|
|
683
|
+
- .planning/research/ARCHITECTURE.md
|
|
684
|
+
- .planning/research/PITFALLS.md
|
|
685
|
+
</files_to_read>
|
|
686
|
+
|
|
687
|
+
<output>
|
|
688
|
+
Write to: .planning/research/SUMMARY.md
|
|
689
|
+
Required sections: ## Recommended Stack, ## Table Stakes Features, ## Key Architecture Decisions, ## Top Pitfalls
|
|
690
|
+
</output>
|
|
691
|
+
"
|
|
692
|
+
)
|
|
693
|
+
```
|
|
694
|
+
|
|
695
|
+
Wait for the synthesizer to complete, then proceed to Step 5c (verification) to confirm all 5 files were written correctly.
|
|
503
696
|
|
|
504
697
|
**If `parallelization.enabled` is `false` (sequential mode):**
|
|
505
698
|
|
|
506
699
|
Using `@./agents/researcher.md` as your research persona:
|
|
507
700
|
|
|
508
|
-
**Step 5b —
|
|
701
|
+
**Step 5b-pre — Online research (BEFORE writing any files).**
|
|
702
|
+
|
|
703
|
+
> 🔴 **You MUST do web research before writing files.** Your training data is stale. Do not write research files from memory alone — investigate first, write second.
|
|
704
|
+
|
|
705
|
+
Run at least 5 WebSearch queries to discover the current state of this project's domain. Include the current year in all queries. Example queries (adapt to the actual project domain):
|
|
706
|
+
|
|
707
|
+
1. `"[project domain] recommended tech stack 2026"` — discover what's standard
|
|
708
|
+
2. `"[project domain] best libraries 2026"` — find specific tools
|
|
709
|
+
3. `"[project domain] architecture patterns"` — how systems in this domain are structured
|
|
710
|
+
4. `"[project domain] common mistakes gotchas"` — what goes wrong
|
|
711
|
+
5. `"[key technology from PROJECT.md] best practices"` — specific tech guidance
|
|
712
|
+
|
|
713
|
+
For any libraries or frameworks discovered, use WebFetch to read their official documentation pages.
|
|
714
|
+
|
|
715
|
+
Record your findings internally. You will use them to write the 5 files below. Every recommendation in the files should be grounded in what you found online — include confidence levels (HIGH/MEDIUM/LOW) and cite sources where possible.
|
|
716
|
+
|
|
717
|
+
> 🛑 STOP. Confirm: did you run at least 5 WebSearch queries? If you skipped straight to writing files, go back and search now. Files written purely from training data without web verification are low-quality research.
|
|
718
|
+
|
|
719
|
+
**Step 5b — Write all 5 files.** Create each file one at a time using your file write tool. Each file is a separate write operation. Do NOT combine files. Do NOT skip files. **Before writing each file, read the corresponding template** from `@./templates/research-project/` to understand the expected structure. Base your content on the web research findings from Step 5b-pre.
|
|
509
720
|
|
|
510
721
|
**File 1 of 5 — Write `.planning/research/STACK.md` to disk now.**
|
|
511
|
-
First, read the template at `@./templates/research-project/STACK.md` for the expected structure. Then
|
|
722
|
+
First, read the template at `@./templates/research-project/STACK.md` for the expected structure. Then write the stack research based on your web search findings. Include confidence levels and cite sources. The file MUST contain these exact `##` headers:
|
|
512
723
|
- `## Recommended Stack`
|
|
513
724
|
- `## Alternatives Considered`
|
|
514
725
|
- `## What NOT to Use` (with reasons)
|
|
@@ -517,26 +728,26 @@ First, read the template at `@./templates/research-project/STACK.md` for the exp
|
|
|
517
728
|
> 🛑 STOP. Confirm: did you write `.planning/research/STACK.md` to the filesystem? If you only thought about the stack but did not create the file, go back and create it now.
|
|
518
729
|
|
|
519
730
|
**File 2 of 5 — Write `.planning/research/FEATURES.md` to disk now.**
|
|
520
|
-
First, read the template at `@./templates/research-project/FEATURES.md` for the expected structure. Then
|
|
731
|
+
First, read the template at `@./templates/research-project/FEATURES.md` for the expected structure. Then write the features research based on your web search findings. The file MUST contain these exact `##` headers:
|
|
521
732
|
- `## Table Stakes` (must-haves)
|
|
522
733
|
- `## Differentiators` (nice-to-haves)
|
|
523
734
|
- `## Anti-Features` (what to avoid)
|
|
524
735
|
|
|
525
736
|
**File 3 of 5 — Write `.planning/research/ARCHITECTURE.md` to disk now.**
|
|
526
|
-
First, read the template at `@./templates/research-project/ARCHITECTURE.md` for the expected structure. Then
|
|
737
|
+
First, read the template at `@./templates/research-project/ARCHITECTURE.md` for the expected structure. Then write the architecture research based on your web search findings. The file MUST contain these exact `##` headers:
|
|
527
738
|
- `## Component Boundaries`
|
|
528
739
|
- `## Data Flow`
|
|
529
740
|
- `## Build Order` (suggested sequence)
|
|
530
741
|
- `## Integration Points`
|
|
531
742
|
|
|
532
743
|
**File 4 of 5 — Write `.planning/research/PITFALLS.md` to disk now.**
|
|
533
|
-
First, read the template at `@./templates/research-project/PITFALLS.md` for the expected structure. Then
|
|
744
|
+
First, read the template at `@./templates/research-project/PITFALLS.md` for the expected structure. Then write the pitfalls research based on your web search findings. The file MUST contain these exact `##` headers:
|
|
534
745
|
- `## Common Mistakes`
|
|
535
746
|
- `## Warning Signs`
|
|
536
747
|
- `## Prevention Strategies`
|
|
537
748
|
|
|
538
749
|
**File 5 of 5 — Write `.planning/research/SUMMARY.md` to disk now.**
|
|
539
|
-
First, read the template at `@./templates/research-project/SUMMARY.md` for the expected structure. Then synthesize the 4 files above into a summary.
|
|
750
|
+
First, read the template at `@./templates/research-project/SUMMARY.md` for the expected structure. Then synthesize the 4 files above into a summary. The file MUST contain these exact `##` headers:
|
|
540
751
|
- `## Recommended Stack`
|
|
541
752
|
- `## Table Stakes Features`
|
|
542
753
|
- `## Key Architecture Decisions`
|
|
@@ -107,19 +107,39 @@ Display:
|
|
|
107
107
|
Spawn a dedicated researcher agent:
|
|
108
108
|
```
|
|
109
109
|
Task(
|
|
110
|
-
subagent_type="learnship-
|
|
110
|
+
subagent_type="learnship-researcher",
|
|
111
|
+
description="Phase [phase_number] research",
|
|
111
112
|
prompt="
|
|
113
|
+
<agent_definition>
|
|
114
|
+
You are a learnship researcher. Your training data is 6-18 months stale — treat it as hypothesis, not fact.
|
|
115
|
+
Verify before asserting. Flag uncertainty with confidence levels (HIGH/MEDIUM/LOW). Be prescriptive: 'Use X because Y' not 'Options are X, Y, Z.'
|
|
116
|
+
Tool priority: 1. WebSearch (ecosystem discovery — always include current year), 2. WebFetch (official docs), 3. Codebase scan.
|
|
117
|
+
</agent_definition>
|
|
118
|
+
|
|
112
119
|
<objective>
|
|
113
120
|
Research how to implement Phase [phase_number]: [phase_name].
|
|
114
121
|
Answer: 'What do I need to know to PLAN this phase well?'
|
|
115
|
-
|
|
122
|
+
You MUST run WebSearch queries BEFORE writing the file. Do NOT write from training data alone.
|
|
116
123
|
</objective>
|
|
117
124
|
|
|
125
|
+
<research_steps>
|
|
126
|
+
1. Read user decisions from CONTEXT.md (if exists), requirements from REQUIREMENTS.md, and project state from STATE.md
|
|
127
|
+
2. Run at least 3 WebSearch queries: '[phase technology] best practices [current year]', '[phase technology] common mistakes', '[phase technology] recommended libraries'
|
|
128
|
+
3. WebFetch official docs for key libraries or frameworks discovered
|
|
129
|
+
4. Scan the codebase for existing patterns relevant to this phase
|
|
130
|
+
5. Write [padded_phase]-RESEARCH.md with confidence levels and source citations
|
|
131
|
+
</research_steps>
|
|
132
|
+
|
|
118
133
|
<files_to_read>
|
|
119
134
|
- [context_path] (user decisions, if exists)
|
|
120
135
|
- .planning/REQUIREMENTS.md
|
|
121
136
|
- .planning/STATE.md
|
|
122
137
|
</files_to_read>
|
|
138
|
+
|
|
139
|
+
<output>
|
|
140
|
+
Write to: .planning/phases/[padded_phase]-[phase_slug]/[padded_phase]-RESEARCH.md
|
|
141
|
+
Required sections: ## Don't Hand-Roll, ## Common Pitfalls, ## Existing Patterns in This Codebase, ## Recommended Approach
|
|
142
|
+
</output>
|
|
123
143
|
"
|
|
124
144
|
)
|
|
125
145
|
```
|
|
@@ -128,13 +148,15 @@ Wait for agent to complete, then verify RESEARCH.md was written.
|
|
|
128
148
|
|
|
129
149
|
**If `parallelization` is `false` (sequential mode):**
|
|
130
150
|
|
|
131
|
-
Using `@./agents/researcher.md` as your research persona, investigate how to implement this phase.
|
|
151
|
+
Using `@./agents/researcher.md` as your research persona, investigate how to implement this phase.
|
|
152
|
+
|
|
153
|
+
**Online research first.** Before writing anything, run at least 3 WebSearch queries relevant to this phase's domain. Use WebFetch to read official docs for any libraries discovered. Then read:
|
|
132
154
|
- The CONTEXT.md (user decisions)
|
|
133
155
|
- `.planning/REQUIREMENTS.md` (which requirements this phase covers)
|
|
134
156
|
- `.planning/STATE.md` (project history and decisions)
|
|
135
157
|
- Existing codebase for relevant patterns
|
|
136
158
|
|
|
137
|
-
Write `.planning/phases/[padded_phase]-[phase_slug]/[padded_phase]-RESEARCH.md`
|
|
159
|
+
Write `.planning/phases/[padded_phase]-[phase_slug]/[padded_phase]-RESEARCH.md` based on your web research findings. Include confidence levels and cite sources. The file must have two key sections:
|
|
138
160
|
- **Don't Hand-Roll** — problems with good existing solutions ("Don't build your own JWT — use jose")
|
|
139
161
|
- **Common Pitfalls** — what goes wrong, why, how to avoid it
|
|
140
162
|
|
|
@@ -164,7 +186,15 @@ Spawn a dedicated planner agent:
|
|
|
164
186
|
```
|
|
165
187
|
Task(
|
|
166
188
|
subagent_type="learnship-planner",
|
|
189
|
+
description="Plan phase [phase_number]",
|
|
167
190
|
prompt="
|
|
191
|
+
<agent_definition>
|
|
192
|
+
You are a learnship planner. Create executable PLAN.md files that an AI agent can follow step-by-step.
|
|
193
|
+
Each plan covers a single logical unit of work. Tasks use XML format with file, action, verify, done fields.
|
|
194
|
+
Plans have YAML frontmatter: wave, depends_on, files_modified, autonomous.
|
|
195
|
+
Be specific — task actions should be concrete instructions, not vague guidance.
|
|
196
|
+
</agent_definition>
|
|
197
|
+
|
|
168
198
|
<objective>
|
|
169
199
|
Create 2-4 executable PLAN.md files for Phase [phase_number]: [phase_name].
|
|
170
200
|
Write plans to [phase_dir]/[padded_phase]-NN-PLAN.md.
|
|
@@ -178,6 +208,11 @@ Task(
|
|
|
178
208
|
- [research_path] (if exists)
|
|
179
209
|
- $LEARNSHIP_DIR/templates/plan.md
|
|
180
210
|
</files_to_read>
|
|
211
|
+
|
|
212
|
+
<output>
|
|
213
|
+
Write to: [phase_dir]/[padded_phase]-01-PLAN.md, [padded_phase]-02-PLAN.md, etc.
|
|
214
|
+
Each plan must have: YAML frontmatter (wave, depends_on, files_modified) + tasks in XML + must_haves section
|
|
215
|
+
</output>
|
|
181
216
|
"
|
|
182
217
|
)
|
|
183
218
|
```
|
|
@@ -223,7 +258,14 @@ Spawn a plan-checker agent:
|
|
|
223
258
|
```
|
|
224
259
|
Task(
|
|
225
260
|
subagent_type="learnship-plan-checker",
|
|
261
|
+
description="Verify phase [phase_number] plans",
|
|
226
262
|
prompt="
|
|
263
|
+
<agent_definition>
|
|
264
|
+
You are a learnship plan checker. Verify plans are complete, correct, and executable.
|
|
265
|
+
Check: phase goal coverage, requirement IDs, CONTEXT.md decisions honored, task completeness, wave/dependency correctness.
|
|
266
|
+
Be strict — flag missing requirement IDs, vague task actions, incorrect wave assignments.
|
|
267
|
+
</agent_definition>
|
|
268
|
+
|
|
227
269
|
<objective>
|
|
228
270
|
Verify all PLAN.md files in [phase_dir] for Phase [phase_number]: [phase_name].
|
|
229
271
|
Check: phase goal coverage, requirement IDs, CONTEXT.md decisions, task completeness, wave correctness.
|
|
@@ -78,22 +78,38 @@ Spawn a dedicated researcher agent:
|
|
|
78
78
|
```
|
|
79
79
|
Task(
|
|
80
80
|
subagent_type="learnship-researcher",
|
|
81
|
+
description="Phase [N] research",
|
|
81
82
|
prompt="
|
|
83
|
+
<agent_definition>
|
|
84
|
+
You are a learnship researcher. Your training data is 6-18 months stale — treat it as hypothesis, not fact.
|
|
85
|
+
Verify before asserting. Flag uncertainty with confidence levels (HIGH/MEDIUM/LOW). Be prescriptive: 'Use X because Y' not 'Options are X, Y, Z.'
|
|
86
|
+
Tool priority: 1. WebSearch (ecosystem discovery — always include current year), 2. WebFetch (official docs), 3. Codebase scan.
|
|
87
|
+
</agent_definition>
|
|
88
|
+
|
|
82
89
|
<objective>
|
|
83
|
-
Research phase [N] for this project.
|
|
84
|
-
|
|
85
|
-
Write [padded_phase]-RESEARCH.md with Don't Hand-Roll, Common Pitfalls,
|
|
86
|
-
Existing Patterns, and Recommended Approach sections.
|
|
87
|
-
Follow the researcher persona at @./agents/researcher.md.
|
|
90
|
+
Research how to implement phase [N] for this project. Write [padded_phase]-RESEARCH.md.
|
|
91
|
+
You MUST run WebSearch queries BEFORE writing the file. Do NOT write from training data alone.
|
|
88
92
|
</objective>
|
|
89
93
|
|
|
94
|
+
<research_steps>
|
|
95
|
+
1. Read the phase goal from ROADMAP.md, requirements from REQUIREMENTS.md, and any CONTEXT.md decisions
|
|
96
|
+
2. Run at least 3 WebSearch queries: '[phase technology] best practices [current year]', '[phase technology] common mistakes', '[phase technology] recommended libraries'
|
|
97
|
+
3. WebFetch official docs for key libraries or frameworks discovered
|
|
98
|
+
4. Scan the codebase for existing patterns relevant to this phase
|
|
99
|
+
5. Write [padded_phase]-RESEARCH.md with confidence levels and source citations
|
|
100
|
+
</research_steps>
|
|
101
|
+
|
|
90
102
|
<files_to_read>
|
|
91
103
|
- .planning/ROADMAP.md
|
|
92
104
|
- .planning/REQUIREMENTS.md
|
|
93
105
|
- .planning/STATE.md
|
|
94
106
|
- .planning/phases/[padded_phase]-[slug]/[padded_phase]-CONTEXT.md (if exists)
|
|
95
|
-
- @./agents/researcher.md (persona)
|
|
96
107
|
</files_to_read>
|
|
108
|
+
|
|
109
|
+
<output>
|
|
110
|
+
Write to: .planning/phases/[padded_phase]-[slug]/[padded_phase]-RESEARCH.md
|
|
111
|
+
Required sections: ## Don't Hand-Roll, ## Common Pitfalls, ## Existing Patterns in This Codebase, ## Recommended Approach
|
|
112
|
+
</output>
|
|
97
113
|
"
|
|
98
114
|
)
|
|
99
115
|
```
|
|
@@ -102,7 +118,17 @@ Task(
|
|
|
102
118
|
|
|
103
119
|
Using `@./agents/researcher.md` as your research persona in **phase research mode**:
|
|
104
120
|
|
|
105
|
-
|
|
121
|
+
**Online research first.** Before writing anything, run at least 3 WebSearch queries relevant to this phase's domain:
|
|
122
|
+
|
|
123
|
+
1. `"[phase technology] best practices 2026"` — current recommendations
|
|
124
|
+
2. `"[phase technology] common mistakes gotchas"` — what goes wrong
|
|
125
|
+
3. `"[phase technology] recommended libraries"` — standard tools
|
|
126
|
+
|
|
127
|
+
Use WebFetch to read official docs for any libraries or frameworks discovered. Record findings internally.
|
|
128
|
+
|
|
129
|
+
> 🛑 STOP. Confirm: did you run at least 3 WebSearch queries? If you skipped straight to writing the research file, go back and search now.
|
|
130
|
+
|
|
131
|
+
Then write `.planning/phases/[padded_phase]-[slug]/[padded_phase]-RESEARCH.md` based on your web research findings. Include confidence levels and cite sources. The file must have these sections:
|
|
106
132
|
|
|
107
133
|
**Don't Hand-Roll** — problems that have battle-tested solutions:
|
|
108
134
|
```
|
|
@@ -92,7 +92,15 @@ Spawn a dedicated code-reviewer agent for each selected persona:
|
|
|
92
92
|
```
|
|
93
93
|
Task(
|
|
94
94
|
subagent_type="learnship-code-reviewer",
|
|
95
|
+
description="Review: [PERSONA]",
|
|
95
96
|
prompt="
|
|
97
|
+
<agent_definition>
|
|
98
|
+
You are a learnship code reviewer running the [PERSONA] lens.
|
|
99
|
+
Review the diff — do NOT edit any files. Read-only review.
|
|
100
|
+
Return structured findings with severity (P0-P3) and confidence (0.0-1.0).
|
|
101
|
+
Be specific: cite exact files and lines. Distinguish real issues from style preferences.
|
|
102
|
+
</agent_definition>
|
|
103
|
+
|
|
96
104
|
<objective>
|
|
97
105
|
Review the following diff as the [PERSONA] reviewer.
|
|
98
106
|
Focus: [persona-specific focus areas]
|
|
@@ -104,17 +104,22 @@ Read `parallelization` from `.planning/config.json` (defaults to `false`).
|
|
|
104
104
|
```
|
|
105
105
|
Task(
|
|
106
106
|
subagent_type="learnship-security-auditor",
|
|
107
|
+
description="Security audit phase [N]",
|
|
107
108
|
prompt="
|
|
109
|
+
<agent_definition>
|
|
110
|
+
You are a learnship security auditor. Verify threats against the actual codebase using STRIDE methodology.
|
|
111
|
+
Check each open threat: if mitigation is found in code, mark CLOSED with evidence. If missing, document what's needed.
|
|
112
|
+
Be thorough — check actual code, not just file names. False negatives are worse than false positives.
|
|
113
|
+
</agent_definition>
|
|
114
|
+
|
|
108
115
|
<objective>
|
|
109
116
|
Verify all open threats in the threat register for phase [N].
|
|
110
117
|
Check each threat against the actual codebase. Update status to
|
|
111
118
|
CLOSED if mitigation found, or document what's missing.
|
|
112
|
-
Follow the security auditor persona at @./agents/security-auditor.md.
|
|
113
119
|
</objective>
|
|
114
120
|
|
|
115
121
|
<files_to_read>
|
|
116
122
|
- [phase SECURITY.md or threat register]
|
|
117
|
-
- @./agents/security-auditor.md (persona)
|
|
118
123
|
</files_to_read>
|
|
119
124
|
"
|
|
120
125
|
)
|
|
@@ -105,18 +105,24 @@ Read `parallelization` from `.planning/config.json` (defaults to `false`).
|
|
|
105
105
|
```
|
|
106
106
|
Task(
|
|
107
107
|
subagent_type="learnship-verifier",
|
|
108
|
+
description="Fill validation gaps phase [N]",
|
|
108
109
|
prompt="
|
|
110
|
+
<agent_definition>
|
|
111
|
+
You are a learnship verifier. Write test files that cover validation gaps — never modify implementation files.
|
|
112
|
+
Match existing test framework and style. Write tests that actually run (import real modules, not mocks).
|
|
113
|
+
If a test reveals an implementation bug, log it as an escalation — don't fix the implementation.
|
|
114
|
+
Up to 3 debug attempts if tests fail.
|
|
115
|
+
</agent_definition>
|
|
116
|
+
|
|
109
117
|
<objective>
|
|
110
118
|
Write missing test files for phase [N] validation gaps.
|
|
111
119
|
Read VALIDATION.md gaps and write tests that cover each MISSING or PARTIAL requirement.
|
|
112
|
-
Follow the verifier persona at @./agents/verifier.md.
|
|
113
120
|
Never modify implementation files — only write test files.
|
|
114
121
|
Run tests to verify they pass. Up to 3 debug attempts if tests fail.
|
|
115
122
|
</objective>
|
|
116
123
|
|
|
117
124
|
<files_to_read>
|
|
118
125
|
- [VALIDATION.md path]
|
|
119
|
-
- @./agents/verifier.md (persona)
|
|
120
126
|
</files_to_read>
|
|
121
127
|
"
|
|
122
128
|
)
|
|
@@ -124,7 +130,7 @@ Task(
|
|
|
124
130
|
|
|
125
131
|
**If `parallelization.enabled` is `false` (sequential mode):**
|
|
126
132
|
|
|
127
|
-
|
|
133
|
+
Using `@./agents/verifier.md` as your verification persona, write the missing test files. Rules:
|
|
128
134
|
- Never touch implementation files
|
|
129
135
|
- Match the existing test framework and style
|
|
130
136
|
- Write tests that actually run (import real modules, not mocks of the implementation)
|
|
@@ -253,18 +253,23 @@ Spawn a dedicated debugger agent for diagnosis:
|
|
|
253
253
|
```
|
|
254
254
|
Task(
|
|
255
255
|
subagent_type="learnship-debugger",
|
|
256
|
+
description="Diagnose UAT issues phase [N]",
|
|
256
257
|
prompt="
|
|
258
|
+
<agent_definition>
|
|
259
|
+
You are a learnship debugger in diagnosis mode. Trace each issue to its root cause.
|
|
260
|
+
Read-first: understand the current design before proposing changes. Find specific files and lines.
|
|
261
|
+
Do NOT fix anything — just diagnose and document. One hypothesis at a time.
|
|
262
|
+
</agent_definition>
|
|
263
|
+
|
|
257
264
|
<objective>
|
|
258
265
|
Diagnose all issues found in UAT for phase [N].
|
|
259
266
|
Read the UAT.md file with gaps, trace each issue to its root cause.
|
|
260
267
|
Do NOT fix anything — just diagnose and document root causes.
|
|
261
|
-
Follow the debugger persona at @./agents/debugger.md.
|
|
262
268
|
Write root_cause and affected_files for each gap back to UAT.md.
|
|
263
269
|
</objective>
|
|
264
270
|
|
|
265
271
|
<files_to_read>
|
|
266
272
|
- [UAT.md path]
|
|
267
|
-
- @./agents/debugger.md (persona)
|
|
268
273
|
</files_to_read>
|
|
269
274
|
"
|
|
270
275
|
)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "learnship",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.2",
|
|
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",
|