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.
- package/CHANGELOG.md +195 -0
- package/README.md +6 -6
- package/bin/viepilot.cjs +108 -1
- package/bin/vp-tools.cjs +109 -0
- package/docs/brainstorm/session-2026-04-20.md +261 -0
- package/docs/skills-reference.md +22 -0
- package/docs/user/features/adapters.md +2 -2
- package/docs/user/features/scaffold-first.md +62 -0
- package/docs/user/features/skill-registry.md +125 -0
- package/lib/adapters/antigravity.cjs +5 -4
- package/lib/skill-installer.cjs +274 -0
- package/lib/skill-registry.cjs +212 -0
- package/lib/viepilot-update.cjs +113 -0
- package/package.json +1 -1
- package/skills/vp-audit/SKILL.md +57 -9
- package/skills/vp-auto/SKILL.md +44 -0
- package/skills/vp-brainstorm/SKILL.md +108 -1
- package/skills/vp-crystallize/SKILL.md +72 -0
- package/skills/vp-debug/SKILL.md +27 -0
- package/skills/vp-docs/SKILL.md +27 -0
- package/skills/vp-evolve/SKILL.md +59 -6
- package/skills/vp-info/SKILL.md +27 -0
- package/skills/vp-pause/SKILL.md +27 -0
- package/skills/vp-proposal/SKILL.md +27 -0
- package/skills/vp-request/SKILL.md +52 -6
- package/skills/vp-resume/SKILL.md +27 -0
- package/skills/vp-rollback/SKILL.md +27 -0
- package/skills/vp-skills/SKILL.md +301 -0
- package/skills/vp-status/SKILL.md +27 -0
- package/skills/vp-task/SKILL.md +27 -0
- package/skills/vp-ui-components/SKILL.md +27 -0
- package/skills/vp-update/SKILL.md +27 -0
- package/templates/phase/TASK.md +7 -0
- package/templates/project/PROJECT-CONTEXT.md +76 -0
- package/workflows/audit.md +131 -0
- package/workflows/autonomous.md +140 -0
- package/workflows/brainstorm.md +1025 -9
- 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
|
package/skills/vp-task/SKILL.md
CHANGED
|
@@ -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
|
package/templates/phase/TASK.md
CHANGED
|
@@ -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 | — | — |
|