@longph2102/v-flow 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/AGENTS.md +265 -0
  2. package/CHANGELOG.md +318 -0
  3. package/LICENSE +21 -0
  4. package/README.md +326 -0
  5. package/agents/ba-agent.md +437 -0
  6. package/agents/ba-critic-agent.md +156 -0
  7. package/agents/ba-to-ptyc-agent.md +112 -0
  8. package/agents/bugfix-analyst-agent.md +221 -0
  9. package/agents/constitute-agent.md +155 -0
  10. package/agents/help-agent.md +168 -0
  11. package/agents/implement-agent.md +220 -0
  12. package/agents/import-ba-docs-agent.md +164 -0
  13. package/agents/master-check-agent.md +228 -0
  14. package/agents/metrics-agent.md +180 -0
  15. package/agents/operations-agent.md +123 -0
  16. package/agents/plan-agent.md +218 -0
  17. package/agents/prototype-agent.md +191 -0
  18. package/agents/retrospective-agent.md +196 -0
  19. package/agents/review-agent.md +210 -0
  20. package/agents/sprint-agent.md +191 -0
  21. package/agents/status-agent.md +186 -0
  22. package/agents/sync-agent.md +201 -0
  23. package/agents/test-agent.md +166 -0
  24. package/agents/understand-agent.md +339 -0
  25. package/cli/commands/check.js +96 -0
  26. package/cli/commands/dev-quiz.js +107 -0
  27. package/cli/commands/doctor.js +348 -0
  28. package/cli/commands/feature.js +259 -0
  29. package/cli/commands/hooks.js +163 -0
  30. package/cli/commands/init.js +189 -0
  31. package/cli/commands/log.js +199 -0
  32. package/cli/commands/plugin.js +230 -0
  33. package/cli/commands/score-card.js +203 -0
  34. package/cli/commands/status.js +269 -0
  35. package/cli/commands/sync.js +59 -0
  36. package/cli/commands/upgrade.js +150 -0
  37. package/cli/commands/validate.js +1259 -0
  38. package/cli/commands/watch.js +151 -0
  39. package/cli/index.js +46 -0
  40. package/cli/lib/ac-test-gate.js +89 -0
  41. package/cli/lib/activity-log.js +209 -0
  42. package/cli/lib/cli-error.js +183 -0
  43. package/cli/lib/constitution-lint.js +561 -0
  44. package/cli/lib/dev-quiz-grade.js +127 -0
  45. package/cli/lib/governance.js +78 -0
  46. package/cli/lib/hook-targets.js +167 -0
  47. package/cli/lib/i18n.js +375 -0
  48. package/cli/lib/knowledge-oracle.js +379 -0
  49. package/cli/lib/logger.js +203 -0
  50. package/cli/lib/module-card-lint.js +304 -0
  51. package/cli/lib/module-card-score.js +223 -0
  52. package/cli/lib/plugins.js +481 -0
  53. package/cli/lib/scanner.js +692 -0
  54. package/cli/lib/sync-core.js +232 -0
  55. package/cli/lib/sync-targets.js +84 -0
  56. package/cli/lib/templates.js +268 -0
  57. package/cli/lib/yaml-parser.js +203 -0
  58. package/commands/v.ba-critic.md +101 -0
  59. package/commands/v.ba-to-ptyc.md +71 -0
  60. package/commands/v.bugfix.md +86 -0
  61. package/commands/v.check.md +131 -0
  62. package/commands/v.constitute.md +87 -0
  63. package/commands/v.constitution.md +84 -0
  64. package/commands/v.fork.md +127 -0
  65. package/commands/v.help.md +73 -0
  66. package/commands/v.hotfix.md +200 -0
  67. package/commands/v.implement.md +92 -0
  68. package/commands/v.import-ba-docs.md +222 -0
  69. package/commands/v.metrics.md +74 -0
  70. package/commands/v.operations.md +70 -0
  71. package/commands/v.plan.md +78 -0
  72. package/commands/v.prototype.md +121 -0
  73. package/commands/v.quickfix.md +169 -0
  74. package/commands/v.retrospective.md +80 -0
  75. package/commands/v.review.md +78 -0
  76. package/commands/v.rewind.md +127 -0
  77. package/commands/v.specify.md +118 -0
  78. package/commands/v.sprint.md +75 -0
  79. package/commands/v.status.md +62 -0
  80. package/commands/v.sync.md +81 -0
  81. package/commands/v.test.md +67 -0
  82. package/commands/v.understand.md +112 -0
  83. package/package.json +65 -0
  84. package/skills/_shared/constitution-reader/SKILL.md +109 -0
  85. package/skills/_shared/constitution-reader/config.json +52 -0
  86. package/skills/_shared/constitution-reader/examples/good/b1-phase-output.md +48 -0
  87. package/skills/_shared/constitution-reader/gotchas.md +46 -0
  88. package/skills/_shared/context-reader/SKILL.md +111 -0
  89. package/skills/_shared/context-reader/config.json +54 -0
  90. package/skills/_shared/context-reader/examples/good/legacy-nodejs-output.md +35 -0
  91. package/skills/_shared/context-reader/gotchas.md +49 -0
  92. package/skills/_shared/ears-notation/SKILL.md +63 -0
  93. package/skills/_shared/ears-notation/config.json +55 -0
  94. package/skills/_shared/ears-notation/examples/good/plan-test-interpretation.md +29 -0
  95. package/skills/_shared/ears-notation/gotchas.md +43 -0
  96. package/skills/check/cross-validator/SKILL.md +206 -0
  97. package/skills/check/cross-validator/config.json +33 -0
  98. package/skills/check/cross-validator/examples/good/validation-report-pass-with-concerns.md +105 -0
  99. package/skills/check/cross-validator/gotchas.md +43 -0
  100. package/skills/implement/constitution-enforcer/SKILL.md +134 -0
  101. package/skills/implement/constitution-enforcer/config.json +16 -0
  102. package/skills/implement/constitution-enforcer/examples/bad/vague-report.md +42 -0
  103. package/skills/implement/constitution-enforcer/examples/good/compliance-report.md +57 -0
  104. package/skills/implement/constitution-enforcer/gotchas.md +26 -0
  105. package/skills/implement/constitution-enforcer/scripts/check-constitution.sh +88 -0
  106. package/skills/implement/no-go-zone-guard/SKILL.md +173 -0
  107. package/skills/implement/no-go-zone-guard/config.json +28 -0
  108. package/skills/implement/no-go-zone-guard/examples/good/adapter-workaround.md +46 -0
  109. package/skills/implement/no-go-zone-guard/gotchas.md +27 -0
  110. package/skills/implement/no-go-zone-guard/scripts/check-nogo-zones.sh +148 -0
  111. package/skills/implement/no-go-zone-guard/scripts/nogo-precommit.sh +96 -0
  112. package/skills/implement/tdd-driver/SKILL.md +159 -0
  113. package/skills/implement/tdd-driver/config.json +33 -0
  114. package/skills/implement/tdd-driver/examples/good/tdd-cycle-product-repo.md +81 -0
  115. package/skills/implement/tdd-driver/gotchas.md +34 -0
  116. package/skills/metrics/metrics-collector/SKILL.md +133 -0
  117. package/skills/metrics/metrics-collector/config.json +16 -0
  118. package/skills/metrics/metrics-collector/examples/bad/incomplete-report.md +48 -0
  119. package/skills/metrics/metrics-collector/examples/good/full-metrics-report.md +101 -0
  120. package/skills/metrics/metrics-collector/gotchas.md +26 -0
  121. package/skills/operations/incident-runbook/SKILL.md +167 -0
  122. package/skills/operations/incident-runbook/config.json +21 -0
  123. package/skills/operations/incident-runbook/examples/bad/vague-incident-report.md +48 -0
  124. package/skills/operations/incident-runbook/examples/good/p1-hotfix-response.md +119 -0
  125. package/skills/operations/incident-runbook/gotchas.md +26 -0
  126. package/skills/plan/architecture-designer/SKILL.md +228 -0
  127. package/skills/plan/architecture-designer/config.json +32 -0
  128. package/skills/plan/architecture-designer/examples/bad/vague-plan.md +62 -0
  129. package/skills/plan/architecture-designer/examples/good/expand-contract-migration.md +56 -0
  130. package/skills/plan/architecture-designer/examples/good/plan-structure.md +58 -0
  131. package/skills/plan/architecture-designer/gotchas.md +45 -0
  132. package/skills/plan/task-breakdown/SKILL.md +208 -0
  133. package/skills/plan/task-breakdown/config.json +26 -0
  134. package/skills/plan/task-breakdown/examples/bad/vague-tasks.md +77 -0
  135. package/skills/plan/task-breakdown/examples/good/spike-clarify-tasks.md +66 -0
  136. package/skills/plan/task-breakdown/examples/good/tasks-login-feature.md +111 -0
  137. package/skills/plan/task-breakdown/gotchas.md +39 -0
  138. package/skills/prototype/LOGIC.md +240 -0
  139. package/skills/prototype/SKILL.md +185 -0
  140. package/skills/prototype/UI.md +407 -0
  141. package/skills/prototype/config.json +104 -0
  142. package/skills/prototype/examples/bad/prototype-notes.md +68 -0
  143. package/skills/prototype/examples/good/prototype-notes-ui.md +109 -0
  144. package/skills/prototype/examples/good/prototype-notes.md +67 -0
  145. package/skills/prototype/gotchas.md +128 -0
  146. package/skills/prototype/scripts/check-flow-state.ps1 +112 -0
  147. package/skills/prototype/scripts/check-flow-state.sh +104 -0
  148. package/skills/prototype/scripts/check-prototype-cleanup.ps1 +124 -0
  149. package/skills/prototype/scripts/check-prototype-cleanup.sh +109 -0
  150. package/skills/prototype/scripts/check-prototype-notes.ps1 +107 -0
  151. package/skills/prototype/scripts/check-prototype-notes.sh +102 -0
  152. package/skills/review/adversarial-reviewer/SKILL.md +137 -0
  153. package/skills/review/adversarial-reviewer/config.json +32 -0
  154. package/skills/review/adversarial-reviewer/examples/good/review-report-template.md +56 -0
  155. package/skills/review/adversarial-reviewer/gotchas.md +46 -0
  156. package/skills/review/adversarial-reviewer/scripts/quick-security-scan.sh +52 -0
  157. package/skills/specify/ba-bpmn-doc-gen/SKILL.md +108 -0
  158. package/skills/specify/ba-bpmn-doc-gen/reference/reference-bpmn-generation.md +528 -0
  159. package/skills/specify/ba-bpmn-doc-gen/reference/reference-drawio-flowchart.md +466 -0
  160. package/skills/specify/ba-critic/SKILL.md +172 -0
  161. package/skills/specify/ba-critic/config.json +32 -0
  162. package/skills/specify/ba-critic/examples/good/critic-report-round1.md +51 -0
  163. package/skills/specify/ba-critic/gotchas.md +40 -0
  164. package/skills/specify/ba-critic/scripts/check-spec-quality.sh +72 -0
  165. package/skills/specify/ba-doc-generator/SKILL.md +102 -0
  166. package/skills/specify/ba-doc-generator/references/template-clevel.md +84 -0
  167. package/skills/specify/ba-doc-generator/references/template-compliance.md +83 -0
  168. package/skills/specify/ba-doc-generator/references/template-dev.md +138 -0
  169. package/skills/specify/ba-doc-generator/references/template-partner.md +167 -0
  170. package/skills/specify/ba-doc-generator/references/template-pm.md +92 -0
  171. package/skills/specify/ba-doc-generator/references/template-review.md +114 -0
  172. package/skills/specify/ba-doc-generator/references/template-tester.md +108 -0
  173. package/skills/specify/ba-doc-generator/references/template-user.md +98 -0
  174. package/skills/specify/bugfix-analyst/SKILL.md +296 -0
  175. package/skills/specify/bugfix-analyst/config.json +41 -0
  176. package/skills/specify/bugfix-analyst/examples/bad/common-mistakes.md +71 -0
  177. package/skills/specify/bugfix-analyst/examples/good/email-validation-bugfix.md +53 -0
  178. package/skills/specify/bugfix-analyst/gotchas.md +51 -0
  179. package/skills/specify/ears-writer/SKILL.md +129 -0
  180. package/skills/specify/ears-writer/config.json +20 -0
  181. package/skills/specify/ears-writer/examples/bad/common-mistakes.md +17 -0
  182. package/skills/specify/ears-writer/examples/good/login-requirements.md +41 -0
  183. package/skills/specify/ears-writer/gotchas.md +43 -0
  184. package/skills/specify/ears-writer/scripts/check-ears-compliance.sh +51 -0
  185. package/skills/test/test-case-generator/SKILL.md +161 -0
  186. package/skills/test/test-case-generator/config.json +33 -0
  187. package/skills/test/test-case-generator/examples/good/test-cases-login.md +104 -0
  188. package/skills/test/test-case-generator/gotchas.md +43 -0
  189. package/skills/understand/ba-docs-scanner/SKILL.md +239 -0
  190. package/skills/understand/ba-docs-scanner/config.json +47 -0
  191. package/skills/understand/ba-docs-scanner/examples/good/work-order-br-extract.md +28 -0
  192. package/skills/understand/ba-docs-scanner/gotchas.md +44 -0
  193. package/skills/understand/ba-docs-scanner/merge-rules.md +47 -0
  194. package/skills/understand/codebase-scanner/SKILL.md +260 -0
  195. package/skills/understand/codebase-scanner/config.json +56 -0
  196. package/skills/understand/codebase-scanner/examples/good/menu-module-output.md +44 -0
  197. package/skills/understand/codebase-scanner/gotchas.md +42 -0
  198. package/skills/understand/codebase-scanner/scripts/scan-project-structure.sh +64 -0
  199. package/templates/DESIGN.md +456 -0
  200. package/templates/agent-command-template.yaml +240 -0
  201. package/templates/agent-config-template.md +170 -0
  202. package/templates/agent-definition-template.md +145 -0
  203. package/templates/agent-metrics-template.md +150 -0
  204. package/templates/api-contract-template.md +72 -0
  205. package/templates/bugfix-report-template.md +195 -0
  206. package/templates/bugfix-spec-template.md +134 -0
  207. package/templates/code-review-report-template.md +119 -0
  208. package/templates/constitution-template.md +234 -0
  209. package/templates/context-template.md +94 -0
  210. package/templates/data-model-template.md +95 -0
  211. package/templates/decision-log-template.md +92 -0
  212. package/templates/flow-state-template.yaml +208 -0
  213. package/templates/github/workflows/v-flow-validate.yml +30 -0
  214. package/templates/knowledge/adr-template.md +70 -0
  215. package/templates/knowledge/api-contract-template.md +140 -0
  216. package/templates/knowledge/domain-glossary.md +29 -0
  217. package/templates/knowledge/golden-tests-readme.md +115 -0
  218. package/templates/knowledge/lessons-learned.md +41 -0
  219. package/templates/knowledge/patterns.md +103 -0
  220. package/templates/module-card/SKILL.md +85 -0
  221. package/templates/module-card/api-specs.md +96 -0
  222. package/templates/module-card/business-quiz.md +119 -0
  223. package/templates/module-card/cross-service.md +125 -0
  224. package/templates/module-card/db.md +85 -0
  225. package/templates/module-card/dev-quiz.md +62 -0
  226. package/templates/module-card/permissions.md +83 -0
  227. package/templates/module-card/state-diagram.md +64 -0
  228. package/templates/module-card/tech-context.md +90 -0
  229. package/templates/module-card/ui-flows.md +91 -0
  230. package/templates/module-card/use-cases.md +142 -0
  231. package/templates/module-template.yaml +161 -0
  232. package/templates/operations-report-template.md +108 -0
  233. package/templates/plan-template.md +308 -0
  234. package/templates/prototype-notes-template.md +116 -0
  235. package/templates/ptyc/PTYC.template.docx +0 -0
  236. package/templates/ptyc/ptyc.meta.example.yaml +44 -0
  237. package/templates/retrospective-report-template.md +136 -0
  238. package/templates/security-review-template.md +84 -0
  239. package/templates/session-template.md +167 -0
  240. package/templates/spec-review-log-template.md +75 -0
  241. package/templates/spec-template.md +229 -0
  242. package/templates/sprint-status-template.md +101 -0
  243. package/templates/tasks-template.md +275 -0
  244. package/templates/test-cases-template.md +124 -0
  245. package/templates/ux-checklist-template.md +79 -0
  246. package/templates/validation-report-template.md +125 -0
  247. package/templates/vflow-config-template.yaml +22 -0
@@ -0,0 +1,222 @@
1
+ ---
2
+ description: "Import BA Docs Agent — Trích xuất tài liệu BA từ Google NotebookLM vào Module Cards (Optional — U.0d)"
3
+ phase: "U.0d"
4
+ agent: "import-ba-docs-agent"
5
+ optional: true
6
+ dependency: "notebooklm-py (unofficial — pip install notebooklm-py)"
7
+ ---
8
+
9
+ # /v.import-ba-docs
10
+
11
+ > Orchestration wrapper cho **Import BA Docs Agent**. Đọc `agents/import-ba-docs-agent.md` để thực hiện core logic.
12
+
13
+ > ⚠️ **OPTIONAL PHASE** — Phase U.0d không bắt buộc.
14
+ > Phụ thuộc vào `notebooklm-py` — thư viện unofficial, có thể break bất cứ lúc nào.
15
+ > Nếu không dùng được, BA export thủ công (PDF/copy-paste) → đặt vào `.v-flow/modules/{module}/raw/`
16
+
17
+ ---
18
+
19
+ ## Prerequisites
20
+
21
+ Trước khi chạy, cần đảm bảo:
22
+
23
+ ```
24
+ 1. pip install "notebooklm-py[browser]"
25
+ 2. playwright install chromium
26
+ 3. notebooklm login ← Mở browser, login Google account
27
+ 4. notebooklm list ← Verify thấy notebooks của BA
28
+ ```
29
+
30
+ Nếu bất kỳ bước nào fail → thông báo user và **hướng dẫn fallback thủ công**.
31
+
32
+ ---
33
+
34
+ ## Modes
35
+
36
+ ### Mode B: `--interactive` — User chọn cách nhóm sources (MẶC ĐỊNH)
37
+
38
+ ```
39
+ /v.import-ba-docs --notebook <id> --interactive
40
+ /v.import-ba-docs --notebook <id> ← mặc định = interactive
41
+ ```
42
+
43
+ Dành cho: **1 notebook lớn chứa nhiều sources thuộc nhiều domain khác nhau.**
44
+ User sẽ được hỏi cách nhóm sources → tạo nhiều Module Cards.
45
+
46
+ ### Mode A: `--module <name>` — 1 Notebook → 1 Module Card
47
+
48
+ ```
49
+ /v.import-ba-docs --notebook <id> --module <name>
50
+ ```
51
+
52
+ Dành cho: **BA đã tổ chức 1 notebook/domain.** Tất cả sources trong notebook → 1 module card.
53
+
54
+ ### Mode A+: `--module <name> --sources <ids>` — Chọn sources cụ thể
55
+
56
+ ```
57
+ /v.import-ba-docs --notebook <id> --module <name> --sources src1,src2,src3
58
+ ```
59
+
60
+ Dành cho: **Chọn thủ công** một số sources từ notebook lớn → 1 module card.
61
+
62
+ ### Mode C: `--auto-split` — AI đề xuất cách nhóm
63
+
64
+ ```
65
+ /v.import-ba-docs --notebook <id> --auto-split
66
+ ```
67
+
68
+ Dành cho: **Notebook rất lớn, nhiều sources.** AI phân tích titles + summaries → đề xuất nhóm → user confirm.
69
+
70
+ ### Utility: `--raw-only` — Chỉ lấy raw data
71
+
72
+ ```
73
+ /v.import-ba-docs --notebook <id> --module <name> --raw-only
74
+ ```
75
+
76
+ Chỉ download raw materials, không generate AI drafts.
77
+
78
+ ### Utility: `--refresh` — Cập nhật module card
79
+
80
+ ```
81
+ /v.import-ba-docs --notebook <id> --module <name> --refresh
82
+ ```
83
+
84
+ Re-download raw materials mới, so sánh diff với bản cũ → output diff report (sources UNCHANGED/MODIFIED/NEW/DELETED + affected drafts). Hỏi user: `"Cập nhật drafts tự động? (Y/n/manual review)"`.
85
+ Sections đã được Human verify (không còn tag `[⚠️ AI-inferred]`) → KHÔNG ghi đè, chỉ ghi warning.
86
+
87
+ ---
88
+
89
+ ## Execution
90
+
91
+ 1. Đọc agent definition: `agents/import-ba-docs-agent.md`
92
+ 2. Đọc Skill scan strategy: `skills/understand/ba-docs-scanner/SKILL.md`
93
+ 3. Thực hiện quy trình trong agent definition theo mode được chọn
94
+
95
+ ### Bước 1: Kiểm tra điều kiện
96
+
97
+ 1. Kiểm tra `notebooklm` CLI: `notebooklm --version`
98
+ 2. Kiểm tra auth: `notebooklm auth check`
99
+ 3. Kiểm tra `.v-flow/` đã tồn tại
100
+
101
+ ### Bước 2: Kết nối notebook & liệt kê sources
102
+
103
+ ```bash
104
+ notebooklm use <notebook_id>
105
+ notebooklm status
106
+ notebooklm source list --json
107
+ ```
108
+
109
+ ### Bước 3: Xác định mapping Sources → Module Cards
110
+
111
+ - **Interactive (mặc định)**: Hiển thị sources → user nhóm thủ công
112
+ - **1:1 (--module)**: Tất cả sources → 1 module
113
+ - **Auto-split (--auto-split)**: AI đề xuất nhóm từ titles + summaries → user confirm
114
+
115
+ ### Bước 4: Trích xuất raw materials (cho mỗi module)
116
+
117
+ ```bash
118
+ mkdir -p .v-flow/modules/{module-name}/raw/sources/
119
+
120
+ # Fulltext từng source
121
+ notebooklm source fulltext $source_id -o raw/sources/{title}.txt
122
+
123
+ # Mind-map, briefing doc, study guide
124
+ notebooklm generate mind-map -s src1 -s src2
125
+ notebooklm download mind-map raw/domain-map.json
126
+ notebooklm generate report --format briefing-doc --wait
127
+ notebooklm download report raw/overview.md
128
+ ```
129
+
130
+ > ⚠️ Nếu `generate report` fail (rate limit) → skip, ghi warning. Raw fulltext đủ để tiếp tục.
131
+ > ⚠️ Với `--raw-only` → DỪNG ở đây.
132
+
133
+ ### Bước 5: AI generate Module Card drafts
134
+
135
+ > **TRƯỚC KHI GENERATE**: Agent PHẢI đọc 2 files:
136
+ > 1. 📖 `skills/understand/ba-docs-scanner/SKILL.md` — scan strategy chi tiết cho từng loại draft
137
+ > 2. 📖 `skills/understand/ba-docs-scanner/gotchas.md` — anti-patterns và quality gate
138
+
139
+ Thực hiện generate theo hướng dẫn trong Agent + Skill. Kết quả:
140
+
141
+ | File | Khi nào tạo |
142
+ |------|------------|
143
+ | `SKILL.md` | Luôn tạo (entry point + glossary + constraints) |
144
+ | `use-cases.md` | Luôn tạo (E2E flows + business rules trích dẫn) |
145
+ | `cross-service.md` | Nếu BA docs đề cập tích hợp |
146
+ | `state-diagram.md` | Nếu BA docs mô tả trạng thái |
147
+ | `permissions.md` | Nếu BA docs mô tả phân quyền |
148
+ | `db.md` | Nếu BA docs mô tả data model |
149
+ | `ui-flows.md` | Nếu BA docs mô tả giao diện |
150
+ | `api-specs.md` | ⏳ Placeholder (chờ code scan) |
151
+ | `tech-context.md` | ⏳ Placeholder (chờ code scan) |
152
+
153
+ ### Bước 6: Output summary
154
+
155
+ Hiển thị: files đã tạo, thống kê (BR count, flows, glossary terms), files cần BA review, bước tiếp theo.
156
+
157
+ ---
158
+
159
+ ## Merge với U.0b (Code Scan)
160
+
161
+ > 📖 Xem chi tiết: `skills/understand/ba-docs-scanner/merge-rules.md`
162
+
163
+ Khi chạy `/v.understand --module {tên}` trên module đã có U.0d data → merge BA content với code scan results.
164
+
165
+ ---
166
+
167
+ ## Fallback khi không có notebooklm-py
168
+
169
+ ```
170
+ ⚠️ notebooklm-py không khả dụng. Hãy export thủ công:
171
+
172
+ 1. Mở NotebookLM web (https://notebooklm.google.com)
173
+ 2. Với mỗi domain/module:
174
+ a. Copy nội dung sources → lưu vào .v-flow/modules/{module}/raw/sources/
175
+ b. Generate Study Guide trên web → download → lưu vào raw/
176
+ c. Screenshot Mind Map → lưu vào raw/
177
+ 3. Chạy /v.import-ba-docs --module {tên} --raw-only
178
+ (skip NotebookLM, chỉ đọc files trong raw/ để generate drafts)
179
+ ```
180
+
181
+ ---
182
+
183
+ ## Ví dụ sử dụng
184
+
185
+ ```bash
186
+ /v.import-ba-docs --notebook abc123
187
+ /v.import-ba-docs --notebook abc123 --module domain-wo
188
+ /v.import-ba-docs --notebook abc123 --auto-split
189
+ /v.import-ba-docs --notebook abc123 --module domain-wo --raw-only
190
+ /v.import-ba-docs --notebook abc123 --module domain-wo --refresh
191
+ ```
192
+
193
+ ---
194
+
195
+ ## Bước tiếp theo sau khi chạy
196
+
197
+ ```
198
+ 1. BA review: use-cases.md, SKILL.md — xác nhận business rules [BẮT BUỘC]
199
+ 2. BA xóa tag [⚠️ AI-inferred] sau khi verify [BẮT BUỘC]
200
+ 3. (Song song) Chạy /v.understand --module {tên} [BẮT BUỘC]
201
+ → AI scan codebase → điền api-specs, tech-context, ui-flows, db, state-diagram, permissions
202
+ → Merge với U.0d data nếu có
203
+ 4. Tech Lead review: SKILL.md — set Last verified date [BẮT BUỘC]
204
+ 5. Tiến sang S.0a hoặc S.1 [Khi sẵn sàng]
205
+ ```
206
+
207
+ ---
208
+
209
+ ## Cập nhật State & Session
210
+
211
+ **Không cập nhật `.flow-state.yaml`** — U.0d là optional, project-level.
212
+
213
+ **Append vào `_session.md`** (nếu đang trong feature context):
214
+ ```markdown
215
+ ### [U.0d] Import BA Docs — [YYYY-MM-DD]
216
+ - **Agent**: Import BA Docs Agent
217
+ - **Source**: NotebookLM notebook [ID]
218
+ - **Mode**: [interactive | 1:1 | auto-split | raw-only]
219
+ - **Modules created**: [N]
220
+ - **Files generated**: [list]
221
+ - **Routing**: → /v.understand --module (deep scan)
222
+ ```
@@ -0,0 +1,74 @@
1
+ ---
2
+ description: "Thu thập và phân tích Agent Metrics sau mỗi feature cycle"
3
+ phase: "M.0"
4
+ agent: "metrics-agent"
5
+ ---
6
+
7
+ # /v.metrics
8
+
9
+ > Orchestration wrapper cho **Metrics Agent**. Đọc `agents/metrics-agent.md` để thực hiện core logic.
10
+
11
+ ## Điều kiện tiên quyết
12
+ - Feature phải đã qua **R.1** (Code Review hoàn thành)
13
+ - `spec.md`, `tasks.md`, `validation-report.md` phải tồn tại
14
+ - `_session.md` nên có execution trace
15
+
16
+ ## Execution
17
+ 1. Đọc agent definition: `agents/metrics-agent.md`
18
+ 2. Thực hiện toàn bộ quy trình trong agent definition
19
+ 3. Tạo `metrics-report.md`
20
+
21
+ ## Options
22
+
23
+ ### (không có argument) — Feature hiện tại
24
+ Đo metrics cho feature đang active trong context.
25
+
26
+ ### --aggregate — Tổng hợp nhiều features
27
+ ```
28
+ /v.metrics --aggregate 5
29
+ ```
30
+ Tổng hợp metrics từ 5 features gần nhất, phát hiện trends và rút ra improvement areas.
31
+
32
+ ---
33
+
34
+ ## 🔀 Routing Rules — Sau Metrics
35
+
36
+ ```
37
+ Metrics report tạo xong
38
+ → Route: /v.retrospective (nếu chưa chạy)
39
+ → Hoặc: Feature complete — archive
40
+
41
+ Phát hiện Agent cần cải tiến urgently
42
+ → Đề xuất sửa agent-config.md TRƯỚC feature tiếp theo
43
+ ```
44
+
45
+ ## Cập nhật State & Session
46
+
47
+ **Cập nhật `.flow-state.yaml`**:
48
+ ```yaml
49
+ current_phase: "M.0"
50
+ phase_status: "done"
51
+ artifacts:
52
+ metrics_report:
53
+ exists: true
54
+ ```
55
+
56
+ **Append vào `_session.md`**:
57
+ ```markdown
58
+ ### [M.0] Metrics — [YYYY-MM-DD]
59
+ - **Agent**: Metrics Agent
60
+ - **Output**: `metrics-report.md`
61
+ - **Key findings**: [top 3 findings]
62
+ - **Recommendations**: [top 3 recommendations]
63
+ - **Routing**: → /v.retrospective
64
+ ```
65
+
66
+ ---
67
+
68
+ ## Ví dụ
69
+
70
+ ```
71
+ /v.metrics
72
+ /v.metrics feature 001-user-login
73
+ /v.metrics --aggregate 5
74
+ ```
@@ -0,0 +1,70 @@
1
+ ---
2
+ description: "Operations Agent — rà soát vận hành định kỳ / phân loại incident production rồi route flow khắc phục (O.0)"
3
+ phase: "O.0"
4
+ agent: "operations-agent"
5
+ ---
6
+
7
+ # /v.operations
8
+
9
+ > Orchestration wrapper cho **Operations Agent**. Đọc `agents/operations-agent.md` để thực hiện core logic.
10
+ > Khác `/v.hotfix` (vào thẳng flow khẩn P1/P2): `/v.operations` là **điểm vào O.0 thường xuyên** — rà soát vận hành sau deploy (M.0 → O.0) hoặc phân loại tín hiệu production trước khi quyết định flow.
11
+
12
+ ## Điều kiện sử dụng
13
+
14
+ - Có alert/log/user report từ production cần đánh giá, **hoặc**
15
+ - Rà soát vận hành định kỳ sau khi feature đã deploy (chu trình M.0 → O.0)
16
+
17
+ ## Execution
18
+ 1. Đọc agent definition: `agents/operations-agent.md`
19
+ 2. Thực hiện toàn bộ quy trình: assess severity (P1–P4) → root cause sơ bộ + scope → route
20
+ 3. Ghi `operations-report.md` (+ `incidents/INC-XXX.md` nếu là incident) theo `.v-flow/templates/operations-report-template.md`
21
+
22
+ ---
23
+
24
+ ## 🔀 Routing Rules — Sau Operations
25
+
26
+ ```
27
+ Severity = P1 / P2 (production down / nghiêm trọng)
28
+ → Route: /v.hotfix (O.0 → B.1 → R.1 → O.0)
29
+
30
+ Severity = P3 và cần root cause + regression prevention
31
+ → Route: /v.bugfix (S.1 → B.0 → B.1 → R.1)
32
+
33
+ Severity = P4 / thay đổi nhỏ (<5 files)
34
+ → Route: /v.quickfix (S.1 nhanh → B.1 → R.1)
35
+
36
+ Không phải lỗi / chỉ theo dõi
37
+ → Route: monitor — ghi nhận vào knowledge base, không trigger fix
38
+ ```
39
+
40
+ > Closed-loop: feedback từ production quay lại pipeline (spec/test/knowledge) để incident không lặp lại.
41
+
42
+ ## Input
43
+ - Tín hiệu production: alert / log / user report (mô tả qua argument hoặc đính kèm)
44
+ - `.v-flow/features/NNN-feature/` *(nếu incident gắn với feature cụ thể)*
45
+ - `.v-flow/constitution.md`
46
+
47
+ ## Output
48
+ - `.v-flow/features/NNN-feature/operations-report.md` *(hoặc thư mục feature liên quan)*
49
+ - `.v-flow/incidents/INC-XXX.md` *(nếu là incident — đánh số tăng dần)*
50
+
51
+ ## Ví dụ
52
+
53
+ ```
54
+ /v.operations
55
+ /v.operations "API /checkout trả 500 tăng đột biến từ 14:00"
56
+ ```
57
+
58
+ ---
59
+
60
+ ## Cập nhật State & Session
61
+
62
+ **Append vào `_session.md`**:
63
+ ```markdown
64
+ ### [O.0] Operations — [YYYY-MM-DD]
65
+ - **Agent**: Operations Agent
66
+ - **Severity**: [P1 | P2 | P3 | P4]
67
+ - **Root cause (sơ bộ)**: [...]
68
+ - **Route decision**: [hotfix | bugfix | quickfix | monitor]
69
+ - **Routing**: → [next step]
70
+ ```
@@ -0,0 +1,78 @@
1
+ ---
2
+ description: "Plan Agent — Thiết kế kiến trúc và tạo Implementation Plan + Task Breakdown"
3
+ phase: "B.0a"
4
+ agent: "plan-agent"
5
+ optional_agents: ["security", "ux", "api-contract"]
6
+ ---
7
+
8
+ # /v.plan
9
+
10
+ > Orchestration wrapper cho **Plan Agent**. Đọc `agents/plan-agent.md` để thực hiện core logic.
11
+
12
+ ## Điều kiện tiên quyết
13
+ - `spec.md` phải tồn tại và đã **Approved**
14
+ - `constitution.md` phải tồn tại
15
+ - Chạy **SONG SONG** với `/v.test`
16
+
17
+ ## Execution
18
+ 1. Đọc agent definition: `agents/plan-agent.md`
19
+ 2. Thực hiện toàn bộ quy trình trong agent definition
20
+ 3. Áp dụng command options bên dưới (nếu có)
21
+
22
+ ## Options
23
+
24
+ ### --with-security
25
+ Kích hoạt **Security Agent** — tạo `security-review.md`.
26
+ Dùng khi: Feature có auth, payment, user data, external API.
27
+
28
+ ### --with-ux
29
+ Kích hoạt **UX Agent** — tạo `ux-checklist.md` theo `.v-flow/templates/ux-checklist-template.md`.
30
+ Dùng khi: Feature có UI/UX components.
31
+
32
+ ### --with-api
33
+ Kích hoạt **API Contract Agent** — tạo `contracts/api-contract.md` theo `.v-flow/templates/api-contract-template.md`.
34
+ Dùng khi: Feature expose API cho client/3rd party (hoặc contract-first khi có cả FE+BE).
35
+
36
+ > Các optional agents chạy **SONG SONG** với Plan Agent (Map-Reduce B.0).
37
+
38
+ ---
39
+
40
+ ## 🔀 Routing Rules — Sau Plan
41
+
42
+ ```
43
+ Plan + Tasks tạo xong
44
+ → Nếu /v.test chưa xong → Chờ Test Agent
45
+ → Nếu /v.test đã xong → /v.check (Master Check)
46
+ ```
47
+
48
+ ## Cập nhật State & Session
49
+
50
+ **Cập nhật `.flow-state.yaml`**:
51
+ ```yaml
52
+ current_phase: "B.0a"
53
+ phase_status: "done"
54
+ artifacts:
55
+ plan: { exists: true, synced_to_spec: "v1.0" }
56
+ tasks: { exists: true, total: [N] }
57
+ b0_outputs:
58
+ plan: { exists: true, agent: "Plan Agent" }
59
+ tests: { exists: true, agent: "Test Agent" }
60
+ security: { exists: true/false, skipped: true/false }
61
+ ```
62
+
63
+ **Append vào `_session.md`**:
64
+ ```markdown
65
+ ### [B.0a] Plan — [YYYY-MM-DD]
66
+ - **Output**: plan.md, tasks.md ([N] tasks)
67
+ - **Annotations**: [N] parallel, [N] critical, [N] risky, [N] gates
68
+ - **Optional agents**: security=[yes/no], ux=[yes/no], api=[yes/no]
69
+ ```
70
+
71
+ ---
72
+
73
+ ## Ví dụ
74
+
75
+ ```
76
+ /v.plan Feature 001-user-login
77
+ /v.plan --with-security --with-api
78
+ ```
@@ -0,0 +1,121 @@
1
+ ---
2
+ description: "Prototype Agent — Reproduce (dựng render chốt từ mockup qua DESIGN.md) hoặc Explore (variant throwaway) để chốt giao diện/validate ambiguity trước khi lên plan"
3
+ phase: "S.1.5"
4
+ agent: "prototype-agent"
5
+ optional: true
6
+ ---
7
+
8
+ # /v.prototype
9
+
10
+ > **Optional** step tại S.1.5 — sau Specify (S.1), trước Plan (B.0).
11
+ > Hai chế độ: **Reproduce (`--from-mockup`)** — dựng render chốt (`ui/approved/`) từ mockup đã ingest qua DESIGN.md; **Explore (`--ui`/`--logic`)** — prototype throwaway khi spec còn câu hỏi chưa trả lời được bằng văn bản.
12
+ > **Không block pipeline** — user có thể skip và tiếp tục `/v.plan` bình thường.
13
+
14
+ ## Điều kiện tiên quyết
15
+
16
+ - `spec.md` phải tồn tại (không cần Approved — Draft cũng chạy được)
17
+ - Câu hỏi cần trả lời được xác định (từ spec hoặc user chỉ định qua `--question`)
18
+
19
+ ## Options
20
+
21
+ ### `--logic`
22
+ Ép buộc LOGIC branch (terminal TUI). Bỏ qua branch selection tự động.
23
+
24
+ ### `--ui`
25
+ Ép buộc UI branch (multi-variant HTML/CSS prototype — mode **Explore**). Bỏ qua branch selection tự động.
26
+
27
+ ### `--from-mockup`
28
+ **UI branch — mode Reproduce.** Dùng khi UC có mockup định hướng. Agent tự lấy ảnh từ **con trỏ `Mockup nguồn`** (spec UI Intent §2) hoặc `ui/mockups/` (do human đặt) — đọc/trích ảnh **tại bước này** (render được human duyệt). Link Figma → đọc qua **Figma MCP** (`get_design_context`/`get_screenshot`); không có MCP → export PNG/SVG vào `ui/mockups/`. Thay vì sinh nhiều variant, agent dựng **1 render trung thực** qua `DESIGN.md` và lưu `ui/approved/UC-NN.*` làm **visual contract** (không throwaway). Cấu trúc bám mockup, style từ design system (không copy pixel).
29
+ Thường kèm `--req REQ-xxx` (hoặc `--question`) để xác định UC/màn hình. Kết hợp `--framework` nếu muốn render bằng framework dự án.
30
+
31
+ ### `--framework <name>`
32
+ **Chỉ áp dụng cho UI branch.** Thường dùng kèm với `--ui`.
33
+ Nếu không có flag này: generate **HTML + CSS thuần** (mặc định, không cần setup, mở ngay trên trình duyệt).
34
+
35
+ Framework hỗ trợ:
36
+ - `--framework react` → TSX + CSS Module
37
+ - `--framework vue` → Vue SFC (`.vue`)
38
+ - `--framework angular` → Angular Component
39
+ - `--framework next` → Next.js page component
40
+
41
+ ### `--question "..."`
42
+ Chỉ định câu hỏi cụ thể cần prototype trả lời.
43
+ Nếu không có, agent tự detect từ ambiguity markers trong `spec.md`.
44
+
45
+ ### `--req <REQ-ID>`
46
+ Chỉ định trực tiếp requirement cần prototype trả lời (ví dụ: `--req REQ-E03`).
47
+ Agent sẽ đọc REQ đó trong `spec.md`, extract câu hỏi, và tự xác định branch phù hợp.
48
+
49
+ **Ưu tiên**: `--req` > `--question` > auto-detect từ spec.
50
+
51
+ > **Lưu ý**: Nếu REQ chỉ định không có ambiguity markers, agent sẽ confirm với user trước khi tiến hành.
52
+
53
+ ### `--subshape <A|B>`
54
+ **Chỉ áp dụng cho UI branch.**
55
+ - `A` — Embed variants vào existing page (preferred, mặc định)
56
+ - `B` — Tạo throwaway route mới (last resort)
57
+
58
+ Nếu không có flag này: agent tự hỏi user hoặc default theo `config.json`.
59
+
60
+ ## Ví dụ
61
+
62
+ ```
63
+ /v.prototype
64
+ /v.prototype --req REQ-S02
65
+ /v.prototype --req REQ-E03 --logic
66
+ /v.prototype --from-mockup --req REQ-U05
67
+ /v.prototype --from-mockup --req REQ-U05 --framework react
68
+ /v.prototype --ui --question "Dashboard layout nên dùng sidebar hay top nav?"
69
+ /v.prototype --ui --subshape A --framework react --req REQ-U05
70
+ /v.prototype --ui --framework react --question "Dashboard layout nên dùng sidebar hay top nav?"
71
+ /v.prototype --logic --question "State machine xử lý concurrent upload có đúng không?"
72
+ /v.prototype --logic
73
+ ```
74
+
75
+ ## Routing Rules — Sau khi có verdict
76
+
77
+ ```
78
+ VALIDATED
79
+ → Ghi verdict vào .v-flow/features/NNN/prototype-notes.md
80
+ → [mode=from-mockup] Lưu render chốt vào ui/approved/UC-NN.* + cập nhật spec UI Intent "Render đã chốt"
81
+ → Append execution trace vào _session.md
82
+ → Update .flow-state.yaml (artifacts.prototype.verdict = VALIDATED, mode, approved_ref)
83
+ → ✅ Suggest: /v.plan + /v.test (chạy song song)
84
+
85
+ REJECTED
86
+ → Ghi verdict + lý do + spec impact vào prototype-notes.md
87
+ → ⚠️ Alert: "Spec cần được cập nhật trước khi plan"
88
+ → Route: /v.specify (update spec với findings từ prototype)
89
+ → Update .flow-state.yaml (artifacts.prototype.verdict = REJECTED)
90
+
91
+ INCONCLUSIVE
92
+ → Ghi open questions vào prototype-notes.md
93
+ → 🔔 Notify: "Cần thêm input từ stakeholder để kết luận"
94
+ → Pipeline tạm dừng — user quyết định: iterate prototype hay tiếp tục với assumptions
95
+ → Update .flow-state.yaml (artifacts.prototype.verdict = INCONCLUSIVE)
96
+
97
+ Skip prototype (user bỏ qua hoàn toàn)
98
+ → Pipeline tiếp tục bình thường
99
+ → Update .flow-state.yaml (artifacts.prototype.skipped = true)
100
+ → Suggest: /v.plan + /v.test
101
+ ```
102
+
103
+ ## Output
104
+
105
+ ```
106
+ .v-flow/features/NNN/
107
+ ├── prototype-notes.md ← verdict + findings
108
+ ├── ui/approved/ ← [mode=from-mockup] render đã chốt — GIỮ làm contract
109
+ │ └── UC-NN.[html|tsx|...]
110
+ └── prototype/ ← [explore] throwaway code (xóa sau khi có verdict)
111
+ ├── [logic.ts | VariantA.tsx | ...]
112
+ └── README.md
113
+ ```
114
+
115
+ ## Read next
116
+
117
+ - `agents/prototype-agent.md` — chi tiết workflow của agent
118
+ - `skills/prototype/SKILL.md` — branch selection + V Flow integration
119
+ - `skills/prototype/LOGIC.md` — terminal TUI branch
120
+ - `skills/prototype/UI.md` — multi-variant UI branch
121
+ - `.v-flow/templates/prototype-notes-template.md` — output format chuẩn