viepilot 1.9.11 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +175 -2
  2. package/README.md +3 -3
  3. package/bin/viepilot.cjs +7 -5
  4. package/bin/vp-tools.cjs +193 -0
  5. package/dev-install.sh +34 -13
  6. package/docs/user/features/architect-design-mode.md +170 -0
  7. package/docs/user/features/hooks.md +93 -0
  8. package/docs/user/features/ui-direction.md +79 -3
  9. package/lib/adapters/claude-code.cjs +42 -0
  10. package/lib/adapters/cursor.cjs +31 -0
  11. package/lib/adapters/index.cjs +26 -0
  12. package/lib/hooks/brainstorm-staleness.cjs +231 -0
  13. package/lib/viepilot-config.cjs +103 -0
  14. package/lib/viepilot-install.cjs +128 -153
  15. package/package.json +1 -1
  16. package/skills/vp-audit/SKILL.md +21 -21
  17. package/skills/vp-auto/SKILL.md +21 -7
  18. package/skills/vp-brainstorm/SKILL.md +46 -35
  19. package/skills/vp-crystallize/SKILL.md +37 -25
  20. package/skills/vp-debug/SKILL.md +2 -2
  21. package/skills/vp-docs/SKILL.md +7 -7
  22. package/skills/vp-evolve/SKILL.md +25 -12
  23. package/skills/vp-info/SKILL.md +23 -23
  24. package/skills/vp-pause/SKILL.md +5 -5
  25. package/skills/vp-request/SKILL.md +12 -12
  26. package/skills/vp-resume/SKILL.md +4 -4
  27. package/skills/vp-rollback/SKILL.md +3 -3
  28. package/skills/vp-status/SKILL.md +4 -4
  29. package/skills/vp-task/SKILL.md +3 -3
  30. package/skills/vp-ui-components/SKILL.md +12 -12
  31. package/skills/vp-update/SKILL.md +17 -17
  32. package/templates/architect/apis.html +159 -0
  33. package/templates/architect/architect-actions.js +217 -0
  34. package/templates/architect/architecture.html +160 -0
  35. package/templates/architect/data-flow.html +109 -0
  36. package/templates/architect/decisions.html +96 -0
  37. package/templates/architect/deployment.html +184 -0
  38. package/templates/architect/erd.html +154 -0
  39. package/templates/architect/feature-map.html +113 -0
  40. package/templates/architect/index.html +108 -0
  41. package/templates/architect/sequence-diagram.html +133 -0
  42. package/templates/architect/style.css +365 -0
  43. package/templates/architect/tech-notes.html +89 -0
  44. package/templates/architect/tech-stack.html +114 -0
  45. package/templates/architect/user-use-cases.html +154 -0
  46. package/templates/project/AI-GUIDE.md +53 -54
  47. package/templates/project/PROJECT-CONTEXT.md +7 -11
  48. package/templates/project/README.md +43 -0
  49. package/templates/project/ROADMAP.md +1 -27
  50. package/workflows/audit.md +3 -3
  51. package/workflows/autonomous.md +38 -5
  52. package/workflows/brainstorm.md +575 -191
  53. package/workflows/crystallize.md +168 -58
  54. package/workflows/debug.md +9 -9
  55. package/workflows/documentation.md +5 -5
  56. package/workflows/evolve.md +44 -12
  57. package/workflows/pause-work.md +2 -2
  58. package/workflows/request.md +8 -8
  59. package/workflows/resume-work.md +1 -1
  60. package/workflows/rollback.md +1 -1
@@ -1,5 +1,5 @@
1
1
  <purpose>
2
- Chuyển đổi brainstorm sessions thành structured artifacts để AI có thể autonomous execution.
2
+ Convert brainstorm sessions into structured artifacts for autonomous AI execution.
3
3
  </purpose>
4
4
 
5
5
  ## ViePilot Skill Scope Policy (BUG-004)
@@ -11,6 +11,19 @@ Chuyển đổi brainstorm sessions thành structured artifacts để AI có th
11
11
 
12
12
  <process>
13
13
 
14
+ <step name="load_language_config">
15
+ ## Step 0-A: Load Language Configuration (ENH-032)
16
+
17
+ Read `~/.viepilot/config.json` → set session variables:
18
+ - `DOCUMENT_LANG` — language for generated project files (default: `en`)
19
+ - `COMMUNICATION_LANG` — language for AI↔user messages (default: `en`)
20
+
21
+ Use `DOCUMENT_LANG` for all file content written in Steps 1–9.
22
+ Use `COMMUNICATION_LANG` for all prompts and confirmation messages in this session.
23
+
24
+ If `~/.viepilot/config.json` is absent, use defaults (en/en) — do not fail.
25
+ </step>
26
+
14
27
  <step name="collect_metadata">
15
28
  ## Step 0: Collect Project Metadata
16
29
 
@@ -18,34 +31,34 @@ Chuyển đổi brainstorm sessions thành structured artifacts để AI có th
18
31
 
19
32
  Normative: **`docs/dev/global-profiles.md`**. Binding: **`.viepilot/META.md`** (`viepilot_profile_id`, optional `viepilot_profile_path`).
20
33
 
21
- **Trước** block câu hỏi Basic Info:
34
+ **Before** the Basic Info question block:
22
35
 
23
- 1. Nếu `.viepilot/META.md`, parse YAML frontmatter lấy `viepilot_profile_id` tùy chọn `viepilot_profile_path`.
24
- 2. **Resolve** file profile markdown:
25
- - Nếu `viepilot_profile_path` file tồn tại (expand `~` / `$HOME`) → dùng path đó.
26
- - Else nếu `viepilot_profile_id` hợp lệ → `$HOME/.viepilot/profiles/<viepilot_profile_id>.md`.
27
- 3. **Khi đọc được file profile:**
28
- - Đọc frontmatter (`display_name`, `org_tag`, `website`, `tags`, …) body (`## Organization`, `## Branding & voice`, `## Audience`, `## Legal & attribution`, `## Contact (public)`).
29
- - **Pre-fill** các câu hỏi Step 0 (org, website, tả ngắn nếu khớp) dưới dạng **proposal**; user **confirm** hoặc **sửa**.
30
- - Ghi working note **`profile_resolved`**: `{ profile_id, absolute_path }` cho các bước sau.
31
- 4. **Khi không META, thiếu id, hoặc file không tồn tại:**
32
- - Ghi **`profile_resolved: none`** tiếp tục Step 0 như — **không** fail crystallize.
36
+ 1. If `.viepilot/META.md` exists, parse YAML frontmatter to extract `viepilot_profile_id` and optionally `viepilot_profile_path`.
37
+ 2. **Resolve** the profile markdown file:
38
+ - If `viepilot_profile_path` is set and the file exists (expand `~` / `$HOME`) → use that path.
39
+ - Else if a valid `viepilot_profile_id` is present → `$HOME/.viepilot/profiles/<viepilot_profile_id>.md`.
40
+ 3. **When the profile file is readable:**
41
+ - Read frontmatter (`display_name`, `org_tag`, `website`, `tags`, …) and body (`## Organization`, `## Branding & voice`, `## Audience`, `## Legal & attribution`, `## Contact (public)`).
42
+ - **Pre-fill** Step 0 questions (org, website, short description if matched) as a **proposal**; user must **confirm** or **edit**.
43
+ - Record working note **`profile_resolved`**: `{ profile_id, absolute_path }` for use in later steps.
44
+ 4. **When META is absent, id is missing, or file does not exist:**
45
+ - Record **`profile_resolved: none`** and continue Step 0 as normaldo **not** fail crystallize.
33
46
 
34
- Hỏi user các thông tin dự án:
47
+ Ask the user for project information:
35
48
 
36
49
  ### Basic Info
37
50
  ```
38
- 1. Tên dự án?
51
+ 1. Project name?
39
52
  Default: (extract from brainstorm)
40
53
 
41
- 2. tả ngắn gọn (1-2 câu)?
54
+ 2. Short description (1-2 sentences)?
42
55
  ```
43
56
 
44
57
  ### Organization Info
45
58
  ```
46
- 3. Tên công ty/tổ chức phát triển?
59
+ 3. Company/organization name?
47
60
 
48
- 4. Website công ty? (optional)
61
+ 4. Company website? (optional)
49
62
  ```
50
63
 
51
64
  ### Package Info
@@ -63,9 +76,9 @@ Hỏi user các thông tin dự án:
63
76
 
64
77
  ### Developer Info
65
78
  ```
66
- 8. Tên người phát triển chính?
79
+ 8. Lead developer name?
67
80
 
68
- 9. Email người phát triển chính?
81
+ 9. Lead developer email?
69
82
 
70
83
  10. GitHub username? (optional)
71
84
  ```
@@ -84,7 +97,7 @@ Hỏi user các thông tin dự án:
84
97
  Options: MIT, Apache-2.0, GPL-3.0, BSD-3-Clause, Proprietary
85
98
  Default: MIT
86
99
 
87
- 14. Năm bắt đầu dự án?
100
+ 14. Project start year?
88
101
  Default: {current_year}
89
102
  ```
90
103
 
@@ -104,25 +117,22 @@ For each session file:
104
117
  3. Extract database schemas
105
118
  4. Extract features/requirements
106
119
  5. Extract tech stack choices
107
- 6. **Product horizon (mandatory)** — parse `## Product horizon` when present (contract: `workflows/brainstorm.md`):
108
- - Classify bullets under **MVP (ship first)**, **Post-MVP (after first release)**, and **Future / exploratory** using trailing tags `(MVP)` / `(Post-MVP)` / `(Future)` when present.
109
- - Capture **Non-goals for MVP** and **Deferred capabilities (from MVP)** as first-class lists (these feed roadmap horizon and architecture constraints).
110
- - Record **extensibility / platform notes** that imply deferred work (e.g., plugin model later, multi-tenant after MVP) if written in horizon or architecture sections.
111
- - If the session states **single-release only** / **no deferred epics** (see brainstorm scope note), record `horizon_mode: single_release` in working notes for Step 7.
112
-
113
- **Consolidate across sessions** into a single **horizon inventory** (dedupe by capability name; if the same capability appears under conflicting tiers → stop and ask the user which tier wins).
120
+ 6. **Phase assignment** — parse `## Phases` from brainstorm session(s):
121
+ - Collect features/capabilities listed under each `### Phase N` heading.
122
+ - If a feature has no phase assigned ask user which phase before continuing.
123
+ - Record `phases_inventory: { phase_1: [...], phase_2: [...], ... }` in working notes.
114
124
 
115
- **Horizon validation gate (before leaving Step 1):**
116
- - [ ] Every brainstorm file was checked for `## Product horizon` **or** an explicit in-session single-release / no-deferred statement.
117
- - [ ] If `## Product horizon` is missing and the session still discusses releases beyond MVP without a single-release statement stop and ask the user to update the session (e.g. `/vp-brainstorm` save) or confirm **single-release only** for the whole project.
118
- - [ ] Either **horizon inventory is non-empty** (Post-MVP/Future/deferred items captured) **or** **single-release** is explicitly recorded — no silent default.
125
+ **Phase assignment gate (before leaving Step 1):**
126
+ - [ ] Every brainstorm session checked for `## Phases` section OR features explicitly assigned during conversation.
127
+ - [ ] All features have a phase number assigned no unassigned features.
128
+ - [ ] `phases_inventory` recorded in working notes with at least Phase 1 non-empty.
119
129
 
120
130
  Validate completeness:
121
131
  - [ ] Tech stack defined
122
132
  - [ ] Core features identified
123
133
  - [ ] Database schema exists
124
134
  - [ ] API requirements clear
125
- - [ ] Product horizon processed per gate above (inventory or explicit single-release)
135
+ - [ ] Phase assignment gate satisfied (phases_inventory recorded)
126
136
 
127
137
  If gaps found → ask user to clarify or return to brainstorm.
128
138
  </step>
@@ -130,7 +140,43 @@ If gaps found → ask user to clarify or return to brainstorm.
130
140
  <step name="consume_ui_direction">
131
141
  ## Step 1A: Consume UI Direction Artifacts (for UI/UX projects)
132
142
 
133
- If brainstorm indicates frontend/UI scope, check for direction artifacts:
143
+ ### UI Scope Detection (ENH-026 hard gate)
144
+
145
+ Before checking for artifacts, scan brainstorm session files (`docs/brainstorm/session-*.md`) for UI signal keywords:
146
+
147
+ > `màu`, `màu sắc`, `color`, `layout`, `màn hình`, `screen`, `page`, `trang`, `button`, `nút`, `form`, `biểu mẫu`, `mobile`, `responsive`, `giao diện`, `UI`, `UX`, `design`, `dashboard`, `sidebar`, `header`, `footer`, `modal`, `popup`, `icon`, `theme`, `typography`, `font`, `spacing`, `grid`, `card`, `component`, `hero`, `banner`
148
+
149
+ If **≥3 unique signal occurrences** found → set `ui_scope_detected = true`.
150
+
151
+ **Hard gate** (only when `ui_scope_detected = true`):
152
+
153
+ Check if `.viepilot/ui-direction/` exists and contains any session artifacts.
154
+
155
+ If `ui_scope_detected = true` **AND** artifacts are missing → **STOP** and present:
156
+
157
+ ```
158
+ ⚠️ UI Direction artifacts missing
159
+
160
+ The brainstorm session indicates this project has UI scope but `.viepilot/ui-direction/` has no artifacts yet.
161
+
162
+ 1. Return to /vp-brainstorm --ui to create direction first (recommended)
163
+ 2. Continue with assumptions — record in ARCHITECTURE.md and proceed
164
+ ```
165
+
166
+ **Option 2 path**: append to `.viepilot/ARCHITECTURE.md`:
167
+
168
+ ```markdown
169
+ ## UI Direction Assumptions
170
+ > Auto-generated by crystallize (ENH-026 gate bypassed by user)
171
+ - UI scope detected in brainstorm but no ui-direction artifacts present
172
+ - Proceeding without visual direction; architecture decisions may need UI review later
173
+ ```
174
+
175
+ If `ui_scope_detected = false` → skip gate; proceed normally.
176
+
177
+ ### Consume artifacts (when available)
178
+
179
+ Check for direction artifacts:
134
180
 
135
181
  ```bash
136
182
  ls -la .viepilot/ui-direction/ 2>/dev/null
@@ -149,10 +195,7 @@ When available, for the selected/latest session:
149
195
  - Extract from HTML: layout hierarchy, component candidates, interaction expectations.
150
196
  - In architecture / UI plan output, **enumerate every page** from inventory (or state explicitly single-page legacy).
151
197
 
152
- If UI scope is present but artifacts are missing:
153
- - Warn user and request either:
154
- 1. generate UI direction via `/vp-brainstorm --ui`, or
155
- 2. explicitly continue with assumptions.
198
+ If `notes.md` exists but has no `## Pages inventory` section and brainstorm shows multi-page scope warn user and request fix or assumptions before proceeding.
156
199
  </step>
157
200
 
158
201
  <step name="research_stack_official">
@@ -211,6 +254,79 @@ Also create project-local index for traceability:
211
254
  - `.viepilot/STACKS.md` listing stacks used and cache paths.
212
255
  </step>
213
256
 
257
+ <step name="consume_architect_artifacts">
258
+ ## Step 1D: Consume Architect Artifacts (FEAT-011)
259
+
260
+ If `.viepilot/architect/` exists with at least one session directory:
261
+
262
+ 1. **Select most recent session** (by directory mtime or newest session-id).
263
+ 2. **Read `notes.md`** → parse YAML frontmatter sections:
264
+ - **`decisions[]`** → append to `.viepilot/ARCHITECTURE.md` under:
265
+ ```markdown
266
+ ## Architecture Decisions (from Architect Mode)
267
+ | ID | Topic | Chosen | Rationale | Status |
268
+ ```
269
+ - **`tech_stack{}`** → use as **authoritative tech stack** (overrides brainstorm text if conflict; when conflict detected: surface to user with both values and ask which to use before proceeding).
270
+ - **`open_questions[]`** with `status: open` → surface as list:
271
+ ```
272
+ ⚠️ These questions were open at end of Architect Design Mode — please resolve before proceeding:
273
+ - Q001: {question}
274
+ - Q002: {question}
275
+ ```
276
+ 3. **`erd.html` / `notes.md ## erd`** (if exists — ENH-027) → append to `.viepilot/ARCHITECTURE.md`:
277
+ ```markdown
278
+ ## Database Schema (from Architect ERD)
279
+ | Entity | Attributes | PK | FK | Notes |
280
+ ...
281
+ ### Relationships
282
+ | Entity A | Type | Entity B | Label |
283
+ ```
284
+ 4. **`user-use-cases.html` / `notes.md ## use_cases`** (if exists — ENH-028) → append to `.viepilot/PROJECT-CONTEXT.md`:
285
+ ```markdown
286
+ ## User Stories & Use Cases (from Architect Mode)
287
+ ### Actors
288
+ | Actor | Role | Goals |
289
+ ### User Stories
290
+ | ID | As a... | I want to... | So that... | Priority |
291
+ ```
292
+ 5. **`deployment.html` / `notes.md ## deployment`** (if exists — ENH-029) → append to `.viepilot/ARCHITECTURE.md`:
293
+ ```markdown
294
+ ## Deployment & Infrastructure (from Architect Mode)
295
+ | Env | URL | Purpose | Services | Config notes |
296
+ ...
297
+ ### Infrastructure Components
298
+ | Component | Type | Provider | Sizing | Notes |
299
+ ```
300
+ 6. **`apis.html` / `notes.md ## apis`** (if exists — ENH-029) → append to `.viepilot/ARCHITECTURE.md`:
301
+ ```markdown
302
+ ## API Design (from Architect Mode)
303
+ ### API Style: {REST / GraphQL / gRPC / WebSocket}
304
+ | Service | Method | Path | Auth? | Notes |
305
+ ...
306
+ ### API Design Decisions
307
+ | Decision | Choice | Rationale |
308
+ ```
309
+ Note: `sequence-diagram.html` is intentionally excluded from crystallize extraction — per-scenario diagrams are not architecture artifacts (they live in Architect Mode workspace only).
310
+ 7. **`feature-map.html`** → cross-reference Phase badges with `phases_inventory`; if discrepancies found (feature in HTML not in inventory, or vice versa) → list them for user to confirm.
311
+ 8. **Record in working notes**:
312
+ - `architect_session_id`: {id}
313
+ - `decisions_imported`: {count}
314
+ - `open_questions_count`: {count of open questions}
315
+ - `erd_entities_count`: {count if erd present, else "n/a"}
316
+ - `use_cases_count`: {count if use_cases present, else "n/a"}
317
+ - `deployment_imported`: {true/false}
318
+ - `apis_imported`: {true/false}
319
+
320
+ If `.viepilot/architect/` does **not** exist but brainstorm shows complex architecture (≥5 services/components detected):
321
+ - Suggest (soft prompt — not a hard block):
322
+ ```
323
+ 💡 Would you like to return to /vp-brainstorm --architect to create visualizations first?
324
+ 1. Yes — return to architect mode
325
+ 2. No — continue crystallize with text-only brainstorm
326
+ ```
327
+ - User confirmation required before proceeding.
328
+ </step>
329
+
214
330
  <step name="generate_ai_guide">
215
331
  ## Step 2: Generate AI-GUIDE.md
216
332
 
@@ -219,8 +335,8 @@ Create `.viepilot/AI-GUIDE.md` using template:
219
335
 
220
336
  Customize with:
221
337
  - Project-specific file references
222
- - **ViePilot profile (FEAT-009):** Nếu Step 0 đặt `profile_resolved` thành đường dẫn hợp lệ, thêm mục **Quick context** ghi `profile_id`, đường dẫn file profile, nhắc đọc file đó cho **tone/branding** khi viết user-facing text. Nếu `profile_resolved: none`, ghi một dòng: chưa bind profile global.
223
- - Context loading strategy based on project size — **preserve template ordering** where `PROJECT-CONTEXT.md` **`<product_vision>`** and **`ROADMAP.md` horizon** (Post-MVP / Future) are read **before** deep implementation / architecture lock; state this explicitly in the generated `AI-GUIDE.md` if you trim sections
338
+ - **ViePilot profile (FEAT-009):** If Step 0 set `profile_resolved` to a valid path, add a **Quick context** entry recording `profile_id`, the profile file path, and a reminder to read that file for **tone/branding** when writing user-facing text. If `profile_resolved: none`, write a single line: no global profile bound.
339
+ - Context loading strategy based on project size — **preserve template ordering** where `PROJECT-CONTEXT.md` **`<product_vision>`** and **`ROADMAP.md` phases** are read **before** deep implementation / architecture lock; state this explicitly in the generated `AI-GUIDE.md` if you trim sections
224
340
  - Quick lookup for project-specific terms
225
341
  - Fast stack lookup section:
226
342
  - Read `.viepilot/STACKS.md`
@@ -240,7 +356,7 @@ Fill with collected metadata:
240
356
  - Package structure (generate from base ID)
241
357
  - Developer info
242
358
  - File headers (generate from metadata)
243
- - **FEAT-009:** Nếu profile đã resolve Step 0 user đã confirm pre-fill, **ưu tiên** khớp bảng Organization / attribution trong template với nội dung profile (chỉ dữ liệu công khai; không secrets).
359
+ - **FEAT-009:** If the profile was resolved in Step 0 and the user confirmed the pre-fill, **prioritize** aligning the Organization / attribution table in the template with the profile content (public data only; no secrets).
244
360
  </step>
245
361
 
246
362
  <step name="generate_architecture">
@@ -258,7 +374,7 @@ Extract from brainstorm:
258
374
 
259
375
  ### ViePilot organization context (FEAT-009)
260
376
 
261
- - Nếu Step 0 ghi **`profile_resolved`** với đường dẫn hợp lệ: ngay sau phần **overview** đầu tiên của `.viepilot/ARCHITECTURE.md`, thêm section:
377
+ - If Step 0 recorded **`profile_resolved`** with a valid path: immediately after the first **overview** section of `.viepilot/ARCHITECTURE.md`, add the following section:
262
378
 
263
379
  ```markdown
264
380
  ## ViePilot organization context
@@ -267,9 +383,9 @@ Extract from brainstorm:
267
383
 
268
384
  ```
269
385
 
270
- Sau đó **2–8 bullet** tóm tắt (không secrets) từ **Organization**, **Branding & voice**, **Audience** trong file profile.
386
+ Then add **2–8 bullets** summarizing (no secrets) from the **Organization**, **Branding & voice**, and **Audience** sections of the profile file.
271
387
 
272
- - Nếu **`profile_resolved: none`**: một dòng dưới overview: *No ViePilot global profile bound — organization context comes from Step 0 only.*
388
+ - If **`profile_resolved: none`**: add one line below the overview: *No ViePilot global profile bound — organization context comes from Step 0 only.*
273
389
 
274
390
  Before writing diagrams, create a **diagram applicability matrix** from brainstorm signals (complexity, service boundaries, event usage, deployment shape, user-flow complexity, integration surface):
275
391
 
@@ -323,7 +439,7 @@ Extract:
323
439
  - Naming conventions
324
440
  - Constraints
325
441
 
326
- **FEAT-009 — ViePilot active profile block:** Nếu profile đã resolve Step 0, chèn **trước** `<domain_knowledge>` (hoặc ngay sau title file) section:
442
+ **FEAT-009 — ViePilot active profile block:** If the profile was resolved in Step 0, insert **before** `<domain_knowledge>` (or immediately after the file title) the following section:
327
443
 
328
444
  ```markdown
329
445
  ## ViePilot active profile (FEAT-009)
@@ -338,7 +454,7 @@ Extract:
338
454
 
339
455
  ```
340
456
 
341
- Nếu không profile: một dòng *Profile binding not configured (`META.md` or global profile file missing).*
457
+ If no profile: a single line *Profile binding not configured (`META.md` or global profile file missing).*
342
458
  </step>
343
459
 
344
460
  <step name="generate_rules">
@@ -368,23 +484,17 @@ Include:
368
484
  Create `.viepilot/ROADMAP.md` using template:
369
485
  `@$HOME/.cursor/viepilot/templates/project/ROADMAP.md`
370
486
 
371
- From brainstorm features/MVP breakdown:
372
- 1. Create **executable MVP phases** (what `/vp-auto` can run next; near-term delivery only).
487
+ From brainstorm `phases_inventory`:
488
+ 1. Generate phases in order: Phase 1, Phase 2, Phase 3... from `phases_inventory`.
373
489
  2. For each phase:
374
490
  - Define goal
375
491
  - Break into tasks
376
492
  - Set acceptance criteria
377
493
  - Add verification checkpoints
378
494
  - Estimate complexity (S/M/L/XL)
379
- 3. Define dependencies between MVP phases.
380
- 4. **Post-MVP / product horizon (mandatory section in `.viepilot/ROADMAP.md`):**
381
- - After MVP phases, always add a dedicated block (heading e.g. `## Post-MVP / Product horizon` or match the project template’s equivalent) that is **never omitted**:
382
- - If Step 1 recorded **single-release** / no deferred epics: state explicitly *e.g.* **Single-release scope — no separate post-MVP epics** and that deferred capabilities are none by confirmation (do not invent future work).
383
- - Otherwise: summarize **horizon inventory** items as **epic-level** entries (dependencies, rough sequencing OK; full task breakdown optional).
384
- - Where a future epic depends on MVP deliverables, note **dependency links** back to the MVP phase(s) that unlock it.
385
- 5. **ROADMAP self-check before finalize:**
386
- - If Step 1 **horizon inventory** is non-empty but the draft ROADMAP **drops** those items or lacks the horizon block → **stop** and ask the user to reconcile (do not ship a roadmap that silently omits post-MVP content from brainstorm).
387
- - If brainstorm contained Post-MVP ideas only in free text without `## Product horizon` → you should already have stopped in Step 1; do not proceed to commit ROADMAP.
495
+ 3. Define dependencies between phases.
496
+ 4. Each phase: tasks, acceptance criteria, verification commands.
497
+ 5. No Post-MVP / horizon block needed all work is already in phases.
388
498
  </step>
389
499
 
390
500
  <step name="generate_schemas">
@@ -531,11 +641,11 @@ Note: global stack cache at `~/.viepilot/stacks/` is machine-level knowledge and
531
641
  - [ ] All metadata collected
532
642
  - [ ] Official research completed for each selected stack
533
643
  - [ ] Global stack cache written under ~/.viepilot/stacks/{stack}/
534
- - [ ] Step 1: product horizon extracted **or** explicit single-release recorded; validation gate satisfied
644
+ - [ ] Step 1: phase assignment gate satisfied (phases_inventory recorded, all features assigned)
535
645
  - [ ] All artifacts created in .viepilot/
536
646
  - [ ] PROJECT-META.md complete
537
647
  - [ ] SYSTEM-RULES.md has all standards
538
- - [ ] ROADMAP.md has MVP phases with tasks **and** mandatory Post-MVP / horizon block (or explicit single-release statement)
648
+ - [ ] ROADMAP.md has phases with tasks in order from phases_inventory
539
649
  - [ ] Phase directories created
540
650
  - [ ] Project files created
541
651
  - [ ] Git committed
@@ -1,6 +1,6 @@
1
1
  <purpose>
2
- Systematic debugging workflow với persistent state tracking.
3
- Giúp organize debugging process track progress qua nhiều sessions.
2
+ Systematic debugging workflow with persistent state tracking.
3
+ Helps organize the debugging process and track progress across multiple sessions.
4
4
  </purpose>
5
5
 
6
6
  ## ViePilot Skill Scope Policy (BUG-004)
@@ -11,8 +11,8 @@ Giúp organize debugging process và track progress qua nhiều sessions.
11
11
 
12
12
  ## Implementation routing guard (debug)
13
13
 
14
- - **`debug.md`**: ưu tiên **điều tra**, log session, chạy test — **không** sửa 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ấu trúc.
15
- - Reproduce/minimal patch **chỉ để xác minh giả thuyết** được phép nếu nhỏ user đồng ý ngầm trong phiên debug; merge fix thật vẫn nên qua **`/vp-auto`** khi task plan.
14
+ - **`debug.md`**: prioritizes **investigation**, session logging, running testsdoes **not** modify shipping code by default until (a) user **explicitly** says *fix now* / *hotfix*, or (b) already routed through **`/vp-request`** + **`/vp-evolve`** + **`/vp-auto`** for a structured fix.
15
+ - Reproduce/minimal patch **only to verify hypotheses** is allowed if small and the user implicitly agrees during the debug session; merging the real fix should still go through **`/vp-auto`** when a task plan exists.
16
16
 
17
17
 
18
18
  <process>
@@ -61,11 +61,11 @@ Go to step 3 (New Session).
61
61
 
62
62
  Ask user:
63
63
  ```
64
- tả vấn đề bạn đang gặp:
65
- 1. Vấn đề gì?
66
- 2. Triệu chứng? (error messages, behavior)
67
- 3. Khi nào xảy ra? (điều kiện)
68
- 4. Files liên quan?
64
+ Describe the problem you are facing:
65
+ 1. What is the problem?
66
+ 2. Symptoms? (error messages, behavior)
67
+ 3. When does it occur? (conditions)
68
+ 4. Related files?
69
69
  ```
70
70
 
71
71
  Create session:
@@ -1,5 +1,5 @@
1
1
  <purpose>
2
- Generate comprehensive documentation từ code artifacts.
2
+ Generate comprehensive documentation from code and artifacts.
3
3
  </purpose>
4
4
 
5
5
  ## ViePilot Skill Scope Policy (BUG-004)
@@ -60,11 +60,11 @@ For viepilot framework repos, also use `$ACTUAL_SKILLS`, `$ACTUAL_WORKFLOWS`.
60
60
 
61
61
  ### 0A. ViePilot active profile (FEAT-009)
62
62
 
63
- Normative: **`docs/dev/global-profiles.md`**. Cùng **resolution** như `workflows/crystallize.md` Step 0 (đọc `.viepilot/META.md` → `viepilot_profile_path` hoặc `$HOME/.viepilot/profiles/<viepilot_profile_id>.md`).
63
+ Normative: **`docs/dev/global-profiles.md`**. Same **resolution** as `workflows/crystallize.md` Step 0 (read `.viepilot/META.md` → `viepilot_profile_path` or `$HOME/.viepilot/profiles/<viepilot_profile_id>.md`).
64
64
 
65
- 1. Nếu đọc được file profile, giữ **working notes** (display_name, org_tag, website, audience, branding) để dùng khi sinh README / contributing / bất kỳ prose **attribution** — chỉ nội dung **công khai**, không secrets.
66
- 2. Nếu không binding hoặc file thiếutiếp tục; **không** fail `/vp-docs`.
67
- 3. Khi profile, nhắc trong output (vd. footer README hoặc `docs/dev/architecture.md`) một dòng trích **profile_id** nếu phù hợp policy dự án.
65
+ 1. If the profile file is readable, keep **working notes** (display_name, org_tag, website, audience, branding) for use when generating README / contributing / any prose **attribution** — public content only, no secrets.
66
+ 2. If no binding exists or file is missing continue; do **not** fail `/vp-docs`.
67
+ 3. When a profile is present, mention in output (e.g., README footer or `docs/dev/architecture.md`) one line referencing **profile_id** if appropriate for the project policy.
68
68
 
69
69
  Post-generation validation (run after all files generated):
70
70
  ```bash
@@ -1,5 +1,5 @@
1
1
  <purpose>
2
- Nâng cấp hoặc mở rộng dự án: thêm features, bắt đầu milestone mới, hoặc refactor.
2
+ Upgrade or expand the project: add features, start a new milestone, or refactor.
3
3
  </purpose>
4
4
 
5
5
  ## ViePilot Skill Scope Policy (BUG-004)
@@ -10,9 +10,9 @@ Nâng cấp hoặc mở rộng dự án: thêm features, bắt đầu milestone
10
10
 
11
11
  ## Implementation routing guard (planning vs execution)
12
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 shipping mặc định (`lib/`, `tests/`, `bin/`, `workflows/` ngoài plan, v.v.).
14
- - **Bước tiếp:** **`/vp-auto`** sau khi task/phase plan (doc-first **BUG-001**).
15
- - **Ngoại lệ:** User **explicit** bypass — phải nêu trong chat.
13
+ - **`evolve.md`** only **plans**: ROADMAP, phase dir, SPEC/tasks, TRACKER, CHANGELOG `[Unreleased]` notes when the workflow requiresdoes **not** implement shipping code by default (`lib/`, `tests/`, `bin/`, `workflows/` outside plan, etc.).
14
+ - **Next step:** **`/vp-auto`** after task/phase has a plan (doc-first **BUG-001**).
15
+ - **Exception:** User **explicit** bypass — must be stated clearly in chat.
16
16
 
17
17
 
18
18
  <process>
@@ -63,7 +63,7 @@ Describe the new feature:
63
63
  3. Which services/modules affected?
64
64
  4. Dependencies on existing code?
65
65
  5. Estimated complexity? (S/M/L/XL)
66
- 6. cần brainstorm chuyên sâu không? (landing page / UX / growth ideas / research-heavy)
66
+ 6. Need deep brainstorm? (landing page / UX / growth ideas / research-heavy)
67
67
  ```
68
68
 
69
69
  ### Check Architecture Compatibility
@@ -79,12 +79,12 @@ Questions:
79
79
 
80
80
  If incompatible → suggest refactor first or discuss alternative.
81
81
 
82
- ### Smart Route to Brainstorm (khi phù hợp)
83
- Nếu feature nội dung thiên về product discovery, UX, hoặc landing page:
84
- - Route qua brainstorm nâng cao thay chốt phase ngay:
85
- - `/vp-brainstorm --new --landing --research` (nếu landing page)
86
- - `/vp-brainstorm --new --research` (nếu cần research decision)
87
- - Sau khi brainstorm xong, quay lại `/vp-evolve` để crystallize phase/tasks.
82
+ ### Smart Route to Brainstorm (when applicable)
83
+ If the feature leans toward product discovery, UX, or landing page:
84
+ - Route through advanced brainstorm instead of locking the phase immediately:
85
+ - `/vp-brainstorm --new --landing --research` (if there is a landing page)
86
+ - `/vp-brainstorm --new --research` (if a research decision is needed)
87
+ - After brainstorm is complete, return to `/vp-evolve` to crystallize phase/tasks.
88
88
 
89
89
  ### Generate Phase
90
90
  Create new phase in ROADMAP.md:
@@ -103,6 +103,38 @@ Create new phase in ROADMAP.md:
103
103
  - [ ] {criteria}
104
104
  ```
105
105
 
106
+ ### ⚠️ TASK PATH RULE (BUG-009)
107
+
108
+ When writing the `## Paths` block in **any task `.md` file**, ALWAYS use paths
109
+ **relative to the repository root** (where `package.json` / `Makefile` lives).
110
+
111
+ ```
112
+ CORRECT (repo-relative):
113
+ workflows/crystallize.md
114
+ skills/vp-audit/SKILL.md
115
+ templates/project/AI-GUIDE.md
116
+ lib/viepilot-config.cjs
117
+ bin/vp-tools.cjs
118
+ tests/unit/my-test.test.js
119
+
120
+ INCORRECT (never use in ## Paths):
121
+ ~/.claude/viepilot/workflows/crystallize.md
122
+ ~/.claude/skills/vp-audit/SKILL.md
123
+ /Users/someone/.claude/...
124
+ /absolute/path/to/anything
125
+ ```
126
+
127
+ **Exception:** paths *inside* code block content (bash examples, runtime descriptions)
128
+ may reference absolute paths (e.g., `~/.claude/viepilot/config.json` inside a bash
129
+ snippet). Only the `## Paths` header block must be repo-relative.
130
+
131
+ If unsure of the repo-relative path, inspect:
132
+ - `ls workflows/` → workflow files
133
+ - `ls skills/` → skill files
134
+ - `ls lib/` → library files
135
+ - `ls bin/` → CLI files
136
+ - `ls templates/` → template files
137
+
106
138
  ### Create Phase Directory
107
139
  ```bash
108
140
  mkdir -p .viepilot/phases/{NN}-{feature-slug}/tasks/
@@ -168,7 +200,7 @@ New milestone details:
168
200
 
169
201
  Options:
170
202
  - Route to `/vp-brainstorm --new` for full brainstorm
171
- - Nếu milestone landing page focus: `/vp-brainstorm --new --landing --research`
203
+ - If milestone has landing page focus: `/vp-brainstorm --new --landing --research`
172
204
  - Quick setup with minimal questions
173
205
 
174
206
  ### Generate New ROADMAP.md
@@ -1,6 +1,6 @@
1
1
  <purpose>
2
- Save complete work state để thể resume từ bất kỳ context nào.
3
- Creates HANDOFF.json .continue-here.md cho recovery.
2
+ Save complete work state so it can be resumed from any context.
3
+ Creates HANDOFF.json and .continue-here.md for recovery.
4
4
  </purpose>
5
5
 
6
6
  <process>
@@ -1,5 +1,5 @@
1
1
  <purpose>
2
- Tạo quản requests cho dự án: bugs, features, enhancements, tech debt, brainstorm continuation.
2
+ Create and manage project requests: bugs, features, enhancements, tech debt, and brainstorm continuation.
3
3
  </purpose>
4
4
 
5
5
  ## ViePilot Skill Scope Policy (BUG-004)
@@ -10,9 +10,9 @@ Tạo và quản lý requests cho dự án: bugs, features, enhancements, tech d
10
10
 
11
11
  ## Implementation routing guard (planning vs execution)
12
12
 
13
- - Workflow **`request.md`** chỉ **ghi nhận, backlog, triage** — **không** lane mặc định để **implement** 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.
13
+ - Workflow **`request.md`** only **records, backlogs, and triages** — it is **not** the default lane to **implement** shipping code (`lib/`, `tests/`, `bin/`, `src/` app, `workflows/`, `skills/` in the framework repo, etc.).
14
+ - **Recommended chain after a request:** `/vp-evolve` (ROADMAP, phase, SPEC/tasks, task plan; doc-first **BUG-001** when applicable) → **`/vp-auto`** (execute + verify + git persistence **BUG-003**).
15
+ - **Exception:** User **explicitly** states (e.g., *hotfix now*, *fix file X in this chat*, *bypass planning*) → direct implementation is allowed; the assistant **must state clearly** it is bypassing the guard.
16
16
 
17
17
 
18
18
  <process>
@@ -455,8 +455,8 @@ Current task: {task}
455
455
 
456
456
  If option 1:
457
457
  - Save current state (like /vp-pause)
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 thể; **không** implement lặng trong thread `/vp-request` trừ user explicit bypass
458
+ - Create emergency fix phase (minimal SPEC/tasks) **or** user explicit hotfix
459
+ - Route to **`/vp-auto`** — still go through a short task plan when possible; do **not** implement silently inside the `/vp-request` thread unless the user explicitly bypasses
460
460
 
461
461
  ### High Priority Feature
462
462
  ```
@@ -466,7 +466,7 @@ Options:
466
466
  1. Add to current milestone
467
467
  2. Brainstorm more first
468
468
  3. Schedule for next milestone
469
- 4. **Plan then execute:** `/vp-evolve` → `/vp-auto` (không implement trực tiếp trong thread `/vp-request` trừ user explicit override)
469
+ 4. **Plan then execute:** `/vp-evolve` → `/vp-auto` (do not implement directly inside the `/vp-request` thread unless user explicitly overrides)
470
470
  ```
471
471
 
472
472
  ### Regular Request
@@ -527,7 +527,7 @@ git push
527
527
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
528
528
 
529
529
  /vp-request --list View all requests
530
- /vp-evolve ROADMAP + phase/tasks (trước code)
530
+ /vp-evolve ROADMAP + phase/tasks (before code)
531
531
  /vp-auto Implement theo task plan (sau evolve)
532
532
  /vp-request Create another request
533
533
  /vp-status See overall progress
@@ -1,5 +1,5 @@
1
1
  <purpose>
2
- Restore complete project context resume work seamlessly từ previous session.
2
+ Restore complete project context and resume work seamlessly from a previous session.
3
3
  </purpose>
4
4
 
5
5
  <process>
@@ -1,5 +1,5 @@
1
1
  <purpose>
2
- Safe rollback to any ViePilot checkpoint với backup state preservation.
2
+ Safe rollback to any ViePilot checkpoint with backup and state preservation.
3
3
  </purpose>
4
4
 
5
5
  <process>