viepilot 1.9.1 → 1.9.4
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 +26 -1
- package/README.md +9 -9
- package/bin/viepilot.cjs +21 -6
- package/docs/README.md +4 -3
- package/docs/getting-started.md +4 -0
- package/docs/skills-reference.md +7 -3
- package/docs/user/claude-code-setup.md +144 -0
- package/docs/user/faq.md +11 -4
- package/docs/user/features/autonomous-mode.md +7 -0
- package/docs/user/features/ui-direction.md +3 -3
- package/docs/user/quick-start.md +2 -0
- package/lib/viepilot-install.cjs +28 -3
- package/package.json +1 -1
- package/skills/vp-audit/SKILL.md +7 -1
- package/skills/vp-auto/SKILL.md +7 -1
- package/skills/vp-brainstorm/SKILL.md +9 -3
- package/skills/vp-crystallize/SKILL.md +7 -1
- package/skills/vp-debug/SKILL.md +7 -1
- package/skills/vp-docs/SKILL.md +7 -1
- package/skills/vp-evolve/SKILL.md +9 -1
- package/skills/vp-info/SKILL.md +7 -1
- package/skills/vp-pause/SKILL.md +7 -1
- package/skills/vp-request/SKILL.md +13 -3
- package/skills/vp-resume/SKILL.md +7 -1
- package/skills/vp-rollback/SKILL.md +7 -1
- package/skills/vp-status/SKILL.md +7 -1
- package/skills/vp-task/SKILL.md +7 -1
- package/skills/vp-ui-components/SKILL.md +7 -1
- package/skills/vp-update/SKILL.md +7 -1
- package/workflows/autonomous.md +4 -0
- package/workflows/brainstorm.md +28 -6
- package/workflows/debug.md +5 -0
- package/workflows/evolve.md +6 -0
- package/workflows/request.md +11 -4
package/CHANGELOG.md
CHANGED
|
@@ -15,6 +15,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
15
15
|
|
|
16
16
|
- None yet.
|
|
17
17
|
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- None yet.
|
|
21
|
+
|
|
22
|
+
## [1.9.4] - 2026-04-02
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- **Installer / Claude Code** — `npx viepilot install --target claude-code` giờ **copy** (hoặc symlink nếu `VIEPILOT_SYMLINK_SKILLS=1`) toàn bộ `skills/vp-*` vào **`~/.claude/skills/`**, không chỉ `~/.cursor/skills/`. `uninstall --target claude-code` gỡ `~/.claude/skills/vp-*`. (`lib/viepilot-install.cjs`, `bin/viepilot.cjs`; tests + `docs/user/claude-code-setup.md`, FAQ).
|
|
27
|
+
|
|
28
|
+
## [1.9.3] - 2026-04-02
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- **M1.29 / Phase 34 (FEAT-001)** — Hướng dẫn ViePilot trên **Claude Code**: `docs/user/claude-code-setup.md` (installer `npx viepilot install --target claude-code`, map `vp-*` → `~/.claude/skills`, `vp-tools info`, chuỗi request → evolve → auto); cross-links trong `docs/getting-started.md`, `docs/user/quick-start.md`, `docs/user/faq.md`, `docs/README.md`; `tests/unit/vp-feat001-claude-code-docs-contracts.test.js`; README test metrics **299** / **15** suites.
|
|
33
|
+
|
|
34
|
+
## [1.9.2] - 2026-04-03
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- **ENH-019** — `/research-ui`: Phase 1 thêm **content stress pass** (copy dài, khối lượng, validation, viewport…) và **Stress findings**; log + designer pass cập nhật tương ứng (`workflows/brainstorm.md`, `vp-brainstorm` 0.6.1 → **0.6.3** theo bản ship).
|
|
39
|
+
- **ENH-020** — `/research-ui`: bảng **stress recipes theo archetype** (landing, SaaS admin, form/wizard, reader, commerce/booking) + hybrid.
|
|
40
|
+
- **ENH-021** — **Implementation routing guard**: `vp-request` / `vp-evolve` / `vp-debug` không implement shipping mặc định; chuỗi **`/vp-evolve` → `/vp-auto`**; cả **16** `skills/vp-*/SKILL.md` + `workflows/request.md`, `evolve.md`, `debug.md`, `autonomous.md`; `docs/skills-reference.md`; `tests/unit/vp-en021-implementation-routing-contracts.test.js`; README test metrics **297**.
|
|
41
|
+
|
|
18
42
|
## [1.9.1] - 2026-04-02
|
|
19
43
|
|
|
20
44
|
### Added
|
|
@@ -310,7 +334,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
310
334
|
|
|
311
335
|
---
|
|
312
336
|
|
|
313
|
-
[Unreleased]: https://github.com/0-CODE/viepilot/compare/v1.9.
|
|
337
|
+
[Unreleased]: https://github.com/0-CODE/viepilot/compare/v1.9.2...HEAD
|
|
338
|
+
[1.9.2]: https://github.com/0-CODE/viepilot/compare/v1.9.1...v1.9.2
|
|
314
339
|
[1.9.1]: https://github.com/0-CODE/viepilot/compare/v1.9.0...v1.9.1
|
|
315
340
|
[1.9.0]: https://github.com/0-CODE/viepilot/compare/v1.8.1...v1.9.0
|
|
316
341
|
[1.8.1]: https://github.com/0-CODE/viepilot/compare/v1.8.0...v1.8.1
|
package/README.md
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
**Autonomous Vibe Coding Framework / Bộ khung phát triển tự động có kiểm soát**
|
|
4
4
|
|
|
5
|
-
[](CHANGELOG.md)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](#skills-reference)
|
|
8
8
|
[](#workflows)
|
|
9
9
|
[](#templates)
|
|
10
|
-
[](tests/)
|
|
11
11
|
[](https://github.com/0-CODE/viepilot)
|
|
12
12
|
|
|
13
|
-
**Versioning:** Shield **1.9.
|
|
13
|
+
**Versioning:** Shield **1.9.4** is the **ViePilot framework SemVer** tracked in `.viepilot/TRACKER.md` and `CHANGELOG.md`. The npm `package.json` field `version` (**1.9.4**) is the Node package identifier for this repo; use the framework version for milestone releases and docs.
|
|
14
14
|
|
|
15
15
|
ViePilot là bộ skill framework cho phép AI assistant (Claude, GPT, etc.) phát triển dự án một cách **tự động**, **có kiểm soát**, và **có thể khôi phục**. Thiết kế theo các tiêu chuẩn chuyên nghiệp: Semantic Versioning, Conventional Commits, Keep a Changelog.
|
|
16
16
|
|
|
@@ -28,13 +28,13 @@ Nếu ViePilot giúp ích cho bạn, bạn có thể ủng hộ một ly cafe:
|
|
|
28
28
|
|
|
29
29
|
| Chỉ số / Metric | Giá trị / Value |
|
|
30
30
|
|-----------------|-----------------|
|
|
31
|
-
| Total LOC | **~27,
|
|
31
|
+
| Total LOC | **~27,779+** (`.md`, `.js`, `.cjs`, `.yml`, `.json`, `.sh`; không gồm `node_modules`) |
|
|
32
32
|
| Skills | **16** |
|
|
33
33
|
| Workflows | **12** |
|
|
34
34
|
| Templates | **17** (Project: 12, Phase: 5) |
|
|
35
35
|
| CLI Commands | **18** (`vp-tools` 17 subcommands + `viepilot` installer) |
|
|
36
|
-
| Tests | **
|
|
37
|
-
| ViePilot phases (local `.viepilot`) | **
|
|
36
|
+
| Tests | **304** (15 suites: unit + integration + AI compat + README metrics + UI direction + ENH contracts + scope policy + FEAT-009 + FEAT-010 + ENH-021 routing + FEAT-001 Claude Code docs + viepilot-info/update/install) |
|
|
37
|
+
| ViePilot phases (local `.viepilot`) | **34** phase cycles — **M1.29** FEAT-001 (**v1.9.3** doc); patch **v1.9.4** (Claude installer); **M1.28** FEAT-010 (**v1.9.1**); **v1.9.2** (ENH-019~021); **M1.27** (**v1.9.0** FEAT-009); xem `CHANGELOG.md` |
|
|
38
38
|
| Standards | 5 (SemVer, Commits, Changelog, Comments, Contributors) |
|
|
39
39
|
|
|
40
40
|
> Metric `Total LOC` có thể được refresh tự động bằng `npm run readme:sync` (dùng `cloc`; nếu thiếu `cloc` script sẽ fallback an toàn).
|
|
@@ -48,14 +48,14 @@ Nếu ViePilot giúp ích cho bạn, bạn có thể ủng hộ một ly cafe:
|
|
|
48
48
|
| Project Templates | 12 | AI-GUIDE, ARCHITECTURE, VIEPILOT-META, README, SYSTEM-RULES, etc. |
|
|
49
49
|
| Phase Templates | 5 | SPEC, PHASE-STATE, TASK, VERIFICATION, SUMMARY |
|
|
50
50
|
| CLI Tools | 2 | vp-tools.cjs (**17** subcommands) + viepilot.cjs (guided installer) |
|
|
51
|
-
| Test Files |
|
|
51
|
+
| Test Files | 15 | Jest: 14 unit + 1 integration (contracts, installer + Claude paths, info/update, FEAT-009, FEAT-010, FEAT-001, ENH-021, scope policy, …) |
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
55
55
|
## Độ hoàn thiện / Completion Status
|
|
56
56
|
|
|
57
57
|
```
|
|
58
|
-
Tổng thể / Overall: ████████████████████ ~98% ✅ Latest **v1.9.
|
|
58
|
+
Tổng thể / Overall: ████████████████████ ~98% ✅ Latest **v1.9.4** (Claude Code **installer** ~/.claude/skills); **v1.9.3** FEAT-001 doc; **v1.9.2** (ENH-019~021); **v1.9.1** FEAT-010; **v1.9.0** FEAT-009
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
| Lĩnh vực / Area | Trạng thái | Chi tiết |
|
|
@@ -65,7 +65,7 @@ Tổng thể / Overall: ██████████████████
|
|
|
65
65
|
| Project Templates (12) | ✅ Hoàn thiện | Placeholders cho customization (+ `VIEPILOT-META` FEAT-009) |
|
|
66
66
|
| Phase Templates (5) | ✅ Hoàn thiện | Task tracking, verification, summary |
|
|
67
67
|
| CLI Tools (18) | ✅ Hoàn thiện | vp-tools 17 subcommands + viepilot installer; bundle `info` / `update` |
|
|
68
|
-
| Tests (
|
|
68
|
+
| Tests (304) | ✅ Hoàn thiện | Unit, integration, AI compat, workflow contracts, installer, scope policy, FEAT-009/010/001, ENH-021, info/update |
|
|
69
69
|
| CI/CD | ✅ Hoàn thiện | GitHub Actions, Node 18/20/22 matrix, coverage >80% |
|
|
70
70
|
| Documentation | ✅ Hoàn thiện | dev/, user/, api/, videos/, examples/, troubleshooting |
|
|
71
71
|
| Standards | ✅ Hoàn thiện | SemVer, Conventional Commits, Keep a Changelog |
|
package/bin/viepilot.cjs
CHANGED
|
@@ -32,14 +32,14 @@ Usage:
|
|
|
32
32
|
viepilot --list-targets
|
|
33
33
|
|
|
34
34
|
Install options:
|
|
35
|
-
--target <id|id,id|all> Target profile(s): claude-code,cursor-agent,cursor-ide
|
|
35
|
+
--target <id|id,id|all> Target profile(s): claude-code (mirrors vp-* to ~/.claude/skills), cursor-agent, cursor-ide
|
|
36
36
|
--yes Non-interactive mode (skip confirmations)
|
|
37
37
|
--dry-run Print actions only (Node installer; no bash)
|
|
38
38
|
--list-targets Print supported targets and exit
|
|
39
39
|
--help Show help
|
|
40
40
|
|
|
41
41
|
Uninstall options:
|
|
42
|
-
--target <id|id,id|all> Remove
|
|
42
|
+
--target <id|id,id|all> Remove assets (claude-code: ~/.claude/skills/vp-*; cursor-*: ~/.cursor/skills/vp-*; shared: ~/.cursor/viepilot)
|
|
43
43
|
--yes Non-interactive mode (skip confirmations)
|
|
44
44
|
--dry-run Print actions only, do not remove files
|
|
45
45
|
`);
|
|
@@ -246,7 +246,7 @@ async function interactiveTargetSelection() {
|
|
|
246
246
|
}
|
|
247
247
|
|
|
248
248
|
/**
|
|
249
|
-
*
|
|
249
|
+
* Core bundle (workflows, bin, ~/.cursor/viepilot) is shared; `claude-code` additionally mirrors vp-* skills into ~/.claude/skills.
|
|
250
250
|
* @param {string[]} selectedTargets
|
|
251
251
|
* @param {boolean} dryRun
|
|
252
252
|
* @returns {{ ok: boolean, code: number }}
|
|
@@ -264,7 +264,7 @@ function runInstallViaNode(selectedTargets, dryRun) {
|
|
|
264
264
|
|
|
265
265
|
let plan;
|
|
266
266
|
try {
|
|
267
|
-
plan = buildInstallPlan(pkgRoot, env, { wantPathShim });
|
|
267
|
+
plan = buildInstallPlan(pkgRoot, env, { wantPathShim, installTargets: selectedTargets });
|
|
268
268
|
} catch (err) {
|
|
269
269
|
console.error(err.message);
|
|
270
270
|
return { ok: false, code: 1 };
|
|
@@ -273,7 +273,10 @@ function runInstallViaNode(selectedTargets, dryRun) {
|
|
|
273
273
|
console.log('');
|
|
274
274
|
console.log('ViePilot install (Node — no bash required)');
|
|
275
275
|
console.log(` Package: ${pkgRoot}`);
|
|
276
|
-
console.log(` Targets
|
|
276
|
+
console.log(` Targets: ${selectedTargets.join(', ')}`);
|
|
277
|
+
if (selectedTargets.includes('claude-code')) {
|
|
278
|
+
console.log(' (claude-code → also ~/.claude/skills/vp-*)');
|
|
279
|
+
}
|
|
277
280
|
|
|
278
281
|
const applied = applyInstallPlan(plan, { dryRun });
|
|
279
282
|
if (applied.logs.length > 0) {
|
|
@@ -332,7 +335,8 @@ async function installCommand(rawArgs) {
|
|
|
332
335
|
else console.log(`- ${r.target}: failed (exit ${r.code})`);
|
|
333
336
|
}
|
|
334
337
|
console.log('\nNext actions:');
|
|
335
|
-
console.log('-
|
|
338
|
+
console.log('- Cursor: open project and run /vp-status');
|
|
339
|
+
console.log('- Claude Code: restart session if needed so ~/.claude/skills/vp-* is picked up; then /vp-status');
|
|
336
340
|
console.log('- If needed, run /vp-brainstorm then /vp-crystallize');
|
|
337
341
|
|
|
338
342
|
return failed.length === 0 ? 0 : 1;
|
|
@@ -356,6 +360,17 @@ function computeUninstallPaths(targets) {
|
|
|
356
360
|
}
|
|
357
361
|
}
|
|
358
362
|
|
|
363
|
+
if (targets.some((t) => t === 'claude-code')) {
|
|
364
|
+
const claudeSkills = path.join(home, '.claude', 'skills');
|
|
365
|
+
if (fs.existsSync(claudeSkills)) {
|
|
366
|
+
for (const entry of fs.readdirSync(claudeSkills)) {
|
|
367
|
+
if (entry.startsWith('vp-')) {
|
|
368
|
+
paths.push(path.join(claudeSkills, entry));
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
|
|
359
374
|
paths.push(vpRoot);
|
|
360
375
|
paths.push('/usr/local/bin/vp-tools');
|
|
361
376
|
paths.push('/usr/local/bin/viepilot');
|
package/docs/README.md
CHANGED
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
| Document | Description |
|
|
23
23
|
|----------|-------------|
|
|
24
24
|
| [Quick Start](user/quick-start.md) | Install, brainstorm, crystallize, auto — 5 min guide |
|
|
25
|
+
| [Claude Code setup](user/claude-code-setup.md) | Cài ViePilot trên Claude Code (`~/.claude/skills`, CLI, workflows) |
|
|
25
26
|
| [FAQ](user/faq.md) | Frequently asked questions |
|
|
26
27
|
|
|
27
28
|
#### Features
|
|
@@ -116,9 +117,9 @@
|
|
|
116
117
|
| `/vp-status` | "status", "tiến độ" | Progress dashboard |
|
|
117
118
|
| `/vp-info` | "version", "phiên bản" | Bundle version, npm latest, inventory |
|
|
118
119
|
| `/vp-update` | "upgrade viepilot", "npm" | Upgrade ViePilot via npm |
|
|
119
|
-
| `/vp-request` | "request", "feature", "bug" |
|
|
120
|
+
| `/vp-request` | "request", "feature", "bug" | Log backlog; sau đó evolve + auto (ENH-021) |
|
|
120
121
|
| `/vp-ui-components` | "ui components", "21st.dev" | Curate and reuse UI component library |
|
|
121
|
-
| `/vp-evolve` | "evolve", "milestone mới" |
|
|
122
|
+
| `/vp-evolve` | "evolve", "milestone mới" | Planning (ROADMAP/phase); implement bằng `/vp-auto` |
|
|
122
123
|
| `/vp-docs` | "docs", "documentation" | Generate docs |
|
|
123
124
|
| `/vp-task` | "task", "manual" | Manual task control |
|
|
124
125
|
| `/vp-debug` | "debug", "investigate" | Debug issues |
|
|
@@ -127,4 +128,4 @@
|
|
|
127
128
|
|
|
128
129
|
---
|
|
129
130
|
|
|
130
|
-
*Last updated: 2026-04-
|
|
131
|
+
*Last updated: 2026-04-02 — ViePilot framework **v1.9.4** (Claude Code installer → `~/.claude/skills`; FEAT-001 doc v1.9.3; ENH-021 routing; M1.27 FEAT-009 profiles); see `CHANGELOG.md`, [Claude Code setup](user/claude-code-setup.md), `docs/user/features/autonomous-mode.md`.*
|
package/docs/getting-started.md
CHANGED
|
@@ -27,6 +27,10 @@ cd viepilot
|
|
|
27
27
|
./install.sh
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
+
### Claude Code
|
|
31
|
+
|
|
32
|
+
Nếu bạn dùng **Claude Code** thay vì Cursor, làm theo [ViePilot trên Claude Code](user/claude-code-setup.md) (skills trong `~/.claude/skills`, installer `npx viepilot install --target claude-code`, và verify `vp-tools info`).
|
|
33
|
+
|
|
30
34
|
## Step 2: Brainstorm Your Project
|
|
31
35
|
|
|
32
36
|
Start a new project by brainstorming:
|
package/docs/skills-reference.md
CHANGED
|
@@ -10,6 +10,10 @@ Complete reference for all ViePilot skills.
|
|
|
10
10
|
- **Routing fallback**: if an external skill is mentioned accidentally, prefer the closest built-in `vp-*` command instead.
|
|
11
11
|
- **Opt-in example**: "Trong bước này, cho phép dùng thêm external skills ngoài ViePilot để tham khảo."
|
|
12
12
|
|
|
13
|
+
### Implementation routing (ENH-021)
|
|
14
|
+
|
|
15
|
+
- **`/vp-request`** và **`/vp-evolve`** **không** implement mã shipping mặc định — chỉ backlog / plan (ROADMAP, phase, tasks). **`/vp-auto`** là lane implement sau khi có task plan (doc-first **BUG-001**). Mọi `skills/vp-*/SKILL.md` có block `<implementation_routing_guard>`; normative: `workflows/request.md`, `workflows/evolve.md`, `workflows/debug.md`, `workflows/autonomous.md`.
|
|
16
|
+
|
|
13
17
|
---
|
|
14
18
|
|
|
15
19
|
## /vp-brainstorm
|
|
@@ -32,7 +36,7 @@ Complete reference for all ViePilot skills.
|
|
|
32
36
|
| `/end` | Kết thúc và lưu (sau **Project meta intake** nếu thiếu `.viepilot/META.md` / `viepilot_profile_id` — FEAT-009) |
|
|
33
37
|
| `/questions` | Xem open questions |
|
|
34
38
|
| `/research {topic}` | Research nhanh trong phiên, quay lại topic hiện tại |
|
|
35
|
-
| `/research-ui` | **UI Direction (FEAT-010)**:
|
|
39
|
+
| `/research-ui` | **UI Direction (FEAT-010, ENH-019, ENH-020)**: scenarios + stress pass + **archetype recipes** → designer + research → HTML/CSS + **`## UX walkthrough log`** |
|
|
36
40
|
| `/research ui` | Alias của `/research-ui` |
|
|
37
41
|
|
|
38
42
|
### Output
|
|
@@ -197,7 +201,7 @@ AI pauses for user input when:
|
|
|
197
201
|
|
|
198
202
|
## /vp-evolve
|
|
199
203
|
|
|
200
|
-
**Purpose**: Nâng cấp hoặc mở rộng dự án
|
|
204
|
+
**Purpose**: Nâng cấp hoặc mở rộng dự án (**planning** — ROADMAP, phase, tasks; implement sau bằng **`/vp-auto`**; xem **Implementation routing (ENH-021)** ở đầu file).
|
|
201
205
|
|
|
202
206
|
### Modes
|
|
203
207
|
| Mode | Description |
|
|
@@ -274,7 +278,7 @@ CHANGELOG.md (updated)
|
|
|
274
278
|
|
|
275
279
|
## /vp-request
|
|
276
280
|
|
|
277
|
-
**Purpose**: Tạo và quản lý requests (Bug, Feature, Enhancement, Tech Debt, Brainstorm tiếp)
|
|
281
|
+
**Purpose**: Tạo và quản lý requests (Bug, Feature, Enhancement, Tech Debt, Brainstorm tiếp). **Không** thay **`/vp-evolve`** (plan) hay **`/vp-auto`** (implement); chuỗi khuyến nghị: request → evolve → auto (**ENH-021**).
|
|
278
282
|
|
|
279
283
|
### Flags
|
|
280
284
|
| Flag | Description |
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# ViePilot trên Claude Code
|
|
2
|
+
|
|
3
|
+
Hướng dẫn cài đặt và kiểm tra ViePilot khi bạn dùng **Claude Code** (CLI/IDE), bổ sung cho [Quick Start](quick-start.md) và [Getting Started](../getting-started.md).
|
|
4
|
+
|
|
5
|
+
## Claude Code vs Cursor (đường dẫn skills)
|
|
6
|
+
|
|
7
|
+
| | **Cursor** | **Claude Code** |
|
|
8
|
+
|---|------------|-----------------|
|
|
9
|
+
| Skills (global) | `~/.cursor/skills/<id>/SKILL.md` | `~/.claude/skills/<id>/SKILL.md` |
|
|
10
|
+
| Skills (project) | Rules / project config tùy Cursor | `.claude/skills/<id>/SKILL.md` trong repo |
|
|
11
|
+
| Tài liệu chính thức | — | [Extend Claude with skills](https://code.claude.com/docs/en/skills), [Explore the .claude directory](https://code.claude.com/docs/en/claude-directory) |
|
|
12
|
+
|
|
13
|
+
Bundled skill ViePilot dùng frontmatter `name: vp-*` — trên Claude Code bạn gọi tương đương **`/vp-auto`**, **`/vp-request`**, … như trong [Skills Reference](../skills-reference.md).
|
|
14
|
+
|
|
15
|
+
**Lưu ý:** Nội dung skill hiện nhắc tới công cụ kiểu Cursor (`ReadFile`, `ApplyPatch`, …). Trên Claude Code, agent sẽ map sang tool tương đương (đọc/ghi file, terminal, …). Phần **workflow** và **chuỗi lệnh** (`/vp-evolve` → `/vp-auto`) vẫn giữ nguyên ý nghĩa.
|
|
16
|
+
|
|
17
|
+
## Bước 1 — Cài bundle ViePilot (CLI)
|
|
18
|
+
|
|
19
|
+
Với **`--target claude-code`**, installer (ViePilot **≥ 1.9.4**) **tự copy** toàn bộ `skills/vp-*` vào **`~/.claude/skills/`** (Claude Code mới thấy lệnh `/vp-*`). Đồng thời vẫn mirror vào **`~/.cursor/skills/`** và **`~/.cursor/viepilot/`** (workflows, bin) như trước.
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx viepilot install --target claude-code --yes
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Hoặc clone repo và chạy từ thư mục gốc package:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
git clone https://github.com/0-CODE/viepilot.git
|
|
29
|
+
cd viepilot
|
|
30
|
+
npx viepilot install --target claude-code --yes
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Kết quả điển hình:
|
|
34
|
+
|
|
35
|
+
- **`~/.claude/skills/vp-*/SKILL.md`** — dùng trực tiếp trong Claude Code
|
|
36
|
+
- **`~/.cursor/skills/vp-*/`** — giữ cho Cursor / tương thích
|
|
37
|
+
- Workflows, templates, `bin/*.cjs` tới **`~/.cursor/viepilot/`**
|
|
38
|
+
- Seed **`~/.viepilot/profiles/`** và `~/.viepilot/profile-map.md` (xem [Global profiles](../dev/global-profiles.md))
|
|
39
|
+
|
|
40
|
+
Sau khi cài: **khởi động lại / mở session Claude Code mới** nếu menu `/` chưa thấy `vp-*`.
|
|
41
|
+
|
|
42
|
+
**Cập nhật sau này:** chạy lại `npx viepilot install --target claude-code --yes` từ bản npm/git mới để refresh cả hai cây skills.
|
|
43
|
+
|
|
44
|
+
## Bước 2 — Tuỳ chọn: symlink / copy thủ công (bản cũ hoặc chỉ Cursor)
|
|
45
|
+
|
|
46
|
+
Nếu bạn dùng ViePilot **< 1.9.4** hoặc đã cài **`--target cursor-*`** mà **không** gồm `claude-code`, Claude Code **không** đọc `~/.cursor/skills` — khi đó đồng bộ thủ công vào **`~/.claude/skills/<tên-thư-mục>/SKILL.md`**.
|
|
47
|
+
|
|
48
|
+
### Cách A — Symlink (khuyến nghị cho máy cá nhân)
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
mkdir -p ~/.claude/skills
|
|
52
|
+
for d in ~/.cursor/skills/vp-*; do
|
|
53
|
+
[ -d "$d" ] || continue
|
|
54
|
+
name=$(basename "$d")
|
|
55
|
+
ln -sfn "$d" "$HOME/.claude/skills/$name"
|
|
56
|
+
done
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Cách B — Copy (ổn cho máy không dùng symlink)
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
mkdir -p ~/.claude/skills
|
|
63
|
+
for d in ~/.cursor/skills/vp-*; do
|
|
64
|
+
[ -d "$d" ] || continue
|
|
65
|
+
name=$(basename "$d")
|
|
66
|
+
rm -rf "$HOME/.claude/skills/$name"
|
|
67
|
+
cp -R "$d" "$HOME/.claude/skills/$name"
|
|
68
|
+
done
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Sau mỗi lần `npm update -g viepilot` hoặc reinstall: với **copy** cần chạy lại lệnh copy; với **symlink** chỉ cần cập nhật phía `~/.cursor/skills`.
|
|
72
|
+
|
|
73
|
+
### Cách C — Skills chỉ trong một project
|
|
74
|
+
|
|
75
|
+
Trong repo của bạn:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
mkdir -p .claude/skills
|
|
79
|
+
# symlink hoặc copy từng vp-* từ clone viepilot hoặc từ ~/.cursor/skills
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Commit `.claude/skills/` nếu team cần dùng chung (xì [Where skills live](https://code.claude.com/docs/en/skills#where-skills-live)).
|
|
83
|
+
|
|
84
|
+
## Bước 3 — Workflows và `execution_context`
|
|
85
|
+
|
|
86
|
+
Nhiều skill trỏ tới workflow qua đường dẫn kiểu **`~/.cursor/viepilot/workflows/...`**. Sau `npx viepilot install`, thư mục này đã có bản mirror — **giữ nguyên** và đảm bảo skill không bị sandbox chặn đọc `$HOME`.
|
|
87
|
+
|
|
88
|
+
Nếu bạn **không** dùng installer: từ clone, có thể đọc trực tiếp `workflows/*.md` trong repo hoặc tự mirror sang `~/.cursor/viepilot/workflows/` cho khớp văn bản skill.
|
|
89
|
+
|
|
90
|
+
## Bước 4 — `vp-tools` trên PATH
|
|
91
|
+
|
|
92
|
+
**Sau installer**, thử:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
~/.cursor/viepilot/bin/vp-tools.cjs info
|
|
96
|
+
# hoặc nếu đã thêm vào PATH:
|
|
97
|
+
vp-tools info
|
|
98
|
+
vp-tools info --json
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**npm global:**
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
npm i -g viepilot
|
|
105
|
+
vp-tools info
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Chỉ có clone, không cài global:**
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
node /đường-dẫn/tới/viepilot/bin/vp-tools.cjs info --json
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Chi tiết lệnh: [CLI Reference](../dev/cli-reference.md).
|
|
115
|
+
|
|
116
|
+
## Bước 5 — Bootstrap `.viepilot/` cho project đích
|
|
117
|
+
|
|
118
|
+
Trong thư mục project (không nhất thiết là repo `viepilot`):
|
|
119
|
+
|
|
120
|
+
1. Mở project trong Claude Code.
|
|
121
|
+
2. Chạy **`/vp-crystallize`** (hoặc tương đương theo skill) để sinh `.viepilot/` — hoặc copy thủ công từ [`templates/project/`](../../templates/project/) theo [Getting Started](../getting-started.md).
|
|
122
|
+
|
|
123
|
+
Một số repo framework **gitignore** `.viepilot/`; với **ứng dụng của bạn** thường nên **commit** để cả team (và agent) cùng thấy ROADMAP/TRACKER.
|
|
124
|
+
|
|
125
|
+
## Kiểm tra nhanh
|
|
126
|
+
|
|
127
|
+
| Bước | Lệnh / hành động | Kỳ vọng |
|
|
128
|
+
|------|------------------|---------|
|
|
129
|
+
| CLI | `vp-tools info` hoặc `node .../vp-tools.cjs info` | In `installedVersion`, `skills[]` |
|
|
130
|
+
| Claude | Gõ `/` trong Claude Code | Thấy các skill `vp-*` đã cài |
|
|
131
|
+
| Project | Có `.viepilot/TRACKER.md` sau crystallize | Theo [FAQ](faq.md) |
|
|
132
|
+
|
|
133
|
+
## Windows
|
|
134
|
+
|
|
135
|
+
- Symlink có thể cần quyền Developer Mode hoặc chạy terminal elevated; nếu không, dùng **copy** (cách B).
|
|
136
|
+
- `path_shim` tới `/usr/local/bin` chỉ phù hợp Unix; trên Windows dùng `node ...\vp-tools.cjs` hoặc thêm thư mục chứa `vp-tools.cjs` vào **PATH** thủ công.
|
|
137
|
+
|
|
138
|
+
## Chuỗi làm việc gợi ý (ENH-021)
|
|
139
|
+
|
|
140
|
+
1. **`/vp-request`** — ghi yêu cầu
|
|
141
|
+
2. **`/vp-evolve`** — lên ROADMAP / phase
|
|
142
|
+
3. **`/vp-auto`** — thực thi task có plan
|
|
143
|
+
|
|
144
|
+
Xem thêm: [Autonomous mode](features/autonomous-mode.md), [Troubleshooting](../troubleshooting.md).
|
package/docs/user/faq.md
CHANGED
|
@@ -14,6 +14,12 @@ A: Skills được thiết kế cho Cursor IDE. Tuy nhiên, workflows và CLI (`
|
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
+
### Q: Làm sao dùng ViePilot với Claude Code?
|
|
18
|
+
|
|
19
|
+
A: Chạy `npx viepilot install --target claude-code --yes` (ViePilot **≥ 1.9.4**): installer **tự copy** `vp-*` vào **`~/.claude/skills/`**. Với bản cũ hoặc chỉ target Cursor, symlink/copy thủ công từ `~/.cursor/skills/`. Chi tiết, verify `vp-tools info`, và chuỗi **`/vp-request` → `/vp-evolve` → `/vp-auto`**: xem [ViePilot trên Claude Code](claude-code-setup.md).
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
17
23
|
### Q: Tôi có cần biết code để dùng ViePilot không?
|
|
18
24
|
|
|
19
25
|
A: Không nhất thiết. ViePilot giúp AI code cho bạn. Tuy nhiên, để review code và approve control points, hiểu biết cơ bản về programming sẽ hữu ích.
|
|
@@ -106,12 +112,13 @@ A: Dùng `/vp-resume` để tiếp tục từ điểm dừng. Nếu có lỗi, d
|
|
|
106
112
|
|
|
107
113
|
### Q: Làm sao thêm feature mới khi project đang chạy?
|
|
108
114
|
|
|
109
|
-
A:
|
|
115
|
+
A: **`/vp-request --feature`** để **log** yêu cầu (file request + backlog). **`/vp-evolve`** (Add feature / New milestone) để **thêm phase + tasks** trên ROADMAP. **`/vp-auto`** để **implement** theo task plan. (ENH-021: không implement trực tiếp trong thread request/evolve trừ khi bạn explicit bypass.)
|
|
110
116
|
|
|
111
117
|
---
|
|
112
118
|
|
|
113
119
|
### Q: Khi nào nên dùng `/vp-evolve` vs `/vp-request`?
|
|
114
120
|
|
|
115
|
-
A:
|
|
116
|
-
-
|
|
117
|
-
-
|
|
121
|
+
A:
|
|
122
|
+
- **`/vp-request`** — Ghi nhận bug/feature/enhancement vào `.viepilot/requests/*` + TRACKER; **không** thay thế bước plan/implement.
|
|
123
|
+
- **`/vp-evolve`** — **Planning**: thêm phase trên ROADMAP, tạo `SPEC`/tasks, cập nhật milestone; sau đó gọi **`/vp-auto`**.
|
|
124
|
+
- Milestone **mới** (M2, M3…) hoặc scope lớn → thường bắt đầu bằng **`/vp-evolve`**; ý tưởng rời rạc → có thể **`/vp-request`** trước rồi evolve.
|
|
@@ -36,6 +36,13 @@ Mỗi task:
|
|
|
36
36
|
- Nếu môi trường runtime có skills ngoài framework, workflow sẽ bỏ qua và ưu tiên skill ViePilot tương đương.
|
|
37
37
|
- Chỉ khi bạn ghi rõ yêu cầu mở rộng (explicit opt-in), agent mới được phép dùng external skills.
|
|
38
38
|
|
|
39
|
+
### Implementation routing (ENH-021)
|
|
40
|
+
|
|
41
|
+
- **`/vp-auto`** là **lane mặc định** để **implement** mã shipping sau khi đã có **phase/task plan** trên ROADMAP.
|
|
42
|
+
- **`/vp-request`** chỉ **ghi backlog** (`.viepilot/requests/*`, TRACKER) — **không** thay evolve + auto.
|
|
43
|
+
- **`/vp-evolve`** chỉ **planning** (ROADMAP, thư mục phase, SPEC/tasks) — **không** implement thay `/vp-auto`.
|
|
44
|
+
- **Chuỗi khuyến nghị:** `vp-request` → `vp-evolve` → **`vp-auto`**. Ngoại lệ: user **explicit** (*hotfix*, *sửa trong chat này*) — phải nêu rõ bypass.
|
|
45
|
+
|
|
39
46
|
### Doc-first gate (v0.8.2 / BUG-001)
|
|
40
47
|
|
|
41
48
|
Workflow `autonomous.md` yêu cầu **ghi nhận kế hoạch trong file task** và **`PHASE-STATE` → `in_progress`** trước khi chỉnh sửa deliverable. Xem `workflows/autonomous.md` — *Pre-execution documentation gate*.
|
|
@@ -76,9 +76,9 @@ Sau khi có prototype trong `.viepilot/ui-direction/{session-id}/`, bạn có th
|
|
|
76
76
|
|
|
77
77
|
**Pipeline (3 phase)** — normative: `workflows/brainstorm.md` (mục *UI Direction — UX walkthrough & upgrade*):
|
|
78
78
|
|
|
79
|
-
1. **End-user simulation** — AI đóng vai người dùng cuối: đi qua 3–8 scenario trên UI hiện tại, ghi pain (mơ hồ, thiếu feedback, quá nhiều bước, …) và mức độ.
|
|
80
|
-
2. **Designer + research** — Đổi vai UX/UI designer: ưu tiên P0/P1/P2, **web search** khi cần benchmark/pattern, đề xuất cải tiến theo từng page/slug.
|
|
81
|
-
3. **Cập nhật artifact** — Sửa HTML/CSS, và trong **`notes.md`** thêm section **`## UX walkthrough log`** (entry: ngày, scenario, pain, link research, tóm tắt thay đổi). Multi-page: vẫn giữ **hub** + **`## Pages inventory`** khớp `pages/*`.
|
|
79
|
+
1. **End-user simulation** — AI đóng vai người dùng cuối: đi qua 3–8 scenario trên UI hiện tại, ghi pain (mơ hồ, thiếu feedback, quá nhiều bước, …) và mức độ. **Sau đó** chạy **content stress pass** (ENH-019): copy dài, list/grid đầy, số & validation dài, empty vs max, viewport hẹp/rộng — phát hiện tràn layout / ellipsis / scroll / overlap; ghi **Stress findings** (có thể mô tả giả định nếu prototype chưa có data thật). **ENH-020:** chọn **archetype** (landing, SaaS admin, form/wizard, reader, commerce/booking) và áp **≥2 recipe** từ bảng trong `workflows/brainstorm.md` cho mỗi archetype đã chọn.
|
|
80
|
+
2. **Designer + research** — Đổi vai UX/UI designer: ưu tiên P0/P1/P2 (**P0** nếu stress nội dung làm hỏng luồng), **web search** khi cần benchmark/pattern, đề xuất cải tiến theo từng page/slug.
|
|
81
|
+
3. **Cập nhật artifact** — Sửa HTML/CSS, và trong **`notes.md`** thêm section **`## UX walkthrough log`** (entry: ngày, scenario, pain, **Stress findings**, link research, tóm tắt thay đổi; tùy chọn placeholder dài để minh họa). Multi-page: vẫn giữ **hub** + **`## Pages inventory`** khớp `pages/*`.
|
|
82
82
|
|
|
83
83
|
Gợi ý: kèm tên sản phẩm hoặc ngữ cảnh trong cùng tin nhắn (vd. “Trips — ưu tiên luồng đặt chuyến”).
|
|
84
84
|
|
package/docs/user/quick-start.md
CHANGED
|
@@ -31,6 +31,8 @@ Chọn profile cài đặt trong wizard (arrow keys + space + enter):
|
|
|
31
31
|
- `cursor-agent`
|
|
32
32
|
- `cursor-ide`
|
|
33
33
|
|
|
34
|
+
Hướng dẫn đầy đủ cho **Claude Code** (symlink/copy skills sang `~/.claude/skills`, PATH, kiểm tra CLI): [ViePilot trên Claude Code](claude-code-setup.md).
|
|
35
|
+
|
|
34
36
|
Non-interactive:
|
|
35
37
|
```bash
|
|
36
38
|
npx viepilot install --target cursor-agent --yes
|
package/lib/viepilot-install.cjs
CHANGED
|
@@ -76,7 +76,7 @@ function listDirEntries(packageRoot, subdir) {
|
|
|
76
76
|
*
|
|
77
77
|
* @param {string} packageRoot - absolute viepilot package root
|
|
78
78
|
* @param {Record<string, string | undefined>} [envSource] - defaults to process.env
|
|
79
|
-
* @param {{ wantPathShim?: boolean, overrideHomedir?: string }} [opts] - `overrideHomedir`: absolute fake home for tests only. `wantPathShim`: append /usr/local/bin steps (skipped on Windows at apply time).
|
|
79
|
+
* @param {{ wantPathShim?: boolean, overrideHomedir?: string, installTargets?: string[] }} [opts] - `overrideHomedir`: absolute fake home for tests only. `wantPathShim`: append /usr/local/bin steps (skipped on Windows at apply time). `installTargets`: when it includes `claude-code`, also mirror `skills/vp-*` into `~/.claude/skills/` (Claude Code discovery).
|
|
80
80
|
* @returns {{ version: number, packageRoot: string, env: ReturnType<typeof normalizeInstallEnv>, home: string, paths: object, steps: object[] }}
|
|
81
81
|
*/
|
|
82
82
|
function buildInstallPlan(packageRoot, envSource = process.env, opts = {}) {
|
|
@@ -91,6 +91,10 @@ function buildInstallPlan(packageRoot, envSource = process.env, opts = {}) {
|
|
|
91
91
|
const viepilotProfilesDir = path.join(viepilotUserDataDir, 'profiles');
|
|
92
92
|
const viepilotProfileMapPath = path.join(viepilotUserDataDir, 'profile-map.md');
|
|
93
93
|
|
|
94
|
+
const installTargets = Array.isArray(opts.installTargets) ? opts.installTargets : [];
|
|
95
|
+
const installClaudeSkills = installTargets.includes('claude-code');
|
|
96
|
+
const claudeSkillsDir = installClaudeSkills ? path.join(home, '.claude', 'skills') : null;
|
|
97
|
+
|
|
94
98
|
let wantPathShim = opts.wantPathShim;
|
|
95
99
|
if (wantPathShim === undefined) {
|
|
96
100
|
wantPathShim = env.autoYes && env.addPath;
|
|
@@ -133,6 +137,23 @@ function buildInstallPlan(packageRoot, envSource = process.env, opts = {}) {
|
|
|
133
137
|
}
|
|
134
138
|
}
|
|
135
139
|
|
|
140
|
+
if (installClaudeSkills && claudeSkillsDir) {
|
|
141
|
+
steps.push({ kind: 'mkdir', path: claudeSkillsDir });
|
|
142
|
+
for (const name of listSkillDirNames(root)) {
|
|
143
|
+
const src = path.join(root, 'skills', name);
|
|
144
|
+
const dest = path.join(claudeSkillsDir, name);
|
|
145
|
+
if (env.symlinkSkills) {
|
|
146
|
+
steps.push({
|
|
147
|
+
kind: 'symlink_dir',
|
|
148
|
+
target: dest,
|
|
149
|
+
sourceAbsolute: path.resolve(src),
|
|
150
|
+
});
|
|
151
|
+
} else {
|
|
152
|
+
steps.push({ kind: 'copy_dir', from: src, to: dest });
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
136
157
|
for (const ent of listDirEntries(root, 'workflows')) {
|
|
137
158
|
const src = path.join(root, 'workflows', ent.name);
|
|
138
159
|
const dest = path.join(viepilotDir, 'workflows', ent.name);
|
|
@@ -223,6 +244,7 @@ function buildInstallPlan(packageRoot, envSource = process.env, opts = {}) {
|
|
|
223
244
|
home,
|
|
224
245
|
paths: {
|
|
225
246
|
cursorSkillsDir,
|
|
247
|
+
claudeSkillsDir,
|
|
226
248
|
viepilotDir,
|
|
227
249
|
viepilotUserDataDir,
|
|
228
250
|
viepilotProfilesDir,
|
|
@@ -241,8 +263,11 @@ function formatPlanLines(plan) {
|
|
|
241
263
|
const lines = [];
|
|
242
264
|
lines.push('ViePilot install plan (dry-run)');
|
|
243
265
|
lines.push(` packageRoot: ${plan.packageRoot}`);
|
|
244
|
-
lines.push(` profile: ${plan.env.profile} (informational;
|
|
245
|
-
lines.push(` skills: ${plan.paths.cursorSkillsDir}`);
|
|
266
|
+
lines.push(` profile: ${plan.env.profile} (informational; Cursor paths always; Claude Code skills when target includes claude-code)`);
|
|
267
|
+
lines.push(` skills (Cursor): ${plan.paths.cursorSkillsDir}`);
|
|
268
|
+
if (plan.paths.claudeSkillsDir) {
|
|
269
|
+
lines.push(` skills (Claude Code): ${plan.paths.claudeSkillsDir}`);
|
|
270
|
+
}
|
|
246
271
|
lines.push(` viepilot: ${plan.paths.viepilotDir}`);
|
|
247
272
|
if (plan.paths.viepilotUserDataDir) {
|
|
248
273
|
lines.push(` userData (~/.viepilot): ${plan.paths.viepilotUserDataDir}`);
|
package/package.json
CHANGED
package/skills/vp-audit/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-audit
|
|
3
3
|
description: "Audit state, docs drift, and stack best-practice compliance — works on any project"
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -22,6 +22,12 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
22
22
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
23
23
|
</scope_policy>
|
|
24
24
|
|
|
25
|
+
<implementation_routing_guard>
|
|
26
|
+
## Implementation routing guard (ENH-021)
|
|
27
|
+
|
|
28
|
+
- **Báo cáo / gap** — **không** fix shipping mặc định; route **`/vp-request`** → **`/vp-evolve`** → **`/vp-auto`** hoặc user explicit. Xem `workflows/request.md`.
|
|
29
|
+
</implementation_routing_guard>
|
|
30
|
+
|
|
25
31
|
|
|
26
32
|
<objective>
|
|
27
33
|
Audit ViePilot project state và documentation để phát hiện drift.
|
package/skills/vp-auto/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-auto
|
|
3
3
|
description: "Autonomous execution loop với control points và recovery"
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.2
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -25,6 +25,12 @@ Use `Task(subagent_type="generalPurpose", ...)` for parallel execution.
|
|
|
25
25
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
26
26
|
</scope_policy>
|
|
27
27
|
|
|
28
|
+
<implementation_routing_guard>
|
|
29
|
+
## Primary implementation lane (ENH-021)
|
|
30
|
+
|
|
31
|
+
- **`/vp-auto`** + `workflows/autonomous.md` là **lane mặc định** để **implement** work đã có **phase/task plan** (doc-first **BUG-001**, git persistence **BUG-003**). **`/vp-request`** và **`/vp-evolve`** **không** thay thế lane này trừ user **explicit** override.
|
|
32
|
+
</implementation_routing_guard>
|
|
33
|
+
|
|
28
34
|
|
|
29
35
|
<objective>
|
|
30
36
|
Autonomous execution của project phases. Cho mỗi phase: analyze → plan → execute → verify → iterate.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-brainstorm
|
|
3
3
|
description: "Brainstorm session để thu thập ý tưởng, quyết định cho dự án"
|
|
4
|
-
version: 0.6.
|
|
4
|
+
version: 0.6.3
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -22,6 +22,12 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
22
22
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
23
23
|
</scope_policy>
|
|
24
24
|
|
|
25
|
+
<implementation_routing_guard>
|
|
26
|
+
## Implementation routing guard (ENH-021)
|
|
27
|
+
|
|
28
|
+
- Trong phạm vi **session** (`docs/brainstorm/*`, `.viepilot/ui-direction/*`). **Không** implement thay **`/vp-auto`** cho `lib/`, `tests/`, thay đổi framework `workflows/`/`skills/` — sau brainstorm dùng **`/vp-crystallize`** / **`/vp-evolve`** → **`/vp-auto`** tùy giai đoạn. Override explicit — nêu rõ trong chat.
|
|
29
|
+
</implementation_routing_guard>
|
|
30
|
+
|
|
25
31
|
|
|
26
32
|
<objective>
|
|
27
33
|
Thu thập ý tưởng, requirements, quyết định kiến trúc cho dự án thông qua interactive Q&A.
|
|
@@ -35,7 +41,7 @@ Hỗ trợ:
|
|
|
35
41
|
- UI Direction mode: tạo/cập nhật HTML prototype + notes trong `.viepilot/ui-direction/{session-id}/` — hỗ trợ **multi-page** (`pages/{slug}.html` + hub `index.html`) và hook **`## Pages inventory`** trong `notes.md` khi có `pages/` (FEAT-007)
|
|
36
42
|
- **Product horizon (ENH-014):** mọi session phải duy trì **`## Product horizon`** khi thảo luận capability/milestone — tier tags `(MVP)` / `(Post-MVP)` / `(Future)`, non-goals, deferred capabilities; hoặc ghi rõ **single-release / no deferred epics** (contract: `workflows/brainstorm.md`)
|
|
37
43
|
- **Project meta intake (FEAT-009):** sau khi **scope locked**, **trước** `Completed` / `/end`, nếu thiếu `.viepilot/META.md` (`viepilot_profile_id`) — chạy Q&A **tuần tự** có proposal; đọc/ghi `~/.viepilot/profile-map.md`; tạo `~/.viepilot/profiles/<slug>.md` + binding theo **`docs/dev/global-profiles.md`**. Nếu đã có profile bound — skip intake mặc định (hỏi đổi nếu cần).
|
|
38
|
-
- **UX walkthrough (FEAT-010):** trong **`--ui`**, lệnh **`/research-ui`** hoặc **`/research ui`** chạy 3 phase — mô phỏng **end-user** → **UX designer + web research** → chỉnh `index.html` / `pages/*.html` / `style.css` và ghi **`## UX walkthrough log`** trong `notes.md` (đồng bộ hub + **Pages inventory** khi multi-page).
|
|
44
|
+
- **UX walkthrough (FEAT-010 + ENH-019 + ENH-020):** trong **`--ui`**, lệnh **`/research-ui`** hoặc **`/research ui`** chạy 3 phase — mô phỏng **end-user** (kèm **content stress pass** + **stress recipes theo archetype** → **Stress findings**) → **UX designer + web research** → chỉnh `index.html` / `pages/*.html` / `style.css` và ghi **`## UX walkthrough log`** trong `notes.md` (đồng bộ hub + **Pages inventory** khi multi-page).
|
|
39
45
|
|
|
40
46
|
**Creates/Updates:**
|
|
41
47
|
- `docs/brainstorm/session-{YYYY-MM-DD}.md`
|
|
@@ -85,7 +91,7 @@ Key steps:
|
|
|
85
91
|
- [ ] Research can be executed inside the same brainstorm session
|
|
86
92
|
- [ ] UI Direction artifacts created/updated when UI mode is active
|
|
87
93
|
- [ ] Multi-page sessions: hub links + `## Pages inventory` stay in sync with `pages/*.html`
|
|
88
|
-
- [ ] **FEAT-010**: `/research-ui` (khi `--ui`) chạy đủ 3 phase + **`## UX walkthrough log`** khi có chỉnh prototype
|
|
94
|
+
- [ ] **FEAT-010 + ENH-019 + ENH-020**: `/research-ui` (khi `--ui`) chạy đủ 3 phase, gồm **content stress pass** + **archetype recipes** + **`## UX walkthrough log`** (có **Stress findings**) khi có chỉnh prototype
|
|
89
95
|
- [ ] `## Product horizon` present với MVP / Post-MVP / Future (hoặc explicit single-release statement) khi scope được thảo luận
|
|
90
96
|
- [ ] **FEAT-009**: intake hoàn tất hoặc binding đã có **hoặc** waiver có lý do trước Completed; session ghi **`## Project meta intake (FEAT-009)`**
|
|
91
97
|
- [ ] Next steps suggested
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-crystallize
|
|
3
3
|
description: "Chuyển đổi brainstorm thành executable artifacts"
|
|
4
|
-
version: 0.5.
|
|
4
|
+
version: 0.5.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -22,6 +22,12 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
22
22
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
23
23
|
</scope_policy>
|
|
24
24
|
|
|
25
|
+
<implementation_routing_guard>
|
|
26
|
+
## Implementation routing guard (ENH-021)
|
|
27
|
+
|
|
28
|
+
- Tạo **artifact** trong `.viepilot/` (và template copy) từ brainstorm — **không** thay **`/vp-auto`** để implement mã ứng dụng / framework shipping. Backlog feature code: **`/vp-evolve`** + **`/vp-auto`**. Xem `workflows/request.md`.
|
|
29
|
+
</implementation_routing_guard>
|
|
30
|
+
|
|
25
31
|
|
|
26
32
|
<objective>
|
|
27
33
|
Chuyển đổi brainstorm sessions thành structured artifacts để AI có thể autonomous execution.
|
package/skills/vp-debug/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-debug
|
|
3
3
|
description: "Systematic debugging with persistent state tracking across sessions"
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -22,6 +22,12 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
22
22
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
23
23
|
</scope_policy>
|
|
24
24
|
|
|
25
|
+
<implementation_routing_guard>
|
|
26
|
+
## Implementation routing guard (ENH-021)
|
|
27
|
+
|
|
28
|
+
- **Điều tra + log** session; **không** merge fix shipping mặc định cho đến khi user **explicit** (*sửa luôn*, *hotfix*) hoặc route **`/vp-request` → `/vp-evolve` → `/vp-auto`**. Patch nhỏ chỉ để **reproduce** OK nếu user đồng ý. Xem `workflows/debug.md`.
|
|
29
|
+
</implementation_routing_guard>
|
|
30
|
+
|
|
25
31
|
|
|
26
32
|
<objective>
|
|
27
33
|
Systematic debugging với persistent state tracking. Giúp track vấn đề qua nhiều sessions.
|
package/skills/vp-docs/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-docs
|
|
3
3
|
description: "Generate comprehensive documentation cho dự án"
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -22,6 +22,12 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
22
22
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
23
23
|
</scope_policy>
|
|
24
24
|
|
|
25
|
+
<implementation_routing_guard>
|
|
26
|
+
## Implementation routing guard (ENH-021)
|
|
27
|
+
|
|
28
|
+
- Skill này sửa **`docs/`**, index, README liên quan doc — **không** implement **`lib/`**, **`tests/`**, logic product mặc định; việc đó là **`/vp-auto`**. Override explicit. Xem `workflows/request.md`.
|
|
29
|
+
</implementation_routing_guard>
|
|
30
|
+
|
|
25
31
|
|
|
26
32
|
<objective>
|
|
27
33
|
Generate comprehensive documentation từ code và artifacts.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-evolve
|
|
3
3
|
description: "Nâng cấp, thêm features, hoặc bắt đầu milestone mới"
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -22,6 +22,14 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
22
22
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
23
23
|
</scope_policy>
|
|
24
24
|
|
|
25
|
+
<implementation_routing_guard>
|
|
26
|
+
## Implementation routing guard (ENH-021)
|
|
27
|
+
|
|
28
|
+
- Skill này chỉ **planning**: ROADMAP, phase dir, SPEC/tasks, TRACKER, ghi chú version/CHANGELOG khi workflow quy định — **không** implement mã shipping mặc định (`lib/`, `tests/`, `bin/`, sửa lớn `workflows/`/`skills/` ngoài plan artifact).
|
|
29
|
+
- **Bước tiếp:** **`/vp-auto`**. Xem `workflows/evolve.md`.
|
|
30
|
+
- **Ngoại lệ:** User **explicit** bypass — nêu rõ trong chat.
|
|
31
|
+
</implementation_routing_guard>
|
|
32
|
+
|
|
25
33
|
|
|
26
34
|
<objective>
|
|
27
35
|
Nâng cấp hoặc mở rộng dự án sau khi hoàn thành milestone hoặc cần thêm features.
|
package/skills/vp-info/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-info
|
|
3
3
|
description: "Hiển thị phiên bản ViePilot, npm latest, danh sách skills/workflows qua vp-tools"
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -19,6 +19,12 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
19
19
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
20
20
|
</scope_policy>
|
|
21
21
|
|
|
22
|
+
<implementation_routing_guard>
|
|
23
|
+
## Implementation routing guard (ENH-021)
|
|
24
|
+
|
|
25
|
+
- **Inventory / version info** — không implement shipping; implement qua **`/vp-auto`**. Xem `workflows/request.md`.
|
|
26
|
+
</implementation_routing_guard>
|
|
27
|
+
|
|
22
28
|
|
|
23
29
|
<objective>
|
|
24
30
|
Chạy **`vp-tools info`** để lấy metadata bundle ViePilot (không cần `.viepilot/` trong project đích).
|
package/skills/vp-pause/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-pause
|
|
3
3
|
description: "Pause work với context preservation để resume sau"
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -22,6 +22,12 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
22
22
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
23
23
|
</scope_policy>
|
|
24
24
|
|
|
25
|
+
<implementation_routing_guard>
|
|
26
|
+
## Implementation routing guard (ENH-021)
|
|
27
|
+
|
|
28
|
+
- **Handoff state** — không implement shipping; resume với **`/vp-resume`** rồi **`/vp-auto`** theo plan. Xem `workflows/request.md`.
|
|
29
|
+
</implementation_routing_guard>
|
|
30
|
+
|
|
25
31
|
|
|
26
32
|
<objective>
|
|
27
33
|
Save complete work state để có thể resume từ bất kỳ context nào.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-request
|
|
3
3
|
description: "Tạo request mới: feature, bug fix, enhancement, hoặc brainstorm tiếp"
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -22,6 +22,15 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
22
22
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
23
23
|
</scope_policy>
|
|
24
24
|
|
|
25
|
+
<implementation_routing_guard>
|
|
26
|
+
## Implementation routing guard (ENH-021)
|
|
27
|
+
|
|
28
|
+
- Skill này chỉ **tạo request**, **backlog**, **triage** (`.viepilot/requests/*`, `TRACKER`, đôi khi gợi ý ROADMAP) — **không** implement mã shipping mặc định (`lib/`, `tests/`, `bin/`, `workflows/`, `skills/` của repo, v.v.).
|
|
29
|
+
- **Sau request:** **`/vp-evolve`** (ROADMAP + phase + tasks + plan) → **`/vp-auto`** (thực thi). Xem `workflows/request.md`.
|
|
30
|
+
- **Ngoại lệ:** User **explicit** (*hotfix ngay*, *sửa trong chat này*, *bypass planning*) — phải **nêu rõ** bypass trong chat.
|
|
31
|
+
- **Không** đề xuất *“Start working now”* như implement trực tiếp trong thread này; thay bằng evolve → auto.
|
|
32
|
+
</implementation_routing_guard>
|
|
33
|
+
|
|
25
34
|
|
|
26
35
|
<objective>
|
|
27
36
|
Tạo và quản lý requests cho dự án đang phát triển:
|
|
@@ -199,7 +208,7 @@ Options:
|
|
|
199
208
|
1. Add to current milestone backlog
|
|
200
209
|
2. Brainstorm in detail first
|
|
201
210
|
3. Schedule for next milestone
|
|
202
|
-
4.
|
|
211
|
+
4. Plan then execute: `/vp-evolve` → `/vp-auto` (not direct implement here unless explicit override)
|
|
203
212
|
```
|
|
204
213
|
|
|
205
214
|
**Tech Debt:**
|
|
@@ -242,7 +251,8 @@ Update `.viepilot/TRACKER.md`:
|
|
|
242
251
|
|
|
243
252
|
Next:
|
|
244
253
|
- /vp-request --list View all requests
|
|
245
|
-
- /vp-
|
|
254
|
+
- /vp-evolve Plan phase/tasks + ROADMAP (before code)
|
|
255
|
+
- /vp-auto Implement per task plan (after evolve)
|
|
246
256
|
- /vp-request Create another request
|
|
247
257
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
248
258
|
```
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-resume
|
|
3
3
|
description: "Resume work từ previous session với full context restoration"
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -22,6 +22,12 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
22
22
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
23
23
|
</scope_policy>
|
|
24
24
|
|
|
25
|
+
<implementation_routing_guard>
|
|
26
|
+
## Implementation routing guard (ENH-021)
|
|
27
|
+
|
|
28
|
+
- **Khôi phục context** — không implement shipping mặc định; tiếp tục **`/vp-auto`** khi có task plan. Xem `workflows/request.md`.
|
|
29
|
+
</implementation_routing_guard>
|
|
30
|
+
|
|
25
31
|
|
|
26
32
|
<objective>
|
|
27
33
|
Restore complete project context và resume work seamlessly.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-rollback
|
|
3
3
|
description: "Rollback to any checkpoint safely with state preservation"
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -22,6 +22,12 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
22
22
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
23
23
|
</scope_policy>
|
|
24
24
|
|
|
25
|
+
<implementation_routing_guard>
|
|
26
|
+
## Implementation routing guard (ENH-021)
|
|
27
|
+
|
|
28
|
+
- **Checkpoint / revert** — không thay **`/vp-auto`** cho work mới; sau rollback dùng **`/vp-evolve`** / **`/vp-auto`** theo quy trình. Xem `workflows/request.md`.
|
|
29
|
+
</implementation_routing_guard>
|
|
30
|
+
|
|
25
31
|
|
|
26
32
|
<objective>
|
|
27
33
|
Rollback đến bất kỳ checkpoint nào một cách an toàn, với backup và state preservation.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-status
|
|
3
3
|
description: "Hiển thị progress dashboard và actionable insights"
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -19,6 +19,12 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
19
19
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
20
20
|
</scope_policy>
|
|
21
21
|
|
|
22
|
+
<implementation_routing_guard>
|
|
23
|
+
## Implementation routing guard (ENH-021)
|
|
24
|
+
|
|
25
|
+
- **Read-only / dashboard** — không implement shipping; **`/vp-evolve`** → **`/vp-auto`**. Xem `workflows/request.md`.
|
|
26
|
+
</implementation_routing_guard>
|
|
27
|
+
|
|
22
28
|
|
|
23
29
|
<objective>
|
|
24
30
|
Hiển thị visual progress dashboard với actionable insights.
|
package/skills/vp-task/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-task
|
|
3
3
|
description: "Manual control over individual tasks"
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -19,6 +19,12 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
19
19
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
20
20
|
</scope_policy>
|
|
21
21
|
|
|
22
|
+
<implementation_routing_guard>
|
|
23
|
+
## Implementation routing guard (ENH-021)
|
|
24
|
+
|
|
25
|
+
- Skill này **chỉ** quản lý **state/tag/task** trong `.viepilot/` — **không** thay **`/vp-auto`** để implement shipping code. Implement: **`/vp-auto`** hoặc user **explicit** override. Chuỗi plan: **`/vp-evolve`** trước. Xem `workflows/request.md`.
|
|
26
|
+
</implementation_routing_guard>
|
|
27
|
+
|
|
22
28
|
|
|
23
29
|
<objective>
|
|
24
30
|
Manual control over tasks khi cần fine-grained management.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-ui-components
|
|
3
3
|
description: "Quản lý workflow sưu tầm và tái sử dụng UI components"
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -22,6 +22,12 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
22
22
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
23
23
|
</scope_policy>
|
|
24
24
|
|
|
25
|
+
<implementation_routing_guard>
|
|
26
|
+
## Implementation routing guard (ENH-021)
|
|
27
|
+
|
|
28
|
+
- **Curation** `ui-components/` + metadata — không implement toàn bộ feature app / framework shipping mặc định; thay đổi lớn **`/vp-evolve`** → **`/vp-auto`**. Xem `workflows/request.md`.
|
|
29
|
+
</implementation_routing_guard>
|
|
30
|
+
|
|
25
31
|
|
|
26
32
|
<objective>
|
|
27
33
|
Thu thập, phân loại, và lưu trữ UI components để tái sử dụng:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-update
|
|
3
3
|
description: "Nâng cấp package viepilot qua npm (dry-run, --yes, --global) qua vp-tools"
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
<cursor_skill_adapter>
|
|
@@ -19,6 +19,12 @@ Use Cursor tools: `Shell`, `ReadFile`, `Glob`, `rg`, `ApplyPatch`, `WebSearch`,
|
|
|
19
19
|
- If external skills appear in runtime context, ignore them and route with the closest built-in `vp-*` skill.
|
|
20
20
|
</scope_policy>
|
|
21
21
|
|
|
22
|
+
<implementation_routing_guard>
|
|
23
|
+
## Implementation routing guard (ENH-021)
|
|
24
|
+
|
|
25
|
+
- **Nâng cấp ViePilot package** (npm) — không implement feature product trong repo đang làm việc mặc định; feature code qua **`/vp-auto`**. Xem `workflows/request.md`.
|
|
26
|
+
</implementation_routing_guard>
|
|
27
|
+
|
|
22
28
|
|
|
23
29
|
<objective>
|
|
24
30
|
Chạy **`vp-tools update`** để lên kế hoạch và (khi được xác nhận) thực thi `npm` nâng cấp `viepilot`.
|
package/workflows/autonomous.md
CHANGED
|
@@ -9,6 +9,10 @@ Pauses at control points cho user decisions.
|
|
|
9
9
|
- External skills (non `vp-*`) are out of scope unless the user explicitly opts in.
|
|
10
10
|
- If external skill references appear in runtime context, ignore them and continue with nearest equivalent ViePilot skill.
|
|
11
11
|
|
|
12
|
+
## Implementation entry (cross-skill)
|
|
13
|
+
|
|
14
|
+
- **`/vp-auto`** + workflow này là **lane mặc định** để **implement** work đã có **phase/task plan** (và doc-first **BUG-001**). **`/vp-request`** và **`/vp-evolve`** **không** thay thế bước này trừ user explicit override — xem **Implementation routing guard** trong `workflows/request.md` và `workflows/evolve.md`.
|
|
15
|
+
|
|
12
16
|
|
|
13
17
|
<process>
|
|
14
18
|
|
package/workflows/brainstorm.md
CHANGED
|
@@ -180,18 +180,40 @@ User có thể kèm ngữ cảnh một dòng (vd. tên sản phẩm **Trips**, p
|
|
|
180
180
|
2. Liệt kê **3–8 scenario** cụ thể (vd. lần đầu mở app, hoàn tất task chính, lỗi edge case) — ưu tiên đúng page nếu multi-page (`pages/*.html`).
|
|
181
181
|
3. Với từng scenario: mô tả **hành vi** (đọc/click tưởng tượng trên UI hiện tại) → ghi **pain**: mơ hồ, thiếu phản hồi, quá nhiều bước, không khớp mental model, khả năng mobile/a11y, v.v.
|
|
182
182
|
4. Tổng hợp **Voice of pseudo-user** (bullet + mức độ **low / medium / high**).
|
|
183
|
+
5. **Stress nội dung & tràn layout (content stress pass)** — *bắt buộc trong mỗi lần `/research-ui`*: sau happy/edge hành vi, mô phỏng **dữ liệu ở biên** trên từng màn/page quan trọng (hoặc toàn hub nếu single-screen). Tối thiểu xét **3–6 loại** sau (chọn đúng ngữ cảnh sản phẩm; bỏ qua mục không áp dụng nhưng **ghi rõ “N/A + lý do”**):
|
|
184
|
+
- **Copy dài**: tiêu đề, subtitle, CTA, placeholder ô nhập, tooltip, breadcrumb, tên địa điểm/người dài (Unicode), email/URL dài.
|
|
185
|
+
- **Khối lượng**: danh sách/grid **nhiều phần tử**, bảng nhiều cột/hàng, thẻ/tag/badge chồng, notification stack, lịch nhiều sự kiện.
|
|
186
|
+
- **Số & định dạng**: số tiền rất lớn/nhỏ, đơn vị dài, múi giờ/ngôn ngữ (nếu product có).
|
|
187
|
+
- **Trạng thái lỗi / validation**: message lỗi dài, nhiều lỗi cùng lúc, inline + banner.
|
|
188
|
+
- **Empty vs cực đầy**: không dữ liệu vs max items; skeleton vs flash of long content.
|
|
189
|
+
- **Viewport**: cùng stress trên **hẹp** (mobile) và **rộng** (desktop) nếu prototype nhắm đa kích thước.
|
|
190
|
+
|
|
191
|
+
**Stress recipes theo archetype (ENH-020)** — sau khi áp checklist trên, **chốt 1–2 archetype** khớp sản phẩm (từ `notes.md` / HTML / user) và áp **ít nhất hai recipe** trong mỗi hàng đã chọn (có thể diễn đạt lại bằng ngôn ngữ session; **ghi rõ archetype** trong Stress findings):
|
|
192
|
+
|
|
193
|
+
| Archetype | Ưu tiên stress (recipe gợi ý) | Ghi chú |
|
|
194
|
+
|-----------|------------------------------|---------|
|
|
195
|
+
| **Landing / marketing** | Hero **headline** cực ngắn vs cực dài; **pricing** 3–5 tier + feature list dài mỗi tier; **FAQ** 10–20 mục (accordion/stack); **logo / social proof** hàng 8–15 logo + tên dài | Sticky CTA vs nội dung dài; section order khi overflow |
|
|
196
|
+
| **App shell / SaaS admin** | **Bảng** nhiều cột + nhiều hàng; **filter bar** chip + dropdown tràn; **sidebar** nhiều cấp; **notification** stack / toast chồng | Trạng thái dense vs comfortable; frozen column |
|
|
197
|
+
| **Form-heavy / wizard** | **Label + hint** dài; **multi-step** 5–7 bước + breadcrumb dài; **lỗi** inline từng field + banner tổng; khối **optional fields** mở rộng | Tab order, submit disabled ambiguity |
|
|
198
|
+
| **Content / reader** | **Bài** cực dài; **code block** rộng; **TOC** 20–40 heading; **related** 8–15 thẻ | Max line length, sidenote, mobile đọc |
|
|
199
|
+
| **Commerce / booking / marketplace** | **Kết quả tìm** grid dày; **giá** + đơn vị + discount dài; **ngày giờ** + múi giờ + DST; **đặt chỗ** (ghế, phòng) + availability text dài | Giỏ / summary trên mobile |
|
|
200
|
+
|
|
201
|
+
Hybrid (vd. marketing + app): **gộp recipe** từ các hàng liên quan; tránh lặp cùng một stress vô nghĩa trên hai màn giống nhau.
|
|
202
|
+
|
|
203
|
+
Với prototype chỉ có nội dung mẫu ngắn: **không bắt buộc** sửa file ngay ở Phase 1 — hãy **mô tả giả định** (“nếu title 120 ký tự thì…”) và UI sẽ **tràn, ellipsis, scroll, overlap, wrap xấu** thế nào.
|
|
204
|
+
6. Tổng hợp thêm **Stress findings** (bullet: loại stress → quan sát → severity **low/medium/high**) và merge vào tổng kết Phase 1 cho Phase 2.
|
|
183
205
|
|
|
184
206
|
#### Phase 2 — UX designer + research
|
|
185
207
|
|
|
186
|
-
1. Đổi vai: **UX/UI designer** nhận feedback từ Phase 1.
|
|
187
|
-
2. Map pain → **nguyên nhân thiết kế** (heuristic ngắn, pattern thiếu/sai); **ưu tiên hóa** P0 / P1 / P2.
|
|
208
|
+
1. Đổi vai: **UX/UI designer** nhận feedback từ Phase 1 (**gồm cả Stress findings**).
|
|
209
|
+
2. Map pain → **nguyên nhân thiết kế** (heuristic ngắn, pattern thiếu/sai); **ưu tiên hóa** P0 / P1 / P2 — **ưu tiên P0** nếu stress nội dung gây **mất thông tin, click sai, hoặc không dùng được** (overflow che CTA, text cắt nghĩa, bảng tràn không đọc được).
|
|
188
210
|
3. **Web research**: khi cần benchmark hoặc pattern chuẩn ngành, chạy **1–3 truy vấn** (search) → tóm tắt nguồn, takeaway, trade-off.
|
|
189
211
|
4. **Đề xuất cải tiến** cụ thể (thành phần UI, copy, layout, luồng) gắn với file/page (`slug` nếu multi-page).
|
|
190
212
|
|
|
191
213
|
#### Phase 3 — Cập nhật artifact
|
|
192
214
|
|
|
193
215
|
1. Sửa **`index.html`**, **`pages/*.html`**, **`style.css`** theo P0 → P1 trong phạm vi phiên (prototype direction, không ép production).
|
|
194
|
-
2. Trong **`notes.md`**, thêm hoặc append section **`## UX walkthrough log`** (một entry mỗi lần chạy lệnh): ngày/scenario đã mô phỏng, pain chính, link research (nếu có), **diff ý định** (bullet), file đã đổi.
|
|
216
|
+
2. Trong **`notes.md`**, thêm hoặc append section **`## UX walkthrough log`** (một entry mỗi lần chạy lệnh): ngày/scenario đã mô phỏng, pain chính, **Stress findings** (tóm tắt), link research (nếu có), **diff ý định** (bullet), file đã đổi. *Tùy chọn:* chỉnh HTML với **placeholder/copy dài** hoặc thêm **demo row** để minh họa stress đã bàn (ghi trong log).
|
|
195
217
|
3. **Multi-page**: sau chỉnh sửa page, giữ **`## Pages inventory`** và **hub** khớp 100% file trong `pages/*` (hook FEAT-007).
|
|
196
218
|
|
|
197
219
|
**Quan hệ với `/research {topic}`**: lệnh **tự do** chỉ cần research ngắn và quay lại topic; **`/research-ui`** bắt buộc **3 phase** + **ghi log** + **chỉnh HTML/CSS khi có đề xuất hợp lý**.
|
|
@@ -373,8 +395,8 @@ _(Điền sau bước 5 — Project meta intake; xem `docs/dev/global-profiles.m
|
|
|
373
395
|
- Preview focus:
|
|
374
396
|
- {layout/flow summary; list each page slug if multi-page}
|
|
375
397
|
|
|
376
|
-
**UX walkthrough log** (optional; FEAT-010 — khi đã chạy `/research-ui`):
|
|
377
|
-
- {YYYY-MM-DD}: scenarios exercised → top pains → research links → HTML/CSS edits summary
|
|
398
|
+
**UX walkthrough log** (optional; FEAT-010 + ENH-019 + ENH-020 — khi đã chạy `/research-ui`):
|
|
399
|
+
- {YYYY-MM-DD}: scenarios exercised → top pains → **Stress findings** (tóm tắt) → research links → HTML/CSS edits summary
|
|
378
400
|
|
|
379
401
|
---
|
|
380
402
|
|
|
@@ -446,7 +468,7 @@ User có thể dùng các lệnh trong phiên brainstorm:
|
|
|
446
468
|
- [ ] Landing page topics trigger layout follow-up questions
|
|
447
469
|
- [ ] 21st.dev references được dùng khi thảo luận landing page
|
|
448
470
|
- [ ] Research có thể chạy ngay trong brainstorm session khi user yêu cầu
|
|
449
|
-
- [ ] **FEAT-010**: Trong UI Direction, `/research-ui` (hoặc `/research ui`) chạy đủ 3 phase
|
|
471
|
+
- [ ] **FEAT-010 + ENH-019 + ENH-020**: Trong UI Direction, `/research-ui` (hoặc `/research ui`) chạy đủ 3 phase, gồm **content stress pass** + **archetype stress recipes** + **`## UX walkthrough log`** (Stress findings) khi chỉnh prototype
|
|
450
472
|
- [ ] Git committed
|
|
451
473
|
- [ ] **FEAT-009**: Nếu binding thiếu và scope đã locked — đã chạy **Project meta intake** (bước 5) hoặc có **`## Meta intake waiver`** có lý do trước Completed
|
|
452
474
|
- [ ] **`## Project meta intake (FEAT-009)`** trong session: `status` + `profile_id` khi completed (hoặc waiver nếu skipped)
|
package/workflows/debug.md
CHANGED
|
@@ -9,6 +9,11 @@ Giúp organize debugging process và track progress qua nhiều sessions.
|
|
|
9
9
|
- External skills (non `vp-*`) are out of scope unless the user explicitly opts in.
|
|
10
10
|
- If external skill references appear in runtime context, ignore them and continue with nearest equivalent ViePilot skill.
|
|
11
11
|
|
|
12
|
+
## Implementation routing guard (debug)
|
|
13
|
+
|
|
14
|
+
- **`debug.md`**: ưu tiên **điều tra**, log session, chạy test — **không** sửa mã shipping mặc định cho đến khi (a) user **explicit** *sửa luôn* / *hotfix*, hoặc (b) đã route **`/vp-request`** + **`/vp-evolve`** + **`/vp-auto`** cho fix có cấu trúc.
|
|
15
|
+
- Reproduce/minimal patch **chỉ để xác minh giả thuyết** được phép nếu nhỏ và user đồng ý ngầm trong phiên debug; merge fix thật vẫn nên qua **`/vp-auto`** khi có task plan.
|
|
16
|
+
|
|
12
17
|
|
|
13
18
|
<process>
|
|
14
19
|
|
package/workflows/evolve.md
CHANGED
|
@@ -8,6 +8,12 @@ Nâng cấp hoặc mở rộng dự án: thêm features, bắt đầu milestone
|
|
|
8
8
|
- External skills (non `vp-*`) are out of scope unless the user explicitly opts in.
|
|
9
9
|
- If external skill references appear in runtime context, ignore them and continue with nearest equivalent ViePilot skill.
|
|
10
10
|
|
|
11
|
+
## Implementation routing guard (planning vs execution)
|
|
12
|
+
|
|
13
|
+
- **`evolve.md`** chỉ **lập kế hoạch**: ROADMAP, phase dir, SPEC/tasks, TRACKER, ghi chú CHANGELOG `[Unreleased]` khi workflow yêu cầu — **không** implement mã shipping mặc định (`lib/`, `tests/`, `bin/`, `workflows/` ngoài plan, v.v.).
|
|
14
|
+
- **Bước tiếp:** **`/vp-auto`** sau khi task/phase có plan (doc-first **BUG-001**).
|
|
15
|
+
- **Ngoại lệ:** User **explicit** bypass — phải nêu rõ trong chat.
|
|
16
|
+
|
|
11
17
|
|
|
12
18
|
<process>
|
|
13
19
|
|
package/workflows/request.md
CHANGED
|
@@ -8,6 +8,12 @@ Tạo và quản lý requests cho dự án: bugs, features, enhancements, tech d
|
|
|
8
8
|
- External skills (non `vp-*`) are out of scope unless the user explicitly opts in.
|
|
9
9
|
- If external skill references appear in runtime context, ignore them and continue with nearest equivalent ViePilot skill.
|
|
10
10
|
|
|
11
|
+
## Implementation routing guard (planning vs execution)
|
|
12
|
+
|
|
13
|
+
- Workflow **`request.md`** chỉ **ghi nhận, backlog, triage** — **không** là lane mặc định để **implement** mã shipping (`lib/`, `tests/`, `bin/`, `src/` app, `workflows/`, `skills/` trong repo framework, v.v.).
|
|
14
|
+
- **Chuỗi khuyến nghị sau khi có request:** `/vp-evolve` (ROADMAP, phase, SPEC/tasks, task plan; doc-first **BUG-001** khi áp dụng) → **`/vp-auto`** (thực thi + verify + git persistence **BUG-003**).
|
|
15
|
+
- **Ngoại lệ:** User **explicit** (vd. *hotfix ngay*, *sửa file X trong chat này*, *bypass planning*) → được implement trực tiếp; assistant **phải nêu rõ** đang bypass guard.
|
|
16
|
+
|
|
11
17
|
|
|
12
18
|
<process>
|
|
13
19
|
|
|
@@ -449,8 +455,8 @@ Current task: {task}
|
|
|
449
455
|
|
|
450
456
|
If option 1:
|
|
451
457
|
- Save current state (like /vp-pause)
|
|
452
|
-
- Create emergency fix phase
|
|
453
|
-
- Route to
|
|
458
|
+
- Create emergency fix phase (minimal SPEC/tasks) **hoặc** user explicit hotfix
|
|
459
|
+
- Route to **`/vp-auto`** — vẫn qua task plan ngắn khi có thể; **không** implement lặng trong thread `/vp-request` trừ user explicit bypass
|
|
454
460
|
|
|
455
461
|
### High Priority Feature
|
|
456
462
|
```
|
|
@@ -460,7 +466,7 @@ Options:
|
|
|
460
466
|
1. Add to current milestone
|
|
461
467
|
2. Brainstorm more first
|
|
462
468
|
3. Schedule for next milestone
|
|
463
|
-
4.
|
|
469
|
+
4. **Plan then execute:** `/vp-evolve` → `/vp-auto` (không implement trực tiếp trong thread `/vp-request` trừ user explicit override)
|
|
464
470
|
```
|
|
465
471
|
|
|
466
472
|
### Regular Request
|
|
@@ -521,7 +527,8 @@ git push
|
|
|
521
527
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
522
528
|
|
|
523
529
|
/vp-request --list View all requests
|
|
524
|
-
/vp-
|
|
530
|
+
/vp-evolve ROADMAP + phase/tasks (trước code)
|
|
531
|
+
/vp-auto Implement theo task plan (sau evolve)
|
|
525
532
|
/vp-request Create another request
|
|
526
533
|
/vp-status See overall progress
|
|
527
534
|
|