viepilot 1.9.4 → 1.9.7

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 CHANGED
@@ -19,6 +19,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
19
19
 
20
20
  - None yet.
21
21
 
22
+ ## [1.9.7] - 2026-04-02
23
+
24
+ ### Fixed
25
+
26
+ - **ENH-024**: Fix chuỗi truyền tải ui-direction bị đứt qua crystallize → vp-auto:
27
+ - `crystallize.md` Step 1A: đổi trigger thành hard check mandatory khi `.viepilot/ui-direction/` exists (không còn soft heuristic "if indicates").
28
+ - `crystallize.md` Step 10: thêm "UI Direction context injection" — inject `context_required` trỏ vào `notes.md` + `style.css` + `pages/*.html` vào task files cho UI tasks.
29
+ - `autonomous.md` Step 3a: thêm "UI Direction safety check" — warn + auto-load latest session nếu UI task thiếu ui-direction trong context_required.
30
+ - `templates/project/AI-GUIDE.md`: thêm 2 rows ui-direction vào Quick Lookup table + footnote hướng dẫn resolve `{session}`.
31
+
32
+ ## [1.9.6] - 2026-04-02
33
+
34
+ ### Fixed
35
+
36
+ - **ENH-023**: `workflows/autonomous.md` Step 3 Handle Result PASS — thêm `Update ROADMAP.md: sync phase progress % và task count nếu phase status/progress thay đổi` vào danh sách update sau `CHANGELOG.md`. Trước đây ROADMAP.md chỉ được sync tại phase-complete (Step 5a), bỏ sót task-level progress.
37
+
38
+ ## [1.9.5] - 2026-04-02
39
+
40
+ ### Added
41
+
42
+ - **M1.29 / Phase 35 (ENH-022)** — Crystallize **Step 4** ghi thêm **`.viepilot/architecture/<diagram>.mermaid`** (raw Mermaid, mirror khối fenced trong `ARCHITECTURE.md`); bảng tên canonical + policy trong `workflows/crystallize.md`; template `templates/project/ARCHITECTURE.md` có **Diagram source files** và dòng path từng section; **vp-crystallize** 0.5.2, **vp-audit** 0.3.2; `docs/skills-reference.md`; `tests/unit/vp-enh022-crystallize-architecture-files-contracts.test.js` (**308** tests).
43
+
22
44
  ## [1.9.4] - 2026-04-02
23
45
 
24
46
  ### Fixed
package/README.md CHANGED
@@ -2,15 +2,15 @@
2
2
 
3
3
  **Autonomous Vibe Coding Framework / Bộ khung phát triển tự động có kiểm soát**
4
4
 
5
- [![Version](https://img.shields.io/badge/version-1.9.4-blue.svg)](CHANGELOG.md)
5
+ [![Version](https://img.shields.io/badge/version-1.9.5-blue.svg)](CHANGELOG.md)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
7
7
  [![Skills](https://img.shields.io/badge/skills-16-purple.svg)](#skills-reference)
8
8
  [![Workflows](https://img.shields.io/badge/workflows-12-orange.svg)](#workflows)
9
9
  [![Templates](https://img.shields.io/badge/templates-17-cyan.svg)](#templates)
10
- [![Tests](https://img.shields.io/badge/tests-304%20passing-brightgreen.svg)](tests/)
10
+ [![Tests](https://img.shields.io/badge/tests-308%20passing-brightgreen.svg)](tests/)
11
11
  [![GitHub](https://img.shields.io/github/stars/0-CODE/viepilot?style=social)](https://github.com/0-CODE/viepilot)
12
12
 
13
- **Versioning:** Shield **1.9.4** is the **ViePilot framework SemVer** tracked in `.viepilot/TRACKER.md` and `CHANGELOG.md`. The npm `package.json` field `version` (**1.9.4**) is the Node package identifier for this repo; use the framework version for milestone releases and docs.
13
+ **Versioning:** Shield **1.9.5** is the **ViePilot framework SemVer** tracked in `.viepilot/TRACKER.md` and `CHANGELOG.md`. The npm `package.json` field `version` (**1.9.5**) is the Node package identifier for this repo; use the framework version for milestone releases and docs.
14
14
 
15
15
  ViePilot là bộ skill framework cho phép AI assistant (Claude, GPT, etc.) phát triển dự án một cách **tự động**, **có kiểm soát**, và **có thể khôi phục**. Thiết kế theo các tiêu chuẩn chuyên nghiệp: Semantic Versioning, Conventional Commits, Keep a Changelog.
16
16
 
@@ -28,12 +28,12 @@ Nếu ViePilot giúp ích cho bạn, bạn có thể ủng hộ một ly cafe:
28
28
 
29
29
  | Chỉ số / Metric | Giá trị / Value |
30
30
  |-----------------|-----------------|
31
- | Total LOC | **~27,779+** (`.md`, `.js`, `.cjs`, `.yml`, `.json`, `.sh`; không gồm `node_modules`) |
31
+ | Total LOC | **~27,991+** (`.md`, `.js`, `.cjs`, `.yml`, `.json`, `.sh`; không gồm `node_modules`) |
32
32
  | Skills | **16** |
33
33
  | Workflows | **12** |
34
34
  | Templates | **17** (Project: 12, Phase: 5) |
35
35
  | CLI Commands | **18** (`vp-tools` 17 subcommands + `viepilot` installer) |
36
- | Tests | **304** (15 suites: unit + integration + AI compat + README metrics + UI direction + ENH contracts + scope policy + FEAT-009 + FEAT-010 + ENH-021 routing + FEAT-001 Claude Code docs + viepilot-info/update/install) |
36
+ | Tests | **308** (16 suites: unit + integration + AI compat + README metrics + UI direction + ENH contracts + scope policy + FEAT-009 + FEAT-010 + ENH-021 routing + FEAT-001 Claude Code + ENH-022 crystallize architecture files + viepilot-info/update/install) |
37
37
  | ViePilot phases (local `.viepilot`) | **34** phase cycles — **M1.29** FEAT-001 (**v1.9.3** doc); patch **v1.9.4** (Claude installer); **M1.28** FEAT-010 (**v1.9.1**); **v1.9.2** (ENH-019~021); **M1.27** (**v1.9.0** FEAT-009); xem `CHANGELOG.md` |
38
38
  | Standards | 5 (SemVer, Commits, Changelog, Comments, Contributors) |
39
39
 
@@ -393,7 +393,7 @@ viepilot/
393
393
  ├── bin/ # CLI tools
394
394
  │ └── vp-tools.cjs # 17 subcommands; uses ../lib/cli-shared.cjs, viepilot-info/update.cjs
395
395
 
396
- ├── tests/ # Test suite (267 tests)
396
+ ├── tests/ # Test suite (308 tests)
397
397
  │ ├── unit/ # Unit tests
398
398
  │ │ ├── validators.test.js # CLI subprocess + in-process coverage tests
399
399
  │ │ └── ai-provider-compat.test.js # 142 AI compat tests
@@ -78,6 +78,7 @@ Complete reference for all ViePilot skills.
78
78
  ├── AI-GUIDE.md
79
79
  ├── PROJECT-META.md
80
80
  ├── ARCHITECTURE.md
81
+ ├── architecture/ (*.mermaid diagram sidecars — ENH-022, mirror fenced blocks)
81
82
  ├── PROJECT-CONTEXT.md
82
83
  ├── SYSTEM-RULES.md
83
84
  ├── ROADMAP.md
@@ -427,6 +428,7 @@ CHANGELOG.md (updated)
427
428
  4. **CLI coverage** — mỗi command có documentation không
428
429
  5. **docs/ sync** — docs/ có match với thực tế (skills count, workflows count) không
429
430
  6. **ROOT drift** — README.md badges, ROADMAP.md status có up-to-date không
431
+ 7. **ENH-022 (architecture sidecars)** — khi matrix có Mermaid thực tế, gợi ý kiểm `.viepilot/architecture/<type>.mermaid` khớp `ARCHITECTURE.md`
430
432
 
431
433
  ### Output
432
434
  - Audit report với danh sách gaps
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "viepilot",
3
- "version": "1.9.4",
3
+ "version": "1.9.7",
4
4
  "description": "**Autonomous Vibe Coding Framework / Bộ khung phát triển tự động có kiểm soát**",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: vp-audit
3
3
  description: "Audit state, docs drift, and stack best-practice compliance — works on any project"
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  ---
6
6
 
7
7
  <cursor_skill_adapter>
@@ -49,6 +49,7 @@ Auto-detect nếu đang chạy trong viepilot framework repo để thêm framewo
49
49
  - `required` diagrams must have Mermaid content
50
50
  - `optional` diagrams may be omitted/merged with explicit note
51
51
  - `N/A` diagrams must have rationale line
52
+ - **ENH-022 (recommended check):** when a diagram type is `required` (or `optional` with a real Mermaid block) and crystallize policy applies, verify **`.viepilot/architecture/<type>.mermaid`** exists and that **Diagram source** lines in `ARCHITECTURE.md` match; for `N/A`, sidecar file should be absent (no empty stubs)
52
53
 
53
54
  **Tier 3 — Stack Best Practices + Code Quality (mọi project, theo stack detect được):**
54
55
  - Detect stacks liên quan từ context/project manifests
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: vp-crystallize
3
3
  description: "Chuyển đổi brainstorm thành executable artifacts"
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  ---
6
6
 
7
7
  <cursor_skill_adapter>
@@ -38,6 +38,7 @@ Chuyển đổi brainstorm sessions thành structured artifacts để AI có th
38
38
  ├── AI-GUIDE.md # Navigation cho AI
39
39
  ├── PROJECT-META.md # Metadata dự án
40
40
  ├── ARCHITECTURE.md # System design
41
+ ├── architecture/ # ENH-022: *.mermaid sidecars (mirror fenced diagrams)
41
42
  ├── PROJECT-CONTEXT.md # Domain knowledge + `<product_vision>` (phased scope)
42
43
  ├── SYSTEM-RULES.md # Coding rules & standards
43
44
  ├── ROADMAP.md # MVP phases & tasks + **Post-MVP / Product horizon** block (mandatory)
@@ -143,6 +144,7 @@ Ask user for (confirm proposals từ profile nếu có):
143
144
  - `required` => include concrete Mermaid block
144
145
  - `optional` => allow lightweight/merged representation
145
146
  - `N/A` => keep section heading + one-line rationale
147
+ - **ENH-022:** For each diagram type with real Mermaid, write **`.viepilot/architecture/<type>.mermaid`** (raw source) and keep it **identical** to the body inside the fenced ` ```mermaid ` block in `ARCHITECTURE.md`; omit files for `N/A` or no diagram — see `workflows/crystallize.md` Step 4.
146
148
 
147
149
  ### Step 5: Generate PROJECT-CONTEXT.md
148
150
  - **FEAT-009:** Block `## ViePilot active profile (FEAT-009)` khi có binding
@@ -206,5 +208,6 @@ Ask user for (confirm proposals từ profile nếu có):
206
208
  - [ ] Project files created
207
209
  - [ ] Git committed
208
210
  - [ ] ARCHITECTURE diagram matrix is present and consistent (`required|optional|N/A`)
211
+ - [ ] **ENH-022:** Mỗi diagram Mermaid được sinh có file `.viepilot/architecture/<canonical-name>.mermaid` đồng bộ nội dung với `ARCHITECTURE.md` (không tạo file thừa cho N/A)
209
212
  - [ ] **FEAT-009:** Nếu có profile bound — ARCHITECTURE + PROJECT-CONTEXT ghi nguồn profile; nếu không — ghi rõ none / not configured
210
213
  </success_criteria>
@@ -4,6 +4,8 @@
4
4
 
5
5
  {{SYSTEM_OVERVIEW_DESCRIPTION}}
6
6
 
7
+ **Diagram source (when Mermaid):** `.viepilot/architecture/system-overview.mermaid`
8
+
7
9
  ```
8
10
  {{SYSTEM_DIAGRAM}}
9
11
  ```
@@ -28,6 +30,12 @@
28
30
  | deployment | {{DIAGRAM_STATUS_DEPLOYMENT}} | {{DIAGRAM_REASON_DEPLOYMENT}} |
29
31
  | user-use-case | {{DIAGRAM_STATUS_USER_USE_CASE}} | {{DIAGRAM_REASON_USER_USE_CASE}} |
30
32
 
33
+ ## Diagram source files (ENH-022)
34
+
35
+ When crystallize emits a real Mermaid diagram for a type, it also writes **`.viepilot/architecture/<type>.mermaid`** (raw Mermaid, no markdown fences). Canonical names: `system-overview.mermaid`, `data-flow.mermaid`, `event-flows.mermaid`, `module-dependencies.mermaid`, `deployment.mermaid`, `user-use-case.mermaid`. Types marked **N/A** or without a diagram must **not** get a sidecar file.
36
+
37
+ Under each diagram section below, when applicable, include **Diagram source** pointing at the matching path. The fenced ` ```mermaid ` body in this file must **mirror** the `.mermaid` file line-for-line.
38
+
31
39
  ## Services
32
40
 
33
41
  {{#SERVICES}}
@@ -42,12 +50,16 @@
42
50
 
43
51
  ## Data Flow
44
52
 
53
+ **Diagram source (when generated):** `.viepilot/architecture/data-flow.mermaid`
54
+
45
55
  ```
46
56
  {{DATA_FLOW_DIAGRAM}}
47
57
  ```
48
58
 
49
59
  ### Event Flows
50
60
 
61
+ - **Diagram source (when generated):** `.viepilot/architecture/event-flows.mermaid`
62
+
51
63
  - **Status**: {{DIAGRAM_STATUS_EVENT_FLOWS}}
52
64
  - **Not applicable rationale**: {{DIAGRAM_NA_EVENT_FLOWS}}
53
65
 
@@ -58,6 +70,8 @@ flowchart LR
58
70
 
59
71
  ### Module Dependencies
60
72
 
73
+ - **Diagram source (when generated):** `.viepilot/architecture/module-dependencies.mermaid`
74
+
61
75
  - **Status**: {{DIAGRAM_STATUS_MODULE_DEPENDENCIES}}
62
76
  - **Not applicable rationale**: {{DIAGRAM_NA_MODULE_DEPENDENCIES}}
63
77
 
@@ -68,6 +82,8 @@ flowchart LR
68
82
 
69
83
  ### User Use-Case Flows
70
84
 
85
+ - **Diagram source (when generated):** `.viepilot/architecture/user-use-case.mermaid`
86
+
71
87
  - **Status**: {{DIAGRAM_STATUS_USER_USE_CASE}}
72
88
  - **Not applicable rationale**: {{DIAGRAM_NA_USER_USE_CASE}}
73
89
 
@@ -108,6 +124,8 @@ flowchart TD
108
124
 
109
125
  ## Deployment Architecture
110
126
 
127
+ **Diagram source (when generated):** `.viepilot/architecture/deployment.mermaid`
128
+
111
129
  ```
112
130
  {{DEPLOYMENT_DIAGRAM}}
113
131
  ```
@@ -287,6 +287,27 @@ Generation rules:
287
287
  - `optional`: may be simplified or merged with a nearby section, but keep section heading discoverable
288
288
  - `N/A`: keep heading and add one-line rationale (`Not applicable: ...`) so `vp-audit` and `vp-auto` can interpret intent
289
289
  - Never default to “all six detailed diagrams”; diagram depth must scale with project complexity from brainstorm.
290
+
291
+ ### Architecture diagram source files on disk (ENH-022)
292
+
293
+ When a diagram type is **`required`** or **`optional`** and you emit a **non-empty Mermaid diagram** for it, also persist the **same** diagram body (Mermaid source only — **no** markdown fences) under **`.viepilot/architecture/`** using the canonical filenames below. When status is **`N/A`** or the section has **no** real diagram (placeholder-only / rationale-only), **do not** create the matching `.mermaid` file (and remove a stale file if regenerating a project).
294
+
295
+ | Diagram type (matrix key) | File (under `.viepilot/architecture/`) |
296
+ |---------------------------|----------------------------------------|
297
+ | `system-overview` | `system-overview.mermaid` |
298
+ | `data-flow` | `data-flow.mermaid` |
299
+ | `event-flows` | `event-flows.mermaid` |
300
+ | `module-dependencies` | `module-dependencies.mermaid` |
301
+ | `deployment` | `deployment.mermaid` |
302
+ | `user-use-case` | `user-use-case.mermaid` |
303
+
304
+ **Single source of truth (mirror policy):** the line-for-line Mermaid **inside** the ` ```mermaid ` fence in `.viepilot/ARCHITECTURE.md` must match the contents of the paired `.viepilot/architecture/<name>.mermaid` file. If you update one, update the other in the same crystallize pass.
305
+
306
+ **System overview exception:** if the overview uses a non-Mermaid diagram (e.g. ASCII in a plain ` ``` ` block) and matrix marks `system-overview` as `required`, prefer converting to Mermaid for consistency; if you keep ASCII only, **omit** `system-overview.mermaid` and state that choice in the matrix reason column.
307
+
308
+ **Discoverability:** in `.viepilot/ARCHITECTURE.md`, under each diagram section that has a sidecar file, add a line with bold label **Diagram source** and an inline-code path `.viepilot/architecture/<filename>.mermaid`.
309
+
310
+ Create `.viepilot/architecture/` only when at least one `.mermaid` file will be written (empty directory otherwise is unnecessary).
290
311
  </step>
291
312
 
292
313
  <step name="generate_context">
@@ -480,6 +501,7 @@ Display summary:
480
501
  │ ├── AI-GUIDE.md
481
502
  │ ├── PROJECT-META.md
482
503
  │ ├── ARCHITECTURE.md
504
+ │ ├── architecture/ (*.mermaid sidecars when diagrams generated — ENH-022)
483
505
  │ ├── PROJECT-CONTEXT.md
484
506
  │ ├── SYSTEM-RULES.md
485
507
  │ ├── ROADMAP.md ({phase_count} phases)