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,269 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Sync agentic-learning and impeccable skills from their upstream repos (FavioVazquez/agentic-learn + pbakaus/impeccable) — run this when upstream skills have been updated
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# sync-upstream-skills
|
|
6
|
+
|
|
7
|
+
Pull the latest skill content from both upstream repositories into learnship's skill tree, then re-run the installer so all platforms receive the updated skills.
|
|
8
|
+
|
|
9
|
+
**Usage:** `/sync-upstream-skills`
|
|
10
|
+
|
|
11
|
+
**What this touches:**
|
|
12
|
+
- `.windsurf/skills/agentic-learning/SKILL.md` — replaced from upstream
|
|
13
|
+
- `.windsurf/skills/agentic-learning/references/` — replaced from upstream
|
|
14
|
+
- `.windsurf/skills/impeccable/<sub-skill>/` — each of 18 sub-skill dirs replaced from upstream
|
|
15
|
+
- `.windsurf/skills/impeccable/SKILL.md` — **NOT touched** (this is learnship's own dispatcher)
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Step 1: Verify prerequisites
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
command -v git >/dev/null 2>&1 && echo "git: OK" || echo "git: MISSING"
|
|
23
|
+
command -v node >/dev/null 2>&1 && echo "node: OK" || echo "node: MISSING"
|
|
24
|
+
test -f "$(pwd)/bin/install.js" && echo "installer: OK" || echo "installer: MISSING — run from learnship repo root"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
If any check fails, stop and report what is missing.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Step 2: Check current upstream state
|
|
32
|
+
|
|
33
|
+
Show the user what they're about to pull so there are no surprises:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Latest commit on agentic-learn main
|
|
37
|
+
git ls-remote https://github.com/FavioVazquez/agentic-learn.git HEAD | awk '{print "agentic-learn HEAD: " $1}'
|
|
38
|
+
|
|
39
|
+
# Latest commit on impeccable main
|
|
40
|
+
git ls-remote https://github.com/pbakaus/impeccable.git HEAD | awk '{print "impeccable HEAD: " $1}'
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Also show current local state:
|
|
44
|
+
```bash
|
|
45
|
+
# What version of SKILL.md do we currently have for agentic-learning?
|
|
46
|
+
head -6 "$(pwd)/.windsurf/skills/agentic-learning/SKILL.md"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Display:
|
|
50
|
+
```
|
|
51
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
52
|
+
learnship ► UPSTREAM SKILL SYNC
|
|
53
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
54
|
+
|
|
55
|
+
Will pull from:
|
|
56
|
+
agentic-learn → github.com/FavioVazquez/agentic-learn (main)
|
|
57
|
+
impeccable → github.com/pbakaus/impeccable (main)
|
|
58
|
+
|
|
59
|
+
Files updated:
|
|
60
|
+
.windsurf/skills/agentic-learning/SKILL.md
|
|
61
|
+
.windsurf/skills/agentic-learning/references/ (full replace)
|
|
62
|
+
.windsurf/skills/impeccable/<18 sub-skills>/ (full replace each)
|
|
63
|
+
|
|
64
|
+
Files preserved (learnship-owned):
|
|
65
|
+
.windsurf/skills/impeccable/SKILL.md (dispatcher — never touched)
|
|
66
|
+
|
|
67
|
+
Proceed? (yes/no)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Wait for confirmation.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Step 3: Clone upstreams into temp dirs
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
TMPDIR=$(mktemp -d)
|
|
78
|
+
AGENTIC_LEARN_TMP="$TMPDIR/agentic-learn"
|
|
79
|
+
IMPECCABLE_TMP="$TMPDIR/impeccable"
|
|
80
|
+
|
|
81
|
+
echo "Cloning agentic-learn..."
|
|
82
|
+
git clone --depth 1 https://github.com/FavioVazquez/agentic-learn.git "$AGENTIC_LEARN_TMP"
|
|
83
|
+
|
|
84
|
+
echo "Cloning impeccable..."
|
|
85
|
+
git clone --depth 1 https://github.com/pbakaus/impeccable.git "$IMPECCABLE_TMP"
|
|
86
|
+
|
|
87
|
+
echo "Clone complete."
|
|
88
|
+
ls "$AGENTIC_LEARN_TMP"
|
|
89
|
+
ls "$IMPECCABLE_TMP/source/skills/"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Confirm both clones succeeded — `SKILL.md` must exist in `$AGENTIC_LEARN_TMP` and the 18 sub-skill dirs must exist under `$IMPECCABLE_TMP/source/skills/`. If either is missing, stop.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Step 4: Back up current skills
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
BACKUP_DIR="$(pwd)/.windsurf/skills/.upstream-backup-$(date +%Y%m%d-%H%M%S)"
|
|
100
|
+
mkdir -p "$BACKUP_DIR"
|
|
101
|
+
|
|
102
|
+
cp -r "$(pwd)/.windsurf/skills/agentic-learning" "$BACKUP_DIR/agentic-learning"
|
|
103
|
+
cp -r "$(pwd)/.windsurf/skills/impeccable" "$BACKUP_DIR/impeccable"
|
|
104
|
+
|
|
105
|
+
echo "Backup created at: $BACKUP_DIR"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Step 5: Sync agentic-learning
|
|
111
|
+
|
|
112
|
+
Replace `SKILL.md` and `references/` verbatim from upstream. The upstream repo root IS the skill — `SKILL.md` lives at the repo root, references live in `references/`.
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
SKILL_DIR="$(pwd)/.windsurf/skills/agentic-learning"
|
|
116
|
+
|
|
117
|
+
# Replace SKILL.md
|
|
118
|
+
cp "$AGENTIC_LEARN_TMP/SKILL.md" "$SKILL_DIR/SKILL.md"
|
|
119
|
+
|
|
120
|
+
# Replace references/ entirely
|
|
121
|
+
rm -rf "$SKILL_DIR/references"
|
|
122
|
+
cp -r "$AGENTIC_LEARN_TMP/references" "$SKILL_DIR/references"
|
|
123
|
+
|
|
124
|
+
echo "agentic-learning synced:"
|
|
125
|
+
echo " SKILL.md — replaced"
|
|
126
|
+
echo " references/ — $(ls "$SKILL_DIR/references" | wc -l | tr -d ' ') files replaced"
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Step 6: Sync impeccable sub-skills
|
|
132
|
+
|
|
133
|
+
Upstream layout: `source/skills/<sub-skill>/SKILL.md` (+ any reference files).
|
|
134
|
+
Learnship layout: `.windsurf/skills/impeccable/<sub-skill>/SKILL.md`.
|
|
135
|
+
|
|
136
|
+
**Important:** Do NOT touch `.windsurf/skills/impeccable/SKILL.md` — that is learnship's own dispatcher file.
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
IMPECCABLE_SRC="$IMPECCABLE_TMP/source/skills"
|
|
140
|
+
IMPECCABLE_DEST="$(pwd)/.windsurf/skills/impeccable"
|
|
141
|
+
|
|
142
|
+
# Save learnship's dispatcher SKILL.md before any operations
|
|
143
|
+
DISPATCHER_CONTENT=$(cat "$IMPECCABLE_DEST/SKILL.md")
|
|
144
|
+
|
|
145
|
+
synced=0
|
|
146
|
+
for sub_dir in "$IMPECCABLE_SRC"/*/; do
|
|
147
|
+
skill_name=$(basename "$sub_dir")
|
|
148
|
+
|
|
149
|
+
# Verify it has a SKILL.md
|
|
150
|
+
if [ ! -f "$sub_dir/SKILL.md" ]; then
|
|
151
|
+
echo " SKIP $skill_name — no SKILL.md found upstream"
|
|
152
|
+
continue
|
|
153
|
+
fi
|
|
154
|
+
|
|
155
|
+
# Replace the sub-skill dir entirely
|
|
156
|
+
rm -rf "$IMPECCABLE_DEST/$skill_name"
|
|
157
|
+
cp -r "$sub_dir" "$IMPECCABLE_DEST/$skill_name"
|
|
158
|
+
echo " ✓ $skill_name"
|
|
159
|
+
synced=$((synced + 1))
|
|
160
|
+
done
|
|
161
|
+
|
|
162
|
+
# Restore dispatcher SKILL.md (in case it was accidentally touched)
|
|
163
|
+
echo "$DISPATCHER_CONTENT" > "$IMPECCABLE_DEST/SKILL.md"
|
|
164
|
+
|
|
165
|
+
echo ""
|
|
166
|
+
echo "impeccable synced: $synced sub-skills replaced"
|
|
167
|
+
echo "impeccable/SKILL.md preserved (learnship dispatcher)"
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Step 7: Verify sync integrity
|
|
173
|
+
|
|
174
|
+
Check all 18 expected sub-skills are present and have a `SKILL.md`:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
IMPECCABLE_DEST="$(pwd)/.windsurf/skills/impeccable"
|
|
178
|
+
expected="adapt animate audit bolder clarify colorize critique delight distill extract frontend-design harden normalize onboard optimize polish quieter teach-impeccable"
|
|
179
|
+
missing=""
|
|
180
|
+
|
|
181
|
+
for skill in $expected; do
|
|
182
|
+
if [ ! -f "$IMPECCABLE_DEST/$skill/SKILL.md" ]; then
|
|
183
|
+
missing="$missing $skill"
|
|
184
|
+
fi
|
|
185
|
+
done
|
|
186
|
+
|
|
187
|
+
if [ -n "$missing" ]; then
|
|
188
|
+
echo "WARNING: missing sub-skills after sync:$missing"
|
|
189
|
+
echo "Restoring from backup..."
|
|
190
|
+
cp -r "$BACKUP_DIR/impeccable/." "$IMPECCABLE_DEST/"
|
|
191
|
+
echo "Restored. Check upstream structure manually."
|
|
192
|
+
else
|
|
193
|
+
echo "All 18 impeccable sub-skills present ✓"
|
|
194
|
+
fi
|
|
195
|
+
|
|
196
|
+
# Verify dispatcher is still intact
|
|
197
|
+
if grep -q "name: impeccable" "$IMPECCABLE_DEST/SKILL.md"; then
|
|
198
|
+
echo "impeccable/SKILL.md dispatcher intact ✓"
|
|
199
|
+
else
|
|
200
|
+
echo "WARNING: dispatcher SKILL.md looks wrong — restoring"
|
|
201
|
+
cp "$BACKUP_DIR/impeccable/SKILL.md" "$IMPECCABLE_DEST/SKILL.md"
|
|
202
|
+
fi
|
|
203
|
+
|
|
204
|
+
# Verify agentic-learning
|
|
205
|
+
if grep -q "name: agentic-learning" "$(pwd)/.windsurf/skills/agentic-learning/SKILL.md"; then
|
|
206
|
+
echo "agentic-learning/SKILL.md present ✓"
|
|
207
|
+
else
|
|
208
|
+
echo "WARNING: agentic-learning SKILL.md looks wrong — restoring"
|
|
209
|
+
cp "$BACKUP_DIR/agentic-learning/SKILL.md" "$(pwd)/.windsurf/skills/agentic-learning/SKILL.md"
|
|
210
|
+
fi
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Step 8: Re-run installer for all platforms
|
|
216
|
+
|
|
217
|
+
Propagate updated skills to every installed platform (Claude Code plugins, Windsurf, OpenCode, Gemini CLI, Codex context files):
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
cd "$(pwd)"
|
|
221
|
+
node bin/install.js --all
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
This ensures:
|
|
225
|
+
- **Windsurf** — skills already live in `.windsurf/skills/` (updated in place above)
|
|
226
|
+
- **Claude Code** — `~/.claude/plugins/learnship/` rebuilt with updated skill content + rewritten `references/` paths
|
|
227
|
+
- **OpenCode / Gemini CLI / Codex** — `learnship/skills/` context files updated
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Step 9: Clean up temp dirs
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
rm -rf "$TMPDIR"
|
|
235
|
+
echo "Temp files cleaned up."
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Step 10: Done
|
|
241
|
+
|
|
242
|
+
Display summary:
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
246
|
+
learnship ► SKILL SYNC COMPLETE ✓
|
|
247
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
248
|
+
|
|
249
|
+
agentic-learning:
|
|
250
|
+
SKILL.md ✓ synced from FavioVazquez/agentic-learn
|
|
251
|
+
references/ ✓ synced ([N] files)
|
|
252
|
+
|
|
253
|
+
impeccable:
|
|
254
|
+
18 sub-skills ✓ synced from pbakaus/impeccable
|
|
255
|
+
SKILL.md ✓ preserved (learnship dispatcher)
|
|
256
|
+
|
|
257
|
+
All platforms updated (installer re-run):
|
|
258
|
+
Windsurf ✓ skills updated in place
|
|
259
|
+
Claude Code ✓ plugins/learnship/ rebuilt
|
|
260
|
+
Other platforms ✓ learnship/skills/ context files updated
|
|
261
|
+
|
|
262
|
+
Backup saved at: .windsurf/skills/.upstream-backup-<timestamp>/
|
|
263
|
+
Run: git diff .windsurf/skills/ to review all changes before committing.
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
Remind the user:
|
|
267
|
+
> If upstream added new actions to `agentic-learning` (new entries in `SKILL.md`), update `.windsurf/skills/agentic-learning/SKILL.md`'s `description` frontmatter field to list them — it's what agents use to decide when to invoke the skill.
|
|
268
|
+
>
|
|
269
|
+
> If upstream added a new sub-skill to `impeccable`, also add it to `.windsurf/skills/impeccable/SKILL.md`'s Actions section and `references/` list.
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Hand off a project context to a new session or collaborator — writes a HANDOFF.md with full state snapshot
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Transition
|
|
6
|
+
|
|
7
|
+
Create a comprehensive handoff document capturing the full project state. Useful when bringing in a collaborator, onboarding a new developer, or preparing a complete context snapshot for a fresh session after a long break.
|
|
8
|
+
|
|
9
|
+
**Usage:** `transition`
|
|
10
|
+
|
|
11
|
+
## Step 1: Read All Context
|
|
12
|
+
|
|
13
|
+
Read the full project state:
|
|
14
|
+
```bash
|
|
15
|
+
cat .planning/PROJECT.md
|
|
16
|
+
cat .planning/STATE.md
|
|
17
|
+
cat .planning/ROADMAP.md
|
|
18
|
+
cat .planning/REQUIREMENTS.md 2>/dev/null
|
|
19
|
+
cat .planning/DECISIONS.md 2>/dev/null
|
|
20
|
+
cat .planning/config.json
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
List all planning artifacts:
|
|
24
|
+
```bash
|
|
25
|
+
find .planning/ -name "*.md" | sort
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Read the most recent SUMMARY.md files (last 3 phases):
|
|
29
|
+
```bash
|
|
30
|
+
ls -t .planning/phases/*/*-SUMMARY.md 2>/dev/null | head -6
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Check git status:
|
|
34
|
+
```bash
|
|
35
|
+
git log --oneline -10
|
|
36
|
+
git status --short
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Step 2: Assess Current Position
|
|
40
|
+
|
|
41
|
+
Determine precisely where the project stands:
|
|
42
|
+
- Which phases are complete (have SUMMARY.md)?
|
|
43
|
+
- Which phase is in progress (has PLAN.md but no SUMMARY.md)?
|
|
44
|
+
- Which phases are planned but not started?
|
|
45
|
+
- Are there any open UAT issues?
|
|
46
|
+
- Are there pending todos?
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
for phase_dir in .planning/phases/*/; do
|
|
50
|
+
plans=$(ls "${phase_dir}"*-PLAN.md 2>/dev/null | wc -l)
|
|
51
|
+
summaries=$(ls "${phase_dir}"*-SUMMARY.md 2>/dev/null | wc -l)
|
|
52
|
+
echo "$(basename $phase_dir): $plans plans, $summaries summaries"
|
|
53
|
+
done
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Step 3: Write HANDOFF.md
|
|
57
|
+
|
|
58
|
+
Write `HANDOFF.md` at the project root:
|
|
59
|
+
|
|
60
|
+
```markdown
|
|
61
|
+
---
|
|
62
|
+
created: [date]
|
|
63
|
+
milestone: [VERSION]
|
|
64
|
+
phase: [current phase]
|
|
65
|
+
status: [current status]
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
# Project Handoff — [Project Name]
|
|
69
|
+
|
|
70
|
+
> Generated by learnship on [date].
|
|
71
|
+
> Read this file first when resuming or onboarding.
|
|
72
|
+
|
|
73
|
+
## What This Project Is
|
|
74
|
+
|
|
75
|
+
[2-3 sentences from PROJECT.md — what it does, who it's for]
|
|
76
|
+
|
|
77
|
+
## Current State
|
|
78
|
+
|
|
79
|
+
**Milestone:** [VERSION] — [Milestone Name]
|
|
80
|
+
**Phase:** [N] — [Phase Name]
|
|
81
|
+
**Status:** [planning | executing | verifying | blocked]
|
|
82
|
+
|
|
83
|
+
### What's Done
|
|
84
|
+
[List of completed phases with one-sentence summary each]
|
|
85
|
+
|
|
86
|
+
### What's In Progress
|
|
87
|
+
[Current phase: what it's building, how far along]
|
|
88
|
+
|
|
89
|
+
### What's Next
|
|
90
|
+
[Next 2-3 phases from ROADMAP.md]
|
|
91
|
+
|
|
92
|
+
## How to Resume
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
/ls — see current position, next step, offer to run it
|
|
96
|
+
/next — auto-pilot: just picks up and runs the right workflow
|
|
97
|
+
/resume-work — full context restoration for long breaks
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
If starting fresh context:
|
|
101
|
+
1. Read `.planning/STATE.md` first
|
|
102
|
+
2. Read `.planning/ROADMAP.md` to see all phases
|
|
103
|
+
3. Read the most recent SUMMARY.md for the last completed phase
|
|
104
|
+
4. Run `/ls` to get current position and routing to next step
|
|
105
|
+
|
|
106
|
+
## Key Decisions Made
|
|
107
|
+
|
|
108
|
+
[Top 5-8 decisions from DECISIONS.md or CONTEXT.md files that constrain future work]
|
|
109
|
+
|
|
110
|
+
| Decision | Choice | Rationale |
|
|
111
|
+
|----------|--------|-----------|
|
|
112
|
+
| [topic] | [choice] | [why] |
|
|
113
|
+
|
|
114
|
+
## Architecture Overview
|
|
115
|
+
|
|
116
|
+
[2-4 sentences describing the system structure — from STACK.md/ARCHITECTURE.md if available]
|
|
117
|
+
|
|
118
|
+
**Key files:**
|
|
119
|
+
- [file]: [role]
|
|
120
|
+
- [file]: [role]
|
|
121
|
+
|
|
122
|
+
## Tech Stack
|
|
123
|
+
|
|
124
|
+
[From AGENTS.md or research files]
|
|
125
|
+
|
|
126
|
+
## Open Items
|
|
127
|
+
|
|
128
|
+
### Pending Todos
|
|
129
|
+
[From .planning/todos/pending/ — list titles]
|
|
130
|
+
|
|
131
|
+
### Open UAT Issues
|
|
132
|
+
[From any *-UAT.md files with status: open]
|
|
133
|
+
|
|
134
|
+
### Known Risks
|
|
135
|
+
[From CONCERNS.md or RESEARCH.md files]
|
|
136
|
+
|
|
137
|
+
## Git State
|
|
138
|
+
|
|
139
|
+
**Last commit:** [hash and message]
|
|
140
|
+
**Uncommitted changes:** [none | list of files]
|
|
141
|
+
**Tags:** [version tags]
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
*Generated by: learnship — transition workflow*
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Step 4: Commit
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
git add HANDOFF.md
|
|
151
|
+
git commit -m "docs: create project handoff snapshot"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Step 5: Confirm
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
158
|
+
learnship ► HANDOFF READY ✓
|
|
159
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
160
|
+
|
|
161
|
+
HANDOFF.md created at project root.
|
|
162
|
+
|
|
163
|
+
Share with collaborator: HANDOFF.md + the git repo
|
|
164
|
+
Resume fresh session: /resume-work
|
|
165
|
+
```
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Update the learnship platform itself to the latest version
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Update
|
|
6
|
+
|
|
7
|
+
Update the platform workflows and skills to the latest version. Backs up any locally modified files before overwriting so you don't lose customizations.
|
|
8
|
+
|
|
9
|
+
**Usage:** `update`
|
|
10
|
+
|
|
11
|
+
## Step 1: Detect Install Location
|
|
12
|
+
|
|
13
|
+
Find where the platform is installed:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Check local install
|
|
17
|
+
test -d "$(pwd)/.windsurf/workflows" && LOCAL_WF="$(pwd)/.windsurf" || LOCAL_WF=""
|
|
18
|
+
|
|
19
|
+
# Check global install
|
|
20
|
+
test -d "$HOME/.codeium/windsurf/workflows" && GLOBAL_WF="$HOME/.codeium/windsurf" || GLOBAL_WF=""
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
If both exist, ask: "Update local install, global install, or both?"
|
|
24
|
+
|
|
25
|
+
If neither found: "Could not detect install location. Run `bash install.sh` to reinstall."
|
|
26
|
+
Stop.
|
|
27
|
+
|
|
28
|
+
## Step 2: Find Platform Source
|
|
29
|
+
|
|
30
|
+
Locate the platform source repository:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Common locations
|
|
34
|
+
for loc in \
|
|
35
|
+
"$HOME/favio/learnship" \
|
|
36
|
+
"$HOME/learnship" \
|
|
37
|
+
"$(find $HOME -name "install.sh" -path "*/learnship/*" 2>/dev/null | head -1 | xargs dirname 2>/dev/null)"; do
|
|
38
|
+
test -d "$loc/.windsurf/workflows" && SOURCE_DIR="$loc" && break
|
|
39
|
+
done
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
If source not found:
|
|
43
|
+
```
|
|
44
|
+
Platform source directory not found.
|
|
45
|
+
|
|
46
|
+
To update, either:
|
|
47
|
+
1. Clone the latest version and run: bash install.sh
|
|
48
|
+
2. Specify the source path manually
|
|
49
|
+
```
|
|
50
|
+
Stop.
|
|
51
|
+
|
|
52
|
+
## Step 3: Check for Updates
|
|
53
|
+
|
|
54
|
+
Compare installed workflow files to source:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Check modification times and content
|
|
58
|
+
for wf in "$SOURCE_DIR/.windsurf/workflows/"*.md; do
|
|
59
|
+
name=$(basename "$wf")
|
|
60
|
+
target="$INSTALL_DIR/workflows/$name"
|
|
61
|
+
if [ -f "$target" ] && ! diff -q "$wf" "$target" > /dev/null 2>&1; then
|
|
62
|
+
echo "CHANGED: $name"
|
|
63
|
+
elif [ ! -f "$target" ]; then
|
|
64
|
+
echo "NEW: $name"
|
|
65
|
+
fi
|
|
66
|
+
done
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Display:
|
|
70
|
+
```
|
|
71
|
+
Update check:
|
|
72
|
+
|
|
73
|
+
New workflows available ([N]):
|
|
74
|
+
- [workflow name]: [description from frontmatter]
|
|
75
|
+
|
|
76
|
+
Updated workflows ([M]):
|
|
77
|
+
- [workflow name]: content changed
|
|
78
|
+
|
|
79
|
+
Your local modifications ([K]):
|
|
80
|
+
- [workflow name]: locally modified (will be backed up)
|
|
81
|
+
|
|
82
|
+
No changes: [N] workflows already up to date
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
If nothing to update:
|
|
86
|
+
```
|
|
87
|
+
Platform is up to date. All [N] workflows match the source.
|
|
88
|
+
```
|
|
89
|
+
Stop.
|
|
90
|
+
|
|
91
|
+
## Step 4: Back Up Local Modifications
|
|
92
|
+
|
|
93
|
+
For any workflow file that exists in install dir AND differs from source AND differs from the current source (meaning you modified it):
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
mkdir -p "$INSTALL_DIR/local-patches"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
For each locally modified file:
|
|
100
|
+
```bash
|
|
101
|
+
cp "$INSTALL_DIR/workflows/$name" "$INSTALL_DIR/local-patches/$name"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Write a manifest:
|
|
105
|
+
```bash
|
|
106
|
+
cat > "$INSTALL_DIR/local-patches/PATCHES.md" << EOF
|
|
107
|
+
# Local Patches Backup
|
|
108
|
+
Created: $(date)
|
|
109
|
+
|
|
110
|
+
Files backed up before update:
|
|
111
|
+
$(for f in "$INSTALL_DIR/local-patches/"*.md; do echo "- $(basename $f)"; done)
|
|
112
|
+
|
|
113
|
+
To restore: run reapply-patches
|
|
114
|
+
EOF
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Display:
|
|
118
|
+
```
|
|
119
|
+
[K] locally modified file(s) backed up to .windsurf/local-patches/
|
|
120
|
+
Run reapply-patches after update to merge your changes back.
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Step 5: Confirm Update
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
Ready to update:
|
|
127
|
+
- [N] new workflows will be added
|
|
128
|
+
- [M] existing workflows will be updated
|
|
129
|
+
- [K] local modifications backed up
|
|
130
|
+
|
|
131
|
+
Proceed? (yes/no)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Wait for confirmation.
|
|
135
|
+
|
|
136
|
+
## Step 6: Apply Update
|
|
137
|
+
|
|
138
|
+
Copy updated workflows:
|
|
139
|
+
```bash
|
|
140
|
+
for wf in "$SOURCE_DIR/.windsurf/workflows/"*.md; do
|
|
141
|
+
cp "$wf" "$INSTALL_DIR/workflows/"
|
|
142
|
+
done
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Update skills:
|
|
146
|
+
```bash
|
|
147
|
+
cp -r "$SOURCE_DIR/.windsurf/skills/agentic-learning/." "$INSTALL_DIR/skills/agentic-learning/"
|
|
148
|
+
cp -r "$SOURCE_DIR/.windsurf/skills/frontend-design/." "$INSTALL_DIR/skills/frontend-design/"
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Step 7: Confirm
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
155
|
+
learnship ► UPDATE COMPLETE ✓
|
|
156
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
157
|
+
|
|
158
|
+
Added: [N] new workflows
|
|
159
|
+
Updated: [M] workflows
|
|
160
|
+
Skills: updated
|
|
161
|
+
|
|
162
|
+
[If local patches were backed up:]
|
|
163
|
+
⚠️ [K] local modification(s) backed up. Run reapply-patches to restore.
|
|
164
|
+
|
|
165
|
+
Platform is now up to date.
|
|
166
|
+
```
|