viepilot 1.14.0 → 2.4.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 +191 -0
- package/README.md +27 -17
- package/bin/viepilot.cjs +19 -9
- package/bin/vp-tools.cjs +193 -0
- package/docs/user/features/adapters.md +74 -0
- package/docs/user/features/hooks.md +93 -0
- package/lib/adapters/antigravity.cjs +33 -0
- package/lib/adapters/claude-code.cjs +42 -0
- package/lib/adapters/codex.cjs +34 -0
- package/lib/adapters/cursor.cjs +32 -0
- package/lib/adapters/index.cjs +28 -0
- package/lib/hooks/brainstorm-staleness.cjs +231 -0
- package/lib/viepilot-config.cjs +103 -0
- package/lib/viepilot-install.cjs +125 -152
- package/package.json +1 -3
- package/skills/vp-audit/SKILL.md +23 -23
- package/skills/vp-auto/SKILL.md +23 -9
- package/skills/vp-brainstorm/SKILL.md +44 -38
- package/skills/vp-crystallize/SKILL.md +25 -19
- package/skills/vp-debug/SKILL.md +4 -4
- package/skills/vp-docs/SKILL.md +8 -8
- package/skills/vp-evolve/SKILL.md +26 -13
- package/skills/vp-info/SKILL.md +24 -24
- package/skills/vp-pause/SKILL.md +7 -7
- package/skills/vp-request/SKILL.md +14 -14
- package/skills/vp-resume/SKILL.md +6 -6
- package/skills/vp-rollback/SKILL.md +4 -4
- package/skills/vp-status/SKILL.md +4 -4
- package/skills/vp-task/SKILL.md +2 -2
- package/skills/vp-ui-components/SKILL.md +14 -14
- package/skills/vp-update/SKILL.md +18 -18
- package/templates/architect/apis.html +11 -10
- package/templates/architect/architect-actions.js +217 -0
- package/templates/architect/architecture.html +8 -7
- package/templates/architect/data-flow.html +5 -4
- package/templates/architect/decisions.html +4 -3
- package/templates/architect/deployment.html +10 -9
- package/templates/architect/erd.html +7 -6
- package/templates/architect/feature-map.html +5 -4
- package/templates/architect/sequence-diagram.html +6 -5
- package/templates/architect/style.css +146 -0
- package/templates/architect/tech-notes.html +3 -2
- package/templates/architect/tech-stack.html +8 -7
- package/templates/architect/user-use-cases.html +8 -7
- package/templates/project/AI-GUIDE.md +49 -49
- package/workflows/audit.md +3 -3
- package/workflows/autonomous.md +70 -5
- package/workflows/brainstorm.md +398 -222
- package/workflows/crystallize.md +51 -33
- package/workflows/debug.md +9 -9
- package/workflows/documentation.md +5 -5
- package/workflows/evolve.md +46 -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/dev-install.sh +0 -150
- package/install.sh +0 -125
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
|
|
|
@@ -127,6 +140,11 @@ If gaps found → ask user to clarify or return to brainstorm.
|
|
|
127
140
|
<step name="consume_ui_direction">
|
|
128
141
|
## Step 1A: Consume UI Direction Artifacts (for UI/UX projects)
|
|
129
142
|
|
|
143
|
+
> ⛔ **PATH GUARD (BUG-011):** The ONLY valid ui-direction path is `.viepilot/ui-direction/`.
|
|
144
|
+
> If a `{root}/ui-direction/` directory exists at the project root — **IGNORE it completely**.
|
|
145
|
+
> It is user-managed reference material, NOT ViePilot artifacts.
|
|
146
|
+
> Never read, glob, or reference any file under `{root}/ui-direction/` in this workflow.
|
|
147
|
+
|
|
130
148
|
### UI Scope Detection (ENH-026 hard gate)
|
|
131
149
|
|
|
132
150
|
Before checking for artifacts, scan brainstorm session files (`docs/brainstorm/session-*.md`) for UI signal keywords:
|
|
@@ -144,10 +162,10 @@ If `ui_scope_detected = true` **AND** artifacts are missing → **STOP** and pre
|
|
|
144
162
|
```
|
|
145
163
|
⚠️ UI Direction artifacts missing
|
|
146
164
|
|
|
147
|
-
|
|
165
|
+
The brainstorm session indicates this project has UI scope but `.viepilot/ui-direction/` has no artifacts yet.
|
|
148
166
|
|
|
149
|
-
1.
|
|
150
|
-
2.
|
|
167
|
+
1. Return to /vp-brainstorm --ui to create direction first (recommended)
|
|
168
|
+
2. Continue with assumptions — record in ARCHITECTURE.md and proceed
|
|
151
169
|
```
|
|
152
170
|
|
|
153
171
|
**Option 2 path**: append to `.viepilot/ARCHITECTURE.md`:
|
|
@@ -307,9 +325,9 @@ If `.viepilot/architect/` exists with at least one session directory:
|
|
|
307
325
|
If `.viepilot/architect/` does **not** exist but brainstorm shows complex architecture (≥5 services/components detected):
|
|
308
326
|
- Suggest (soft prompt — not a hard block):
|
|
309
327
|
```
|
|
310
|
-
💡
|
|
311
|
-
1.
|
|
312
|
-
2.
|
|
328
|
+
💡 Would you like to return to /vp-brainstorm --architect to create visualizations first?
|
|
329
|
+
1. Yes — return to architect mode
|
|
330
|
+
2. No — continue crystallize with text-only brainstorm
|
|
313
331
|
```
|
|
314
332
|
- User confirmation required before proceeding.
|
|
315
333
|
</step>
|
|
@@ -322,7 +340,7 @@ Create `.viepilot/AI-GUIDE.md` using template:
|
|
|
322
340
|
|
|
323
341
|
Customize with:
|
|
324
342
|
- Project-specific file references
|
|
325
|
-
- **ViePilot profile (FEAT-009):**
|
|
343
|
+
- **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.
|
|
326
344
|
- 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
|
|
327
345
|
- Quick lookup for project-specific terms
|
|
328
346
|
- Fast stack lookup section:
|
|
@@ -343,7 +361,7 @@ Fill with collected metadata:
|
|
|
343
361
|
- Package structure (generate from base ID)
|
|
344
362
|
- Developer info
|
|
345
363
|
- File headers (generate from metadata)
|
|
346
|
-
- **FEAT-009:**
|
|
364
|
+
- **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).
|
|
347
365
|
</step>
|
|
348
366
|
|
|
349
367
|
<step name="generate_architecture">
|
|
@@ -361,7 +379,7 @@ Extract from brainstorm:
|
|
|
361
379
|
|
|
362
380
|
### ViePilot organization context (FEAT-009)
|
|
363
381
|
|
|
364
|
-
-
|
|
382
|
+
- If Step 0 recorded **`profile_resolved`** with a valid path: immediately after the first **overview** section of `.viepilot/ARCHITECTURE.md`, add the following section:
|
|
365
383
|
|
|
366
384
|
```markdown
|
|
367
385
|
## ViePilot organization context
|
|
@@ -370,9 +388,9 @@ Extract from brainstorm:
|
|
|
370
388
|
|
|
371
389
|
```
|
|
372
390
|
|
|
373
|
-
|
|
391
|
+
Then add **2–8 bullets** summarizing (no secrets) from the **Organization**, **Branding & voice**, and **Audience** sections of the profile file.
|
|
374
392
|
|
|
375
|
-
-
|
|
393
|
+
- If **`profile_resolved: none`**: add one line below the overview: *No ViePilot global profile bound — organization context comes from Step 0 only.*
|
|
376
394
|
|
|
377
395
|
Before writing diagrams, create a **diagram applicability matrix** from brainstorm signals (complexity, service boundaries, event usage, deployment shape, user-flow complexity, integration surface):
|
|
378
396
|
|
|
@@ -426,7 +444,7 @@ Extract:
|
|
|
426
444
|
- Naming conventions
|
|
427
445
|
- Constraints
|
|
428
446
|
|
|
429
|
-
**FEAT-009 — ViePilot active profile block:**
|
|
447
|
+
**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:
|
|
430
448
|
|
|
431
449
|
```markdown
|
|
432
450
|
## ViePilot active profile (FEAT-009)
|
|
@@ -441,7 +459,7 @@ Extract:
|
|
|
441
459
|
|
|
442
460
|
```
|
|
443
461
|
|
|
444
|
-
|
|
462
|
+
If no profile: a single line *Profile binding not configured (`META.md` or global profile file missing).*
|
|
445
463
|
</step>
|
|
446
464
|
|
|
447
465
|
<step name="generate_rules">
|
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,40 @@ 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
|
+
|
|
138
|
+
**Resolution rule (BUG-012):** Paths in `## Paths` are always resolved from `{cwd}` (the repo root where `package.json` lives) — never from `~/.claude/`, `~/.cursor/`, or any install directory. When both a codebase copy and an installed copy exist, `{cwd}` wins.
|
|
139
|
+
|
|
106
140
|
### Create Phase Directory
|
|
107
141
|
```bash
|
|
108
142
|
mkdir -p .viepilot/phases/{NN}-{feature-slug}/tasks/
|
|
@@ -168,7 +202,7 @@ New milestone details:
|
|
|
168
202
|
|
|
169
203
|
Options:
|
|
170
204
|
- Route to `/vp-brainstorm --new` for full brainstorm
|
|
171
|
-
-
|
|
205
|
+
- If milestone has landing page focus: `/vp-brainstorm --new --landing --research`
|
|
172
206
|
- Quick setup with minimal questions
|
|
173
207
|
|
|
174
208
|
### 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
package/dev-install.sh
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# ViePilot Development Installation Script
|
|
4
|
-
# Installs development build without symlink dependency by default
|
|
5
|
-
#
|
|
6
|
-
# Optional: VIEPILOT_SYMLINK_SKILLS=1 — symlink each skills/vp-* into ~/.cursor/skills/
|
|
7
|
-
# (live edits from this repo; default remains copy for reliability — see FEAT-005)
|
|
8
|
-
|
|
9
|
-
set -e
|
|
10
|
-
|
|
11
|
-
# Colors
|
|
12
|
-
RED='\033[0;31m'
|
|
13
|
-
GREEN='\033[0;32m'
|
|
14
|
-
YELLOW='\033[1;33m'
|
|
15
|
-
BLUE='\033[0;34m'
|
|
16
|
-
NC='\033[0m'
|
|
17
|
-
|
|
18
|
-
# Get script directory (project root)
|
|
19
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
20
|
-
CURSOR_SKILLS_DIR="$HOME/.cursor/skills"
|
|
21
|
-
VIEPILOT_DIR="$HOME/.cursor/viepilot"
|
|
22
|
-
AUTO_YES="${VIEPILOT_AUTO_YES:-0}"
|
|
23
|
-
INSTALL_PROFILE="${VIEPILOT_INSTALL_PROFILE:-cursor-agent}"
|
|
24
|
-
|
|
25
|
-
echo -e "${BLUE}"
|
|
26
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
27
|
-
echo " VIEPILOT DEV INSTALLER"
|
|
28
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
29
|
-
echo -e "${NC}"
|
|
30
|
-
|
|
31
|
-
if [ "${VIEPILOT_SYMLINK_SKILLS:-0}" = "1" ]; then
|
|
32
|
-
echo -e "${YELLOW}Development mode installation (skills: SYMLINK → repo)${NC}"
|
|
33
|
-
else
|
|
34
|
-
echo -e "${YELLOW}Development mode installation (copy-first for reliability)${NC}"
|
|
35
|
-
fi
|
|
36
|
-
echo " Source: $SCRIPT_DIR"
|
|
37
|
-
echo " Target: $CURSOR_SKILLS_DIR, $VIEPILOT_DIR"
|
|
38
|
-
echo " Profile: $INSTALL_PROFILE"
|
|
39
|
-
echo ""
|
|
40
|
-
|
|
41
|
-
check_cloc_dependency() {
|
|
42
|
-
if command -v cloc >/dev/null 2>&1; then
|
|
43
|
-
echo -e " ${GREEN}✓${NC} cloc detected"
|
|
44
|
-
return 0
|
|
45
|
-
fi
|
|
46
|
-
|
|
47
|
-
echo -e "${YELLOW} cloc not found.${NC}"
|
|
48
|
-
echo " README LOC auto-sync will fallback safely, but metrics won't refresh automatically."
|
|
49
|
-
echo " Install suggestion:"
|
|
50
|
-
echo " - macOS: brew install cloc"
|
|
51
|
-
echo " - Ubuntu/Debian: sudo apt-get install -y cloc"
|
|
52
|
-
echo " - Windows: choco install cloc"
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
# Confirm
|
|
56
|
-
if [ "$AUTO_YES" != "1" ]; then
|
|
57
|
-
read -p "This will replace existing installation with dev files. Continue? (y/n) " -n 1 -r
|
|
58
|
-
echo
|
|
59
|
-
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
60
|
-
echo "Installation cancelled."
|
|
61
|
-
exit 0
|
|
62
|
-
fi
|
|
63
|
-
else
|
|
64
|
-
echo "Auto-yes enabled via VIEPILOT_AUTO_YES=1"
|
|
65
|
-
fi
|
|
66
|
-
|
|
67
|
-
echo ""
|
|
68
|
-
echo -e "${BLUE}Removing old installations...${NC}"
|
|
69
|
-
|
|
70
|
-
# Remove old skill installations
|
|
71
|
-
for skill in "$CURSOR_SKILLS_DIR"/vp-*/; do
|
|
72
|
-
if [ -d "$skill" ] || [ -L "$skill" ]; then
|
|
73
|
-
rm -rf "$skill"
|
|
74
|
-
echo " Removed: $(basename "$skill")"
|
|
75
|
-
fi
|
|
76
|
-
done
|
|
77
|
-
|
|
78
|
-
# Remove old viepilot installation
|
|
79
|
-
if [ -d "$VIEPILOT_DIR" ] || [ -L "$VIEPILOT_DIR" ]; then
|
|
80
|
-
rm -rf "$VIEPILOT_DIR"
|
|
81
|
-
echo " Removed: viepilot/"
|
|
82
|
-
fi
|
|
83
|
-
|
|
84
|
-
echo ""
|
|
85
|
-
echo -e "${BLUE}Installing skills...${NC}"
|
|
86
|
-
|
|
87
|
-
# Install skills: copy (default) or symlink when VIEPILOT_SYMLINK_SKILLS=1
|
|
88
|
-
mkdir -p "$CURSOR_SKILLS_DIR"
|
|
89
|
-
for skill in "$SCRIPT_DIR"/skills/vp-*/; do
|
|
90
|
-
skill_name=$(basename "$skill")
|
|
91
|
-
if [ "${VIEPILOT_SYMLINK_SKILLS:-0}" = "1" ]; then
|
|
92
|
-
if command -v realpath >/dev/null 2>&1; then
|
|
93
|
-
skill_abs=$(realpath "$skill")
|
|
94
|
-
else
|
|
95
|
-
skill_abs=$(cd "$skill" && pwd)
|
|
96
|
-
fi
|
|
97
|
-
ln -sfn "$skill_abs" "$CURSOR_SKILLS_DIR/$skill_name"
|
|
98
|
-
echo -e " ${GREEN}✓${NC} $skill_name (symlink)"
|
|
99
|
-
else
|
|
100
|
-
cp -R "$skill" "$CURSOR_SKILLS_DIR/$skill_name"
|
|
101
|
-
echo -e " ${GREEN}✓${NC} $skill_name"
|
|
102
|
-
fi
|
|
103
|
-
done
|
|
104
|
-
|
|
105
|
-
echo ""
|
|
106
|
-
echo -e "${BLUE}Installing viepilot files...${NC}"
|
|
107
|
-
|
|
108
|
-
# Install file copies (avoid symlink discovery issues)
|
|
109
|
-
mkdir -p "$VIEPILOT_DIR"
|
|
110
|
-
mkdir -p "$VIEPILOT_DIR/workflows"
|
|
111
|
-
mkdir -p "$VIEPILOT_DIR/templates"
|
|
112
|
-
mkdir -p "$VIEPILOT_DIR/bin"
|
|
113
|
-
mkdir -p "$VIEPILOT_DIR/lib"
|
|
114
|
-
mkdir -p "$VIEPILOT_DIR/ui-components"
|
|
115
|
-
|
|
116
|
-
cp -R "$SCRIPT_DIR/workflows/"* "$VIEPILOT_DIR/workflows/"
|
|
117
|
-
cp -R "$SCRIPT_DIR/templates/"* "$VIEPILOT_DIR/templates/"
|
|
118
|
-
cp -R "$SCRIPT_DIR/bin/"* "$VIEPILOT_DIR/bin/"
|
|
119
|
-
cp -R "$SCRIPT_DIR/lib/"* "$VIEPILOT_DIR/lib/"
|
|
120
|
-
if [ -d "$SCRIPT_DIR/ui-components" ]; then
|
|
121
|
-
cp -R "$SCRIPT_DIR/ui-components/"* "$VIEPILOT_DIR/ui-components/"
|
|
122
|
-
fi
|
|
123
|
-
|
|
124
|
-
echo -e " ${GREEN}✓${NC} workflows"
|
|
125
|
-
echo -e " ${GREEN}✓${NC} templates"
|
|
126
|
-
echo -e " ${GREEN}✓${NC} bin"
|
|
127
|
-
echo -e " ${GREEN}✓${NC} lib"
|
|
128
|
-
echo -e " ${GREEN}✓${NC} ui-components"
|
|
129
|
-
check_cloc_dependency
|
|
130
|
-
|
|
131
|
-
# Count installed
|
|
132
|
-
SKILL_COUNT=$(ls -d "$CURSOR_SKILLS_DIR"/vp-*/ 2>/dev/null | wc -l | tr -d ' ')
|
|
133
|
-
WORKFLOW_COUNT=$(ls "$SCRIPT_DIR"/workflows/*.md 2>/dev/null | wc -l | tr -d ' ')
|
|
134
|
-
|
|
135
|
-
echo ""
|
|
136
|
-
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
137
|
-
echo -e "${GREEN} DEV INSTALLATION COMPLETE ✓${NC}"
|
|
138
|
-
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
139
|
-
echo ""
|
|
140
|
-
if [ "${VIEPILOT_SYMLINK_SKILLS:-0}" = "1" ]; then
|
|
141
|
-
echo "Installed (skills symlink mode):"
|
|
142
|
-
echo -e "${YELLOW}Skills point at repo — edits in $SCRIPT_DIR/skills/ are live.${NC}"
|
|
143
|
-
else
|
|
144
|
-
echo "Installed (copy mode):"
|
|
145
|
-
echo -e "${YELLOW}Development mode enabled (reliable copy mode).${NC}"
|
|
146
|
-
echo "Re-run this script after local changes to refresh installed files."
|
|
147
|
-
fi
|
|
148
|
-
echo " - Skills: $SKILL_COUNT"
|
|
149
|
-
echo " - Workflows: $WORKFLOW_COUNT"
|
|
150
|
-
echo ""
|