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.
- package/CHANGELOG.md +175 -2
- package/README.md +3 -3
- package/bin/viepilot.cjs +7 -5
- package/bin/vp-tools.cjs +193 -0
- package/dev-install.sh +34 -13
- package/docs/user/features/architect-design-mode.md +170 -0
- package/docs/user/features/hooks.md +93 -0
- package/docs/user/features/ui-direction.md +79 -3
- package/lib/adapters/claude-code.cjs +42 -0
- package/lib/adapters/cursor.cjs +31 -0
- package/lib/adapters/index.cjs +26 -0
- package/lib/hooks/brainstorm-staleness.cjs +231 -0
- package/lib/viepilot-config.cjs +103 -0
- package/lib/viepilot-install.cjs +128 -153
- package/package.json +1 -1
- package/skills/vp-audit/SKILL.md +21 -21
- package/skills/vp-auto/SKILL.md +21 -7
- package/skills/vp-brainstorm/SKILL.md +46 -35
- package/skills/vp-crystallize/SKILL.md +37 -25
- package/skills/vp-debug/SKILL.md +2 -2
- package/skills/vp-docs/SKILL.md +7 -7
- package/skills/vp-evolve/SKILL.md +25 -12
- package/skills/vp-info/SKILL.md +23 -23
- package/skills/vp-pause/SKILL.md +5 -5
- package/skills/vp-request/SKILL.md +12 -12
- package/skills/vp-resume/SKILL.md +4 -4
- package/skills/vp-rollback/SKILL.md +3 -3
- package/skills/vp-status/SKILL.md +4 -4
- package/skills/vp-task/SKILL.md +3 -3
- package/skills/vp-ui-components/SKILL.md +12 -12
- package/skills/vp-update/SKILL.md +17 -17
- package/templates/architect/apis.html +159 -0
- package/templates/architect/architect-actions.js +217 -0
- package/templates/architect/architecture.html +160 -0
- package/templates/architect/data-flow.html +109 -0
- package/templates/architect/decisions.html +96 -0
- package/templates/architect/deployment.html +184 -0
- package/templates/architect/erd.html +154 -0
- package/templates/architect/feature-map.html +113 -0
- package/templates/architect/index.html +108 -0
- package/templates/architect/sequence-diagram.html +133 -0
- package/templates/architect/style.css +365 -0
- package/templates/architect/tech-notes.html +89 -0
- package/templates/architect/tech-stack.html +114 -0
- package/templates/architect/user-use-cases.html +154 -0
- package/templates/project/AI-GUIDE.md +53 -54
- package/templates/project/PROJECT-CONTEXT.md +7 -11
- package/templates/project/README.md +43 -0
- package/templates/project/ROADMAP.md +1 -27
- package/workflows/audit.md +3 -3
- package/workflows/autonomous.md +38 -5
- package/workflows/brainstorm.md +575 -191
- package/workflows/crystallize.md +168 -58
- package/workflows/debug.md +9 -9
- package/workflows/documentation.md +5 -5
- package/workflows/evolve.md +44 -12
- package/workflows/pause-work.md +2 -2
- package/workflows/request.md +8 -8
- package/workflows/resume-work.md +1 -1
- package/workflows/rollback.md +1 -1
package/workflows/crystallize.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
|
|
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
|
-
**
|
|
34
|
+
**Before** the Basic Info question block:
|
|
22
35
|
|
|
23
|
-
1.
|
|
24
|
-
2. **Resolve**
|
|
25
|
-
-
|
|
26
|
-
- Else
|
|
27
|
-
3. **
|
|
28
|
-
-
|
|
29
|
-
- **Pre-fill**
|
|
30
|
-
-
|
|
31
|
-
4. **
|
|
32
|
-
-
|
|
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 normal — do **not** fail crystallize.
|
|
33
46
|
|
|
34
|
-
|
|
47
|
+
Ask the user for project information:
|
|
35
48
|
|
|
36
49
|
### Basic Info
|
|
37
50
|
```
|
|
38
|
-
1.
|
|
51
|
+
1. Project name?
|
|
39
52
|
Default: (extract from brainstorm)
|
|
40
53
|
|
|
41
|
-
2.
|
|
54
|
+
2. Short description (1-2 sentences)?
|
|
42
55
|
```
|
|
43
56
|
|
|
44
57
|
### Organization Info
|
|
45
58
|
```
|
|
46
|
-
3.
|
|
59
|
+
3. Company/organization name?
|
|
47
60
|
|
|
48
|
-
4.
|
|
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.
|
|
79
|
+
8. Lead developer name?
|
|
67
80
|
|
|
68
|
-
9.
|
|
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.
|
|
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. **
|
|
108
|
-
-
|
|
109
|
-
-
|
|
110
|
-
- Record
|
|
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
|
-
**
|
|
116
|
-
- [ ] Every brainstorm
|
|
117
|
-
- [ ]
|
|
118
|
-
- [ ]
|
|
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
|
-
- [ ]
|
|
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
|
-
|
|
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
|
|
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):**
|
|
223
|
-
- Context loading strategy based on project size — **preserve template ordering** where `PROJECT-CONTEXT.md` **`<product_vision>`** and **`ROADMAP.md`
|
|
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:**
|
|
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
|
-
-
|
|
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
|
-
|
|
386
|
+
Then add **2–8 bullets** summarizing (no secrets) from the **Organization**, **Branding & voice**, and **Audience** sections of the profile file.
|
|
271
387
|
|
|
272
|
-
-
|
|
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:**
|
|
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
|
-
|
|
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
|
|
372
|
-
1.
|
|
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
|
|
380
|
-
4.
|
|
381
|
-
|
|
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:
|
|
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
|
|
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
|
package/workflows/debug.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
Systematic debugging workflow
|
|
3
|
-
|
|
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`**:
|
|
15
|
-
- Reproduce/minimal patch **
|
|
14
|
+
- **`debug.md`**: prioritizes **investigation**, session logging, running tests — does **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
|
-
|
|
65
|
-
1.
|
|
66
|
-
2.
|
|
67
|
-
3.
|
|
68
|
-
4.
|
|
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
|
|
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`**.
|
|
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.
|
|
66
|
-
2.
|
|
67
|
-
3.
|
|
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
|
package/workflows/evolve.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
|
|
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`**
|
|
14
|
-
- **
|
|
15
|
-
- **
|
|
13
|
+
- **`evolve.md`** only **plans**: ROADMAP, phase dir, SPEC/tasks, TRACKER, CHANGELOG `[Unreleased]` notes when the workflow requires — does **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.
|
|
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 (
|
|
83
|
-
|
|
84
|
-
- Route
|
|
85
|
-
- `/vp-brainstorm --new --landing --research` (
|
|
86
|
-
- `/vp-brainstorm --new --research` (
|
|
87
|
-
-
|
|
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
|
-
-
|
|
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
|
package/workflows/pause-work.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
Save complete work state
|
|
3
|
-
Creates HANDOFF.json
|
|
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>
|
package/workflows/request.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
|
|
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`**
|
|
14
|
-
- **
|
|
15
|
-
- **
|
|
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) **
|
|
459
|
-
- Route to **`/vp-auto`** —
|
|
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` (
|
|
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 (
|
|
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
|
package/workflows/resume-work.md
CHANGED
package/workflows/rollback.md
CHANGED