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,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Remove a planned (not yet executed) phase and renumber subsequent phases
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Remove Phase
|
|
6
|
+
|
|
7
|
+
Remove a future phase from the roadmap, delete its directory, and renumber subsequent phases to maintain a clean linear sequence.
|
|
8
|
+
|
|
9
|
+
**Usage:** `remove-phase [N]`
|
|
10
|
+
|
|
11
|
+
**Only future phases can be removed.** Completed phases (with SUMMARY.md files) require explicit confirmation. The git commit is the historical record of what was removed.
|
|
12
|
+
|
|
13
|
+
## Step 1: Parse and Validate
|
|
14
|
+
|
|
15
|
+
Extract the phase number from arguments. If missing:
|
|
16
|
+
```
|
|
17
|
+
Usage: remove-phase [N]
|
|
18
|
+
Example: remove-phase 7
|
|
19
|
+
|
|
20
|
+
[N] = phase number to remove (integer or decimal like 3.1)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Check roadmap exists:
|
|
24
|
+
```bash
|
|
25
|
+
test -f .planning/ROADMAP.md && echo "OK" || echo "MISSING"
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Step 2: Verify the Phase is Future
|
|
29
|
+
|
|
30
|
+
Read `.planning/STATE.md` to find the current phase number.
|
|
31
|
+
|
|
32
|
+
Read `.planning/ROADMAP.md` to confirm phase `[N]` exists.
|
|
33
|
+
|
|
34
|
+
If target phase ≤ current phase:
|
|
35
|
+
```
|
|
36
|
+
Cannot remove Phase [N].
|
|
37
|
+
|
|
38
|
+
Only future (unstarted) phases can be removed.
|
|
39
|
+
Current phase: [current]
|
|
40
|
+
Phase [N] is current or already completed.
|
|
41
|
+
|
|
42
|
+
To undo completed work: use git revert on the phase commits.
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Stop.
|
|
46
|
+
|
|
47
|
+
## Step 3: Check for Executed Work
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
ls ".planning/phases/[NN]-[slug]/"*-SUMMARY.md 2>/dev/null
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
If SUMMARY.md files exist, the phase has partially executed content. Warn:
|
|
54
|
+
```
|
|
55
|
+
⚠️ Phase [N] has [M] executed plan(s) with SUMMARY.md files.
|
|
56
|
+
Removing it will delete this work from the roadmap (git history preserves the commits).
|
|
57
|
+
|
|
58
|
+
Are you sure?
|
|
59
|
+
- Yes, remove it anyway
|
|
60
|
+
- No, keep it
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Wait for confirmation before proceeding.
|
|
64
|
+
|
|
65
|
+
## Step 4: Confirm Removal
|
|
66
|
+
|
|
67
|
+
Show what will happen:
|
|
68
|
+
```
|
|
69
|
+
Removing Phase [N]: [Name]
|
|
70
|
+
|
|
71
|
+
This will:
|
|
72
|
+
- Delete: .planning/phases/[NN]-[slug]/
|
|
73
|
+
- Renumber: Phases [N+1] through [max] → [N] through [max-1]
|
|
74
|
+
- Update: ROADMAP.md and STATE.md
|
|
75
|
+
|
|
76
|
+
Proceed? (yes/no)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Wait for explicit confirmation.
|
|
80
|
+
|
|
81
|
+
## Step 5: Execute Removal
|
|
82
|
+
|
|
83
|
+
**Delete the phase directory:**
|
|
84
|
+
```bash
|
|
85
|
+
rm -rf ".planning/phases/[NN]-[slug]/"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Renumber subsequent phases:**
|
|
89
|
+
|
|
90
|
+
For each phase directory after `[N]` (in reverse order to avoid conflicts):
|
|
91
|
+
```bash
|
|
92
|
+
# Example: phase 08 → 07, 09 → 08, etc.
|
|
93
|
+
for dir in $(ls .planning/phases/ | grep -E "^[0-9]" | sort -rV); do
|
|
94
|
+
# extract number, if > removed phase number, decrement and rename
|
|
95
|
+
done
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Also rename files inside each renamed directory (PLAN.md, SUMMARY.md, etc. that start with the old phase number).
|
|
99
|
+
|
|
100
|
+
**Update ROADMAP.md:**
|
|
101
|
+
- Remove the phase `[N]` section entirely
|
|
102
|
+
- Update all subsequent phase numbers and any `Depends on` references
|
|
103
|
+
|
|
104
|
+
**Update STATE.md:**
|
|
105
|
+
- Decrement total phase count
|
|
106
|
+
- Add to Roadmap Evolution: `- Phase [N] ([name]) removed`
|
|
107
|
+
|
|
108
|
+
## Step 6: Commit
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
git add -A
|
|
112
|
+
git commit -m "chore(roadmap): remove phase [N] ([original-name])"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
The commit message preserves the historical record.
|
|
116
|
+
|
|
117
|
+
## Step 7: Confirm
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
Phase [N] ([original-name]) removed.
|
|
121
|
+
|
|
122
|
+
Changes made:
|
|
123
|
+
- Deleted: .planning/phases/[NN]-[slug]/
|
|
124
|
+
- Renumbered: [M] phases
|
|
125
|
+
- Updated: ROADMAP.md, STATE.md
|
|
126
|
+
|
|
127
|
+
▶ Next: progress (to see updated roadmap)
|
|
128
|
+
```
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Deep-dive domain research for a phase without immediately creating plans
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Research Phase
|
|
6
|
+
|
|
7
|
+
Run standalone domain research for a phase. Useful when the domain is unfamiliar, the phase is complex, or you want to explore options before committing to a planning approach.
|
|
8
|
+
|
|
9
|
+
**Normally you don't need this** — `plan-phase` runs research automatically. Use `research-phase` when you want research results to review and discuss before planning starts.
|
|
10
|
+
|
|
11
|
+
**Usage:** `research-phase [N]`
|
|
12
|
+
|
|
13
|
+
## Step 1: Validate Phase
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
test -f .planning/ROADMAP.md && echo "OK" || echo "MISSING"
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Find phase `[N]` in ROADMAP.md:
|
|
20
|
+
```bash
|
|
21
|
+
grep -E "Phase [N]:" .planning/ROADMAP.md
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
If not found: list available phases and stop.
|
|
25
|
+
|
|
26
|
+
## Step 2: Check Existing Research
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
ls ".planning/phases/"*"/"*"-RESEARCH.md" 2>/dev/null | grep "^[N]-\|/[N][^0-9]"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
If RESEARCH.md already exists for this phase:
|
|
33
|
+
```
|
|
34
|
+
Research already exists: .planning/phases/[phase-dir]/[N]-RESEARCH.md
|
|
35
|
+
|
|
36
|
+
Options:
|
|
37
|
+
1. View existing research
|
|
38
|
+
2. Re-run and overwrite
|
|
39
|
+
3. Skip — use existing
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Wait for choice.
|
|
43
|
+
|
|
44
|
+
## Step 3: Load Context
|
|
45
|
+
|
|
46
|
+
Read all available phase context:
|
|
47
|
+
```bash
|
|
48
|
+
cat .planning/ROADMAP.md # phase goal and requirements
|
|
49
|
+
cat .planning/REQUIREMENTS.md # requirement IDs and acceptance criteria
|
|
50
|
+
cat .planning/STATE.md # project history and past decisions
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Check for CONTEXT.md (user decisions from discuss-phase):
|
|
54
|
+
```bash
|
|
55
|
+
ls ".planning/phases/[padded_phase]-[slug]/"*"-CONTEXT.md" 2>/dev/null
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
If CONTEXT.md exists, read it — user decisions shape what to research.
|
|
59
|
+
|
|
60
|
+
## Step 4: Run Research
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
64
|
+
learnship ► RESEARCHING PHASE [N]
|
|
65
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Using `@./agents/researcher.md` as your research persona in **phase research mode**:
|
|
69
|
+
|
|
70
|
+
Read all loaded context, then investigate how to implement this phase. Write `.planning/phases/[padded_phase]-[slug]/[padded_phase]-RESEARCH.md` with two sections:
|
|
71
|
+
|
|
72
|
+
**Don't Hand-Roll** — problems that have battle-tested solutions:
|
|
73
|
+
```
|
|
74
|
+
- Problem: [what looks custom]
|
|
75
|
+
Solution: Use [library/approach]
|
|
76
|
+
Why: [specific reason — ESM compat, maintenance, type safety, etc.]
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Common Pitfalls** — what goes wrong in this type of phase:
|
|
80
|
+
```
|
|
81
|
+
- Pitfall: [what fails]
|
|
82
|
+
Warning sign: [what to look for]
|
|
83
|
+
Prevention: [how to avoid]
|
|
84
|
+
Phase impact: [when/where to address this]
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Step 5: Commit Research
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
git add ".planning/phases/[padded_phase]-[slug]/[padded_phase]-RESEARCH.md"
|
|
91
|
+
git commit -m "docs([padded_phase]): phase research"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Step 6: Present Results
|
|
95
|
+
|
|
96
|
+
Display key findings:
|
|
97
|
+
```
|
|
98
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
99
|
+
learnship ► RESEARCH COMPLETE ✓
|
|
100
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
101
|
+
|
|
102
|
+
Phase [N]: [Name]
|
|
103
|
+
|
|
104
|
+
Don't hand-roll: [N items]
|
|
105
|
+
Pitfalls: [N items]
|
|
106
|
+
|
|
107
|
+
Key findings:
|
|
108
|
+
- [Most important recommendation]
|
|
109
|
+
- [Second most important]
|
|
110
|
+
- [Third]
|
|
111
|
+
|
|
112
|
+
File: .planning/phases/[phase-dir]/[N]-RESEARCH.md
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Ask: "What would you like to do next?"
|
|
116
|
+
- **Plan this phase** → `plan-phase [N]` (research is already done, will be skipped)
|
|
117
|
+
- **Discuss first** → `discuss-phase [N]` → then plan
|
|
118
|
+
- **Read full research** → show the research file
|
|
119
|
+
- **Done for now** → stop
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Learning Checkpoint
|
|
124
|
+
|
|
125
|
+
Read `learning_mode` from `.planning/config.json`.
|
|
126
|
+
|
|
127
|
+
**If `auto`:** Offer all three — new research is the best time to use all of them:
|
|
128
|
+
|
|
129
|
+
> 💡 **Learning moment:** Research complete — new domain concepts are fresh. Lock them in before they fade:
|
|
130
|
+
>
|
|
131
|
+
> `@agentic-learning learn [phase topic]` — Active retrieval on the key concepts from this research. You explain first, gaps get filled. This is how domain knowledge becomes intuition, not just notes.
|
|
132
|
+
>
|
|
133
|
+
> `@agentic-learning explain-first [phase topic]` — Explain the domain back in your own words before planning starts. If you can’t explain it clearly, the plans won’t be clear either.
|
|
134
|
+
>
|
|
135
|
+
> `@agentic-learning quiz [phase topic]` — Test yourself on what the research surfaced. Retrieval practice now means fewer surprises during execution.
|
|
136
|
+
|
|
137
|
+
**If `manual`:** Add quietly: *"Tip: `@agentic-learning learn [topic]` · `@agentic-learning explain-first [topic]` to consolidate the research before planning."*
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Restore full project context and continue from where you left off — use when returning after a break, or when you say "continue", "where were we", "pick up where we left off", or "what were we doing"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Resume Work
|
|
6
|
+
|
|
7
|
+
Instantly restore full project context. Use when starting a new session, returning after time away, or when you said "continue" or "where were we."
|
|
8
|
+
|
|
9
|
+
## Step 1: Check Planning Structure
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
test -f .planning/STATE.md && echo "HAS_STATE" || echo "NO_STATE"
|
|
13
|
+
test -f .planning/PROJECT.md && echo "HAS_PROJECT" || echo "NO_PROJECT"
|
|
14
|
+
test -f .planning/ROADMAP.md && echo "HAS_ROADMAP" || echo "NO_ROADMAP"
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
If nothing exists: stop — run `new-project` to start a project.
|
|
18
|
+
|
|
19
|
+
If STATE.md missing but PROJECT.md + ROADMAP.md exist: reconstruct STATE.md (see Reconstruction section below).
|
|
20
|
+
|
|
21
|
+
## Step 2: Load State
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
cat .planning/STATE.md
|
|
25
|
+
cat .planning/PROJECT.md
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Extract:
|
|
29
|
+
- **What we're building:** core value and current focus from PROJECT.md
|
|
30
|
+
- **Current position:** Phase X of Y, Plan A of B, status
|
|
31
|
+
- **Recent decisions:** key decisions affecting current work
|
|
32
|
+
- **Blockers/concerns:** issues carried forward
|
|
33
|
+
- **Last activity:** when and what
|
|
34
|
+
|
|
35
|
+
## Step 3: Check for Incomplete Work
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Check for continue-here handoff files
|
|
39
|
+
find .planning/phases -name ".continue-here.md" -type f 2>/dev/null
|
|
40
|
+
|
|
41
|
+
# Check for plans without matching summaries (incomplete execution)
|
|
42
|
+
for plan in .planning/phases/*/*-PLAN.md; do
|
|
43
|
+
base="${plan%-PLAN.md}"
|
|
44
|
+
summary="${base}-SUMMARY.md"
|
|
45
|
+
[ ! -f "$summary" ] && echo "Incomplete: $plan"
|
|
46
|
+
done 2>/dev/null
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Step 4: Present Status
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
53
|
+
║ PROJECT STATUS ║
|
|
54
|
+
╠══════════════════════════════════════════════════════════════╣
|
|
55
|
+
║ Building: [one-liner from PROJECT.md] ║
|
|
56
|
+
║ ║
|
|
57
|
+
║ Phase: [X] of [Y] — [Phase name] ║
|
|
58
|
+
║ Plan: [A] of [B] — [Status] ║
|
|
59
|
+
║ Progress: [████████░░] [N]% ║
|
|
60
|
+
║ ║
|
|
61
|
+
║ Last activity: [date] — [what happened] ║
|
|
62
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
If `.continue-here.md` found:
|
|
66
|
+
```
|
|
67
|
+
⚠️ Mid-plan handoff detected:
|
|
68
|
+
File: .planning/phases/[phase]/.continue-here.md
|
|
69
|
+
Task: [X] of [Y]
|
|
70
|
+
[brief description of where we left off]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
If incomplete plan (PLAN without SUMMARY):
|
|
74
|
+
```
|
|
75
|
+
⚠️ Incomplete execution:
|
|
76
|
+
Plan: [plan file]
|
|
77
|
+
Execution started but no SUMMARY found.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
If blockers exist:
|
|
81
|
+
```
|
|
82
|
+
⚠️ Carried concerns:
|
|
83
|
+
- [blocker]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Step 5: Determine Next Action
|
|
87
|
+
|
|
88
|
+
**Priority order:**
|
|
89
|
+
|
|
90
|
+
1. **`.continue-here.md` exists** → read it fully, resume from `<next_action>`
|
|
91
|
+
- Display: "Resuming from: [next_action from file]"
|
|
92
|
+
- Delete the continue file after loading: `rm .planning/phases/[phase]/.continue-here.md`
|
|
93
|
+
- Commit the deletion: `git add -A && git commit -m "chore: consume resume handoff"`
|
|
94
|
+
|
|
95
|
+
2. **Incomplete plan (PLAN without SUMMARY)** → offer to continue execution
|
|
96
|
+
- Primary: `execute-phase [X]`
|
|
97
|
+
- Secondary: Review the plan first
|
|
98
|
+
|
|
99
|
+
3. **Current phase ready to execute (plans exist)** → `execute-phase [X]`
|
|
100
|
+
|
|
101
|
+
4. **Current phase needs planning** → check for CONTEXT.md
|
|
102
|
+
- CONTEXT.md exists: `plan-phase [X]`
|
|
103
|
+
- No CONTEXT.md: `discuss-phase [X]` (recommended)
|
|
104
|
+
|
|
105
|
+
5. **Current phase done, next phase up** → `discuss-phase [X+1]`
|
|
106
|
+
|
|
107
|
+
6. **All phases done** → `complete-milestone`
|
|
108
|
+
|
|
109
|
+
Present the primary recommended action clearly:
|
|
110
|
+
```
|
|
111
|
+
▶ Recommended next step: [workflow name] [phase number if applicable]
|
|
112
|
+
|
|
113
|
+
Also available:
|
|
114
|
+
- progress — full status overview
|
|
115
|
+
- [other relevant options]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Step 6: Update Session Continuity
|
|
119
|
+
|
|
120
|
+
Update STATE.md session section:
|
|
121
|
+
```markdown
|
|
122
|
+
## Session Continuity
|
|
123
|
+
|
|
124
|
+
Last session: [now]
|
|
125
|
+
Stopped at: Session resumed
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
git add .planning/STATE.md
|
|
130
|
+
git commit -m "docs(state): session resumed"
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Reconstruction (when STATE.md is missing)
|
|
136
|
+
|
|
137
|
+
If STATE.md is missing but other artifacts exist:
|
|
138
|
+
|
|
139
|
+
"STATE.md missing. Reconstructing from artifacts..."
|
|
140
|
+
|
|
141
|
+
1. Read `PROJECT.md` → extract "What This Is" and Core Value
|
|
142
|
+
2. Read `ROADMAP.md` → find all phases, identify current position (last phase with incomplete work)
|
|
143
|
+
3. Scan `*-SUMMARY.md` files → extract decisions and concerns
|
|
144
|
+
4. Check for `.continue-here.md` files → session continuity
|
|
145
|
+
|
|
146
|
+
Write a reconstructed `.planning/STATE.md` and proceed normally.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Learning Checkpoint
|
|
151
|
+
|
|
152
|
+
Read `learning_mode` from `.planning/config.json`.
|
|
153
|
+
|
|
154
|
+
**If `auto` and time since last session is more than 1 day (check `Last session` in STATE.md):**
|
|
155
|
+
|
|
156
|
+
> 💡 **Back after a break:** Before diving in, warm up the mental model:
|
|
157
|
+
>
|
|
158
|
+
> `@agentic-learning quiz [current phase topic]` — Quick active recall on what was being built. Surfaces what’s faded since the last session before it shows up as a bug.
|
|
159
|
+
>
|
|
160
|
+
> `@agentic-learning space` — If `docs/revisit.md` exists, review what was scheduled for today.
|
|
161
|
+
|
|
162
|
+
**If `manual`:** Add quietly: *"Tip: `@agentic-learning quiz [topic]` to warm up before resuming."*
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Quick model profile switch without opening full settings
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Set Profile
|
|
6
|
+
|
|
7
|
+
One-step model profile switch. Edits `.planning/config.json` without opening the full settings menu.
|
|
8
|
+
|
|
9
|
+
**Usage:** `set-profile [quality|balanced|budget]`
|
|
10
|
+
|
|
11
|
+
## Step 1: Parse Argument
|
|
12
|
+
|
|
13
|
+
If no argument provided:
|
|
14
|
+
```
|
|
15
|
+
Usage: set-profile [profile]
|
|
16
|
+
|
|
17
|
+
Profiles:
|
|
18
|
+
quality — Opus for all agents (highest quality, highest cost)
|
|
19
|
+
balanced — Opus for planning, Sonnet for execution (recommended)
|
|
20
|
+
budget — Sonnet for writing, Haiku for research/verification (lowest cost)
|
|
21
|
+
|
|
22
|
+
Current profile: [read from .planning/config.json]
|
|
23
|
+
```
|
|
24
|
+
Stop.
|
|
25
|
+
|
|
26
|
+
## Step 2: Validate
|
|
27
|
+
|
|
28
|
+
If argument is not one of `quality`, `balanced`, `budget`:
|
|
29
|
+
```
|
|
30
|
+
Unknown profile: [argument]
|
|
31
|
+
Valid options: quality, balanced, budget
|
|
32
|
+
```
|
|
33
|
+
Stop.
|
|
34
|
+
|
|
35
|
+
## Step 3: Read Current Config
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
cat .planning/config.json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Note the current `model_profile` value.
|
|
42
|
+
|
|
43
|
+
If already set to the requested profile:
|
|
44
|
+
```
|
|
45
|
+
Profile is already set to [profile]. No change needed.
|
|
46
|
+
```
|
|
47
|
+
Stop.
|
|
48
|
+
|
|
49
|
+
## Step 4: Update Config
|
|
50
|
+
|
|
51
|
+
Update the `model_profile` field in `.planning/config.json`:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
python3 -c "
|
|
55
|
+
import json
|
|
56
|
+
cfg = json.load(open('.planning/config.json'))
|
|
57
|
+
cfg['model_profile'] = '[profile]'
|
|
58
|
+
json.dump(cfg, open('.planning/config.json', 'w'), indent=2)
|
|
59
|
+
print('Updated.')
|
|
60
|
+
"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Step 5: Confirm
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
git add .planning/config.json
|
|
67
|
+
git commit -m "chore(config): set model profile to [profile]"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
Profile updated: [old] → [profile]
|
|
72
|
+
|
|
73
|
+
[quality] — Opus agents for all tasks. Use for production milestones.
|
|
74
|
+
[balanced] — Opus for planning, Sonnet for execution. Best default.
|
|
75
|
+
[budget] — Sonnet/Haiku. Use for prototyping or exploration.
|
|
76
|
+
|
|
77
|
+
Takes effect immediately on the next workflow run.
|
|
78
|
+
```
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Interactive settings editor for .planning/config.json
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Settings
|
|
6
|
+
|
|
7
|
+
Interactive configuration editor for the current project. Updates `.planning/config.json` with your preferences.
|
|
8
|
+
|
|
9
|
+
**Usage:** `settings`
|
|
10
|
+
|
|
11
|
+
## Step 1: Ensure Config Exists
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
test -f .planning/config.json && echo "exists" || echo "missing"
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
If missing, create from template:
|
|
18
|
+
```bash
|
|
19
|
+
cp templates/config.json .planning/config.json 2>/dev/null || cat > .planning/config.json << 'EOF'
|
|
20
|
+
{
|
|
21
|
+
"mode": "yolo",
|
|
22
|
+
"granularity": "standard",
|
|
23
|
+
"model_profile": "balanced",
|
|
24
|
+
"learning_mode": "auto",
|
|
25
|
+
"planning": {
|
|
26
|
+
"commit_docs": true,
|
|
27
|
+
"search_gitignored": false
|
|
28
|
+
},
|
|
29
|
+
"workflow": {
|
|
30
|
+
"research": true,
|
|
31
|
+
"plan_check": true,
|
|
32
|
+
"verifier": true,
|
|
33
|
+
"nyquist_validation": true
|
|
34
|
+
},
|
|
35
|
+
"git": {
|
|
36
|
+
"branching_strategy": "none",
|
|
37
|
+
"phase_branch_template": "phase-{phase}-{slug}",
|
|
38
|
+
"milestone_branch_template": "{milestone}-{slug}"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
EOF
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Step 2: Read Current Config
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
cat .planning/config.json
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Parse current values to use as defaults in the prompts.
|
|
51
|
+
|
|
52
|
+
## Step 3: Present Settings Menu
|
|
53
|
+
|
|
54
|
+
Display current settings and ask what to change:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
58
|
+
learnship ► SETTINGS
|
|
59
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
60
|
+
|
|
61
|
+
Current configuration:
|
|
62
|
+
|
|
63
|
+
[1] Mode: [current] (yolo | interactive)
|
|
64
|
+
[2] Granularity: [current] (coarse | standard | fine)
|
|
65
|
+
[3] Model profile: [current] (quality | balanced | budget)
|
|
66
|
+
[4] Learning mode: [current] (auto | manual)
|
|
67
|
+
[5] Research agent: [on/off]
|
|
68
|
+
[6] Plan check agent: [on/off]
|
|
69
|
+
[7] Verifier agent: [on/off]
|
|
70
|
+
[8] Nyquist validation:[on/off]
|
|
71
|
+
[9] Git branching: [current] (none | phase | milestone)
|
|
72
|
+
[10] Commit docs: [on/off]
|
|
73
|
+
|
|
74
|
+
Enter a number to change a setting, or 'done' to save.
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Wait for selection. Repeat until user types "done".
|
|
78
|
+
|
|
79
|
+
## Step 4: Change Selected Setting
|
|
80
|
+
|
|
81
|
+
For each selected setting, explain the options and ask for the new value:
|
|
82
|
+
|
|
83
|
+
**[1] Mode:**
|
|
84
|
+
```
|
|
85
|
+
Mode controls how much Cascade auto-approves vs. asks you:
|
|
86
|
+
- yolo: auto-approves decisions, fastest flow
|
|
87
|
+
- interactive: confirms at each step, more control
|
|
88
|
+
|
|
89
|
+
Current: [current]. New value?
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**[2] Granularity:**
|
|
93
|
+
```
|
|
94
|
+
Granularity controls phase size:
|
|
95
|
+
- coarse: 3-5 phases (broad strokes)
|
|
96
|
+
- standard: 5-8 phases (default)
|
|
97
|
+
- fine: 8-12 phases (more granular, better for complex projects)
|
|
98
|
+
|
|
99
|
+
Current: [current]. New value?
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**[3] Model profile:**
|
|
103
|
+
```
|
|
104
|
+
Model profile controls which model tier each agent uses:
|
|
105
|
+
- quality: Opus for all decision-making agents (highest cost, best results)
|
|
106
|
+
- balanced: Opus for planning, Sonnet for execution (default — good balance)
|
|
107
|
+
- budget: Sonnet for writing code, Haiku for research/verification (lowest cost)
|
|
108
|
+
|
|
109
|
+
Current: [current]. New value?
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**[4] Learning mode:**
|
|
113
|
+
```
|
|
114
|
+
Learning mode controls when learning actions are offered:
|
|
115
|
+
- auto: offered automatically at workflow checkpoints (default)
|
|
116
|
+
- manual: only when you explicitly invoke @agentic-learning
|
|
117
|
+
|
|
118
|
+
Current: [current]. New value?
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**[5-7] Agent toggles (research / plan_check / verifier):**
|
|
122
|
+
```
|
|
123
|
+
[Research / Plan check / Verifier] agent:
|
|
124
|
+
- on: agent runs (recommended for production work)
|
|
125
|
+
- off: skip this agent (faster, for familiar domains or prototyping)
|
|
126
|
+
|
|
127
|
+
Current: [current]. New value? (on/off)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**[8] Nyquist validation:**
|
|
131
|
+
```
|
|
132
|
+
Nyquist validation maps automated test coverage to requirements during plan-phase.
|
|
133
|
+
- on: plans include automated verify commands per task (recommended)
|
|
134
|
+
- off: skip validation research (good for rapid prototyping)
|
|
135
|
+
|
|
136
|
+
Current: [current]. New value? (on/off)
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**[9] Git branching:**
|
|
140
|
+
```
|
|
141
|
+
Branching strategy:
|
|
142
|
+
- none: no automatic branches (good for solo work)
|
|
143
|
+
- phase: create a branch at each execute-phase (good for code review per phase)
|
|
144
|
+
- milestone: one branch for all phases in a milestone (good for release branches)
|
|
145
|
+
|
|
146
|
+
Current: [current]. New value?
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**[10] Commit docs:**
|
|
150
|
+
```
|
|
151
|
+
Whether .planning/ files are committed to git:
|
|
152
|
+
- on: planning artifacts tracked in git (default)
|
|
153
|
+
- off: keep .planning/ local only (add to .gitignore for privacy)
|
|
154
|
+
|
|
155
|
+
Current: [current]. New value? (on/off)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Step 5: Save Config
|
|
159
|
+
|
|
160
|
+
After user types "done", write the updated config:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
cat > .planning/config.json << EOF
|
|
164
|
+
{
|
|
165
|
+
"mode": "[value]",
|
|
166
|
+
"granularity": "[value]",
|
|
167
|
+
"model_profile": "[value]",
|
|
168
|
+
"learning_mode": "[value]",
|
|
169
|
+
"planning": {
|
|
170
|
+
"commit_docs": [true/false],
|
|
171
|
+
"search_gitignored": false
|
|
172
|
+
},
|
|
173
|
+
"workflow": {
|
|
174
|
+
"research": [true/false],
|
|
175
|
+
"plan_check": [true/false],
|
|
176
|
+
"verifier": [true/false],
|
|
177
|
+
"nyquist_validation": [true/false]
|
|
178
|
+
},
|
|
179
|
+
"git": {
|
|
180
|
+
"branching_strategy": "[value]",
|
|
181
|
+
"phase_branch_template": "phase-{phase}-{slug}",
|
|
182
|
+
"milestone_branch_template": "{milestone}-{slug}"
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
EOF
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Step 6: Commit
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
git add .planning/config.json
|
|
192
|
+
git commit -m "chore(config): update project settings"
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Step 7: Confirm
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
Settings saved to .planning/config.json
|
|
199
|
+
|
|
200
|
+
Changes made:
|
|
201
|
+
- [setting]: [old value] → [new value]
|
|
202
|
+
|
|
203
|
+
These settings apply to all future workflow runs in this project.
|
|
204
|
+
```
|