viepilot 2.23.0 → 2.45.2

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 (52) hide show
  1. package/CHANGELOG.md +288 -0
  2. package/README.md +6 -6
  3. package/bin/viepilot.cjs +140 -1
  4. package/bin/vp-tools.cjs +204 -0
  5. package/docs/brainstorm/session-2026-04-20.md +261 -0
  6. package/docs/brainstorm/session-2026-04-24.md +131 -0
  7. package/docs/brainstorm/session-2026-04-25.md +109 -0
  8. package/docs/skills-reference.md +22 -0
  9. package/docs/user/features/adapters.md +2 -2
  10. package/docs/user/features/scaffold-first.md +62 -0
  11. package/docs/user/features/skill-registry.md +125 -0
  12. package/lib/adapters/antigravity.cjs +5 -4
  13. package/lib/domain-packs/ai-product.json +33 -0
  14. package/lib/domain-packs/data-science.json +33 -0
  15. package/lib/domain-packs/devops.json +33 -0
  16. package/lib/domain-packs/mobile.json +33 -0
  17. package/lib/domain-packs/web-saas.json +33 -0
  18. package/lib/skill-installer.cjs +274 -0
  19. package/lib/skill-registry.cjs +212 -0
  20. package/lib/viepilot-calibrate.cjs +279 -0
  21. package/lib/viepilot-persona.cjs +446 -0
  22. package/lib/viepilot-update.cjs +113 -0
  23. package/package.json +1 -1
  24. package/skills/vp-audit/SKILL.md +67 -9
  25. package/skills/vp-auto/SKILL.md +54 -0
  26. package/skills/vp-brainstorm/SKILL.md +124 -2
  27. package/skills/vp-crystallize/SKILL.md +82 -0
  28. package/skills/vp-debug/SKILL.md +37 -0
  29. package/skills/vp-design/SKILL.md +219 -0
  30. package/skills/vp-docs/SKILL.md +37 -0
  31. package/skills/vp-evolve/SKILL.md +69 -6
  32. package/skills/vp-info/SKILL.md +37 -0
  33. package/skills/vp-pause/SKILL.md +37 -0
  34. package/skills/vp-persona/SKILL.md +207 -0
  35. package/skills/vp-proposal/SKILL.md +37 -0
  36. package/skills/vp-request/SKILL.md +62 -6
  37. package/skills/vp-resume/SKILL.md +37 -0
  38. package/skills/vp-rollback/SKILL.md +61 -1
  39. package/skills/vp-skills/SKILL.md +311 -0
  40. package/skills/vp-status/SKILL.md +37 -0
  41. package/skills/vp-task/SKILL.md +37 -0
  42. package/skills/vp-ui-components/SKILL.md +37 -0
  43. package/skills/vp-update/SKILL.md +37 -0
  44. package/templates/phase/TASK.md +7 -0
  45. package/templates/project/PROJECT-CONTEXT.md +76 -0
  46. package/workflows/audit.md +131 -0
  47. package/workflows/autonomous.md +199 -0
  48. package/workflows/brainstorm.md +1172 -9
  49. package/workflows/crystallize.md +639 -3
  50. package/workflows/design.md +601 -0
  51. package/workflows/evolve.md +9 -0
  52. package/workflows/rollback.md +79 -10
@@ -0,0 +1,311 @@
1
+ # Skill: vp-skills
2
+
3
+ <greeting>
4
+ ## Invocation Banner
5
+
6
+ Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
7
+
8
+ ```
9
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
10
+ VIEPILOT ► VP-SKILLS v0.1.0 (fw 2.31.0)
11
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
12
+ ```
13
+ </greeting>
14
+ <version_check>
15
+ ## Version Update Check (ENH-072)
16
+
17
+ After displaying the greeting banner, run:
18
+ ```bash
19
+ node "$HOME/.claude/viepilot/bin/vp-tools.cjs" check-update --silent
20
+ ```
21
+
22
+ **If exit code = 1** (update available — new version printed to stdout):
23
+ Display notice banner before any other output:
24
+ ```
25
+ ┌──────────────────────────────────────────────────────────────────┐
26
+ │ ✨ ViePilot {latest_version} available (installed: {current}) │
27
+ │ npm i -g viepilot && vp-tools install --target {adapter_id} │
28
+ └──────────────────────────────────────────────────────────────────┘
29
+ ```
30
+ Replace `{latest_version}` with stdout from the command, `{current}` with the installed
31
+ version, `{adapter_id}` with the active adapter (claude-code / cursor / antigravity / codex / copilot).
32
+
33
+ **If exit code = 0 or command unavailable**: silent, continue.
34
+
35
+ **Suppression rules:**
36
+ - `--no-update-check` flag on skill invocation → skip this step entirely
37
+ - `config.json` → `update.check: false` → skip this step entirely
38
+ - Show at most once per session (`update_check_done` session guard)
39
+ </version_check>
40
+ <persona_context>
41
+ ## Persona Context Injection (ENH-073)
42
+ At skill start, run:
43
+ ```bash
44
+ node "$HOME/.claude/viepilot/bin/vp-tools.cjs" persona auto-switch
45
+ node "$HOME/.claude/viepilot/bin/vp-tools.cjs" persona context
46
+ ```
47
+ Inject the output as `## User Persona` context before any task execution.
48
+ Silent if command unavailable or errors.
49
+ </persona_context>
50
+
51
+
52
+ <cursor_skill_adapter>
53
+ ## A. Skill Invocation
54
+ - Skill được gọi khi user mention `vp-skills`, `/vp-skills`, "scan skills", "list skills", "install skill", "global registry"
55
+ - Treat all user text after the skill mention as `{{VP_ARGS}}`
56
+
57
+ ## B. User Prompting
58
+ Prompt user conversationally with numbered list options at control points.
59
+
60
+ ## C. Tool Usage
61
+ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`, `WebFetch`, `Subagent`
62
+ </cursor_skill_adapter>
63
+
64
+ <scope_policy>
65
+ ## ViePilot Namespace Guard (BUG-004)
66
+ - Default mode: only use and reference `vp-*` skills in ViePilot workflows.
67
+ - External skills (`non vp-*`) are out of framework scope unless user explicitly opts in.
68
+ - If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
69
+
70
+ **Exception — this skill:** `/vp-skills` manages the global registry and explicitly supports third-party skill installation by design. A user explicitly opts in to third-party skills when running `install`, `uninstall`, or `update` commands.
71
+ </scope_policy>
72
+
73
+ <implementation_routing_guard>
74
+ ## Implementation routing guard (ENH-021)
75
+
76
+ - **Read-only / management** — does not implement shipping code. All operations delegate to shell commands via the installed vp-tools binary.
77
+ - **Exception:** Install/uninstall/update mutate `~/.viepilot/skill-registry.json` and adapter skill directories — scoped to user-level global state, not project shipping code.
78
+ </implementation_routing_guard>
79
+
80
+ <objective>
81
+ Manage the global ViePilot skill registry from any project directory.
82
+
83
+ **Commands:**
84
+ ```
85
+ /vp-skills scan — Refresh ~/.viepilot/skill-registry.json by scanning all adapter dirs
86
+ /vp-skills list — Display indexed skills table
87
+ /vp-skills install <src> — Install skill from npm / github:<user>/<repo> / local path
88
+ /vp-skills uninstall <id>— Remove skill from all adapter dirs
89
+ /vp-skills update <id> — Re-install skill from its original source
90
+ /vp-skills info <id> — Show skill capabilities, best_practices, and adapter paths
91
+ ```
92
+
93
+ **Registry file:** `~/.viepilot/skill-registry.json` — shared across all projects.
94
+
95
+ **Cross-project:** This skill uses the installed vp-tools binary, independent of current working directory.
96
+ </objective>
97
+
98
+ <process>
99
+
100
+ ### Step 0: Resolve Installed Binary Path
101
+
102
+ All commands use the installed vp-tools binary (not a project-local bin/):
103
+
104
+ ```bash
105
+ VP_TOOLS=~/.claude/viepilot/bin/vp-tools.cjs
106
+ # Fallback for Cursor adapter:
107
+ [ -f "$VP_TOOLS" ] || VP_TOOLS=~/.cursor/viepilot/bin/vp-tools.cjs
108
+ ```
109
+
110
+ If neither path exists, print:
111
+ ```
112
+ ⛔ vp-tools not installed. Run: vp-tools install
113
+ Expected path: ~/.claude/viepilot/bin/vp-tools.cjs
114
+ ```
115
+
116
+ ---
117
+
118
+ ### Command: scan
119
+
120
+ Refresh the global registry by scanning all adapter skill directories.
121
+
122
+ ```bash
123
+ node ~/.claude/viepilot/bin/vp-tools.cjs scan-skills \
124
+ || node ~/.cursor/viepilot/bin/vp-tools.cjs scan-skills
125
+ ```
126
+
127
+ Display result:
128
+ ```
129
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
130
+ VP-SKILLS ► SCAN COMPLETE ✓
131
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
132
+ Registry: ~/.viepilot/skill-registry.json
133
+ Skills found: {N}
134
+ Run /vp-skills list to view
135
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
136
+ ```
137
+
138
+ ---
139
+
140
+ ### Command: list
141
+
142
+ Display all indexed skills in a readable table.
143
+
144
+ ```bash
145
+ node ~/.claude/viepilot/bin/vp-tools.cjs list-skills \
146
+ || node ~/.cursor/viepilot/bin/vp-tools.cjs list-skills
147
+ ```
148
+
149
+ Format output as table:
150
+ ```
151
+ ID Version Source Adapters
152
+ ────────────────── ──────── ────────────────── ────────────────────
153
+ frontend-design 1.2.0 github:user/repo claude, cursor
154
+ vp-ui-components 0.3.1 npm claude
155
+ my-local-skill 0.1.0 local claude, cursor
156
+ ```
157
+
158
+ If registry absent or empty:
159
+ ```
160
+ No skills indexed. Run /vp-skills scan to populate registry.
161
+ ```
162
+
163
+ ---
164
+
165
+ ### Command: install \<source\>
166
+
167
+ Install a skill from any source channel.
168
+
169
+ ```bash
170
+ node ~/.claude/viepilot/bin/vp-tools.cjs install-skill <source> \
171
+ || node ~/.cursor/viepilot/bin/vp-tools.cjs install-skill <source>
172
+ ```
173
+
174
+ Source formats:
175
+ - `npm-package-name` — install from npm
176
+ - `github:<user>/<repo>` — install from GitHub tarball
177
+ - `./path/to/skill` or `/absolute/path` — install from local directory
178
+
179
+ Display on success:
180
+ ```
181
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
182
+ VP-SKILLS ► INSTALLED ✓
183
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
184
+ ID: {skill-id}
185
+ Source: {source}
186
+ Installed to: {paths}
187
+ Registry updated automatically.
188
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
189
+ ```
190
+
191
+ ---
192
+
193
+ ### Command: uninstall \<id\>
194
+
195
+ Remove a skill from all adapter directories.
196
+
197
+ ```bash
198
+ node ~/.claude/viepilot/bin/vp-tools.cjs uninstall-skill <id> \
199
+ || node ~/.cursor/viepilot/bin/vp-tools.cjs uninstall-skill <id>
200
+ ```
201
+
202
+ Display on success:
203
+ ```
204
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
205
+ VP-SKILLS ► UNINSTALLED ✓
206
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
207
+ ID: {id}
208
+ Removed from: {paths}
209
+ Registry updated automatically.
210
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
211
+ ```
212
+
213
+ ---
214
+
215
+ ### Command: update \<id\>
216
+
217
+ Re-install a skill from its original source (reads source from `skill-meta.json`).
218
+
219
+ ```bash
220
+ node ~/.claude/viepilot/bin/vp-tools.cjs update-skill <id> \
221
+ || node ~/.cursor/viepilot/bin/vp-tools.cjs update-skill <id>
222
+ ```
223
+
224
+ Display on success:
225
+ ```
226
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
227
+ VP-SKILLS ► UPDATED ✓
228
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
229
+ ID: {id}
230
+ Source: {original-source}
231
+ Updated version: {version}
232
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
233
+ ```
234
+
235
+ ---
236
+
237
+ ### Command: info \<id\>
238
+
239
+ Show detailed information about a skill from the registry.
240
+
241
+ ```bash
242
+ node ~/.claude/viepilot/bin/vp-tools.cjs get-registry --id <id> \
243
+ || node ~/.cursor/viepilot/bin/vp-tools.cjs get-registry --id <id>
244
+ ```
245
+
246
+ Parse JSON output and display:
247
+ ```
248
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
249
+ VP-SKILLS ► INFO: {id}
250
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
251
+
252
+ ID: {id}
253
+ Version: {version}
254
+ Source: {source}
255
+ Adapters: {adapters}
256
+
257
+ Capabilities:
258
+ - {capability-1}
259
+ - {capability-2}
260
+
261
+ Best Practices:
262
+ - {practice-1}
263
+ - {practice-2}
264
+
265
+ Tags: {tags}
266
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
267
+ ```
268
+
269
+ If skill not found: `Skill '{id}' not found in registry. Run /vp-skills scan to refresh.`
270
+
271
+ </process>
272
+
273
+ <success_criteria>
274
+ - [ ] Binary path resolved (claude → cursor fallback)
275
+ - [ ] scan: registry refreshed via shell command
276
+ - [ ] list: all indexed skills displayed
277
+ - [ ] install: skill installed from npm/github/local
278
+ - [ ] uninstall: skill removed from all adapter dirs
279
+ - [ ] update: skill re-installed from original source
280
+ - [ ] info: capabilities and best_practices displayed
281
+ - [ ] All commands use installed path (~/.claude/viepilot/...) — cross-project safe
282
+ </success_criteria>
283
+
284
+ ## Adapter Compatibility
285
+
286
+ ### AskUserQuestion Tool
287
+ This skill uses adapter-aware interactive prompts where needed.
288
+
289
+ | Adapter | Interactive Prompts | Notes |
290
+ |---------|---------------------|-------|
291
+ | Claude Code (terminal) | ✅ `AskUserQuestion` tool | For confirmation on destructive actions (uninstall) |
292
+ | Cursor (Agent/Skills) | ❌ Text fallback | Plain-text confirmation |
293
+ | Codex CLI | ❌ Text fallback | Native tool N/A |
294
+ | Antigravity | ❌ Text fallback | Artifact model |
295
+
296
+ **Claude Code (terminal) — REQUIRED:** Before executing `uninstall`, call `AskUserQuestion`:
297
+ ```
298
+ question: "Uninstall '{id}'? This removes it from all adapter directories."
299
+ options:
300
+ - label: "Yes, uninstall"
301
+ description: "Remove skill from ~/.claude/skills/{id}/ and ~/.cursor/skills/{id}/"
302
+ - label: "Cancel"
303
+ description: "Keep the skill installed"
304
+ ```
305
+
306
+ **Text fallback:**
307
+ ```
308
+ Confirm uninstall '{id}'?
309
+ 1. Yes — remove from all adapters
310
+ 2. Cancel
311
+ ```
@@ -15,6 +15,43 @@ Output this banner as the **first** thing on every invocation — before questio
15
15
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
16
16
  ```
17
17
  </greeting>
18
+ <version_check>
19
+ ## Version Update Check (ENH-072)
20
+
21
+ After displaying the greeting banner, run:
22
+ ```bash
23
+ node "$HOME/.claude/viepilot/bin/vp-tools.cjs" check-update --silent
24
+ ```
25
+
26
+ **If exit code = 1** (update available — new version printed to stdout):
27
+ Display notice banner before any other output:
28
+ ```
29
+ ┌──────────────────────────────────────────────────────────────────┐
30
+ │ ✨ ViePilot {latest_version} available (installed: {current}) │
31
+ │ npm i -g viepilot && vp-tools install --target {adapter_id} │
32
+ └──────────────────────────────────────────────────────────────────┘
33
+ ```
34
+ Replace `{latest_version}` with stdout from the command, `{current}` with the installed
35
+ version, `{adapter_id}` with the active adapter (claude-code / cursor / antigravity / codex / copilot).
36
+
37
+ **If exit code = 0 or command unavailable**: silent, continue.
38
+
39
+ **Suppression rules:**
40
+ - `--no-update-check` flag on skill invocation → skip this step entirely
41
+ - `config.json` → `update.check: false` → skip this step entirely
42
+ - Show at most once per session (`update_check_done` session guard)
43
+ </version_check>
44
+ <persona_context>
45
+ ## Persona Context Injection (ENH-073)
46
+ At skill start, run:
47
+ ```bash
48
+ node "$HOME/.claude/viepilot/bin/vp-tools.cjs" persona auto-switch
49
+ node "$HOME/.claude/viepilot/bin/vp-tools.cjs" persona context
50
+ ```
51
+ Inject the output as `## User Persona` context before any task execution.
52
+ Silent if command unavailable or errors.
53
+ </persona_context>
54
+
18
55
 
19
56
  <cursor_skill_adapter>
20
57
  ## A. Skill Invocation
@@ -15,6 +15,43 @@ Output this banner as the **first** thing on every invocation — before questio
15
15
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
16
16
  ```
17
17
  </greeting>
18
+ <version_check>
19
+ ## Version Update Check (ENH-072)
20
+
21
+ After displaying the greeting banner, run:
22
+ ```bash
23
+ node "$HOME/.claude/viepilot/bin/vp-tools.cjs" check-update --silent
24
+ ```
25
+
26
+ **If exit code = 1** (update available — new version printed to stdout):
27
+ Display notice banner before any other output:
28
+ ```
29
+ ┌──────────────────────────────────────────────────────────────────┐
30
+ │ ✨ ViePilot {latest_version} available (installed: {current}) │
31
+ │ npm i -g viepilot && vp-tools install --target {adapter_id} │
32
+ └──────────────────────────────────────────────────────────────────┘
33
+ ```
34
+ Replace `{latest_version}` with stdout from the command, `{current}` with the installed
35
+ version, `{adapter_id}` with the active adapter (claude-code / cursor / antigravity / codex / copilot).
36
+
37
+ **If exit code = 0 or command unavailable**: silent, continue.
38
+
39
+ **Suppression rules:**
40
+ - `--no-update-check` flag on skill invocation → skip this step entirely
41
+ - `config.json` → `update.check: false` → skip this step entirely
42
+ - Show at most once per session (`update_check_done` session guard)
43
+ </version_check>
44
+ <persona_context>
45
+ ## Persona Context Injection (ENH-073)
46
+ At skill start, run:
47
+ ```bash
48
+ node "$HOME/.claude/viepilot/bin/vp-tools.cjs" persona auto-switch
49
+ node "$HOME/.claude/viepilot/bin/vp-tools.cjs" persona context
50
+ ```
51
+ Inject the output as `## User Persona` context before any task execution.
52
+ Silent if command unavailable or errors.
53
+ </persona_context>
54
+
18
55
 
19
56
  <cursor_skill_adapter>
20
57
  ## A. Skill Invocation
@@ -15,6 +15,43 @@ Output this banner as the **first** thing on every invocation — before questio
15
15
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
16
16
  ```
17
17
  </greeting>
18
+ <version_check>
19
+ ## Version Update Check (ENH-072)
20
+
21
+ After displaying the greeting banner, run:
22
+ ```bash
23
+ node "$HOME/.claude/viepilot/bin/vp-tools.cjs" check-update --silent
24
+ ```
25
+
26
+ **If exit code = 1** (update available — new version printed to stdout):
27
+ Display notice banner before any other output:
28
+ ```
29
+ ┌──────────────────────────────────────────────────────────────────┐
30
+ │ ✨ ViePilot {latest_version} available (installed: {current}) │
31
+ │ npm i -g viepilot && vp-tools install --target {adapter_id} │
32
+ └──────────────────────────────────────────────────────────────────┘
33
+ ```
34
+ Replace `{latest_version}` with stdout from the command, `{current}` with the installed
35
+ version, `{adapter_id}` with the active adapter (claude-code / cursor / antigravity / codex / copilot).
36
+
37
+ **If exit code = 0 or command unavailable**: silent, continue.
38
+
39
+ **Suppression rules:**
40
+ - `--no-update-check` flag on skill invocation → skip this step entirely
41
+ - `config.json` → `update.check: false` → skip this step entirely
42
+ - Show at most once per session (`update_check_done` session guard)
43
+ </version_check>
44
+ <persona_context>
45
+ ## Persona Context Injection (ENH-073)
46
+ At skill start, run:
47
+ ```bash
48
+ node "$HOME/.claude/viepilot/bin/vp-tools.cjs" persona auto-switch
49
+ node "$HOME/.claude/viepilot/bin/vp-tools.cjs" persona context
50
+ ```
51
+ Inject the output as `## User Persona` context before any task execution.
52
+ Silent if command unavailable or errors.
53
+ </persona_context>
54
+
18
55
 
19
56
  <cursor_skill_adapter>
20
57
  ## A. Skill Invocation
@@ -15,6 +15,43 @@ Output this banner as the **first** thing on every invocation — before questio
15
15
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
16
16
  ```
17
17
  </greeting>
18
+ <version_check>
19
+ ## Version Update Check (ENH-072)
20
+
21
+ After displaying the greeting banner, run:
22
+ ```bash
23
+ node "$HOME/.claude/viepilot/bin/vp-tools.cjs" check-update --silent
24
+ ```
25
+
26
+ **If exit code = 1** (update available — new version printed to stdout):
27
+ Display notice banner before any other output:
28
+ ```
29
+ ┌──────────────────────────────────────────────────────────────────┐
30
+ │ ✨ ViePilot {latest_version} available (installed: {current}) │
31
+ │ npm i -g viepilot && vp-tools install --target {adapter_id} │
32
+ └──────────────────────────────────────────────────────────────────┘
33
+ ```
34
+ Replace `{latest_version}` with stdout from the command, `{current}` with the installed
35
+ version, `{adapter_id}` with the active adapter (claude-code / cursor / antigravity / codex / copilot).
36
+
37
+ **If exit code = 0 or command unavailable**: silent, continue.
38
+
39
+ **Suppression rules:**
40
+ - `--no-update-check` flag on skill invocation → skip this step entirely
41
+ - `config.json` → `update.check: false` → skip this step entirely
42
+ - Show at most once per session (`update_check_done` session guard)
43
+ </version_check>
44
+ <persona_context>
45
+ ## Persona Context Injection (ENH-073)
46
+ At skill start, run:
47
+ ```bash
48
+ node "$HOME/.claude/viepilot/bin/vp-tools.cjs" persona auto-switch
49
+ node "$HOME/.claude/viepilot/bin/vp-tools.cjs" persona context
50
+ ```
51
+ Inject the output as `## User Persona` context before any task execution.
52
+ Silent if command unavailable or errors.
53
+ </persona_context>
54
+
18
55
 
19
56
  <cursor_skill_adapter>
20
57
  ## A. Skill Invocation
@@ -34,6 +34,13 @@ files_to_modify:
34
34
  - `{{FILE_PATH}}`: {{WHAT_TO_CHANGE_AND_WHY}}
35
35
  - `{{FILE_PATH_2}}`: {{WHAT_TO_CHANGE_AND_WHY}}
36
36
 
37
+ ## UI Prototype Reference
38
+ <!-- Populated by crystallize when this task implements a UI Direction prototype page (ENH-069) -->
39
+ <!-- If blank: no prototype binding — implement from task description only -->
40
+ - Prototype: <!-- e.g. .viepilot/ui-direction/session-2026-04-21/pages/landing.html -->
41
+ - Key sections: <!-- e.g. hero banner, search bar, feature list, CTA footer -->
42
+ - Component target: <!-- e.g. resources/js/Pages/Home.vue -->
43
+
37
44
  ## Context Required
38
45
  ```yaml
39
46
  files_to_read:
@@ -90,3 +90,79 @@
90
90
  |---------|---------|---------|
91
91
  {{LIBRARIES}}
92
92
  </external_dependencies>
93
+
94
+ ## Skills
95
+
96
+ > Skills registered for this project (locked at /vp-crystallize, applied by /vp-auto).
97
+ > Populated by crystallize Step 1E when brainstorm session has ## skills_used.
98
+
99
+ | Skill | Source | Required | Phases | Rationale |
100
+ |-------|--------|----------|--------|-----------|
101
+ | *(none yet)* | — | — | — | — |
102
+
103
+ ## Admin & Governance
104
+
105
+ > Generated by crystallize from architect notes.md ## admin (ENH-063).
106
+ > Update manually or re-run /vp-crystallize after updating brainstorm artifacts.
107
+
108
+ | Capability | Required | Phase | Notes |
109
+ |-----------|----------|-------|-------|
110
+ | User management UI | — | — | — |
111
+ | Monitoring dashboard | — | — | — |
112
+ | Audit log | — | — | — |
113
+ | Billing management | — | — | — |
114
+
115
+ ### Admin Personas
116
+ | Persona | Key Capabilities |
117
+ |---------|-----------------|
118
+ | — | — |
119
+
120
+ ## Content Management
121
+
122
+ > Generated by crystallize from architect notes.md ## content (ENH-065).
123
+ > Update manually or re-run /vp-crystallize after updating brainstorm artifacts.
124
+
125
+ | Content Type | Created By | Lifecycle | Key Fields | Phase |
126
+ |-------------|-----------|-----------|-----------|-------|
127
+ | — | — | — | — | — |
128
+
129
+ ### Media & Storage
130
+ | Storage | CDN | Types | Max Size |
131
+ |---------|-----|-------|----------|
132
+ | — | — | — | — |
133
+
134
+ ### Localization
135
+ | Locales | Fallback |
136
+ |---------|---------|
137
+ | — | — |
138
+
139
+ ## Admin Entity Management
140
+
141
+ > Generated by crystallize from architect notes.md ## entity_mgmt (ENH-068).
142
+ > Update manually or re-run /vp-crystallize after updating brainstorm artifacts.
143
+
144
+ | Entity | CRUD Ops | Soft Delete | Bulk Actions | Audit Trail | Scope |
145
+ |--------|----------|-------------|--------------|-------------|-------|
146
+ | — | — | — | — | — | — |
147
+
148
+ ### Import / Export
149
+ | Direction | Entities |
150
+ |-----------|----------|
151
+ | CSV Import | — |
152
+ | CSV Export | — |
153
+
154
+ ## User Data Management
155
+
156
+ > Generated by crystallize from architect notes.md ## user_data (ENH-066).
157
+ > Update manually or re-run /vp-crystallize after updating brainstorm artifacts.
158
+
159
+ | Capability | Supported | Notes |
160
+ |-----------|-----------|-------|
161
+ | Profile editing | — | — |
162
+ | Notification preferences | — | — |
163
+ | Privacy settings | — | — |
164
+ | Data export (GDPR) | — | — |
165
+ | Right to erasure | — | — |
166
+ | Connected accounts | — | — |
167
+ | Session management | — | — |
168
+ | Two-factor authentication | — | — |