learnship 1.9.0
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 +26 -0
- package/.cursor-plugin/plugin.json +26 -0
- package/LICENSE +21 -0
- package/README.md +791 -0
- package/SKILL.md +86 -0
- package/agents/debugger.md +102 -0
- package/agents/executor.md +115 -0
- package/agents/learnship-debugger.md +146 -0
- package/agents/learnship-executor.md +155 -0
- package/agents/learnship-phase-researcher.md +128 -0
- package/agents/learnship-plan-checker.md +119 -0
- package/agents/learnship-planner.md +146 -0
- package/agents/learnship-verifier.md +157 -0
- package/agents/planner.md +109 -0
- package/agents/researcher.md +80 -0
- package/agents/verifier.md +114 -0
- package/bin/install.js +1242 -0
- package/bin/learnship.js +56 -0
- package/commands/learnship/add-phase.md +22 -0
- package/commands/learnship/add-tests.md +24 -0
- package/commands/learnship/add-todo.md +21 -0
- package/commands/learnship/audit-milestone.md +21 -0
- package/commands/learnship/check-todos.md +22 -0
- package/commands/learnship/cleanup.md +22 -0
- package/commands/learnship/complete-milestone.md +22 -0
- package/commands/learnship/debug.md +27 -0
- package/commands/learnship/decision-log.md +22 -0
- package/commands/learnship/diagnose-issues.md +23 -0
- package/commands/learnship/discovery-phase.md +24 -0
- package/commands/learnship/discuss-milestone.md +23 -0
- package/commands/learnship/discuss-phase.md +23 -0
- package/commands/learnship/execute-phase.md +27 -0
- package/commands/learnship/execute-plan.md +26 -0
- package/commands/learnship/health.md +20 -0
- package/commands/learnship/help.md +19 -0
- package/commands/learnship/insert-phase.md +22 -0
- package/commands/learnship/knowledge-base.md +21 -0
- package/commands/learnship/list-phase-assumptions.md +21 -0
- package/commands/learnship/ls.md +20 -0
- package/commands/learnship/map-codebase.md +23 -0
- package/commands/learnship/milestone-retrospective.md +21 -0
- package/commands/learnship/new-milestone.md +23 -0
- package/commands/learnship/new-project.md +24 -0
- package/commands/learnship/next.md +22 -0
- package/commands/learnship/pause-work.md +21 -0
- package/commands/learnship/plan-milestone-gaps.md +22 -0
- package/commands/learnship/plan-phase.md +24 -0
- package/commands/learnship/progress.md +20 -0
- package/commands/learnship/quick.md +27 -0
- package/commands/learnship/reapply-patches.md +21 -0
- package/commands/learnship/release.md +21 -0
- package/commands/learnship/remove-phase.md +23 -0
- package/commands/learnship/research-phase.md +23 -0
- package/commands/learnship/resume-work.md +21 -0
- package/commands/learnship/set-profile.md +21 -0
- package/commands/learnship/settings.md +21 -0
- package/commands/learnship/transition.md +21 -0
- package/commands/learnship/update.md +21 -0
- package/commands/learnship/validate-phase.md +22 -0
- package/commands/learnship/verify-work.md +23 -0
- package/cursor-rules/learnship.mdc +60 -0
- package/gemini-extension.json +10 -0
- package/hooks/hooks-claude.json +15 -0
- package/hooks/hooks-cursor.json +10 -0
- package/hooks/session-start +43 -0
- package/install.sh +254 -0
- package/learnship/references/design-commands.md +119 -0
- package/learnship/references/git-integration.md +249 -0
- package/learnship/references/learning-design.md +142 -0
- package/learnship/references/model-profiles.md +90 -0
- package/learnship/references/planning-config.md +184 -0
- package/learnship/references/questioning.md +162 -0
- package/learnship/references/ui-brand.md +160 -0
- package/learnship/references/verification-patterns.md +608 -0
- package/learnship/templates/agents.md +166 -0
- package/learnship/templates/context.md +72 -0
- package/learnship/templates/plan.md +202 -0
- package/learnship/templates/project.md +184 -0
- package/learnship/templates/requirements.md +231 -0
- package/learnship/templates/state.md +176 -0
- package/learnship/templates/uat.md +80 -0
- package/learnship/workflows/add-phase.md +84 -0
- package/learnship/workflows/add-tests.md +191 -0
- package/learnship/workflows/add-todo.md +108 -0
- package/learnship/workflows/audit-milestone.md +178 -0
- package/learnship/workflows/check-todos.md +138 -0
- package/learnship/workflows/cleanup.md +107 -0
- package/learnship/workflows/complete-milestone.md +191 -0
- package/learnship/workflows/debug.md +245 -0
- package/learnship/workflows/decision-log.md +131 -0
- package/learnship/workflows/diagnose-issues.md +145 -0
- package/learnship/workflows/discovery-phase.md +183 -0
- package/learnship/workflows/discuss-milestone.md +136 -0
- package/learnship/workflows/discuss-phase.md +244 -0
- package/learnship/workflows/execute-phase.md +345 -0
- package/learnship/workflows/execute-plan.md +149 -0
- package/learnship/workflows/health.md +171 -0
- package/learnship/workflows/help.md +153 -0
- package/learnship/workflows/insert-phase.md +106 -0
- package/learnship/workflows/knowledge-base.md +168 -0
- package/learnship/workflows/list-phase-assumptions.md +129 -0
- package/learnship/workflows/ls.md +145 -0
- package/learnship/workflows/map-codebase.md +142 -0
- package/learnship/workflows/milestone-retrospective.md +178 -0
- package/learnship/workflows/new-milestone.md +200 -0
- package/learnship/workflows/new-project.md +340 -0
- package/learnship/workflows/next.md +100 -0
- package/learnship/workflows/pause-work.md +122 -0
- package/learnship/workflows/plan-milestone-gaps.md +160 -0
- package/learnship/workflows/plan-phase.md +288 -0
- package/learnship/workflows/progress.md +118 -0
- package/learnship/workflows/quick.md +256 -0
- package/learnship/workflows/reapply-patches.md +130 -0
- package/learnship/workflows/release.md +217 -0
- package/learnship/workflows/remove-phase.md +128 -0
- package/learnship/workflows/research-phase.md +137 -0
- package/learnship/workflows/resume-work.md +162 -0
- package/learnship/workflows/set-profile.md +78 -0
- package/learnship/workflows/settings.md +204 -0
- package/learnship/workflows/sync-upstream-skills.md +269 -0
- package/learnship/workflows/transition.md +165 -0
- package/learnship/workflows/update.md +166 -0
- package/learnship/workflows/validate-phase.md +174 -0
- package/learnship/workflows/verify-work.md +264 -0
- package/package.json +62 -0
- package/references/design-commands.md +119 -0
- package/references/git-integration.md +249 -0
- package/references/learning-design.md +142 -0
- package/references/model-profiles.md +90 -0
- package/references/planning-config.md +184 -0
- package/references/questioning.md +162 -0
- package/references/ui-brand.md +160 -0
- package/references/verification-patterns.md +608 -0
- package/skills/agentic-learning/SKILL.md +373 -0
- package/skills/agentic-learning/references/either-or-format.md +161 -0
- package/skills/agentic-learning/references/learning-science.md +190 -0
- package/skills/agentic-learning/references/struggle-ladder.md +140 -0
- package/skills/impeccable/SKILL.md +125 -0
- package/skills/impeccable/adapt/SKILL.md +199 -0
- package/skills/impeccable/animate/SKILL.md +190 -0
- package/skills/impeccable/audit/SKILL.md +129 -0
- package/skills/impeccable/bolder/SKILL.md +132 -0
- package/skills/impeccable/clarify/SKILL.md +180 -0
- package/skills/impeccable/colorize/SKILL.md +158 -0
- package/skills/impeccable/critique/SKILL.md +118 -0
- package/skills/impeccable/delight/SKILL.md +317 -0
- package/skills/impeccable/distill/SKILL.md +137 -0
- package/skills/impeccable/extract/SKILL.md +95 -0
- package/skills/impeccable/frontend-design/SKILL.md +127 -0
- package/skills/impeccable/frontend-design/reference/color-and-contrast.md +132 -0
- package/skills/impeccable/frontend-design/reference/interaction-design.md +123 -0
- package/skills/impeccable/frontend-design/reference/motion-design.md +99 -0
- package/skills/impeccable/frontend-design/reference/responsive-design.md +114 -0
- package/skills/impeccable/frontend-design/reference/spatial-design.md +100 -0
- package/skills/impeccable/frontend-design/reference/typography.md +131 -0
- package/skills/impeccable/frontend-design/reference/ux-writing.md +107 -0
- package/skills/impeccable/harden/SKILL.md +358 -0
- package/skills/impeccable/normalize/SKILL.md +67 -0
- package/skills/impeccable/onboard/SKILL.md +243 -0
- package/skills/impeccable/optimize/SKILL.md +269 -0
- package/skills/impeccable/polish/SKILL.md +202 -0
- package/skills/impeccable/quieter/SKILL.md +118 -0
- package/skills/impeccable/teach-impeccable/SKILL.md +69 -0
- package/templates/agents.md +166 -0
- package/templates/config.json +22 -0
- package/templates/context.md +72 -0
- package/templates/plan.md +202 -0
- package/templates/project.md +184 -0
- package/templates/requirements.md +231 -0
- package/templates/state.md +176 -0
- package/templates/uat.md +80 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create fix phases for all gaps found by audit-milestone
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Plan Milestone Gaps
|
|
6
|
+
|
|
7
|
+
Create all phases needed to close gaps identified by `audit-milestone`. One workflow creates all fix phases — no need to run `add-phase` per gap.
|
|
8
|
+
|
|
9
|
+
**Use after:** `audit-milestone` reports `gaps_found`.
|
|
10
|
+
|
|
11
|
+
## Step 1: Load Audit Results
|
|
12
|
+
|
|
13
|
+
Find the most recent audit file:
|
|
14
|
+
```bash
|
|
15
|
+
ls -t .planning/*-MILESTONE-AUDIT.md 2>/dev/null | head -1
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
If no audit file exists or status is `passed`:
|
|
19
|
+
```
|
|
20
|
+
No gaps found. Run audit-milestone first, or all gaps are already closed.
|
|
21
|
+
```
|
|
22
|
+
Stop.
|
|
23
|
+
|
|
24
|
+
Read the audit file and extract structured gaps:
|
|
25
|
+
- `gaps.requirements` — unsatisfied requirement IDs
|
|
26
|
+
- `gaps.integration` — broken cross-phase connections
|
|
27
|
+
- `gaps.flows` — broken E2E user flows
|
|
28
|
+
- `gaps.stubs` — stub/placeholder locations
|
|
29
|
+
|
|
30
|
+
## Step 2: Prioritize Gaps
|
|
31
|
+
|
|
32
|
+
Read `.planning/REQUIREMENTS.md` to get priority for each requirement gap:
|
|
33
|
+
|
|
34
|
+
| Priority | Treatment |
|
|
35
|
+
|----------|-----------|
|
|
36
|
+
| `must` / required | Always include — blocks milestone |
|
|
37
|
+
| `should` / recommended | Include by default |
|
|
38
|
+
| `nice-to-have` / optional | Ask user: include now or defer to next milestone? |
|
|
39
|
+
|
|
40
|
+
For integration and flow gaps: infer priority from the affected requirements.
|
|
41
|
+
|
|
42
|
+
If there are nice-to-have gaps, ask:
|
|
43
|
+
```
|
|
44
|
+
[N] optional gap(s) found. Include in fix phases or defer to next milestone?
|
|
45
|
+
|
|
46
|
+
- [gap description]
|
|
47
|
+
- [gap description]
|
|
48
|
+
|
|
49
|
+
Include (recommended) / Defer all / Choose individually
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Step 3: Group Gaps into Phases
|
|
53
|
+
|
|
54
|
+
Cluster related gaps into logical fix phases:
|
|
55
|
+
|
|
56
|
+
**Grouping rules:**
|
|
57
|
+
- Same affected source phase → combine into one fix phase
|
|
58
|
+
- Same subsystem (auth, API, UI, data layer) → combine
|
|
59
|
+
- Dependency order: fix broken exports before fixing callers
|
|
60
|
+
- Keep phases focused: 2-4 tasks each
|
|
61
|
+
|
|
62
|
+
Example:
|
|
63
|
+
```
|
|
64
|
+
Gap: REQ AUTH-02 unsatisfied (session not persisting)
|
|
65
|
+
Gap: Integration Phase 1→3 (auth token not passed to API calls)
|
|
66
|
+
Gap: Flow "User stays logged in" broken
|
|
67
|
+
|
|
68
|
+
→ Fix Phase: "Wire Auth Session"
|
|
69
|
+
Tasks: persist session, pass token in API calls, handle expiry
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Step 4: Determine Phase Numbers
|
|
73
|
+
|
|
74
|
+
Find the highest existing phase number:
|
|
75
|
+
```bash
|
|
76
|
+
ls .planning/phases/ | grep -E "^[0-9]" | sort -V | tail -1
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Gap closure phases continue from the highest existing phase + 1.
|
|
80
|
+
|
|
81
|
+
## Step 5: Present Gap Closure Plan
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
## Gap Closure Plan
|
|
85
|
+
|
|
86
|
+
Milestone: [VERSION]
|
|
87
|
+
Gaps to close: [N] requirements, [M] integration, [K] flows
|
|
88
|
+
|
|
89
|
+
### Proposed Fix Phases
|
|
90
|
+
|
|
91
|
+
**Phase [N]: [Name]**
|
|
92
|
+
Closes:
|
|
93
|
+
- [REQ-ID]: [description]
|
|
94
|
+
- Integration: [from phase] → [to phase]
|
|
95
|
+
Tasks: [count]
|
|
96
|
+
|
|
97
|
+
**Phase [N+1]: [Name]**
|
|
98
|
+
Closes:
|
|
99
|
+
- [REQ-ID]: [description]
|
|
100
|
+
Tasks: [count]
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
Create these [X] fix phase(s)? (yes / adjust)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Wait for confirmation.
|
|
108
|
+
|
|
109
|
+
## Step 6: Update ROADMAP.md
|
|
110
|
+
|
|
111
|
+
Append each gap closure phase to the current milestone section:
|
|
112
|
+
|
|
113
|
+
```markdown
|
|
114
|
+
## Phase [N]: [Name] *(gap closure)*
|
|
115
|
+
|
|
116
|
+
**Goal:** [what user can do after this phase]
|
|
117
|
+
**Closes:** [REQ-IDs and integration gaps being addressed]
|
|
118
|
+
**Status:** [ ] Not started
|
|
119
|
+
**Depends on:** [prior phase]
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Step 7: Update REQUIREMENTS.md
|
|
123
|
+
|
|
124
|
+
For each unsatisfied requirement being addressed:
|
|
125
|
+
- Update the Phase column to the new gap closure phase number
|
|
126
|
+
- Reset status to `Pending`
|
|
127
|
+
- Change `[x]` back to `[ ]` if it was incorrectly marked complete
|
|
128
|
+
- Update the coverage count at top of REQUIREMENTS.md
|
|
129
|
+
|
|
130
|
+
## Step 8: Create Phase Directories
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
for each gap closure phase:
|
|
134
|
+
mkdir -p ".planning/phases/[NN]-[slug]"
|
|
135
|
+
done
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Step 9: Commit
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
git add .planning/ROADMAP.md .planning/REQUIREMENTS.md .planning/phases/
|
|
142
|
+
git commit -m "docs(roadmap): add gap closure phases [N]-[M] for [VERSION] audit"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Step 10: Present Next Steps
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
149
|
+
learnship ► GAP CLOSURE PHASES CREATED ✓
|
|
150
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
151
|
+
|
|
152
|
+
Phases added: [N] through [M]
|
|
153
|
+
Gaps addressed: [X] requirements, [Y] integration, [Z] flows
|
|
154
|
+
|
|
155
|
+
▶ Next: plan-phase [N] (first gap closure phase)
|
|
156
|
+
|
|
157
|
+
After all gap phases are complete:
|
|
158
|
+
audit-milestone — re-audit to verify all gaps closed
|
|
159
|
+
complete-milestone — archive when audit passes
|
|
160
|
+
```
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Research + create + verify plans for a phase — spawns specialist subagents where supported
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Plan Phase
|
|
6
|
+
|
|
7
|
+
Create executable plans for a roadmap phase. Default flow: Research → Plan → Verify → Done.
|
|
8
|
+
|
|
9
|
+
On platforms with subagent support (Claude Code, OpenCode, Codex), each stage spawns a dedicated specialist agent with its own full context budget. On all other platforms, all stages run sequentially in the same context.
|
|
10
|
+
|
|
11
|
+
**Usage:** `plan-phase [N]` — optionally add `--skip-research` or `--skip-verify`
|
|
12
|
+
|
|
13
|
+
> **Platform note:** Read `parallelization` from `.planning/config.json`. When `true`, researcher/planner/checker each run as a spawned subagent. When `false` (default), all stages run inline using agent persona files.
|
|
14
|
+
|
|
15
|
+
## Step 1: Initialize
|
|
16
|
+
|
|
17
|
+
Read `.planning/ROADMAP.md` and find the requested phase. If no phase number provided, detect the next unplanned phase.
|
|
18
|
+
|
|
19
|
+
If phase not found: stop and show available phases.
|
|
20
|
+
|
|
21
|
+
Read config:
|
|
22
|
+
```bash
|
|
23
|
+
cat .planning/config.json
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Create the phase directory if it doesn't exist:
|
|
27
|
+
```bash
|
|
28
|
+
mkdir -p ".planning/phases/[padded_phase]-[phase_slug]"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Check what already exists:
|
|
32
|
+
```bash
|
|
33
|
+
ls ".planning/phases/[padded_phase]-[phase_slug]/" 2>/dev/null
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Step 1b: Load Decisions Register
|
|
37
|
+
|
|
38
|
+
If `.planning/DECISIONS.md` exists, read it:
|
|
39
|
+
```bash
|
|
40
|
+
cat .planning/DECISIONS.md 2>/dev/null
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Surface any decisions relevant to this phase — the planner must not contradict active decisions without explicit user instruction.
|
|
44
|
+
|
|
45
|
+
## Step 2: Load CONTEXT.md
|
|
46
|
+
|
|
47
|
+
Check if a CONTEXT.md exists for this phase.
|
|
48
|
+
|
|
49
|
+
**If no CONTEXT.md:**
|
|
50
|
+
Ask: "No CONTEXT.md found for Phase [X]. Plans will use research and requirements only — your design preferences won't be included."
|
|
51
|
+
- **Continue without context** → proceed
|
|
52
|
+
- **Run discuss-phase first** → stop, suggest running `discuss-phase [X]` first
|
|
53
|
+
|
|
54
|
+
**If CONTEXT.md exists:** Load it and confirm: "Using phase context from: [path]"
|
|
55
|
+
|
|
56
|
+
## Step 3: Research Phase
|
|
57
|
+
|
|
58
|
+
**Skip if:** `--skip-research` flag, or `workflow.research` is `false` in config, or RESEARCH.md already exists (unless `--research` flag forces re-research).
|
|
59
|
+
|
|
60
|
+
Display:
|
|
61
|
+
```
|
|
62
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
63
|
+
learnship ► RESEARCHING PHASE [X]
|
|
64
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**If `parallelization` is `true` (subagent mode):**
|
|
68
|
+
|
|
69
|
+
Spawn a dedicated researcher agent:
|
|
70
|
+
```
|
|
71
|
+
Task(
|
|
72
|
+
subagent_type="learnship-phase-researcher",
|
|
73
|
+
prompt="
|
|
74
|
+
<objective>
|
|
75
|
+
Research how to implement Phase [phase_number]: [phase_name].
|
|
76
|
+
Answer: 'What do I need to know to PLAN this phase well?'
|
|
77
|
+
Write RESEARCH.md to [phase_dir]/[padded_phase]-RESEARCH.md.
|
|
78
|
+
</objective>
|
|
79
|
+
|
|
80
|
+
<files_to_read>
|
|
81
|
+
- [context_path] (user decisions, if exists)
|
|
82
|
+
- .planning/REQUIREMENTS.md
|
|
83
|
+
- .planning/STATE.md
|
|
84
|
+
</files_to_read>
|
|
85
|
+
"
|
|
86
|
+
)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Wait for agent to complete, then verify RESEARCH.md was written.
|
|
90
|
+
|
|
91
|
+
**If `parallelization` is `false` (sequential mode):**
|
|
92
|
+
|
|
93
|
+
Using `@./agents/researcher.md` as your research persona, investigate how to implement this phase. Read:
|
|
94
|
+
- The CONTEXT.md (user decisions)
|
|
95
|
+
- `.planning/REQUIREMENTS.md` (which requirements this phase covers)
|
|
96
|
+
- `.planning/STATE.md` (project history and decisions)
|
|
97
|
+
- Existing codebase for relevant patterns
|
|
98
|
+
|
|
99
|
+
Write `.planning/phases/[padded_phase]-[phase_slug]/[padded_phase]-RESEARCH.md` with two key sections:
|
|
100
|
+
- **Don't Hand-Roll** — problems with good existing solutions ("Don't build your own JWT — use jose")
|
|
101
|
+
- **Common Pitfalls** — what goes wrong, why, how to avoid it
|
|
102
|
+
|
|
103
|
+
## Step 4: Check Existing Plans
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
ls ".planning/phases/[padded_phase]-[phase_slug]/"*-PLAN.md 2>/dev/null
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
If plans already exist, ask: "Phase [X] already has [N] plan(s)."
|
|
110
|
+
- **Add more plans** → continue to planning
|
|
111
|
+
- **View existing** → show plans, then ask
|
|
112
|
+
- **Replan from scratch** → delete existing plans, continue
|
|
113
|
+
|
|
114
|
+
## Step 5: Create Plans
|
|
115
|
+
|
|
116
|
+
Display:
|
|
117
|
+
```
|
|
118
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
119
|
+
learnship ► PLANNING PHASE [X]
|
|
120
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**If `parallelization` is `true` (subagent mode):**
|
|
124
|
+
|
|
125
|
+
Spawn a dedicated planner agent:
|
|
126
|
+
```
|
|
127
|
+
Task(
|
|
128
|
+
subagent_type="learnship-planner",
|
|
129
|
+
prompt="
|
|
130
|
+
<objective>
|
|
131
|
+
Create 2-4 executable PLAN.md files for Phase [phase_number]: [phase_name].
|
|
132
|
+
Write plans to [phase_dir]/[padded_phase]-NN-PLAN.md.
|
|
133
|
+
</objective>
|
|
134
|
+
|
|
135
|
+
<files_to_read>
|
|
136
|
+
- .planning/STATE.md
|
|
137
|
+
- .planning/ROADMAP.md
|
|
138
|
+
- .planning/REQUIREMENTS.md
|
|
139
|
+
- [context_path] (if exists)
|
|
140
|
+
- [research_path] (if exists)
|
|
141
|
+
- $LEARNSHIP_DIR/templates/plan.md
|
|
142
|
+
</files_to_read>
|
|
143
|
+
"
|
|
144
|
+
)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Wait for agent to complete, then verify PLAN.md files were written.
|
|
148
|
+
|
|
149
|
+
**If `parallelization` is `false` (sequential mode):**
|
|
150
|
+
|
|
151
|
+
Using `@./agents/planner.md` as your planning persona, read all available context:
|
|
152
|
+
- `.planning/STATE.md`
|
|
153
|
+
- `.planning/ROADMAP.md`
|
|
154
|
+
- `.planning/REQUIREMENTS.md`
|
|
155
|
+
- CONTEXT.md (if exists)
|
|
156
|
+
- RESEARCH.md (if exists)
|
|
157
|
+
|
|
158
|
+
Create 2-4 PLAN.md files in the phase directory. Each plan:
|
|
159
|
+
- Covers a single logical unit of work executable in one context window
|
|
160
|
+
- Has YAML frontmatter: `wave`, `depends_on`, `files_modified`, `autonomous`
|
|
161
|
+
- Contains tasks in XML format (see `$LEARNSHIP_DIR/templates/plan.md`)
|
|
162
|
+
- Has `must_haves` section with observable verification criteria
|
|
163
|
+
|
|
164
|
+
**Wave assignment:**
|
|
165
|
+
- Plans with no dependencies → Wave 1 (independent, execute in any order)
|
|
166
|
+
- Plans depending on Wave 1 → Wave 2
|
|
167
|
+
- Plans with cross-plan file conflicts → same wave or sequential
|
|
168
|
+
|
|
169
|
+
**Name plans:** `[padded_phase]-01-PLAN.md`, `[padded_phase]-02-PLAN.md`, etc.
|
|
170
|
+
|
|
171
|
+
## Step 6: Verify Plans
|
|
172
|
+
|
|
173
|
+
**Skip if:** `--skip-verify` flag, or `workflow.plan_check` is `false` in config.
|
|
174
|
+
|
|
175
|
+
Display:
|
|
176
|
+
```
|
|
177
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
178
|
+
learnship ► VERIFYING PLANS
|
|
179
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
**If `parallelization` is `true` (subagent mode):**
|
|
183
|
+
|
|
184
|
+
Spawn a plan-checker agent:
|
|
185
|
+
```
|
|
186
|
+
Task(
|
|
187
|
+
subagent_type="learnship-plan-checker",
|
|
188
|
+
prompt="
|
|
189
|
+
<objective>
|
|
190
|
+
Verify all PLAN.md files in [phase_dir] for Phase [phase_number]: [phase_name].
|
|
191
|
+
Check: phase goal coverage, requirement IDs, CONTEXT.md decisions, task completeness, wave correctness.
|
|
192
|
+
Return: PASS or list of specific issues per plan.
|
|
193
|
+
</objective>
|
|
194
|
+
|
|
195
|
+
<files_to_read>
|
|
196
|
+
- [phase_dir]/*-PLAN.md (all plans)
|
|
197
|
+
- .planning/ROADMAP.md
|
|
198
|
+
- .planning/REQUIREMENTS.md
|
|
199
|
+
- [context_path] (if exists)
|
|
200
|
+
</files_to_read>
|
|
201
|
+
"
|
|
202
|
+
)
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
If issues returned: revise affected plans, re-spawn checker. Max 3 iterations.
|
|
206
|
+
If still failing after 3 iterations: present issues and ask — **Force proceed** / **Provide guidance and retry** / **Abandon**.
|
|
207
|
+
|
|
208
|
+
**If `parallelization` is `false` (sequential mode):**
|
|
209
|
+
|
|
210
|
+
Using `@./agents/verifier.md` as your verification persona, check the plans against:
|
|
211
|
+
- The phase goal from ROADMAP.md
|
|
212
|
+
- All requirement IDs assigned to this phase
|
|
213
|
+
- CONTEXT.md decisions (are they honored?)
|
|
214
|
+
- Task completeness (files, action, verify, done fields)
|
|
215
|
+
- Wave/dependency correctness
|
|
216
|
+
|
|
217
|
+
**Verification loop (max 3 iterations):**
|
|
218
|
+
|
|
219
|
+
If issues found:
|
|
220
|
+
1. List the issues clearly
|
|
221
|
+
2. Revise the affected plans to fix them
|
|
222
|
+
3. Re-verify
|
|
223
|
+
4. If still failing after 3 iterations: present remaining issues and ask — **Force proceed** / **Provide guidance and retry** / **Abandon**
|
|
224
|
+
|
|
225
|
+
If verification passes: proceed.
|
|
226
|
+
|
|
227
|
+
## Step 7: Commit Plans
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
git add ".planning/phases/[padded_phase]-[phase_slug]/"
|
|
231
|
+
git commit -m "docs([padded_phase]): create phase plans"
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
## Step 7b: Update AGENTS.md
|
|
235
|
+
|
|
236
|
+
If `AGENTS.md` exists at the project root, update the `## Current Phase` block:
|
|
237
|
+
|
|
238
|
+
```markdown
|
|
239
|
+
## Current Phase
|
|
240
|
+
|
|
241
|
+
**Milestone:** [VERSION from STATE.md]
|
|
242
|
+
**Phase:** [N] — [Phase Name]
|
|
243
|
+
**Status:** planning
|
|
244
|
+
**Last updated:** [today's date]
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
git add AGENTS.md
|
|
249
|
+
git commit -m "docs: update AGENTS.md — planning phase [N]"
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Step 8: Present Status
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
256
|
+
learnship ► PHASE [X] PLANNED ✓
|
|
257
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
258
|
+
|
|
259
|
+
**Phase [X]: [Name]** — [N] plan(s) in [M] wave(s)
|
|
260
|
+
|
|
261
|
+
| Wave | Plans | What it builds |
|
|
262
|
+
|------|-------|----------------|
|
|
263
|
+
| 1 | 01, 02 | [objectives] |
|
|
264
|
+
| 2 | 03 | [objective] |
|
|
265
|
+
|
|
266
|
+
Research: [Completed | Used existing | Skipped]
|
|
267
|
+
Verification: [Passed | Passed with override | Skipped]
|
|
268
|
+
|
|
269
|
+
▶ Next: execute-phase [X]
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Learning Checkpoint
|
|
275
|
+
|
|
276
|
+
Read `learning_mode` from `.planning/config.json`.
|
|
277
|
+
|
|
278
|
+
**If `auto`:** Offer based on context:
|
|
279
|
+
|
|
280
|
+
> 💡 **Learning moment:** Plans are ready. Before you execute, make sure the domain is solid:
|
|
281
|
+
>
|
|
282
|
+
> `@agentic-learning explain-first [phase topic]` — Explain the approach back in your own words before touching code. Gaps in the explanation reveal gaps in the mental model — before they become bugs.
|
|
283
|
+
>
|
|
284
|
+
> `@agentic-learning cognitive-load [topic]` — If the scope feels overwhelming, decompose it into working-memory-sized steps first.
|
|
285
|
+
>
|
|
286
|
+
> `@agentic-learning quiz [phase topic]` — Quick active recall on the domain concepts this phase covers. Especially useful if the research surfaced unfamiliar territory.
|
|
287
|
+
|
|
288
|
+
**If `manual`:** Add quietly: *"Tip: `@agentic-learning explain-first [topic]` to validate your mental model before executing."*
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Show project progress, current position, and what to do next
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Progress
|
|
6
|
+
|
|
7
|
+
Check where you are in the project, what's been done, and what comes next.
|
|
8
|
+
|
|
9
|
+
## Step 1: Check for Planning Structure
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
test -f .planning/PROJECT.md && echo "EXISTS" || echo "MISSING"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
If `.planning/` doesn't exist: stop — run `new-project` to initialize.
|
|
16
|
+
|
|
17
|
+
## Step 2: Load Context
|
|
18
|
+
|
|
19
|
+
Read the key state files:
|
|
20
|
+
```bash
|
|
21
|
+
cat .planning/STATE.md
|
|
22
|
+
cat .planning/ROADMAP.md
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Find the 2-3 most recent SUMMARY.md files:
|
|
26
|
+
```bash
|
|
27
|
+
find .planning -name "*-SUMMARY.md" -type f 2>/dev/null | xargs ls -t 2>/dev/null | head -3
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Read each to extract what was recently accomplished (one-liner per plan).
|
|
31
|
+
|
|
32
|
+
## Step 3: Analyze Phase Status
|
|
33
|
+
|
|
34
|
+
For the current phase directory, count:
|
|
35
|
+
```bash
|
|
36
|
+
ls ".planning/phases/[current_phase_dir]/"*-PLAN.md 2>/dev/null | wc -l
|
|
37
|
+
ls ".planning/phases/[current_phase_dir]/"*-SUMMARY.md 2>/dev/null | wc -l
|
|
38
|
+
ls ".planning/phases/[current_phase_dir]/"*-UAT.md 2>/dev/null | wc -l
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Check for UAT files with gaps (issues found during testing):
|
|
42
|
+
```bash
|
|
43
|
+
grep -l "status: diagnosed" .planning/phases/[current_phase_dir]/*-UAT.md 2>/dev/null
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Check for a `.continue-here.md` handoff file:
|
|
47
|
+
```bash
|
|
48
|
+
find .planning/phases -name ".continue-here.md" 2>/dev/null
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Step 4: Report Status
|
|
52
|
+
|
|
53
|
+
Calculate overall progress: count completed phases / total phases.
|
|
54
|
+
|
|
55
|
+
Display:
|
|
56
|
+
```
|
|
57
|
+
# [Project Name]
|
|
58
|
+
|
|
59
|
+
**Progress:** [████████░░] [X]% — Phase [N] of [total]
|
|
60
|
+
|
|
61
|
+
## Recent Work
|
|
62
|
+
- [Phase, Plan]: [what was accomplished — 1 line]
|
|
63
|
+
- [Phase, Plan]: [what was accomplished — 1 line]
|
|
64
|
+
|
|
65
|
+
## Current Position
|
|
66
|
+
Phase [N] of [total]: [phase-name]
|
|
67
|
+
Status: [planned | in-progress | complete]
|
|
68
|
+
Context: [✓ CONTEXT.md exists | — not yet]
|
|
69
|
+
|
|
70
|
+
## Key Decisions
|
|
71
|
+
- [Key decision from STATE.md]
|
|
72
|
+
|
|
73
|
+
## Blockers / Concerns
|
|
74
|
+
- [Any blockers from STATE.md, or "None"]
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Step 5: Route to Next Action
|
|
78
|
+
|
|
79
|
+
**Check conditions in order:**
|
|
80
|
+
|
|
81
|
+
1. **`.continue-here.md` exists** → mid-plan handoff found
|
|
82
|
+
```
|
|
83
|
+
⚠️ Handoff detected: .planning/phases/[phase]/.continue-here.md
|
|
84
|
+
▶ Next: resume-work
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
2. **UAT gaps exist (status: diagnosed)** → fix plans needed
|
|
88
|
+
```
|
|
89
|
+
⚠️ UAT Gaps Found in Phase [X]
|
|
90
|
+
▶ Next: plan-phase [X] (gap closure mode)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
3. **Plans exist but summaries < plans** → unfinished execution
|
|
94
|
+
```
|
|
95
|
+
## ▶ Next Up
|
|
96
|
+
**Phase [X]-[plan]: [Plan Name]** — [objective]
|
|
97
|
+
▶ Next: execute-phase [X]
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
4. **Plans = 0** → phase not yet planned
|
|
101
|
+
- If CONTEXT.md exists: `▶ Next: plan-phase [X]`
|
|
102
|
+
- If no CONTEXT.md: `▶ Next: discuss-phase [X]` (recommended) or `plan-phase [X]`
|
|
103
|
+
|
|
104
|
+
5. **Summaries = plans AND plans > 0** → phase complete
|
|
105
|
+
- If more phases remain: `▶ Next: discuss-phase [X+1]`
|
|
106
|
+
- If all phases done: `▶ Next: audit-milestone`
|
|
107
|
+
|
|
108
|
+
After presenting the recommended next step, ask:
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
▶ Next: [workflow-name] [args if any]
|
|
112
|
+
|
|
113
|
+
Run it now? Type "yes" to proceed, or just keep chatting.
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
If the user responds with "yes", "go", "do it", "run it", or "proceed" — immediately invoke that workflow.
|
|
117
|
+
|
|
118
|
+
For full auto-pilot with no prompt, use `/next` instead.
|