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,174 @@
1
+ ---
2
+ description: Retroactive test coverage audit for a completed phase — fill validation gaps without modifying implementation
3
+ ---
4
+
5
+ # Validate Phase
6
+
7
+ Retroactively audit and fill test coverage gaps for a completed phase. Useful after hotfixes, for phases executed before test infrastructure was set up, or when `audit-milestone` surfaces validation gaps.
8
+
9
+ **Usage:** `validate-phase [N]`
10
+
11
+ **Rule:** Never modifies implementation files — only writes test files and updates VALIDATION.md.
12
+
13
+ ## Step 1: Check Config
14
+
15
+ Read `.planning/config.json`:
16
+ ```bash
17
+ cat .planning/config.json | grep "nyquist_validation"
18
+ ```
19
+
20
+ If `nyquist_validation: false`: stop — "Validation is disabled. Enable it in `/settings` to use this workflow."
21
+
22
+ ## Step 2: Validate Phase
23
+
24
+ ```bash
25
+ test -f .planning/ROADMAP.md && grep -E "Phase [N]:" .planning/ROADMAP.md
26
+ ```
27
+
28
+ Determine the phase directory:
29
+ ```bash
30
+ ls .planning/phases/ | grep -E "^0*[N]-"
31
+ PHASE_DIR=".planning/phases/[matched dir]"
32
+ ```
33
+
34
+ ## Step 3: Detect State
35
+
36
+ Check what exists:
37
+ ```bash
38
+ ls "$PHASE_DIR"/*.md 2>/dev/null
39
+ ```
40
+
41
+ - **State A** — VALIDATION.md exists: run audit on existing file, fill gaps
42
+ - **State B** — SUMMARY.md exists, no VALIDATION.md: build validation from execution artifacts
43
+ - **State C** — no SUMMARY.md: phase not executed yet — stop: "Run `execute-phase [N]` first."
44
+
45
+ ## Step 4: Read Phase Artifacts
46
+
47
+ Read all PLAN.md and SUMMARY.md files for phase `[N]`:
48
+ ```bash
49
+ cat "$PHASE_DIR"/*-PLAN.md
50
+ cat "$PHASE_DIR"/*-SUMMARY.md
51
+ ```
52
+
53
+ Extract:
54
+ - Task names and `<verify>` commands
55
+ - Requirement IDs covered by each task
56
+ - Key files created or modified
57
+
58
+ ## Step 5: Detect Test Infrastructure
59
+
60
+ ```bash
61
+ find . \( -name "jest.config.*" -o -name "vitest.config.*" -o -name "pytest.ini" -o -name "pyproject.toml" \) -not -path "*/node_modules/*" 2>/dev/null
62
+
63
+ find . \( -name "*.test.*" -o -name "*.spec.*" -o -name "test_*.py" \) -not -path "*/node_modules/*" 2>/dev/null | head -20
64
+ ```
65
+
66
+ Identify: test framework, how to run tests, existing test file patterns.
67
+
68
+ ## Step 6: Map Requirements to Tests
69
+
70
+ For each requirement ID assigned to this phase:
71
+
72
+ 1. Look for existing tests that cover this behavior (by filename, describe block, test name)
73
+ 2. Classify:
74
+ - **COVERED** — test exists, targets the behavior, runs green
75
+ - **PARTIAL** — test exists but incomplete or failing
76
+ - **MISSING** — no test found
77
+
78
+ If no gaps (all COVERED): proceed directly to step 8 with `nyquist_compliant: true`.
79
+
80
+ ## Step 7: Present Gap Plan and Fill
81
+
82
+ Show gap table:
83
+ ```
84
+ Phase [N] Validation Gaps
85
+
86
+ | Requirement | Status | Suggested test |
87
+ |-------------|--------|----------------|
88
+ | REQ-AUTH-01 | MISSING | src/__tests__/auth.test.ts |
89
+ | REQ-DASH-02 | PARTIAL | src/__tests__/dashboard.test.ts |
90
+
91
+ Options:
92
+ 1. Fill all gaps — I'll write the missing tests
93
+ 2. Mark as manual-only — skip automation, verify manually
94
+ 3. Cancel
95
+ ```
96
+
97
+ Wait for choice.
98
+
99
+ **If "Fill all gaps":** Write the missing test files. Rules:
100
+ - Never touch implementation files
101
+ - Match the existing test framework and style
102
+ - Write tests that actually run (import real modules, not mocks of the implementation)
103
+ - If a test reveals an implementation bug, log it as an escalation — don't fix the implementation
104
+
105
+ Run tests to verify they pass:
106
+ ```bash
107
+ [test command for framework] [test file]
108
+ ```
109
+
110
+ Up to 3 debug attempts if tests fail. If still failing after 3, move to manual-only and note why.
111
+
112
+ ## Step 8: Write/Update VALIDATION.md
113
+
114
+ **State B (create new):**
115
+
116
+ Write `$PHASE_DIR/[padded_phase]-VALIDATION.md`:
117
+
118
+ ```markdown
119
+ ---
120
+ nyquist_compliant: true | false
121
+ wave_0_complete: true | false
122
+ phase: [N]
123
+ validated: [date]
124
+ ---
125
+
126
+ # Phase [N] Validation
127
+
128
+ ## Test Infrastructure
129
+ | Tool | Version | Run command |
130
+ |------|---------|-------------|
131
+ | [framework] | [version] | [command] |
132
+
133
+ ## Per-Requirement Coverage
134
+
135
+ | Requirement | Task | Test file | Status |
136
+ |-------------|------|-----------|--------|
137
+ | REQ-XX-01 | [task name] | [test file path] | ✓ automated |
138
+
139
+ ## Manual-Only Items
140
+ [Items that require a running app to verify]
141
+
142
+ ## Audit Trail
143
+ Validated: [date] — [N] covered, [M] manual-only
144
+ ```
145
+
146
+ **State A (update existing):**
147
+
148
+ Update the Per-Requirement Coverage table, add resolved gaps, move escalated items to Manual-Only. Append audit trail entry.
149
+
150
+ ## Step 9: Commit
151
+
152
+ ```bash
153
+ git add [test files]
154
+ git commit -m "test([padded_phase]): add validation tests"
155
+
156
+ git add "$PHASE_DIR/[padded_phase]-VALIDATION.md"
157
+ git commit -m "docs([padded_phase]): update validation strategy"
158
+ ```
159
+
160
+ ## Step 10: Report
161
+
162
+ ```
163
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
164
+ learnship ► PHASE [N] VALIDATED
165
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
166
+
167
+ [N] requirements automated ✓
168
+ [M] requirements manual-only
169
+ [K] escalated (implementation bugs found — see VALIDATION.md)
170
+
171
+ Status: COMPLIANT | PARTIAL
172
+
173
+ ▶ Next: audit-milestone
174
+ ```
@@ -0,0 +1,264 @@
1
+ ---
2
+ description: Manual user acceptance testing — walk through what was built, log issues, create fix plans
3
+ ---
4
+
5
+ # Verify Work
6
+
7
+ Validate built features through conversational testing. Walk through each deliverable one at a time. You present what SHOULD happen — user confirms or describes what's different.
8
+
9
+ **Usage:** `verify-work [N]`
10
+
11
+ **Philosophy:** Show expected, ask if reality matches. No pass/fail buttons. No severity questions. Just: "Here's what should happen. Does it?"
12
+
13
+ ## Step 1: Initialize
14
+
15
+ Check for existing UAT sessions:
16
+ ```bash
17
+ find .planning/phases -name "*-UAT.md" -type f 2>/dev/null
18
+ ```
19
+
20
+ **If active sessions exist and no phase number given:**
21
+
22
+ Read each file's frontmatter (status, phase) and current test.
23
+
24
+ Display:
25
+ ```
26
+ ## Active UAT Sessions
27
+
28
+ | # | Phase | Status | Current Test | Progress |
29
+ |---|-------|--------|--------------|----------|
30
+ | 1 | [phase] | testing | [test name] | [N/M] |
31
+
32
+ Reply with a number to resume, or provide a phase number to start new.
33
+ ```
34
+
35
+ Wait for response. If number → resume that session. If phase number → start new session.
36
+
37
+ **If no sessions and no phase given:**
38
+ ```
39
+ No active UAT sessions.
40
+
41
+ Provide a phase number to start testing (e.g., verify-work 4)
42
+ ```
43
+
44
+ ## Step 2: Find Deliverables
45
+
46
+ Read all SUMMARY.md files for the phase:
47
+ ```bash
48
+ ls ".planning/phases/[padded_phase]-[phase_slug]/"*-SUMMARY.md 2>/dev/null
49
+ ```
50
+
51
+ Extract testable deliverables from each SUMMARY.md — focus on **user-observable outcomes**, not implementation details:
52
+ - What features/functionality was added?
53
+ - What UI changes are visible?
54
+ - What workflows can a user now do?
55
+
56
+ Skip internal changes (refactors, type changes, test additions).
57
+
58
+ **Cold-start smoke test:** If any SUMMARY.md mentions server entry points, database files, migrations, or docker files — prepend a "Cold Start Smoke Test" as the first test:
59
+ ```
60
+ Expected: Kill any running server. Clear ephemeral state. Start from scratch.
61
+ Server boots without errors, any seed/migration completes, primary query returns live data.
62
+ ```
63
+
64
+ ## Step 3: Create UAT File
65
+
66
+ Write `.planning/phases/[padded_phase]-[phase_slug]/[padded_phase]-UAT.md`:
67
+
68
+ ```markdown
69
+ ---
70
+ status: testing
71
+ phase: [padded_phase]-[phase_slug]
72
+ source: [list of SUMMARY.md files]
73
+ started: [ISO timestamp]
74
+ updated: [ISO timestamp]
75
+ ---
76
+
77
+ ## Current Test
78
+ number: 1
79
+ name: [first test name]
80
+ expected: |
81
+ [what user should observe]
82
+ awaiting: user response
83
+
84
+ ## Tests
85
+
86
+ ### 1. [Test Name]
87
+ expected: [observable behavior]
88
+ result: pending
89
+
90
+ ### 2. [Test Name]
91
+ expected: [observable behavior]
92
+ result: pending
93
+
94
+ ...
95
+
96
+ ## Summary
97
+
98
+ total: [N]
99
+ passed: 0
100
+ issues: 0
101
+ pending: [N]
102
+ skipped: 0
103
+
104
+ ## Gaps
105
+
106
+ [none yet]
107
+ ```
108
+
109
+ ## Step 4: Present Tests One at a Time
110
+
111
+ For each test, display:
112
+
113
+ ```
114
+ ╔══════════════════════════════════════════════════════════════╗
115
+ ║ UAT: Test [N] of [total] ║
116
+ ╚══════════════════════════════════════════════════════════════╝
117
+
118
+ **[Test Name]**
119
+
120
+ [Expected behavior — specific, observable, copy-pasteable commands or clear UI actions]
121
+
122
+ ──────────────────────────────────────────────────────────────
123
+ → Type "pass" or describe what's wrong
124
+ ──────────────────────────────────────────────────────────────
125
+ ```
126
+
127
+ Wait for plain text response (no multiple-choice).
128
+
129
+ ## Step 5: Process Each Response
130
+
131
+ **If response indicates pass:** "yes", "y", "ok", "pass", "next", "approved", empty
132
+ → Mark test: `result: pass`
133
+
134
+ **If response indicates skip:** "skip", "can't test", "n/a"
135
+ → Mark test: `result: skipped`, capture reason
136
+
137
+ **If response is anything else:**
138
+ → Treat as issue description. Infer severity from language:
139
+ - "crash", "error", "exception", "fails" → `blocker`
140
+ - "doesn't work", "wrong", "missing", "can't" → `major`
141
+ - "slow", "weird", "off", "minor" → `minor`
142
+ - "color", "font", "spacing", "alignment" → `cosmetic`
143
+ - Default: `major`
144
+
145
+ Mark test:
146
+ ```
147
+ result: issue
148
+ reported: "[verbatim user response]"
149
+ severity: [inferred]
150
+ ```
151
+
152
+ Append to Gaps section:
153
+ ```yaml
154
+ - truth: "[expected behavior from test]"
155
+ status: failed
156
+ reason: "User reported: [verbatim response]"
157
+ severity: [inferred]
158
+ test: [N]
159
+ ```
160
+
161
+ After each response: update Summary counts, update `updated` timestamp, write to UAT file, move to next test.
162
+
163
+ ## Step 6: Complete Session
164
+
165
+ After all tests, update frontmatter: `status: complete`.
166
+
167
+ Commit:
168
+ ```bash
169
+ git add ".planning/phases/[padded_phase]-[phase_slug]/[padded_phase]-UAT.md"
170
+ git commit -m "test([padded_phase]): complete UAT - [N] passed, [M] issues"
171
+ ```
172
+
173
+ Display summary:
174
+ ```
175
+ ## UAT Complete: Phase [X]
176
+
177
+ | Result | Count |
178
+ |---------|-------|
179
+ | Passed | [N] |
180
+ | Issues | [N] |
181
+ | Skipped | [N] |
182
+ ```
183
+
184
+ **If no issues:**
185
+ ```
186
+ All tests passed. ✓
187
+
188
+ ▶ Next: discuss-phase [X+1]
189
+ ```
190
+
191
+ **If issues found:** Continue to Step 7.
192
+
193
+ ## Step 7: Diagnose Issues
194
+
195
+ ```
196
+ [N] issues found. Diagnosing root causes...
197
+ ```
198
+
199
+ For each issue in the Gaps section, investigate using `@./agents/debugger.md` as your debug persona:
200
+ - Read the relevant source files
201
+ - Trace the issue to its root cause
202
+ - Do not fix yet — just diagnose
203
+
204
+ Update each gap in UAT.md with the root cause:
205
+ ```yaml
206
+ - truth: "[expected]"
207
+ status: failed
208
+ reason: "User reported: [response]"
209
+ severity: [severity]
210
+ root_cause: "[What's actually broken and why]"
211
+ affected_files: ["[file1]", "[file2]"]
212
+ ```
213
+
214
+ ## Step 8: Create Fix Plans
215
+
216
+ Display:
217
+ ```
218
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
219
+ learnship ► PLANNING FIXES
220
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
221
+ ```
222
+
223
+ Using `@./agents/planner.md` as your planning persona, read the UAT.md file with diagnosed gaps. Create fix plans in the phase directory with `gap_closure: true` in frontmatter.
224
+
225
+ Verify fix plans (max 3 iterations with `@./agents/verifier.md`) — same loop as `plan-phase`.
226
+
227
+ Present when ready:
228
+ ```
229
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
230
+ learnship ► FIXES READY ✓
231
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
232
+
233
+ **Phase [X]** — [N] gap(s) diagnosed, [M] fix plan(s) created
234
+
235
+ | Gap | Root Cause | Fix Plan |
236
+ |-----|------------|----------|
237
+ | [issue] | [root cause] | [plan file] |
238
+
239
+ ▶ Next: execute-phase [X] (will run gap closure plans)
240
+ ```
241
+
242
+ ---
243
+
244
+ ## Learning Checkpoint
245
+
246
+ Read `learning_mode` from `.planning/config.json`.
247
+
248
+ **If `auto` and UAT passed with no issues:**
249
+
250
+ > 💡 **Learning moment:** Tests passed — lock in what was learned before moving on:
251
+ >
252
+ > `@agentic-learning space` — Identifies concepts from this phase and schedules them for spaced revisit. Writes to `docs/revisit.md`. The next phase starts with less decay.
253
+ >
254
+ > `@agentic-learning quiz [phase topic]` — Quick active recall while the implementation is still fresh. Better now than two phases later.
255
+
256
+ **If `auto` and issues were found and fixed:**
257
+
258
+ > 💡 **Learning moment:** Bugs found during UAT are high-signal learning. Don’t just fix and move on:
259
+ >
260
+ > `@agentic-learning learn [bug domain]` — Active retrieval on the concept that caused the issue. Turns a frustrating bug into a lasting pattern.
261
+ >
262
+ > `@agentic-learning space` — Schedule the key concepts from this debugging session for spaced review.
263
+
264
+ **If `manual`:** Add quietly: *"Tip: `@agentic-learning space` · `@agentic-learning quiz [topic]` to consolidate this phase."*
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "learnship",
3
+ "version": "1.9.0",
4
+ "description": "Learn as you build. Build with intent. — A multi-platform agentic engineering system for Windsurf, Claude Code, Cursor, OpenCode, Gemini CLI, and Codex: spec-driven workflows, integrated learning, and production-grade design.",
5
+ "keywords": [
6
+ "agentic",
7
+ "development",
8
+ "windsurf",
9
+ "claude-code",
10
+ "cursor",
11
+ "opencode",
12
+ "gemini-cli",
13
+ "codex",
14
+ "workflow",
15
+ "ai",
16
+ "learning",
17
+ "planning",
18
+ "cascade",
19
+ "agentic-ai",
20
+ "ai-agent",
21
+ "ai-workflow"
22
+ ],
23
+ "files": [
24
+ "bin",
25
+ "commands",
26
+ "learnship",
27
+ "agents",
28
+ "references",
29
+ "templates",
30
+ "install.sh",
31
+ "skills",
32
+ "hooks",
33
+ ".claude-plugin",
34
+ ".cursor-plugin",
35
+ "cursor-rules",
36
+ "gemini-extension.json",
37
+ "SKILL.md"
38
+ ],
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "homepage": "https://github.com/FavioVazquez/learnship#readme",
43
+ "bugs": {
44
+ "url": "https://github.com/FavioVazquez/learnship/issues"
45
+ },
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "https://github.com/FavioVazquez/learnship.git"
49
+ },
50
+ "license": "MIT",
51
+ "author": "Favio Vazquez",
52
+ "bin": {
53
+ "learnship": "./bin/install.js"
54
+ },
55
+ "scripts": {
56
+ "start": "node bin/learnship.js",
57
+ "test": "bash tests/run_all.sh"
58
+ },
59
+ "engines": {
60
+ "node": ">=18.0.0"
61
+ }
62
+ }
@@ -0,0 +1,119 @@
1
+ # Design Steering Commands
2
+
3
+ Steering commands for the frontend-design skill. Invoke these during any UI work to get targeted design guidance, critique, and improvements.
4
+
5
+ ---
6
+
7
+ ## Full Command Reference
8
+
9
+ | Command | What it triggers |
10
+ |---------|-----------------|
11
+ | `/audit` | Comprehensive UI quality audit against the full design checklist |
12
+ | `/critique` | Candid design critique — what's working, what isn't, specific improvements |
13
+ | `/polish` | Refine and elevate an existing interface — details, spacing, hierarchy |
14
+ | `/motion` | Add purposeful motion: entrances, transitions, state changes |
15
+ | `/tokens` | Design token system: color, spacing, typography scale, border radius |
16
+ | `/brand` | Brand coherence check across all surfaces |
17
+ | `/typography` | Typography system: scale, pairing, hierarchy, loading |
18
+ | `/color` | Color palette review: OKLCH, contrast ratios, dark mode, tinting |
19
+ | `/layout` | Layout and spatial rhythm: grid, breathing room, asymmetry |
20
+ | `/responsive` | Mobile-first: container queries, fluid design, breakpoints |
21
+ | `/interaction` | Interaction design: forms, focus states, loading patterns, optimistic UI |
22
+ | `/accessibility` | Accessibility: focus management, contrast, screen reader support |
23
+ | `/empty-states` | Empty state design that teaches the interface |
24
+ | `/loading` | Loading patterns: skeletons, spinners, progressive disclosure |
25
+ | `/forms` | Form UX: labels, validation, error states, field grouping |
26
+ | `/copy` | UX writing: labels, errors, empty states, CTAs |
27
+ | `/density` | Information density: when to compress, when to breathe |
28
+
29
+ ---
30
+
31
+ ## When to Use Each
32
+
33
+ ### Starting a new component or page
34
+ → `/audit` first — understand what quality problems to avoid before writing a line
35
+
36
+ ### After first implementation pass
37
+ → `/critique` — honest feedback before spending time on polish
38
+ → `/layout` — is the spatial rhythm right?
39
+
40
+ ### Typography feels off
41
+ → `/typography` — systematic review of scale, pairing, hierarchy
42
+ → `/copy` — are the words doing their job?
43
+
44
+ ### Colors feel wrong or generic
45
+ → `/color` — OKLCH-based palette review, tinting strategy, contrast
46
+ → `/tokens` — establish a proper design token system
47
+
48
+ ### Interface feels stiff or lifeless
49
+ → `/motion` — purposeful animation for state changes and entrances
50
+ → `/interaction` — does every interactive surface feel responsive?
51
+
52
+ ### Shipping to production
53
+ → `/accessibility` — focus, contrast ratios, screen reader support
54
+ → `/responsive` — does it adapt properly at all sizes?
55
+ → `/polish` — final refinement pass
56
+
57
+ ### Something feels "AI-generated"
58
+ → `/critique` — the AI slop test: would someone immediately recognize this as AI output?
59
+
60
+ ---
61
+
62
+ ## The Anti-Patterns to Watch For
63
+
64
+ The design skill actively guards against these common AI aesthetics:
65
+
66
+ **Colors:**
67
+ - Cyan-on-dark with purple-to-blue gradients
68
+ - Neon accents on dark backgrounds
69
+ - Pure black (#000) or pure white (#fff)
70
+ - Gray text on colored backgrounds
71
+
72
+ **Layout:**
73
+ - Everything in cards — not everything needs a container
74
+ - Nested cards inside cards
75
+ - Identical card grids (same-sized cards with icon + heading + text, repeated)
76
+ - Centering everything
77
+ - The "hero metric" template: big number, small label, gradient accent
78
+
79
+ **Typography:**
80
+ - Overused fonts: Inter, Roboto, Arial, Open Sans, system defaults
81
+ - Monospace as lazy "developer vibes"
82
+ - Large rounded icons above every heading
83
+
84
+ **Motion:**
85
+ - Bounce or elastic easing
86
+ - Animating layout properties (width, height, padding, margin)
87
+ - Scattered micro-interactions everywhere
88
+
89
+ **Details:**
90
+ - Glassmorphism used decoratively (not purposefully)
91
+ - Rounded elements with thick one-sided colored borders
92
+ - Generic rounded rectangles with drop shadows
93
+ - Gradient text for "impact" on metrics or headings
94
+
95
+ ---
96
+
97
+ ## The AI Slop Test
98
+
99
+ Before shipping any interface, ask:
100
+
101
+ > If you showed this to someone and said "AI made this" — would they believe you immediately?
102
+
103
+ If yes: use `/critique` to find what makes it look templated, then `/polish` to address it.
104
+
105
+ A well-designed interface makes someone ask **"how was this made?"** not "which AI made this?"
106
+
107
+ ---
108
+
109
+ ## Reference Files
110
+
111
+ The design skill includes 7 domain-specific reference files:
112
+
113
+ - `reference/typography.md` — scales, pairing, fluid sizing with clamp()
114
+ - `reference/color-and-contrast.md` — OKLCH, palettes, dark mode strategy
115
+ - `reference/spatial-design.md` — grids, rhythm, container queries
116
+ - `reference/motion-design.md` — timing, easing curves, reduced motion
117
+ - `reference/interaction-design.md` — forms, focus, loading patterns
118
+ - `reference/responsive-design.md` — mobile-first, fluid design, breakpoints
119
+ - `reference/ux-writing.md` — labels, errors, empty states, microcopy