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
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="vi">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>User Use Cases — {project}</title>
|
|
7
|
+
<link rel="stylesheet" href="style.css" />
|
|
8
|
+
</head>
|
|
9
|
+
<body data-arch-slug="use-cases">
|
|
10
|
+
<nav class="nav-sidebar">
|
|
11
|
+
<div class="logo">
|
|
12
|
+
<span>ViePilot Architect Mode</span>
|
|
13
|
+
<strong>{project}</strong>
|
|
14
|
+
</div>
|
|
15
|
+
<ul>
|
|
16
|
+
<li><a href="index.html">🏠 Hub</a></li>
|
|
17
|
+
<li><a href="architecture.html">🏗️ Architecture</a></li>
|
|
18
|
+
<li><a href="sequence-diagram.html">🎬 Sequence</a></li>
|
|
19
|
+
<li><a href="data-flow.html">🔄 Data Flow</a></li>
|
|
20
|
+
<li><a href="decisions.html">📋 Decisions (ADR)</a></li>
|
|
21
|
+
<li><a href="tech-stack.html">🛠️ Tech Stack</a></li>
|
|
22
|
+
<li><a href="tech-notes.html">📝 Tech Notes</a></li>
|
|
23
|
+
<li><a href="feature-map.html">🗺️ Feature Map</a></li>
|
|
24
|
+
<li><a href="erd.html">🗄️ ERD</a></li>
|
|
25
|
+
<li><a href="user-use-cases.html" class="active">👤 Use Cases</a></li>
|
|
26
|
+
<li><a href="deployment.html">🚀 Deployment</a></li>
|
|
27
|
+
<li><a href="apis.html">🔌 APIs</a></li>
|
|
28
|
+
</ul>
|
|
29
|
+
</nav>
|
|
30
|
+
|
|
31
|
+
<main class="main-content">
|
|
32
|
+
<div class="page-header">
|
|
33
|
+
<div>
|
|
34
|
+
<h1>👤 User Use Cases</h1>
|
|
35
|
+
<p>Actors, goals, and interaction scenarios</p>
|
|
36
|
+
</div>
|
|
37
|
+
<button id="theme-toggle" onclick="toggleTheme()">☀️ Light</button>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<div class="card" data-arch-id="UC-DIAG1" data-arch-title="Actor / Use Case Diagram">
|
|
41
|
+
<h2>Actor / Use Case Diagram</h2>
|
|
42
|
+
<div class="mermaid-wrap">
|
|
43
|
+
<div class="mermaid">
|
|
44
|
+
flowchart LR
|
|
45
|
+
subgraph Actors
|
|
46
|
+
U[👤 User]
|
|
47
|
+
A[🔑 Admin]
|
|
48
|
+
G[🌐 Guest]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
subgraph UseCases["Use Cases"]
|
|
52
|
+
UC1([Register / Login])
|
|
53
|
+
UC2([Browse Products])
|
|
54
|
+
UC3([Place Order])
|
|
55
|
+
UC4([Track Order])
|
|
56
|
+
UC5([Manage Products])
|
|
57
|
+
UC6([View Reports])
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
G --> UC1
|
|
61
|
+
G --> UC2
|
|
62
|
+
U --> UC2
|
|
63
|
+
U --> UC3
|
|
64
|
+
U --> UC4
|
|
65
|
+
A --> UC5
|
|
66
|
+
A --> UC6
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
<div class="card">
|
|
72
|
+
<h2>Use Case List</h2>
|
|
73
|
+
<table>
|
|
74
|
+
<thead>
|
|
75
|
+
<tr>
|
|
76
|
+
<th>ID</th>
|
|
77
|
+
<th>Use Case</th>
|
|
78
|
+
<th>Actor(s)</th>
|
|
79
|
+
<th>Precondition</th>
|
|
80
|
+
<th>Main Flow</th>
|
|
81
|
+
<th>Phase</th>
|
|
82
|
+
</tr>
|
|
83
|
+
</thead>
|
|
84
|
+
<tbody>
|
|
85
|
+
<tr data-arch-id="UC1">
|
|
86
|
+
<td>UC-001</td>
|
|
87
|
+
<td>{Use case name}</td>
|
|
88
|
+
<td>{Actor}</td>
|
|
89
|
+
<td>{Precondition}</td>
|
|
90
|
+
<td>{Brief main flow}</td>
|
|
91
|
+
<td><span class="badge badge-phase-1">Phase 1</span></td>
|
|
92
|
+
</tr>
|
|
93
|
+
<tr data-arch-id="UC2">
|
|
94
|
+
<td>UC-002</td>
|
|
95
|
+
<td>{Use case name}</td>
|
|
96
|
+
<td>{Actor}</td>
|
|
97
|
+
<td>{Precondition}</td>
|
|
98
|
+
<td>{Brief main flow}</td>
|
|
99
|
+
<td><span class="badge badge-phase-2">Phase 2</span></td>
|
|
100
|
+
</tr>
|
|
101
|
+
<tr data-arch-id="UC3">
|
|
102
|
+
<td>UC-003</td>
|
|
103
|
+
<td>{Use case name}</td>
|
|
104
|
+
<td>{Actor}</td>
|
|
105
|
+
<td>{Precondition}</td>
|
|
106
|
+
<td>{Brief main flow}</td>
|
|
107
|
+
<td><span class="badge badge-phase-3">Phase 3</span></td>
|
|
108
|
+
</tr>
|
|
109
|
+
</tbody>
|
|
110
|
+
</table>
|
|
111
|
+
</div>
|
|
112
|
+
|
|
113
|
+
<div class="card">
|
|
114
|
+
<h2>Actor Summary</h2>
|
|
115
|
+
<table>
|
|
116
|
+
<thead>
|
|
117
|
+
<tr>
|
|
118
|
+
<th>Actor</th>
|
|
119
|
+
<th>Role</th>
|
|
120
|
+
<th>Goals</th>
|
|
121
|
+
<th>Notes</th>
|
|
122
|
+
</tr>
|
|
123
|
+
</thead>
|
|
124
|
+
<tbody>
|
|
125
|
+
<tr data-arch-id="UC4">
|
|
126
|
+
<td><strong>{Actor 1}</strong></td>
|
|
127
|
+
<td>{Role description}</td>
|
|
128
|
+
<td>{Primary goals}</td>
|
|
129
|
+
<td>{notes}</td>
|
|
130
|
+
</tr>
|
|
131
|
+
<tr data-arch-id="UC5">
|
|
132
|
+
<td><strong>{Actor 2}</strong></td>
|
|
133
|
+
<td>{Role description}</td>
|
|
134
|
+
<td>{Primary goals}</td>
|
|
135
|
+
<td>{notes}</td>
|
|
136
|
+
</tr>
|
|
137
|
+
</tbody>
|
|
138
|
+
</table>
|
|
139
|
+
</div>
|
|
140
|
+
</main>
|
|
141
|
+
|
|
142
|
+
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
|
|
143
|
+
<script>
|
|
144
|
+
mermaid.initialize({ startOnLoad: true, theme: 'dark' });
|
|
145
|
+
function toggleTheme() {
|
|
146
|
+
const html = document.documentElement;
|
|
147
|
+
const isLight = html.classList.toggle('light');
|
|
148
|
+
document.getElementById('theme-toggle').textContent = isLight ? '🌙 Dark' : '☀️ Light';
|
|
149
|
+
mermaid.initialize({ startOnLoad: false, theme: isLight ? 'default' : 'dark' });
|
|
150
|
+
}
|
|
151
|
+
</script>
|
|
152
|
+
<script src="architect-actions.js"></script>
|
|
153
|
+
</body>
|
|
154
|
+
</html>
|
|
@@ -1,77 +1,76 @@
|
|
|
1
1
|
# {{PROJECT_NAME}} - AI Navigation Guide
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
>
|
|
3
|
+
> **Read this file BEFORE starting any task**
|
|
4
|
+
> This file helps you find the right context without loading everything
|
|
5
5
|
|
|
6
6
|
## Quick Lookup
|
|
7
7
|
|
|
8
|
-
|
|
|
9
|
-
|
|
10
|
-
|
|
|
11
|
-
|
|
|
12
|
-
| Roadmap
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
8
|
+
| I need to... | Read file | Section |
|
|
9
|
+
|--------------|-----------|---------|
|
|
10
|
+
| Understand what the project does | `PROJECT-CONTEXT.md` | `<domain_knowledge>` |
|
|
11
|
+
| Vision & phased scope | `PROJECT-CONTEXT.md` | `<product_vision>` |
|
|
12
|
+
| Roadmap phases (beyond current task) | `ROADMAP.md` | Phases after current phase |
|
|
13
|
+
| Know the tech stack | `ARCHITECTURE.md` | `## Technology Decisions` |
|
|
14
|
+
| See what each service does | `ARCHITECTURE.md` | `## Services` |
|
|
15
|
+
| Know current phase | `TRACKER.md` | `## Current State` |
|
|
16
|
+
| See next task | `ROADMAP.md` | Find phase marked `In Progress` |
|
|
17
17
|
| Coding conventions | `SYSTEM-RULES.md` | `<coding_rules>` |
|
|
18
|
-
|
|
|
18
|
+
| What NOT to do | `SYSTEM-RULES.md` | `<do_not>` |
|
|
19
19
|
| Database schema | `schemas/database-schema.sql` | - |
|
|
20
20
|
| API contracts | `schemas/api-contracts.yaml` | - |
|
|
21
|
-
|
|
|
22
|
-
| Resume
|
|
21
|
+
| Past decisions | `TRACKER.md` | `## Decision Log` |
|
|
22
|
+
| Resume in-progress work | `HANDOFF.json` | - |
|
|
23
23
|
| Package structure | `PROJECT-META.md` | `## Package Structure` |
|
|
24
24
|
| File headers | `PROJECT-META.md` | `## File Headers` |
|
|
25
25
|
|
|
26
26
|
## Context Loading Strategy
|
|
27
27
|
|
|
28
|
-
### Minimal Context (
|
|
28
|
+
### Minimal Context (for quick tasks)
|
|
29
29
|
```
|
|
30
|
-
|
|
31
|
-
1. AI-GUIDE.md (file
|
|
30
|
+
Read only:
|
|
31
|
+
1. AI-GUIDE.md (this file)
|
|
32
32
|
2. TRACKER.md → Current State
|
|
33
|
-
3.
|
|
33
|
+
3. The specific file related to the task
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
### Standard Context (
|
|
36
|
+
### Standard Context (for coding tasks)
|
|
37
37
|
```
|
|
38
|
-
|
|
39
|
-
1. AI-GUIDE.md (file
|
|
40
|
-
2. TRACKER.md →
|
|
41
|
-
3. PROJECT-CONTEXT.md → <product_vision> + phased scope (
|
|
42
|
-
4. ROADMAP.md → skim
|
|
38
|
+
Read in order:
|
|
39
|
+
1. AI-GUIDE.md (this file)
|
|
40
|
+
2. TRACKER.md → know where you are
|
|
41
|
+
3. PROJECT-CONTEXT.md → <product_vision> + phased scope (read BEFORE locking detailed design)
|
|
42
|
+
4. ROADMAP.md → skim phases after current phase, then current task
|
|
43
43
|
5. SYSTEM-RULES.md → coding rules
|
|
44
|
-
6. Schema file
|
|
44
|
+
6. Schema file if needed
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
### Full Context (
|
|
47
|
+
### Full Context (for architecture decisions)
|
|
48
48
|
```
|
|
49
|
-
|
|
49
|
+
Read in order:
|
|
50
50
|
1. AI-GUIDE.md + TRACKER.md
|
|
51
|
-
2. PROJECT-CONTEXT.md → domain + <product_vision> (
|
|
52
|
-
3. ROADMAP.md →
|
|
51
|
+
2. PROJECT-CONTEXT.md → domain + <product_vision> (complete)
|
|
52
|
+
3. ROADMAP.md → phases + tasks
|
|
53
53
|
4. ARCHITECTURE.md
|
|
54
54
|
5. SYSTEM-RULES.md
|
|
55
|
-
6.
|
|
55
|
+
6. Original brainstorm session (if detailed rationale needed)
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
### Product vision &
|
|
58
|
+
### Product vision & phase planning (before "locking" architecture)
|
|
59
59
|
|
|
60
|
-
-
|
|
61
|
-
- Trước task implementation sâu hoặc quyết định kiến trúc lớn: đọc `<product_vision>` và các section horizon trong `ROADMAP.md` **cùng lúc** với task hiện tại — tránh code MVP làm bế tắc bản sau hoặc bỏ sót ràng buộc đã thống nhất.
|
|
60
|
+
- Before deep implementation tasks or major architecture decisions: read `<product_vision>` and phase goals in `ROADMAP.md` **together** with the current task.
|
|
62
61
|
|
|
63
62
|
## File Relationships
|
|
64
63
|
|
|
65
64
|
```
|
|
66
|
-
AI-GUIDE.md (
|
|
65
|
+
AI-GUIDE.md (read first)
|
|
67
66
|
│
|
|
68
|
-
├── TRACKER.md (state
|
|
67
|
+
├── TRACKER.md (current state)
|
|
69
68
|
│ └── points to → current phase in ROADMAP.md
|
|
70
69
|
│
|
|
71
70
|
├── PROJECT-CONTEXT.md (domain + <product_vision> / phased scope)
|
|
72
|
-
│ └── read early with → ROADMAP.md
|
|
71
|
+
│ └── read early with → ROADMAP.md phases
|
|
73
72
|
│
|
|
74
|
-
├── ROADMAP.md (
|
|
73
|
+
├── ROADMAP.md (phases + tasks)
|
|
75
74
|
│ └── tasks reference → schemas/
|
|
76
75
|
│
|
|
77
76
|
├── SYSTEM-RULES.md (how to code)
|
|
@@ -80,7 +79,7 @@ AI-GUIDE.md (đọc đầu tiên)
|
|
|
80
79
|
├── ARCHITECTURE.md (system design)
|
|
81
80
|
│ └── decisions from → PROJECT-CONTEXT.md
|
|
82
81
|
│
|
|
83
|
-
└── docs/brainstorm/ (session rationale
|
|
82
|
+
└── docs/brainstorm/ (session rationale)
|
|
84
83
|
```
|
|
85
84
|
|
|
86
85
|
## When Creating New Files
|
|
@@ -103,24 +102,24 @@ AI-GUIDE.md (đọc đầu tiên)
|
|
|
103
102
|
|
|
104
103
|
Full guidelines: `SYSTEM-RULES.md#comment_standards`
|
|
105
104
|
|
|
106
|
-
##
|
|
105
|
+
## When to Re-read
|
|
107
106
|
|
|
108
|
-
| Trigger |
|
|
109
|
-
|
|
110
|
-
|
|
|
111
|
-
|
|
|
112
|
-
|
|
|
113
|
-
|
|
|
114
|
-
|
|
|
107
|
+
| Trigger | Refresh |
|
|
108
|
+
|---------|---------|
|
|
109
|
+
| Starting a new session | `TRACKER.md`, `HANDOFF.json` |
|
|
110
|
+
| Switching phases | `ROADMAP.md` section for the new phase |
|
|
111
|
+
| Encountering architecture issues | `ARCHITECTURE.md`, `SYSTEM-RULES.md` |
|
|
112
|
+
| Unclear business rule | `PROJECT-CONTEXT.md` |
|
|
113
|
+
| Need to make a new decision | `TRACKER.md` → Decision Log |
|
|
115
114
|
|
|
116
115
|
## Commands Reference
|
|
117
116
|
|
|
118
|
-
| Command |
|
|
119
|
-
|
|
120
|
-
| `/vp-status` |
|
|
121
|
-
| `/vp-auto` |
|
|
122
|
-
| `/vp-pause` |
|
|
123
|
-
| `/vp-resume` |
|
|
124
|
-
| `/vp-evolve` |
|
|
117
|
+
| Command | When to use |
|
|
118
|
+
|---------|-------------|
|
|
119
|
+
| `/vp-status` | Quick progress view |
|
|
120
|
+
| `/vp-auto` | Run autonomous execution |
|
|
121
|
+
| `/vp-pause` | Stop and save state |
|
|
122
|
+
| `/vp-resume` | Continue from pause |
|
|
123
|
+
| `/vp-evolve` | Add features / start new milestone |
|
|
125
124
|
| `/vp-docs` | Generate documentation |
|
|
126
|
-
| `/vp-task` |
|
|
125
|
+
| `/vp-task` | Manage tasks manually |
|
|
@@ -23,19 +23,15 @@
|
|
|
23
23
|
<product_vision>
|
|
24
24
|
## Product vision & phased scope
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
### Project scope
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
{{PROJECT_SCOPE}}
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
{{
|
|
35
|
-
|
|
36
|
-
### Future / exploratory north star
|
|
37
|
-
|
|
38
|
-
{{FUTURE_VISION}}
|
|
30
|
+
### Phase overview
|
|
31
|
+
| Phase | Goals | Key features |
|
|
32
|
+
|-------|-------|--------------|
|
|
33
|
+
| Phase 1 | {{PHASE_1_GOAL}} | {{PHASE_1_FEATURES}} |
|
|
34
|
+
| Phase 2 | {{PHASE_2_GOAL}} | {{PHASE_2_FEATURES}} |
|
|
39
35
|
|
|
40
36
|
### Anti-goals & explicit non-scope
|
|
41
37
|
|
|
@@ -14,11 +14,32 @@
|
|
|
14
14
|
|
|
15
15
|
| Chỉ số / Metric | Giá trị / Value |
|
|
16
16
|
|-----------------|-----------------|
|
|
17
|
+
| Total LOC | **{{TOTAL_LOC}}** (nguồn chính; không gồm `node_modules`, `vendor`) |
|
|
17
18
|
| Version | {{VERSION}} |
|
|
18
19
|
| Phases | {{PHASE_COUNT}} |
|
|
19
20
|
| Status | {{STATUS}} |
|
|
20
21
|
| Started | {{INCEPTION_YEAR}} |
|
|
21
22
|
|
|
23
|
+
> Metric `Total LOC` có thể được refresh tự động bằng `npm run readme:sync` (dùng `cloc`; nếu thiếu `cloc` script sẽ fallback an toàn).
|
|
24
|
+
|
|
25
|
+
### Phân bổ / Breakdown
|
|
26
|
+
|
|
27
|
+
| Thành phần / Component | LOC | Số lượng / Count | Mô tả / Description |
|
|
28
|
+
|------------------------|-----|------------------|---------------------|
|
|
29
|
+
{{BREAKDOWN_TABLE}}
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Độ hoàn thiện / Completion Status
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Tổng thể / Overall: {{COMPLETION_BAR}} {{COMPLETION_PERCENT}}%
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
| Lĩnh vực / Area | Trạng thái | Chi tiết |
|
|
40
|
+
|-----------------|------------|----------|
|
|
41
|
+
{{COMPLETION_TABLE}}
|
|
42
|
+
|
|
22
43
|
---
|
|
23
44
|
|
|
24
45
|
## Tính năng / Features
|
|
@@ -35,6 +56,14 @@
|
|
|
35
56
|
|
|
36
57
|
---
|
|
37
58
|
|
|
59
|
+
## Standards / Tiêu chuẩn
|
|
60
|
+
|
|
61
|
+
| Standard | Specification | Usage |
|
|
62
|
+
|----------|---------------|-------|
|
|
63
|
+
{{STANDARDS_TABLE}}
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
38
67
|
## Bắt đầu nhanh / Quick Start
|
|
39
68
|
|
|
40
69
|
### Prerequisites / Yêu cầu
|
|
@@ -70,6 +99,12 @@ make help # Show all commands
|
|
|
70
99
|
|
|
71
100
|
---
|
|
72
101
|
|
|
102
|
+
## Sử dụng / Usage
|
|
103
|
+
|
|
104
|
+
{{USAGE_SECTION}}
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
73
108
|
## Cấu trúc dự án / Project Structure
|
|
74
109
|
|
|
75
110
|
```
|
|
@@ -161,6 +196,14 @@ Xem [CONTRIBUTING.md](CONTRIBUTING.md) để biết chi tiết.
|
|
|
161
196
|
|
|
162
197
|
---
|
|
163
198
|
|
|
199
|
+
## Bảo mật / Security
|
|
200
|
+
|
|
201
|
+
Để báo cáo lỗ hổng bảo mật, vui lòng xem [SECURITY.md](SECURITY.md).
|
|
202
|
+
|
|
203
|
+
To report security vulnerabilities, please see [SECURITY.md](SECURITY.md).
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
164
207
|
## Team / Đội ngũ
|
|
165
208
|
|
|
166
209
|
### Maintainers
|
|
@@ -51,33 +51,7 @@
|
|
|
51
51
|
|
|
52
52
|
---
|
|
53
53
|
|
|
54
|
-
## Post-MVP / Product horizon
|
|
55
|
-
|
|
56
|
-
> **Mandatory block (crystallize):** Populate from brainstorm **`## Product horizon`**, or state **single-release** explicitly. Tier tags: `(MVP)` ship first; `(Post-MVP)` after first release; `(Future)` exploratory.
|
|
57
|
-
|
|
58
|
-
### Horizon mode
|
|
59
|
-
|
|
60
|
-
{{HORIZON_MODE_LINE}}
|
|
61
|
-
|
|
62
|
-
### Post-MVP themes (epic-level)
|
|
63
|
-
|
|
64
|
-
{{POST_MVP_EPICS}}
|
|
65
|
-
|
|
66
|
-
### Future / exploratory
|
|
67
|
-
|
|
68
|
-
{{FUTURE_EPICS}}
|
|
69
|
-
|
|
70
|
-
### Deferred capabilities (from MVP)
|
|
71
|
-
|
|
72
|
-
{{DEFERRED_CAPABILITIES}}
|
|
73
|
-
|
|
74
|
-
### Non-goals for MVP (reference)
|
|
75
|
-
|
|
76
|
-
{{MVP_NON_GOALS_ROADMAP}}
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
54
|
## Notes
|
|
81
55
|
- Created: {{DATE}}
|
|
82
56
|
- Last Updated: {{DATE}}
|
|
83
|
-
- **
|
|
57
|
+
- **Phases:** Keep phase status rows up to date after each phase completes.
|
package/workflows/audit.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
Audit ViePilot project state
|
|
3
|
-
|
|
4
|
-
Auto-
|
|
2
|
+
Audit ViePilot project state and documentation to detect drift.
|
|
3
|
+
Works on any project using ViePilot.
|
|
4
|
+
Auto-detects if running inside the viepilot framework repo to enable framework-specific checks.
|
|
5
5
|
</purpose>
|
|
6
6
|
|
|
7
7
|
## ViePilot Skill Scope Policy (BUG-004)
|
package/workflows/autonomous.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
Autonomous execution
|
|
3
|
-
Pauses at control points
|
|
2
|
+
Autonomous execution of project phases. For each phase: analyze → execute tasks → verify → iterate.
|
|
3
|
+
Pauses at control points for user decisions.
|
|
4
4
|
</purpose>
|
|
5
5
|
|
|
6
6
|
## ViePilot Skill Scope Policy (BUG-004)
|
|
@@ -11,7 +11,7 @@ Pauses at control points cho user decisions.
|
|
|
11
11
|
|
|
12
12
|
## Implementation entry (cross-skill)
|
|
13
13
|
|
|
14
|
-
- **`/vp-auto`** + workflow
|
|
14
|
+
- **`/vp-auto`** + this workflow is the **default lane** for **implementing** work that already has a **phase/task plan** (and doc-first **BUG-001**). **`/vp-request`** and **`/vp-evolve`** do **not** replace this step unless the user explicitly overrides — see **Implementation routing guard** in `workflows/request.md` and `workflows/evolve.md`.
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
<process>
|
|
@@ -20,8 +20,8 @@ Pauses at control points cho user decisions.
|
|
|
20
20
|
## 1. Initialize
|
|
21
21
|
|
|
22
22
|
Parse `{{VP_ARGS}}` for flags:
|
|
23
|
-
- `--from N` : Start
|
|
24
|
-
- `--phase N` :
|
|
23
|
+
- `--from N` : Start from phase N
|
|
24
|
+
- `--phase N` : Run only phase N
|
|
25
25
|
- `--fast` : Skip optional verifications
|
|
26
26
|
- `--dry-run` : Plan only
|
|
27
27
|
|
|
@@ -32,6 +32,10 @@ cat .viepilot/TRACKER.md
|
|
|
32
32
|
cat .viepilot/ROADMAP.md
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
+
### load_language_config
|
|
36
|
+
Read `~/.viepilot/config.json` → `COMMUNICATION_LANG` (default: `en`).
|
|
37
|
+
Use `COMMUNICATION_LANG` for all banners, control-point messages, and user-facing output in this session.
|
|
38
|
+
|
|
35
39
|
Display startup banner:
|
|
36
40
|
```
|
|
37
41
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
@@ -101,6 +105,35 @@ read:
|
|
|
101
105
|
- context_required files from task file
|
|
102
106
|
```
|
|
103
107
|
|
|
108
|
+
#### ⛔ Preflight: Task Paths Validation (BUG-009)
|
|
109
|
+
|
|
110
|
+
**Before any implementation**, read the `## Paths` block of the task file and validate each listed path:
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
FOR EACH path in ## Paths:
|
|
114
|
+
IF path starts with "~/" OR starts with "/" (absolute):
|
|
115
|
+
→ STOP. Do NOT execute this task.
|
|
116
|
+
→ Output:
|
|
117
|
+
|
|
118
|
+
⛔ TASK PATH ERROR (BUG-009)
|
|
119
|
+
Task {phase}.{task} contains an absolute or external path:
|
|
120
|
+
"{offending_path}"
|
|
121
|
+
|
|
122
|
+
Expected: a repo-relative path (e.g., workflows/foo.md, skills/vp-bar/SKILL.md)
|
|
123
|
+
|
|
124
|
+
Fix the task file before continuing:
|
|
125
|
+
.viepilot/phases/{phase-dir}/tasks/{phase}.{task}.md
|
|
126
|
+
|
|
127
|
+
Replace: {offending_path}
|
|
128
|
+
With the repo-relative equivalent (e.g., without ~/.claude/viepilot/ prefix).
|
|
129
|
+
|
|
130
|
+
ELSE:
|
|
131
|
+
→ Pass. Continue with task execution.
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
This check fires on `~/`, `~\`, and any path starting with `/`.
|
|
135
|
+
It does NOT fire on paths inside code block content within the task (only the `## Paths` header block is validated).
|
|
136
|
+
|
|
104
137
|
### ViePilot Skill Scope Policy (BUG-004 baseline)
|
|
105
138
|
- **Default mode**: only reference/route skills in the ViePilot namespace (`vp-*`).
|
|
106
139
|
- **External skills** (`non vp-*`) are out of scope by default and must not be suggested implicitly.
|