viepilot 2.23.0 → 2.41.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 (38) hide show
  1. package/CHANGELOG.md +195 -0
  2. package/README.md +6 -6
  3. package/bin/viepilot.cjs +108 -1
  4. package/bin/vp-tools.cjs +109 -0
  5. package/docs/brainstorm/session-2026-04-20.md +261 -0
  6. package/docs/skills-reference.md +22 -0
  7. package/docs/user/features/adapters.md +2 -2
  8. package/docs/user/features/scaffold-first.md +62 -0
  9. package/docs/user/features/skill-registry.md +125 -0
  10. package/lib/adapters/antigravity.cjs +5 -4
  11. package/lib/skill-installer.cjs +274 -0
  12. package/lib/skill-registry.cjs +212 -0
  13. package/lib/viepilot-update.cjs +113 -0
  14. package/package.json +1 -1
  15. package/skills/vp-audit/SKILL.md +57 -9
  16. package/skills/vp-auto/SKILL.md +44 -0
  17. package/skills/vp-brainstorm/SKILL.md +108 -1
  18. package/skills/vp-crystallize/SKILL.md +72 -0
  19. package/skills/vp-debug/SKILL.md +27 -0
  20. package/skills/vp-docs/SKILL.md +27 -0
  21. package/skills/vp-evolve/SKILL.md +59 -6
  22. package/skills/vp-info/SKILL.md +27 -0
  23. package/skills/vp-pause/SKILL.md +27 -0
  24. package/skills/vp-proposal/SKILL.md +27 -0
  25. package/skills/vp-request/SKILL.md +52 -6
  26. package/skills/vp-resume/SKILL.md +27 -0
  27. package/skills/vp-rollback/SKILL.md +27 -0
  28. package/skills/vp-skills/SKILL.md +301 -0
  29. package/skills/vp-status/SKILL.md +27 -0
  30. package/skills/vp-task/SKILL.md +27 -0
  31. package/skills/vp-ui-components/SKILL.md +27 -0
  32. package/skills/vp-update/SKILL.md +27 -0
  33. package/templates/phase/TASK.md +7 -0
  34. package/templates/project/PROJECT-CONTEXT.md +76 -0
  35. package/workflows/audit.md +131 -0
  36. package/workflows/autonomous.md +140 -0
  37. package/workflows/brainstorm.md +1025 -9
  38. package/workflows/crystallize.md +528 -3
@@ -15,6 +15,33 @@ 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
+
18
45
 
19
46
  <cursor_skill_adapter>
20
47
  ## A. Skill Invocation
@@ -248,6 +275,7 @@ Update `.viepilot/TRACKER.md`:
248
275
 
249
276
  ### Step 6: Confirm & Next Steps
250
277
 
278
+ Display confirmation banner:
251
279
  ```
252
280
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
253
281
  VIEPILOT ► REQUEST CREATED ✓
@@ -260,14 +288,32 @@ Update `.viepilot/TRACKER.md`:
260
288
  Status: {STATUS}
261
289
 
262
290
  File: .viepilot/requests/{TYPE}-{NUMBER}.md
263
-
264
- Next:
265
- - /vp-request --list View all requests
266
- - /vp-evolve Plan phase/tasks + ROADMAP (before code)
267
- - /vp-auto Implement per task plan (after evolve)
268
- - /vp-request Create another request
269
291
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
270
292
  ```
293
+
294
+ **Claude Code (terminal) — REQUIRED:** After banner, call `AskUserQuestion`:
295
+ ```
296
+ question: "Request {TYPE}-{N} logged. What would you like to do next?"
297
+ options:
298
+ - label: "Plan phase + tasks → /vp-evolve"
299
+ description: "Create ROADMAP entry, phase dir, and task files now (Recommended)"
300
+ - label: "Create another request → /vp-request"
301
+ description: "Log more requests before planning"
302
+ - label: "Done for now"
303
+ description: "Exit — request is saved in backlog"
304
+ ```
305
+
306
+ **On selection:**
307
+ - "Plan phase + tasks → /vp-evolve": invoke `/vp-evolve` skill
308
+ - "Create another request → /vp-request": invoke `/vp-request` skill
309
+ - "Done for now": print "Request {TYPE}-{N} saved in backlog." and exit
310
+
311
+ **Text fallback (Cursor/Codex/Copilot/Antigravity):**
312
+ ```
313
+ Next actions:
314
+ /vp-evolve Plan phase/tasks + ROADMAP
315
+ /vp-request Create another request
316
+ ```
271
317
  </process>
272
318
 
273
319
  <success_criteria>
@@ -15,6 +15,33 @@ 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
+
18
45
 
19
46
  <cursor_skill_adapter>
20
47
  ## A. Skill Invocation
@@ -15,6 +15,33 @@ 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
+
18
45
 
19
46
  <cursor_skill_adapter>
20
47
  ## A. Skill Invocation
@@ -0,0 +1,301 @@
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
+
41
+
42
+ <cursor_skill_adapter>
43
+ ## A. Skill Invocation
44
+ - Skill được gọi khi user mention `vp-skills`, `/vp-skills`, "scan skills", "list skills", "install skill", "global registry"
45
+ - Treat all user text after the skill mention as `{{VP_ARGS}}`
46
+
47
+ ## B. User Prompting
48
+ Prompt user conversationally with numbered list options at control points.
49
+
50
+ ## C. Tool Usage
51
+ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`, `WebFetch`, `Subagent`
52
+ </cursor_skill_adapter>
53
+
54
+ <scope_policy>
55
+ ## ViePilot Namespace Guard (BUG-004)
56
+ - Default mode: only use and reference `vp-*` skills in ViePilot workflows.
57
+ - External skills (`non vp-*`) are out of framework scope unless user explicitly opts in.
58
+ - If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
59
+
60
+ **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.
61
+ </scope_policy>
62
+
63
+ <implementation_routing_guard>
64
+ ## Implementation routing guard (ENH-021)
65
+
66
+ - **Read-only / management** — does not implement shipping code. All operations delegate to shell commands via the installed vp-tools binary.
67
+ - **Exception:** Install/uninstall/update mutate `~/.viepilot/skill-registry.json` and adapter skill directories — scoped to user-level global state, not project shipping code.
68
+ </implementation_routing_guard>
69
+
70
+ <objective>
71
+ Manage the global ViePilot skill registry from any project directory.
72
+
73
+ **Commands:**
74
+ ```
75
+ /vp-skills scan — Refresh ~/.viepilot/skill-registry.json by scanning all adapter dirs
76
+ /vp-skills list — Display indexed skills table
77
+ /vp-skills install <src> — Install skill from npm / github:<user>/<repo> / local path
78
+ /vp-skills uninstall <id>— Remove skill from all adapter dirs
79
+ /vp-skills update <id> — Re-install skill from its original source
80
+ /vp-skills info <id> — Show skill capabilities, best_practices, and adapter paths
81
+ ```
82
+
83
+ **Registry file:** `~/.viepilot/skill-registry.json` — shared across all projects.
84
+
85
+ **Cross-project:** This skill uses the installed vp-tools binary, independent of current working directory.
86
+ </objective>
87
+
88
+ <process>
89
+
90
+ ### Step 0: Resolve Installed Binary Path
91
+
92
+ All commands use the installed vp-tools binary (not a project-local bin/):
93
+
94
+ ```bash
95
+ VP_TOOLS=~/.claude/viepilot/bin/vp-tools.cjs
96
+ # Fallback for Cursor adapter:
97
+ [ -f "$VP_TOOLS" ] || VP_TOOLS=~/.cursor/viepilot/bin/vp-tools.cjs
98
+ ```
99
+
100
+ If neither path exists, print:
101
+ ```
102
+ ⛔ vp-tools not installed. Run: vp-tools install
103
+ Expected path: ~/.claude/viepilot/bin/vp-tools.cjs
104
+ ```
105
+
106
+ ---
107
+
108
+ ### Command: scan
109
+
110
+ Refresh the global registry by scanning all adapter skill directories.
111
+
112
+ ```bash
113
+ node ~/.claude/viepilot/bin/vp-tools.cjs scan-skills \
114
+ || node ~/.cursor/viepilot/bin/vp-tools.cjs scan-skills
115
+ ```
116
+
117
+ Display result:
118
+ ```
119
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
120
+ VP-SKILLS ► SCAN COMPLETE ✓
121
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
122
+ Registry: ~/.viepilot/skill-registry.json
123
+ Skills found: {N}
124
+ Run /vp-skills list to view
125
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
126
+ ```
127
+
128
+ ---
129
+
130
+ ### Command: list
131
+
132
+ Display all indexed skills in a readable table.
133
+
134
+ ```bash
135
+ node ~/.claude/viepilot/bin/vp-tools.cjs list-skills \
136
+ || node ~/.cursor/viepilot/bin/vp-tools.cjs list-skills
137
+ ```
138
+
139
+ Format output as table:
140
+ ```
141
+ ID Version Source Adapters
142
+ ────────────────── ──────── ────────────────── ────────────────────
143
+ frontend-design 1.2.0 github:user/repo claude, cursor
144
+ vp-ui-components 0.3.1 npm claude
145
+ my-local-skill 0.1.0 local claude, cursor
146
+ ```
147
+
148
+ If registry absent or empty:
149
+ ```
150
+ No skills indexed. Run /vp-skills scan to populate registry.
151
+ ```
152
+
153
+ ---
154
+
155
+ ### Command: install \<source\>
156
+
157
+ Install a skill from any source channel.
158
+
159
+ ```bash
160
+ node ~/.claude/viepilot/bin/vp-tools.cjs install-skill <source> \
161
+ || node ~/.cursor/viepilot/bin/vp-tools.cjs install-skill <source>
162
+ ```
163
+
164
+ Source formats:
165
+ - `npm-package-name` — install from npm
166
+ - `github:<user>/<repo>` — install from GitHub tarball
167
+ - `./path/to/skill` or `/absolute/path` — install from local directory
168
+
169
+ Display on success:
170
+ ```
171
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
172
+ VP-SKILLS ► INSTALLED ✓
173
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
174
+ ID: {skill-id}
175
+ Source: {source}
176
+ Installed to: {paths}
177
+ Registry updated automatically.
178
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
179
+ ```
180
+
181
+ ---
182
+
183
+ ### Command: uninstall \<id\>
184
+
185
+ Remove a skill from all adapter directories.
186
+
187
+ ```bash
188
+ node ~/.claude/viepilot/bin/vp-tools.cjs uninstall-skill <id> \
189
+ || node ~/.cursor/viepilot/bin/vp-tools.cjs uninstall-skill <id>
190
+ ```
191
+
192
+ Display on success:
193
+ ```
194
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
195
+ VP-SKILLS ► UNINSTALLED ✓
196
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
197
+ ID: {id}
198
+ Removed from: {paths}
199
+ Registry updated automatically.
200
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
201
+ ```
202
+
203
+ ---
204
+
205
+ ### Command: update \<id\>
206
+
207
+ Re-install a skill from its original source (reads source from `skill-meta.json`).
208
+
209
+ ```bash
210
+ node ~/.claude/viepilot/bin/vp-tools.cjs update-skill <id> \
211
+ || node ~/.cursor/viepilot/bin/vp-tools.cjs update-skill <id>
212
+ ```
213
+
214
+ Display on success:
215
+ ```
216
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
217
+ VP-SKILLS ► UPDATED ✓
218
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
219
+ ID: {id}
220
+ Source: {original-source}
221
+ Updated version: {version}
222
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
223
+ ```
224
+
225
+ ---
226
+
227
+ ### Command: info \<id\>
228
+
229
+ Show detailed information about a skill from the registry.
230
+
231
+ ```bash
232
+ node ~/.claude/viepilot/bin/vp-tools.cjs get-registry --id <id> \
233
+ || node ~/.cursor/viepilot/bin/vp-tools.cjs get-registry --id <id>
234
+ ```
235
+
236
+ Parse JSON output and display:
237
+ ```
238
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
239
+ VP-SKILLS ► INFO: {id}
240
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
241
+
242
+ ID: {id}
243
+ Version: {version}
244
+ Source: {source}
245
+ Adapters: {adapters}
246
+
247
+ Capabilities:
248
+ - {capability-1}
249
+ - {capability-2}
250
+
251
+ Best Practices:
252
+ - {practice-1}
253
+ - {practice-2}
254
+
255
+ Tags: {tags}
256
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
257
+ ```
258
+
259
+ If skill not found: `Skill '{id}' not found in registry. Run /vp-skills scan to refresh.`
260
+
261
+ </process>
262
+
263
+ <success_criteria>
264
+ - [ ] Binary path resolved (claude → cursor fallback)
265
+ - [ ] scan: registry refreshed via shell command
266
+ - [ ] list: all indexed skills displayed
267
+ - [ ] install: skill installed from npm/github/local
268
+ - [ ] uninstall: skill removed from all adapter dirs
269
+ - [ ] update: skill re-installed from original source
270
+ - [ ] info: capabilities and best_practices displayed
271
+ - [ ] All commands use installed path (~/.claude/viepilot/...) — cross-project safe
272
+ </success_criteria>
273
+
274
+ ## Adapter Compatibility
275
+
276
+ ### AskUserQuestion Tool
277
+ This skill uses adapter-aware interactive prompts where needed.
278
+
279
+ | Adapter | Interactive Prompts | Notes |
280
+ |---------|---------------------|-------|
281
+ | Claude Code (terminal) | ✅ `AskUserQuestion` tool | For confirmation on destructive actions (uninstall) |
282
+ | Cursor (Agent/Skills) | ❌ Text fallback | Plain-text confirmation |
283
+ | Codex CLI | ❌ Text fallback | Native tool N/A |
284
+ | Antigravity | ❌ Text fallback | Artifact model |
285
+
286
+ **Claude Code (terminal) — REQUIRED:** Before executing `uninstall`, call `AskUserQuestion`:
287
+ ```
288
+ question: "Uninstall '{id}'? This removes it from all adapter directories."
289
+ options:
290
+ - label: "Yes, uninstall"
291
+ description: "Remove skill from ~/.claude/skills/{id}/ and ~/.cursor/skills/{id}/"
292
+ - label: "Cancel"
293
+ description: "Keep the skill installed"
294
+ ```
295
+
296
+ **Text fallback:**
297
+ ```
298
+ Confirm uninstall '{id}'?
299
+ 1. Yes — remove from all adapters
300
+ 2. Cancel
301
+ ```
@@ -15,6 +15,33 @@ 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
+
18
45
 
19
46
  <cursor_skill_adapter>
20
47
  ## A. Skill Invocation
@@ -15,6 +15,33 @@ 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
+
18
45
 
19
46
  <cursor_skill_adapter>
20
47
  ## A. Skill Invocation
@@ -15,6 +15,33 @@ 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
+
18
45
 
19
46
  <cursor_skill_adapter>
20
47
  ## A. Skill Invocation
@@ -15,6 +15,33 @@ 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
+
18
45
 
19
46
  <cursor_skill_adapter>
20
47
  ## 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 | — | — |