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.
Files changed (171) hide show
  1. package/.claude-plugin/plugin.json +26 -0
  2. package/.cursor-plugin/plugin.json +26 -0
  3. package/LICENSE +21 -0
  4. package/README.md +791 -0
  5. package/SKILL.md +86 -0
  6. package/agents/debugger.md +102 -0
  7. package/agents/executor.md +115 -0
  8. package/agents/learnship-debugger.md +146 -0
  9. package/agents/learnship-executor.md +155 -0
  10. package/agents/learnship-phase-researcher.md +128 -0
  11. package/agents/learnship-plan-checker.md +119 -0
  12. package/agents/learnship-planner.md +146 -0
  13. package/agents/learnship-verifier.md +157 -0
  14. package/agents/planner.md +109 -0
  15. package/agents/researcher.md +80 -0
  16. package/agents/verifier.md +114 -0
  17. package/bin/install.js +1242 -0
  18. package/bin/learnship.js +56 -0
  19. package/commands/learnship/add-phase.md +22 -0
  20. package/commands/learnship/add-tests.md +24 -0
  21. package/commands/learnship/add-todo.md +21 -0
  22. package/commands/learnship/audit-milestone.md +21 -0
  23. package/commands/learnship/check-todos.md +22 -0
  24. package/commands/learnship/cleanup.md +22 -0
  25. package/commands/learnship/complete-milestone.md +22 -0
  26. package/commands/learnship/debug.md +27 -0
  27. package/commands/learnship/decision-log.md +22 -0
  28. package/commands/learnship/diagnose-issues.md +23 -0
  29. package/commands/learnship/discovery-phase.md +24 -0
  30. package/commands/learnship/discuss-milestone.md +23 -0
  31. package/commands/learnship/discuss-phase.md +23 -0
  32. package/commands/learnship/execute-phase.md +27 -0
  33. package/commands/learnship/execute-plan.md +26 -0
  34. package/commands/learnship/health.md +20 -0
  35. package/commands/learnship/help.md +19 -0
  36. package/commands/learnship/insert-phase.md +22 -0
  37. package/commands/learnship/knowledge-base.md +21 -0
  38. package/commands/learnship/list-phase-assumptions.md +21 -0
  39. package/commands/learnship/ls.md +20 -0
  40. package/commands/learnship/map-codebase.md +23 -0
  41. package/commands/learnship/milestone-retrospective.md +21 -0
  42. package/commands/learnship/new-milestone.md +23 -0
  43. package/commands/learnship/new-project.md +24 -0
  44. package/commands/learnship/next.md +22 -0
  45. package/commands/learnship/pause-work.md +21 -0
  46. package/commands/learnship/plan-milestone-gaps.md +22 -0
  47. package/commands/learnship/plan-phase.md +24 -0
  48. package/commands/learnship/progress.md +20 -0
  49. package/commands/learnship/quick.md +27 -0
  50. package/commands/learnship/reapply-patches.md +21 -0
  51. package/commands/learnship/release.md +21 -0
  52. package/commands/learnship/remove-phase.md +23 -0
  53. package/commands/learnship/research-phase.md +23 -0
  54. package/commands/learnship/resume-work.md +21 -0
  55. package/commands/learnship/set-profile.md +21 -0
  56. package/commands/learnship/settings.md +21 -0
  57. package/commands/learnship/transition.md +21 -0
  58. package/commands/learnship/update.md +21 -0
  59. package/commands/learnship/validate-phase.md +22 -0
  60. package/commands/learnship/verify-work.md +23 -0
  61. package/cursor-rules/learnship.mdc +60 -0
  62. package/gemini-extension.json +10 -0
  63. package/hooks/hooks-claude.json +15 -0
  64. package/hooks/hooks-cursor.json +10 -0
  65. package/hooks/session-start +43 -0
  66. package/install.sh +254 -0
  67. package/learnship/references/design-commands.md +119 -0
  68. package/learnship/references/git-integration.md +249 -0
  69. package/learnship/references/learning-design.md +142 -0
  70. package/learnship/references/model-profiles.md +90 -0
  71. package/learnship/references/planning-config.md +184 -0
  72. package/learnship/references/questioning.md +162 -0
  73. package/learnship/references/ui-brand.md +160 -0
  74. package/learnship/references/verification-patterns.md +608 -0
  75. package/learnship/templates/agents.md +166 -0
  76. package/learnship/templates/context.md +72 -0
  77. package/learnship/templates/plan.md +202 -0
  78. package/learnship/templates/project.md +184 -0
  79. package/learnship/templates/requirements.md +231 -0
  80. package/learnship/templates/state.md +176 -0
  81. package/learnship/templates/uat.md +80 -0
  82. package/learnship/workflows/add-phase.md +84 -0
  83. package/learnship/workflows/add-tests.md +191 -0
  84. package/learnship/workflows/add-todo.md +108 -0
  85. package/learnship/workflows/audit-milestone.md +178 -0
  86. package/learnship/workflows/check-todos.md +138 -0
  87. package/learnship/workflows/cleanup.md +107 -0
  88. package/learnship/workflows/complete-milestone.md +191 -0
  89. package/learnship/workflows/debug.md +245 -0
  90. package/learnship/workflows/decision-log.md +131 -0
  91. package/learnship/workflows/diagnose-issues.md +145 -0
  92. package/learnship/workflows/discovery-phase.md +183 -0
  93. package/learnship/workflows/discuss-milestone.md +136 -0
  94. package/learnship/workflows/discuss-phase.md +244 -0
  95. package/learnship/workflows/execute-phase.md +345 -0
  96. package/learnship/workflows/execute-plan.md +149 -0
  97. package/learnship/workflows/health.md +171 -0
  98. package/learnship/workflows/help.md +153 -0
  99. package/learnship/workflows/insert-phase.md +106 -0
  100. package/learnship/workflows/knowledge-base.md +168 -0
  101. package/learnship/workflows/list-phase-assumptions.md +129 -0
  102. package/learnship/workflows/ls.md +145 -0
  103. package/learnship/workflows/map-codebase.md +142 -0
  104. package/learnship/workflows/milestone-retrospective.md +178 -0
  105. package/learnship/workflows/new-milestone.md +200 -0
  106. package/learnship/workflows/new-project.md +340 -0
  107. package/learnship/workflows/next.md +100 -0
  108. package/learnship/workflows/pause-work.md +122 -0
  109. package/learnship/workflows/plan-milestone-gaps.md +160 -0
  110. package/learnship/workflows/plan-phase.md +288 -0
  111. package/learnship/workflows/progress.md +118 -0
  112. package/learnship/workflows/quick.md +256 -0
  113. package/learnship/workflows/reapply-patches.md +130 -0
  114. package/learnship/workflows/release.md +217 -0
  115. package/learnship/workflows/remove-phase.md +128 -0
  116. package/learnship/workflows/research-phase.md +137 -0
  117. package/learnship/workflows/resume-work.md +162 -0
  118. package/learnship/workflows/set-profile.md +78 -0
  119. package/learnship/workflows/settings.md +204 -0
  120. package/learnship/workflows/sync-upstream-skills.md +269 -0
  121. package/learnship/workflows/transition.md +165 -0
  122. package/learnship/workflows/update.md +166 -0
  123. package/learnship/workflows/validate-phase.md +174 -0
  124. package/learnship/workflows/verify-work.md +264 -0
  125. package/package.json +62 -0
  126. package/references/design-commands.md +119 -0
  127. package/references/git-integration.md +249 -0
  128. package/references/learning-design.md +142 -0
  129. package/references/model-profiles.md +90 -0
  130. package/references/planning-config.md +184 -0
  131. package/references/questioning.md +162 -0
  132. package/references/ui-brand.md +160 -0
  133. package/references/verification-patterns.md +608 -0
  134. package/skills/agentic-learning/SKILL.md +373 -0
  135. package/skills/agentic-learning/references/either-or-format.md +161 -0
  136. package/skills/agentic-learning/references/learning-science.md +190 -0
  137. package/skills/agentic-learning/references/struggle-ladder.md +140 -0
  138. package/skills/impeccable/SKILL.md +125 -0
  139. package/skills/impeccable/adapt/SKILL.md +199 -0
  140. package/skills/impeccable/animate/SKILL.md +190 -0
  141. package/skills/impeccable/audit/SKILL.md +129 -0
  142. package/skills/impeccable/bolder/SKILL.md +132 -0
  143. package/skills/impeccable/clarify/SKILL.md +180 -0
  144. package/skills/impeccable/colorize/SKILL.md +158 -0
  145. package/skills/impeccable/critique/SKILL.md +118 -0
  146. package/skills/impeccable/delight/SKILL.md +317 -0
  147. package/skills/impeccable/distill/SKILL.md +137 -0
  148. package/skills/impeccable/extract/SKILL.md +95 -0
  149. package/skills/impeccable/frontend-design/SKILL.md +127 -0
  150. package/skills/impeccable/frontend-design/reference/color-and-contrast.md +132 -0
  151. package/skills/impeccable/frontend-design/reference/interaction-design.md +123 -0
  152. package/skills/impeccable/frontend-design/reference/motion-design.md +99 -0
  153. package/skills/impeccable/frontend-design/reference/responsive-design.md +114 -0
  154. package/skills/impeccable/frontend-design/reference/spatial-design.md +100 -0
  155. package/skills/impeccable/frontend-design/reference/typography.md +131 -0
  156. package/skills/impeccable/frontend-design/reference/ux-writing.md +107 -0
  157. package/skills/impeccable/harden/SKILL.md +358 -0
  158. package/skills/impeccable/normalize/SKILL.md +67 -0
  159. package/skills/impeccable/onboard/SKILL.md +243 -0
  160. package/skills/impeccable/optimize/SKILL.md +269 -0
  161. package/skills/impeccable/polish/SKILL.md +202 -0
  162. package/skills/impeccable/quieter/SKILL.md +118 -0
  163. package/skills/impeccable/teach-impeccable/SKILL.md +69 -0
  164. package/templates/agents.md +166 -0
  165. package/templates/config.json +22 -0
  166. package/templates/context.md +72 -0
  167. package/templates/plan.md +202 -0
  168. package/templates/project.md +184 -0
  169. package/templates/requirements.md +231 -0
  170. package/templates/state.md +176 -0
  171. 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
+ ```