viepilot 2.15.0 → 2.23.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 +137 -0
- package/README.md +3 -3
- package/bin/viepilot.cjs +3 -2
- package/docs/dev/agents.md +131 -0
- package/docs/user/features/adapters.md +51 -0
- package/lib/adapters/antigravity.cjs +2 -1
- package/lib/adapters/claude-code.cjs +2 -1
- package/lib/adapters/codex.cjs +2 -1
- package/lib/adapters/copilot.cjs +44 -0
- package/lib/adapters/cursor.cjs +2 -1
- package/lib/adapters/index.cjs +1 -0
- package/lib/viepilot-install.cjs +9 -0
- package/package.json +1 -1
- package/skills/vp-audit/SKILL.md +15 -0
- package/skills/vp-auto/SKILL.md +28 -0
- package/skills/vp-brainstorm/SKILL.md +18 -2
- package/skills/vp-crystallize/SKILL.md +18 -2
- package/skills/vp-debug/SKILL.md +12 -0
- package/skills/vp-docs/SKILL.md +12 -0
- package/skills/vp-evolve/SKILL.md +33 -0
- package/skills/vp-info/SKILL.md +12 -0
- package/skills/vp-pause/SKILL.md +12 -0
- package/skills/vp-proposal/SKILL.md +12 -0
- package/skills/vp-request/SKILL.md +19 -2
- package/skills/vp-resume/SKILL.md +12 -0
- package/skills/vp-rollback/SKILL.md +12 -0
- package/skills/vp-status/SKILL.md +12 -0
- package/skills/vp-task/SKILL.md +12 -0
- package/skills/vp-ui-components/SKILL.md +12 -0
- package/skills/vp-update/SKILL.md +12 -0
- package/workflows/audit.md +72 -37
- package/workflows/autonomous.md +140 -9
- package/workflows/brainstorm.md +41 -6
- package/workflows/crystallize.md +38 -12
- package/workflows/evolve.md +52 -17
- package/workflows/request.md +74 -15
- package/workflows/rollback.md +39 -7
|
@@ -4,6 +4,18 @@ description: "Convert brainstorm sessions into executable artifacts"
|
|
|
4
4
|
version: 0.8.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<greeting>
|
|
8
|
+
## Invocation Banner
|
|
9
|
+
|
|
10
|
+
Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
14
|
+
VIEPILOT ► VP-CRYSTALLIZE v0.8.0 (fw 2.19.0)
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
```
|
|
17
|
+
</greeting>
|
|
18
|
+
|
|
7
19
|
<cursor_skill_adapter>
|
|
8
20
|
## A. Skill Invocation
|
|
9
21
|
- Skill được gọi khi user mention `vp-crystallize`, `/vp-crystallize`, hoặc "crystallize", "setup project"
|
|
@@ -271,14 +283,18 @@ This skill uses adapter-aware interactive prompts. Behavior depends on your adap
|
|
|
271
283
|
|
|
272
284
|
| Adapter | Interactive Prompts | Notes |
|
|
273
285
|
|---------|---------------------|-------|
|
|
274
|
-
| Claude Code (terminal) | ✅ `AskUserQuestion` tool |
|
|
286
|
+
| Claude Code (terminal) | ✅ `AskUserQuestion` tool — **REQUIRED** | Must call AUQ; plain-text only if tool errors or is unavailable |
|
|
275
287
|
| Claude Code (VS Code ext) | ⚠️ Partial | Terminal yes; VS Code UI pending [anthropics/claude-code#12609](https://github.com/anthropics/claude-code/issues/12609) |
|
|
276
288
|
| Cursor (Plan Mode) | ⚠️ Partial | `AskQuestion` in Plan Mode only — not in Agent/Skills Mode |
|
|
277
289
|
| Cursor (Agent/Skills) | ❌ Text fallback | AskQuestion not available in Agent Mode |
|
|
278
290
|
| Codex CLI | ❌ Text fallback | Native tool N/A; community MCP available |
|
|
279
291
|
| Antigravity (native agent) | ❌ Text fallback | Artifact model, no raw tool calls |
|
|
292
|
+
| GitHub Copilot | ✅ `/skill-name` in Chat | Via `.agent.md` custom agent; AUQ not available — text fallback |
|
|
293
|
+
|
|
294
|
+
**Claude Code (terminal) — AUQ preload required (ENH-059):**
|
|
295
|
+
Before the first interactive prompt, call `ToolSearch` with `query: "select:AskUserQuestion"` to load the deferred tool schema. Only after `ToolSearch` succeeds can `AskUserQuestion` be invoked. If `ToolSearch` returns an error, fall back to plain-text numbered list for that session.
|
|
280
296
|
|
|
281
|
-
When `AskUserQuestion` is not available, the skill automatically falls back to
|
|
297
|
+
When `AskUserQuestion` is not available on other adapters, the skill automatically falls back to
|
|
282
298
|
plain-text numbered list prompts — no configuration required.
|
|
283
299
|
|
|
284
300
|
**Prompts using AskUserQuestion in this skill:**
|
package/skills/vp-debug/SKILL.md
CHANGED
|
@@ -4,6 +4,18 @@ description: "Systematic debugging with persistent state tracking across session
|
|
|
4
4
|
version: 0.2.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<greeting>
|
|
8
|
+
## Invocation Banner
|
|
9
|
+
|
|
10
|
+
Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
14
|
+
VIEPILOT ► VP-DEBUG v0.2.0 (fw 2.19.0)
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
```
|
|
17
|
+
</greeting>
|
|
18
|
+
|
|
7
19
|
<cursor_skill_adapter>
|
|
8
20
|
## A. Skill Invocation
|
|
9
21
|
- Skill được gọi khi user mention `vp-debug`, `/vp-debug`, "debug", "gỡ lỗi"
|
package/skills/vp-docs/SKILL.md
CHANGED
|
@@ -4,6 +4,18 @@ description: "Generate comprehensive documentation for the project"
|
|
|
4
4
|
version: 0.2.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<greeting>
|
|
8
|
+
## Invocation Banner
|
|
9
|
+
|
|
10
|
+
Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
14
|
+
VIEPILOT ► VP-DOCS v0.2.1 (fw 2.19.0)
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
```
|
|
17
|
+
</greeting>
|
|
18
|
+
|
|
7
19
|
<cursor_skill_adapter>
|
|
8
20
|
## A. Skill Invocation
|
|
9
21
|
- Skill được gọi khi user mention `vp-docs`, `/vp-docs`, "docs", "documentation", "tài liệu"
|
|
@@ -4,6 +4,18 @@ description: "Upgrade, add features, or start a new milestone"
|
|
|
4
4
|
version: 0.3.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<greeting>
|
|
8
|
+
## Invocation Banner
|
|
9
|
+
|
|
10
|
+
Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
14
|
+
VIEPILOT ► VP-EVOLVE v0.3.0 (fw 2.19.0)
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
```
|
|
17
|
+
</greeting>
|
|
18
|
+
|
|
7
19
|
<cursor_skill_adapter>
|
|
8
20
|
## A. Skill Invocation
|
|
9
21
|
- Skill được gọi khi user mention `vp-evolve`, `/vp-evolve`, "evolve", "thêm feature", "milestone mới", "upgrade"
|
|
@@ -180,6 +192,27 @@ Next action: /vp-auto --from {new_phase}
|
|
|
180
192
|
```
|
|
181
193
|
</process>
|
|
182
194
|
|
|
195
|
+
## Adapter Compatibility
|
|
196
|
+
|
|
197
|
+
### AskUserQuestion Tool (ENH-048 + ENH-055)
|
|
198
|
+
|
|
199
|
+
| Adapter | Interactive Prompts | Notes |
|
|
200
|
+
|---------|---------------------|-------|
|
|
201
|
+
| Claude Code (terminal) | ✅ `AskUserQuestion` tool — **REQUIRED** | Must call AUQ; plain-text only if tool errors or is unavailable |
|
|
202
|
+
| Cursor (Agent/Skills) | ❌ Text fallback | AskQuestion not available in Agent Mode |
|
|
203
|
+
| Codex CLI | ❌ Text fallback | Native tool N/A |
|
|
204
|
+
| Antigravity (native agent) | ❌ Text fallback | Artifact model, no raw tool calls |
|
|
205
|
+
| GitHub Copilot | ✅ `/skill-name` in Chat | Via `.agent.md` custom agent; AUQ not available — text fallback |
|
|
206
|
+
|
|
207
|
+
**Claude Code (terminal) — AUQ preload required (ENH-059):**
|
|
208
|
+
Before the first interactive prompt, call `ToolSearch` with `query: "select:AskUserQuestion"` to load the deferred tool schema. Only after `ToolSearch` succeeds can `AskUserQuestion` be invoked. If `ToolSearch` returns an error, fall back to plain-text numbered list for that session.
|
|
209
|
+
|
|
210
|
+
**Prompts using AskUserQuestion in this skill:**
|
|
211
|
+
- Evolve mode selection (Step 2 — Add Feature / New Milestone / Refactor)
|
|
212
|
+
- Complexity selection (Step 3A — S/M/L/XL)
|
|
213
|
+
- Brainstorm routing decision (Step 3A — Yes / No)
|
|
214
|
+
- Workflow continuation (Step 5 — Execute /vp-auto / Create request / Done)
|
|
215
|
+
|
|
183
216
|
<success_criteria>
|
|
184
217
|
- [ ] User intent correctly identified
|
|
185
218
|
- [ ] Architecture compatibility checked
|
package/skills/vp-info/SKILL.md
CHANGED
|
@@ -4,6 +4,18 @@ description: "Display ViePilot version, npm latest, skills/workflows list via vp
|
|
|
4
4
|
version: 0.1.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<greeting>
|
|
8
|
+
## Invocation Banner
|
|
9
|
+
|
|
10
|
+
Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
14
|
+
VIEPILOT ► VP-INFO v0.1.1 (fw 2.19.0)
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
```
|
|
17
|
+
</greeting>
|
|
18
|
+
|
|
7
19
|
<cursor_skill_adapter>
|
|
8
20
|
## A. Skill Invocation
|
|
9
21
|
- Skill được gọi khi user mention `vp-info`, `/vp-info`, "viepilot version", "phiên bản viepilot", "skills list bundle"
|
package/skills/vp-pause/SKILL.md
CHANGED
|
@@ -4,6 +4,18 @@ description: "Pause work with context preservation to resume later"
|
|
|
4
4
|
version: 0.1.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<greeting>
|
|
8
|
+
## Invocation Banner
|
|
9
|
+
|
|
10
|
+
Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
14
|
+
VIEPILOT ► VP-PAUSE v0.1.1 (fw 2.19.0)
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
```
|
|
17
|
+
</greeting>
|
|
18
|
+
|
|
7
19
|
<cursor_skill_adapter>
|
|
8
20
|
## A. Skill Invocation
|
|
9
21
|
- Skill được gọi khi user mention `vp-pause`, `/vp-pause`, "pause", "dừng", "tạm nghỉ"
|
|
@@ -4,6 +4,18 @@ description: "Generate professional proposal packages (.pptx + .docx + .md) from
|
|
|
4
4
|
version: 0.1.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<greeting>
|
|
8
|
+
## Invocation Banner
|
|
9
|
+
|
|
10
|
+
Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
14
|
+
VIEPILOT ► VP-PROPOSAL v0.1.0 (fw 2.19.0)
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
```
|
|
17
|
+
</greeting>
|
|
18
|
+
|
|
7
19
|
<cursor_skill_adapter>
|
|
8
20
|
## A. Skill Invocation
|
|
9
21
|
- Skill được gọi khi user mention `vp-proposal`, `/vp-proposal`, "proposal", "pitch deck", "presentation", "tài liệu đề xuất"
|
|
@@ -4,6 +4,18 @@ description: "Create new request: feature, bug fix, enhancement, or brainstorm c
|
|
|
4
4
|
version: 0.2.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<greeting>
|
|
8
|
+
## Invocation Banner
|
|
9
|
+
|
|
10
|
+
Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
14
|
+
VIEPILOT ► VP-REQUEST v0.2.0 (fw 2.19.0)
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
```
|
|
17
|
+
</greeting>
|
|
18
|
+
|
|
7
19
|
<cursor_skill_adapter>
|
|
8
20
|
## A. Skill Invocation
|
|
9
21
|
- Skill được gọi khi user mention `vp-request`, `/vp-request`, "request", "yêu cầu", "bug", "lỗi", "feature mới", "nâng cấp"
|
|
@@ -273,17 +285,22 @@ This skill uses adapter-aware interactive prompts. Behavior depends on your adap
|
|
|
273
285
|
|
|
274
286
|
| Adapter | Interactive Prompts | Notes |
|
|
275
287
|
|---------|---------------------|-------|
|
|
276
|
-
| Claude Code (terminal) | ✅ `AskUserQuestion` tool |
|
|
288
|
+
| Claude Code (terminal) | ✅ `AskUserQuestion` tool — **REQUIRED** | Must call AUQ; plain-text only if tool errors or is unavailable |
|
|
277
289
|
| Claude Code (VS Code ext) | ⚠️ Partial | Terminal yes; VS Code UI pending [anthropics/claude-code#12609](https://github.com/anthropics/claude-code/issues/12609) |
|
|
278
290
|
| Cursor (Plan Mode) | ⚠️ Partial | `AskQuestion` in Plan Mode only — not in Agent/Skills Mode |
|
|
279
291
|
| Cursor (Agent/Skills) | ❌ Text fallback | AskQuestion not available in Agent Mode |
|
|
280
292
|
| Codex CLI | ❌ Text fallback | Native tool N/A; community MCP available |
|
|
281
293
|
| Antigravity (native agent) | ❌ Text fallback | Artifact model, no raw tool calls |
|
|
294
|
+
| GitHub Copilot | ✅ `/skill-name` in Chat | Via `.agent.md` custom agent; AUQ not available — text fallback |
|
|
295
|
+
|
|
296
|
+
**Claude Code (terminal) — AUQ preload required (ENH-059):**
|
|
297
|
+
Before the first interactive prompt, call `ToolSearch` with `query: "select:AskUserQuestion"` to load the deferred tool schema. Only after `ToolSearch` succeeds can `AskUserQuestion` be invoked. If `ToolSearch` returns an error, fall back to plain-text numbered list for that session.
|
|
282
298
|
|
|
283
|
-
When `AskUserQuestion` is not available, the skill automatically falls back to
|
|
299
|
+
When `AskUserQuestion` is not available on other adapters, the skill automatically falls back to
|
|
284
300
|
plain-text numbered list prompts — no configuration required.
|
|
285
301
|
|
|
286
302
|
**Prompts using AskUserQuestion in this skill:**
|
|
287
303
|
- Request type detection (Bug / Feature / Enhancement / Tech Debt — Step 2)
|
|
288
304
|
- Bug severity selection (Critical / High / Medium / Low — Step 4A)
|
|
289
305
|
- Feature priority selection (Must-have / Should-have / Nice-to-have — Step 4B)
|
|
306
|
+
- Workflow continuation (Step 6 — Plan /vp-evolve / Create another / Done)
|
|
@@ -4,6 +4,18 @@ description: "Resume work from previous session with full context restoration"
|
|
|
4
4
|
version: 0.1.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<greeting>
|
|
8
|
+
## Invocation Banner
|
|
9
|
+
|
|
10
|
+
Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
14
|
+
VIEPILOT ► VP-RESUME v0.1.1 (fw 2.19.0)
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
```
|
|
17
|
+
</greeting>
|
|
18
|
+
|
|
7
19
|
<cursor_skill_adapter>
|
|
8
20
|
## A. Skill Invocation
|
|
9
21
|
- Skill được gọi khi user mention `vp-resume`, `/vp-resume`, "resume", "tiếp tục", "where was i"
|
|
@@ -4,6 +4,18 @@ description: "Rollback to any checkpoint safely with state preservation"
|
|
|
4
4
|
version: 0.1.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<greeting>
|
|
8
|
+
## Invocation Banner
|
|
9
|
+
|
|
10
|
+
Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
14
|
+
VIEPILOT ► VP-ROLLBACK v0.1.1 (fw 2.19.0)
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
```
|
|
17
|
+
</greeting>
|
|
18
|
+
|
|
7
19
|
<cursor_skill_adapter>
|
|
8
20
|
## A. Skill Invocation
|
|
9
21
|
- Skill được gọi khi user mention `vp-rollback`, `/vp-rollback`, "rollback", "quay lại"
|
|
@@ -4,6 +4,18 @@ description: "Display progress dashboard and actionable insights"
|
|
|
4
4
|
version: 0.1.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<greeting>
|
|
8
|
+
## Invocation Banner
|
|
9
|
+
|
|
10
|
+
Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
14
|
+
VIEPILOT ► VP-STATUS v0.1.1 (fw 2.19.0)
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
```
|
|
17
|
+
</greeting>
|
|
18
|
+
|
|
7
19
|
<cursor_skill_adapter>
|
|
8
20
|
## A. Skill Invocation
|
|
9
21
|
- Skill được gọi khi user mention `vp-status`, `/vp-status`, "status", "tiến độ", "đang ở đâu"
|
package/skills/vp-task/SKILL.md
CHANGED
|
@@ -4,6 +4,18 @@ description: "Manual control over individual tasks"
|
|
|
4
4
|
version: 0.2.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<greeting>
|
|
8
|
+
## Invocation Banner
|
|
9
|
+
|
|
10
|
+
Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
14
|
+
VIEPILOT ► VP-TASK v0.2.0 (fw 2.19.0)
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
```
|
|
17
|
+
</greeting>
|
|
18
|
+
|
|
7
19
|
<cursor_skill_adapter>
|
|
8
20
|
## A. Skill Invocation
|
|
9
21
|
- Skill được gọi khi user mention `vp-task`, `/vp-task`
|
|
@@ -4,6 +4,18 @@ description: "Manage workflow for collecting and reusing UI components"
|
|
|
4
4
|
version: 0.1.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<greeting>
|
|
8
|
+
## Invocation Banner
|
|
9
|
+
|
|
10
|
+
Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
14
|
+
VIEPILOT ► VP-UI-COMPONENTS v0.1.1 (fw 2.19.0)
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
```
|
|
17
|
+
</greeting>
|
|
18
|
+
|
|
7
19
|
<cursor_skill_adapter>
|
|
8
20
|
## A. Skill Invocation
|
|
9
21
|
- Skill được gọi khi user mention `vp-ui-components`, `/vp-ui-components`, "ui components", "component library", "21st.dev component"
|
|
@@ -4,6 +4,18 @@ description: "Upgrade viepilot package via npm (dry-run, --yes, --global) via vp
|
|
|
4
4
|
version: 0.1.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<greeting>
|
|
8
|
+
## Invocation Banner
|
|
9
|
+
|
|
10
|
+
Output this banner as the **first** thing on every invocation — before questions, work, or any other output:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
14
|
+
VIEPILOT ► VP-UPDATE v0.1.1 (fw 2.19.0)
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
```
|
|
17
|
+
</greeting>
|
|
18
|
+
|
|
7
19
|
<cursor_skill_adapter>
|
|
8
20
|
## A. Skill Invocation
|
|
9
21
|
- Skill được gọi khi user mention `vp-update`, `/vp-update`, "upgrade viepilot", "cập nhật viepilot npm"
|
package/workflows/audit.md
CHANGED
|
@@ -100,7 +100,10 @@ fi
|
|
|
100
100
|
```bash
|
|
101
101
|
# List completed phases (PHASE-STATE.md with status: complete)
|
|
102
102
|
# List git tags matching legacy + project-scoped complete format
|
|
103
|
-
COMPLETE_TAGS=$(git tag 2>/dev/null | grep -E
|
|
103
|
+
COMPLETE_TAGS=$(git tag 2>/dev/null | grep -E \
|
|
104
|
+
'(^vp-p[0-9]+-complete$)|(^[a-z0-9-]+-vp-p[0-9]+-complete$)|(^[a-z0-9._-]+-[a-z0-9._-]+-[0-9]+\.[0-9]+\.[0-9]+-vp-p[0-9]+-complete$)' \
|
|
105
|
+
| sort)
|
|
106
|
+
# Third alternative matches enriched format: prefix-branch-version-vp-pN-complete (ENH-050)
|
|
104
107
|
# Report any phase marked complete in PHASE-STATE.md without a git tag
|
|
105
108
|
```
|
|
106
109
|
|
|
@@ -215,7 +218,8 @@ for phase_state in $RECENT_PHASES; do
|
|
|
215
218
|
PHASE_NUM=$(basename "$PHASE_DIR" | grep -o '^[0-9]*' | sed 's/^0*//')
|
|
216
219
|
TAG_PREFIX=$(vp-tools tag-prefix --raw 2>/dev/null || echo "vp")
|
|
217
220
|
PHASE_TAG="${TAG_PREFIX}-p${PHASE_NUM}-complete"
|
|
218
|
-
PREV_TAG=$(git tag --sort=-version:refname 2>/dev/null | grep -E "(vp-p.*-complete|[a-z0-9-]+-vp-p.*-complete)" | grep -A1 "^$PHASE_TAG$" | tail -1)
|
|
221
|
+
PREV_TAG=$(git tag --sort=-version:refname 2>/dev/null | grep -E "(vp-p.*-complete|[a-z0-9._-]+-vp-p.*-complete)" | grep -A1 "^$PHASE_TAG$" | tail -1)
|
|
222
|
+
# [a-z0-9._-]+ covers both legacy (viepilot-vp-p60) and enriched (viepilot-main-2.17.0-vp-p80) formats
|
|
219
223
|
if [ -n "$PREV_TAG" ]; then
|
|
220
224
|
DOCS_CHANGED=$(git diff "$PREV_TAG"..HEAD --name-only 2>/dev/null | grep "^docs/" | wc -l | tr -d ' ')
|
|
221
225
|
if [ "$DOCS_CHANGED" -eq 0 ]; then
|
|
@@ -338,8 +342,7 @@ Include source links and last-updated timestamp.
|
|
|
338
342
|
|
|
339
343
|
```bash
|
|
340
344
|
if [ "$IS_VIEPILOT_FRAMEWORK" != "true" ]; then
|
|
341
|
-
|
|
342
|
-
# Jump to step 5 (report)
|
|
345
|
+
# Tier 4 skipped silently — not a viepilot framework repo
|
|
343
346
|
fi
|
|
344
347
|
```
|
|
345
348
|
|
|
@@ -389,14 +392,22 @@ MISSING_IN_SKILLSREF=$(comm -23 <(echo "$ACTUAL_SKILLS_LIST") <(echo "$DOCUMENTE
|
|
|
389
392
|
```
|
|
390
393
|
|
|
391
394
|
### 4f. Report Tier 4 results
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
395
|
+
|
|
396
|
+
> **Silent by default (ENH-049):** Only output Tier 4 results when `TIER4_ISSUES > 0`.
|
|
397
|
+
> If all checks pass or Tier 4 was skipped, produce no output — the user does not
|
|
398
|
+
> need to see "✅ In sync" or "ℹ️ Skipped" every run.
|
|
399
|
+
|
|
400
|
+
```bash
|
|
401
|
+
if [ "$TIER4_ISSUES" -gt 0 ]; then
|
|
402
|
+
echo " TIER 4: Framework Integrity"
|
|
403
|
+
echo " ─────────────────────────────────────────────────"
|
|
404
|
+
# Print each failing check:
|
|
405
|
+
# Skills count (ARCHITECTURE.md) ⚠️ N actual vs M documented
|
|
406
|
+
# Workflows count ⚠️ N actual vs M documented
|
|
407
|
+
# CLI commands count ⚠️ N actual vs M documented
|
|
408
|
+
# README.md badges ⚠️ version/skills/workflows drift
|
|
409
|
+
# docs/skills-reference.md ⚠️ N skills missing
|
|
410
|
+
fi
|
|
400
411
|
```
|
|
401
412
|
</step>
|
|
402
413
|
|
|
@@ -412,7 +423,6 @@ MISSING_IN_SKILLSREF=$(comm -23 <(echo "$ACTUAL_SKILLS_LIST") <(echo "$DOCUMENTE
|
|
|
412
423
|
Tier 1: ViePilot State ✅ All consistent
|
|
413
424
|
Tier 2: Project Docs ✅ No drift detected
|
|
414
425
|
Tier 3: Stack Practices {✅ In sync | ⚠️ N issues}
|
|
415
|
-
Tier 4: Framework {✅ In sync | ℹ️ Skipped}
|
|
416
426
|
|
|
417
427
|
Everything looks good!
|
|
418
428
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
@@ -427,7 +437,9 @@ MISSING_IN_SKILLSREF=$(comm -23 <(echo "$ACTUAL_SKILLS_LIST") <(echo "$DOCUMENTE
|
|
|
427
437
|
Tier 1: ViePilot State {✅ | ⚠️ N issues}
|
|
428
438
|
Tier 2: Project Docs {✅ | ⚠️ N issues}
|
|
429
439
|
Tier 3: Stack Practices {✅ | ⚠️ N issues}
|
|
430
|
-
|
|
440
|
+
{if TIER4_ISSUES > 0}
|
|
441
|
+
Tier 4: Framework ⚠️ {TIER4_ISSUES} issues
|
|
442
|
+
{/if}
|
|
431
443
|
|
|
432
444
|
ISSUES DETAIL:
|
|
433
445
|
{list each issue with context}
|
|
@@ -512,32 +524,55 @@ Create `.viepilot/audit-report.md`:
|
|
|
512
524
|
<integration>
|
|
513
525
|
## Auto-Hook Integration
|
|
514
526
|
|
|
515
|
-
|
|
527
|
+
The following `<step name="post_phase_audit">` block is inserted into `workflows/autonomous.md`
|
|
528
|
+
immediately after the `<step name="phase_complete">` block (after git tag + push, before
|
|
529
|
+
starting the next phase).
|
|
516
530
|
|
|
517
531
|
```xml
|
|
518
|
-
|
|
519
|
-
## Post-Phase Documentation Audit
|
|
520
|
-
|
|
521
|
-
After
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
532
|
+
<step name="post_phase_audit">
|
|
533
|
+
## Post-Phase Documentation Audit (Tier 1 + 2 only)
|
|
534
|
+
|
|
535
|
+
After the phase-complete git tag is created, run a fast silent audit:
|
|
536
|
+
|
|
537
|
+
```bash
|
|
538
|
+
AUDIT_ISSUES=0
|
|
539
|
+
|
|
540
|
+
# Tier 1: ROADMAP.md phase marked ✅?
|
|
541
|
+
PHASE_IN_ROADMAP=$(grep -c "Phase ${PHASE_NUM}.*✅" .viepilot/ROADMAP.md 2>/dev/null || echo "0")
|
|
542
|
+
[ "$PHASE_IN_ROADMAP" -eq 0 ] && AUDIT_ISSUES=$((AUDIT_ISSUES+1)) && \
|
|
543
|
+
echo "⚠️ Tier 1: Phase ${PHASE_NUM} not marked ✅ in ROADMAP.md"
|
|
544
|
+
|
|
545
|
+
# Tier 1: HANDOFF.json current phase matches?
|
|
546
|
+
HANDOFF_PHASE=$(node -e "try{const h=require('./.viepilot/HANDOFF.json');console.log(h.phase||'')}catch(e){}" 2>/dev/null)
|
|
547
|
+
[ "$HANDOFF_PHASE" != "$PHASE_NUM" ] && AUDIT_ISSUES=$((AUDIT_ISSUES+1)) && \
|
|
548
|
+
echo "⚠️ Tier 1: HANDOFF.json phase=$HANDOFF_PHASE, expected $PHASE_NUM"
|
|
549
|
+
|
|
550
|
+
# Tier 2: README.md version badge matches package.json?
|
|
551
|
+
PKG_VERSION=$(node -p "require('./package.json').version" 2>/dev/null)
|
|
552
|
+
README_VERSION=$(grep -o 'version-[0-9]*\.[0-9]*\.[0-9]*' README.md 2>/dev/null | head -1 | sed 's/version-//')
|
|
553
|
+
[ "$PKG_VERSION" != "$README_VERSION" ] && AUDIT_ISSUES=$((AUDIT_ISSUES+1)) && \
|
|
554
|
+
echo "⚠️ Tier 2: README.md badge=$README_VERSION, package.json=$PKG_VERSION"
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
If `AUDIT_ISSUES > 0`:
|
|
540
558
|
```
|
|
559
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
560
|
+
POST-PHASE AUDIT: {AUDIT_ISSUES} issue(s) found
|
|
561
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
562
|
+
{list issues above}
|
|
563
|
+
|
|
564
|
+
Fix now before starting next phase? (y/n)
|
|
565
|
+
→ y: run /vp-audit --fix then continue
|
|
566
|
+
→ n: continue (issues noted, non-blocking)
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
If `AUDIT_ISSUES == 0`: silent — no output.
|
|
570
|
+
</step>
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
> **Note:** This hook runs Tier 1 + Tier 2 checks only (3 fast assertions). It does NOT
|
|
574
|
+
> invoke `/vp-audit` in full — Tier 3 (stack) and Tier 4 (framework) are too slow for
|
|
575
|
+
> a post-phase gate. For a full audit, run `/vp-audit` manually.
|
|
541
576
|
</integration>
|
|
542
577
|
|
|
543
578
|
<success_criteria>
|