@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,51 @@
1
+ # Ví dụ — BA Critic Report Round 1
2
+
3
+ > Đây là mẫu output chuẩn cho BA Critic Agent khi phản biện spec.
4
+
5
+ ---
6
+
7
+ ## 📋 BA Critic Report — Round 1
8
+
9
+ **Spec version reviewed**: spec.md (2026-04-15 15:30)
10
+ **Issues found**: 4 (≥3 required ✅)
11
+ **Verdict**: ❌ REVISE NEEDED
12
+
13
+ ---
14
+
15
+ ### Issues
16
+
17
+ #### CR-001: REQ-E01 thiếu error handling path
18
+ - **Severity**: 🔴 Critical
19
+ - **REQ affected**: REQ-E01 (Login)
20
+ - **Chiều phản biện**: Completeness
21
+ - **Mô tả**: REQ-E01 chỉ mô tả happy path (login success → redirect). Thiếu hoàn toàn các error cases: invalid email format, wrong password, account locked, rate limiting.
22
+ - **Đề xuất fix**: Tách thành REQ-E01 (success path) + REQ-E02 (invalid credentials) + REQ-E03 (account locked) + REQ-O01 (rate limit khi > 5 attempts).
23
+
24
+ #### CR-002: REQ-U01 mơ hồ — "password phải đủ mạnh"
25
+ - **Severity**: 🟡 Major
26
+ - **REQ affected**: REQ-U01
27
+ - **Chiều phản biện**: Ambiguity
28
+ - **Mô tả**: "Đủ mạnh" là chủ quan, không testable. 2 developer sẽ implement khác nhau.
29
+ - **Đề xuất fix**: Thay bằng: "Password phải có ≥8 ký tự, ≥1 uppercase, ≥1 number, ≥1 special character."
30
+
31
+ #### CR-003: REQ-E03 conflict với No-Go Zone
32
+ - **Severity**: 🔴 Critical
33
+ - **REQ affected**: REQ-E03
34
+ - **Chiều phản biện**: Feasibility
35
+ - **Mô tả**: REQ-E03 yêu cầu modify `auth-service/legacy-sso.js` — file nằm trong No-Go Zone theo context.md (rủi ro Cao, "SSO integration ổn định 2 năm").
36
+ - **Đề xuất fix**: Tạo adapter layer mới `auth-adapter.js` wrap legacy SSO, implement logic mới trong adapter.
37
+
38
+ #### CR-004: REQ-S01 thiếu exit condition
39
+ - **Severity**: 🟢 Minor
40
+ - **REQ affected**: REQ-S01
41
+ - **Chiều phản biện**: Testability
42
+ - **Mô tả**: "Trong khi user đang ở trang settings, hệ thống phải auto-save mỗi 30s." Thiếu: khi nào DỪNG auto-save? Navigate away? Close tab? Session timeout?
43
+ - **Đề xuất fix**: Thêm exit conditions: "Auto-save dừng khi user navigate khỏi trang hoặc session hết hạn."
44
+
45
+ ---
46
+
47
+ ### Summary
48
+ - Critical: 2
49
+ - Major: 1
50
+ - Minor: 1
51
+ - **Routing**: → BA Agent fix → Round 2
@@ -0,0 +1,40 @@
1
+ # Gotchas — BA Critic
2
+
3
+ > Cập nhật liên tục khi Agent gặp bias hoặc edge case mới.
4
+ > Mỗi lỗi lặp lại 2 lần → BẮT BUỘC thêm vào đây.
5
+
6
+ ---
7
+
8
+ ## Anti-Patterns
9
+
10
+ 1. ❌ **"Specs tốt rồi" / LGTM** — KHÔNG được chấp nhận. Luôn có ≥3 issues.
11
+ - **Hậu quả**: Spec mơ hồ leak ra implement → costly rework.
12
+
13
+ 2. ❌ **Bias từ round trước** — Đọc spec mới như chưa từng đọc.
14
+ - **Hậu quả**: Miss issues mới do BA Agent vô tình giới thiệu khi fix issues cũ.
15
+
16
+ 3. ❌ **Focus nên fixing thay vì finding** — Critic Agent TÌM issues, không FIX.
17
+ - **Fix**: Mô tả issue + suggest hướng fix. BA Agent quyết cách fix.
18
+
19
+ 4. ❌ **Nitpicking wording, bỏ qua logic** — Sửa dấu chấm câu nhưng miss missing REQ.
20
+ - **Fix**: Sort by severity — Critical/Major trước, Minor sau.
21
+
22
+ 5. ❌ **Confirm bias** — "Round trước nói 3 issues, round này cũng 3 vì spec tốt hơn rồi."
23
+ - **Fix**: Fresh context. Đọc spec fresh, tìm issues hoàn toàn MỚI.
24
+
25
+ 6. ❌ **Copy issues từ blueprint** — Tìm issues generic ("cần thêm error handling") thay vì specific.
26
+ - **Fix**: Mỗi issue phải reference REQ-xxx + giải thích cụ thể VÌ SAO sai.
27
+
28
+ 7. ❌ **Quên context.md** — Review spec mà không kiểm tra No-Go Zones.
29
+ - **Check**: REQ-xxx có yêu cầu modify code trong No-Go Zone? → CRITICAL issue.
30
+
31
+ 8. ❌ **Quên constitution.md** — Spec suggest pattern khác constitution.
32
+ - **Check**: Architecture pattern trong spec align với constitution? Naming conventions?
33
+
34
+ ---
35
+
36
+ ## Edge Cases
37
+
38
+ - ✅ Spec rất ngắn (< 5 REQs) → Vẫn phải tìm ≥3 issues. Check completeness kỹ hơn.
39
+ - ✅ First round trên fresh spec → Focus ambiguity + completeness (thường nhiều issues nhất).
40
+ - ✅ Round 3+ vẫn REVISE NEEDED → Escalate cho human. Ghi vào `_session.md`.
@@ -0,0 +1,72 @@
1
+ #!/bin/bash
2
+ # check-spec-quality.sh — Pre-scan spec.md trước khi BA Critic phản biện adversarial.
3
+ # Usage: ./check-spec-quality.sh <spec.md_path>
4
+ #
5
+ # KHÔNG thay thế critic (LLM). Chỉ surface "smell" cấu trúc để critic neo ≥3 issues
6
+ # và không tốn lượt vào lỗi hiển nhiên. Checks: counts (REQ/AC/UC), ambiguity (từ mơ hồ),
7
+ # completeness (error path, REQ↔AC), testability (AC mơ hồ).
8
+
9
+ SPEC="${1:-spec.md}"
10
+
11
+ if [ ! -f "$SPEC" ]; then
12
+ echo "❌ File not found: $SPEC"
13
+ exit 1
14
+ fi
15
+
16
+ echo "🔎 Spec Quality Pre-Scan: $SPEC"
17
+ echo "════════════════════════════════════════"
18
+ HINTS=0 # số smell phát hiện → gợi ý cho critic (KHÔNG phải verdict)
19
+
20
+ # 1. Overview counts — đếm token bằng `grep -o | wc -l` (mỗi match 1 dòng).
21
+ echo ""
22
+ echo "### 1. Overview"
23
+ REQ=$(grep -oE "REQ-[A-Za-z][0-9]+" "$SPEC" | sort -u | wc -l | tr -d ' ')
24
+ AC=$(grep -oE "\bAC-[0-9]+\b" "$SPEC" | sort -u | wc -l | tr -d ' ')
25
+ UC=$(grep -oE "\bUC-[0-9]+\b" "$SPEC" | sort -u | wc -l | tr -d ' ')
26
+ echo " REQ: $REQ · AC-NN: $AC · UC: $UC"
27
+ [ "$REQ" -eq 0 ] && echo " ⚠️ Không thấy REQ-xxx — spec có thể chưa đặc tả requirement" && HINTS=$((HINTS+1))
28
+ [ "$AC" -eq 0 ] && echo " ⚠️ Không thấy mã AC-NN — Acceptance Criteria chưa đánh mã (§4)" && HINTS=$((HINTS+1))
29
+
30
+ # 2. Ambiguity — từ mơ hồ (đồng bộ với '5 Chiều Phản Biện' → Ambiguity của SKILL.md).
31
+ echo ""
32
+ echo "### 2. Ambiguity (từ mơ hồ)"
33
+ AMB=0
34
+ for word in "nên" "should" "hợp lý" "dễ dùng" "user-friendly" "nhanh" "tối ưu" "linh hoạt" "đơn giản"; do
35
+ count=$(grep -ci "$word" "$SPEC") # grep -c luôn in số nguyên (0 nếu không có)
36
+ [ "$count" -gt 0 ] && echo " ⚠️ '$word' xuất hiện $count lần — cần định lượng/làm rõ" && AMB=$((AMB+count))
37
+ done
38
+ [ "$AMB" -eq 0 ] && echo " ✅ Không thấy từ mơ hồ phổ biến"
39
+ HINTS=$((HINTS+AMB))
40
+
41
+ # 3. Completeness — có error/exception path không? (signal cho Completeness dimension)
42
+ echo ""
43
+ echo "### 3. Completeness"
44
+ ERRPATH=$(grep -ciE "lỗi|error|ngoại lệ|exception|4[0-9][0-9]|5[0-9][0-9]|timeout|invalid" "$SPEC")
45
+ if [ "$ERRPATH" -eq 0 ]; then
46
+ echo " ⚠️ Không thấy đề cập error/exception path — kiểm tra REQ chỉ có happy path?"
47
+ HINTS=$((HINTS+1))
48
+ else
49
+ echo " ✅ Có đề cập error/exception ($ERRPATH tín hiệu)"
50
+ fi
51
+ # REQ↔AC: mỗi REQ nên có ≥1 AC. So sánh số đếm (heuristic, critic xác nhận ngữ nghĩa).
52
+ if [ "$REQ" -gt 0 ] && [ "$AC" -lt "$REQ" ]; then
53
+ echo " ⚠️ AC-NN ($AC) ít hơn REQ ($REQ) — có REQ chưa có acceptance criterion?"
54
+ HINTS=$((HINTS+1))
55
+ fi
56
+
57
+ # 4. Testability — AC mơ hồ ("đúng"/"tốt"/"hoạt động" không có expected output cụ thể).
58
+ echo ""
59
+ echo "### 4. Testability"
60
+ VAGUEAC=$(grep -ciE "hoạt động đúng|hoạt động tốt|chính xác|như mong đợi|phù hợp" "$SPEC")
61
+ if [ "$VAGUEAC" -gt 0 ]; then
62
+ echo " ⚠️ $VAGUEAC tiêu chí dạng 'đúng/tốt/phù hợp' — thiếu expected output đo được?"
63
+ HINTS=$((HINTS+1))
64
+ fi
65
+ [ "$VAGUEAC" -eq 0 ] && echo " ✅ Không thấy AC mơ hồ kiểu 'đúng/tốt'"
66
+
67
+ echo ""
68
+ echo "════════════════════════════════════════"
69
+ echo "📊 Pre-scan hints: $HINTS"
70
+ echo "→ Đây CHỈ là gợi ý cấu trúc. Critic vẫn phải tìm ≥3 issues (gồm ambiguity/completeness/"
71
+ echo " consistency/feasibility/testability) bằng phán đoán — KHÔNG dừng ở pre-scan này."
72
+ exit 0
@@ -0,0 +1,102 @@
1
+ ---
2
+ name: ba-doc-generator
3
+ description: |
4
+ Hỗ trợ Business Analyst tạo tài liệu BA chuyên nghiệp theo đúng template phù hợp với từng đối tượng nhận tài liệu. Nhận input là nội dung BA thô (requirement, spec, meeting notes, model...) và audience target, tự động chọn template đúng, adapt ngôn ngữ & mức độ chi tiết, rồi gen ra tài liệu hoàn chỉnh sẵn sàng gửi đi.
5
+
6
+ Sử dụng skill này bất cứ khi nào BA cần tạo tài liệu để communicate với stakeholder, khi người dùng nói "tạo tài liệu cho dev", "viết spec cho tester", "làm báo cáo cho sếp", "tạo tài liệu cho C-level", "viết hướng dẫn cho user", "gen tài liệu BA", "tạo package cho stakeholder", "viết tài liệu review", "tạo tài liệu tích hợp cho partner", "làm tài liệu compliance", "tạo brief cho PM". Luôn dùng skill này khi BA cần communicate thông tin ra bên ngoài dù người dùng không nói rõ từ "skill".
7
+ ---
8
+
9
+ # BA Document Generator Skill
10
+
11
+ Skill giúp BA tạo tài liệu phù hợp **từng đối tượng nhận** — đúng template, đúng ngôn ngữ, đúng mức độ chi tiết — dựa trên nội dung BA thô đầu vào.
12
+
13
+ ---
14
+
15
+ ## Quy trình thực hiện
16
+
17
+ ### Bước 1 — Thu thập Input
18
+
19
+ Nếu người dùng chưa cung cấp đủ, hỏi lần lượt:
20
+
21
+ 1. **Nội dung BA thô**: requirement, spec, meeting notes, model, elicitation results...
22
+ 2. **Audience**: Đối tượng sẽ nhận tài liệu này là ai?
23
+ 3. **Mục đích**: Review / Approval / Development / Testing / Training / Audit / Integration?
24
+ 4. **Format output**: `.md` (mặc định) hay `.docx`?
25
+
26
+ > Nếu audience chưa rõ, hỏi: *"Tài liệu này sẽ được gửi cho ai — developer, tester, C-level, user cuối, hay đối tác bên ngoài?"*
27
+
28
+ ---
29
+
30
+ ### Bước 2 — Xác định Template
31
+
32
+ Dựa vào audience, chọn template tương ứng:
33
+
34
+ | Audience | Template File | Mục đích chính |
35
+ |----------|--------------|----------------|
36
+ | C-level / Sponsor / Ban lãnh đạo | `references/template-clevel.md` | Quyết định, phê duyệt ngân sách |
37
+ | Product Owner / PM | `references/template-pm.md` | Quản lý scope, timeline, risk |
38
+ | Developer / Tech Lead | `references/template-dev.md` | Implement solution |
39
+ | Tester / QA | `references/template-tester.md` | Viết test case, kiểm thử |
40
+ | End User / Trainer | `references/template-user.md` | Sử dụng hệ thống, đào tạo |
41
+ | Legal / Compliance | `references/template-compliance.md` | Audit, tuân thủ quy định |
42
+ | Stakeholder Review | `references/template-review.md` | Review & approval chính thức |
43
+ | External Partner / Tích hợp | `references/template-partner.md` | Tích hợp hệ thống |
44
+
45
+ > **Đọc file template tương ứng** trước khi gen tài liệu để áp dụng đúng cấu trúc và nguyên tắc.
46
+
47
+ ---
48
+
49
+ ### Bước 3 — Adapt nội dung
50
+
51
+ Khi gen tài liệu, luôn áp dụng các nguyên tắc adapt sau:
52
+
53
+ #### Ngôn ngữ
54
+ - **C-level / User**: Ngôn ngữ business, tránh thuật ngữ kỹ thuật, dùng ví dụ thực tế
55
+ - **Dev / Tester**: Ngôn ngữ kỹ thuật, chính xác, có thể dùng code/pseudocode
56
+ - **PM / PO**: Cân bằng business + technical, focus vào scope & impact
57
+ - **Legal**: Ngôn ngữ chính thức, trích dẫn điều khoản rõ ràng, có số hiệu
58
+
59
+ #### Mức độ chi tiết
60
+ - **C-level**: High-level, 1-2 trang, bullet points ngắn gọn
61
+ - **PM/PO**: Medium, có đủ context để ra quyết định
62
+ - **Dev/Tester**: Deep-dive, đầy đủ edge case, rule, data type
63
+ - **User**: Step-by-step, có screenshot placeholder, ví dụ cụ thể
64
+
65
+ #### Format
66
+ - **C-level / Review**: Slide-style hoặc executive summary
67
+ - **Dev**: Table + code block + diagram
68
+ - **Tester**: Bảng acceptance criteria + test scenario
69
+ - **User**: Numbered steps + note + warning box
70
+
71
+ ---
72
+
73
+ ### Bước 4 — Gen tài liệu
74
+
75
+ Tạo tài liệu theo đúng template đã chọn, điền đầy đủ nội dung từ input BA thô.
76
+
77
+ Cuối tài liệu luôn thêm:
78
+ ```
79
+ ---
80
+ 📌 Ghi chú cho BA:
81
+ - Các phần đánh dấu [TBD] cần được điền thêm thông tin
82
+ - Các phần đánh dấu [?] cần confirm lại với stakeholder
83
+ - Phiên bản: v0.1 — Draft
84
+ ```
85
+
86
+ ---
87
+
88
+ ### Bước 5 — Output
89
+
90
+ - Mặc định: xuất `.md` inline trong chat
91
+ - Nếu người dùng cần file `.docx`: tham khảo skill `docx` để xuất file Word
92
+ - Hỏi người dùng: *"Bạn cần tạo thêm phiên bản cho đối tượng nào khác không?"*
93
+
94
+ ---
95
+
96
+ ## Nguyên tắc quan trọng
97
+
98
+ 1. **One audience, one document** — Không cố gắng viết 1 tài liệu cho nhiều audience, sẽ không phù hợp cho ai cả
99
+ 2. **Preserve BA content** — Không tự ý thay đổi nội dung requirement, chỉ thay đổi cách trình bày
100
+ 3. **Flag thông tin thiếu** — Dùng `[TBD]` khi thông tin chưa có, `[?]` khi cần confirm
101
+ 4. **Không kỹ thuật hóa với non-tech** — Khi viết cho C-level hay User, tuyệt đối không dùng jargon kỹ thuật
102
+ 5. **Không business hóa với tech** — Khi viết cho Dev/Tester, cần đủ chi tiết kỹ thuật, không được mơ hồ
@@ -0,0 +1,84 @@
1
+ # Template: Executive Summary
2
+ > Dành cho: C-level / Sponsor / Ban lãnh đạo
3
+ > Mục đích: Quyết định, phê duyệt, nắm bắt tổng quan
4
+
5
+ ---
6
+
7
+ ## Nguyên tắc viết cho C-level
8
+ - Tối đa 2 trang
9
+ - Không dùng thuật ngữ kỹ thuật
10
+ - Focus vào: Business value, ROI, Risk, Decision cần làm
11
+ - Dùng số liệu cụ thể khi có thể
12
+ - Mỗi bullet point tối đa 1-2 dòng
13
+ - Kết thúc bằng câu hỏi / action item rõ ràng
14
+
15
+ ---
16
+
17
+ ## CẤU TRÚC TÀI LIỆU
18
+
19
+ ```
20
+ # [Tên dự án / Tính năng / Thay đổi]
21
+ **Ngày**: [Date] | **Chuẩn bị bởi**: [BA Name] | **Phiên bản**: [v0.1]
22
+
23
+ ---
24
+
25
+ ## 1. Tóm tắt (1 đoạn, tối đa 5 câu)
26
+ [Mô tả ngắn gọn: đang làm gì, tại sao, kỳ vọng đạt được gì]
27
+
28
+ ---
29
+
30
+ ## 2. Vấn đề hiện tại
31
+ [Mô tả pain point bằng ngôn ngữ business, có thể kèm số liệu thiệt hại/rủi ro]
32
+ - Vấn đề 1: ...
33
+ - Vấn đề 2: ...
34
+
35
+ ---
36
+
37
+ ## 3. Giải pháp đề xuất
38
+ [Mô tả giải pháp ở mức high-level, không kỹ thuật]
39
+ - Sẽ làm gì: ...
40
+ - Không làm gì (ngoài scope): ...
41
+
42
+ ---
43
+
44
+ ## 4. Lợi ích kỳ vọng
45
+ | Lợi ích | Đo lường | Thời gian |
46
+ |---------|----------|-----------|
47
+ | [Lợi ích 1] | [KPI / metric] | [Khi nào] |
48
+ | [Lợi ích 2] | [KPI / metric] | [Khi nào] |
49
+
50
+ ---
51
+
52
+ ## 5. Chi phí & Nguồn lực
53
+ | Hạng mục | Ước tính |
54
+ |----------|----------|
55
+ | Thời gian thực hiện | [X tuần/tháng] |
56
+ | Nhân sự | [X người] |
57
+ | Chi phí [nếu có] | [VND/USD] |
58
+
59
+ ---
60
+
61
+ ## 6. Rủi ro chính
62
+ | Rủi ro | Mức độ | Biện pháp |
63
+ |--------|--------|-----------|
64
+ | [Rủi ro 1] | Cao/TB/Thấp | [Biện pháp xử lý] |
65
+
66
+ ---
67
+
68
+ ## 7. Lộ trình tổng quan
69
+ [Timeline ngắn gọn dạng milestone, không chi tiết từng task]
70
+ - [Tháng/Tuần X]: Giai đoạn 1 — [Tên]
71
+ - [Tháng/Tuần Y]: Giai đoạn 2 — [Tên]
72
+ - [Tháng/Tuần Z]: Go-live
73
+
74
+ ---
75
+
76
+ ## 8. Quyết định cần từ Ban lãnh đạo
77
+ - [ ] Phê duyệt tiến hành dự án
78
+ - [ ] Phê duyệt ngân sách: [số tiền]
79
+ - [ ] Xác nhận ưu tiên so với các dự án khác
80
+ - [ ] [Quyết định khác nếu có]
81
+
82
+ ---
83
+ *Liên hệ: [Tên BA] — [Email] — [Phone]*
84
+ ```
@@ -0,0 +1,83 @@
1
+ # Template: Compliance & Regulatory Document
2
+ > Dành cho: Legal / Compliance / Kiểm toán nội bộ
3
+ > Mục đích: Audit trail, tuân thủ quy định pháp lý / nội bộ
4
+
5
+ ---
6
+
7
+ ## Nguyên tắc viết cho Legal/Compliance
8
+ - Ngôn ngữ chính thức, chính xác, không mơ hồ
9
+ - Trích dẫn rõ số điều, khoản của văn bản pháp lý
10
+ - Mỗi yêu cầu compliance phải có trạng thái: Đáp ứng / Chưa đáp ứng / Không áp dụng
11
+ - Có evidence / bằng chứng đáp ứng
12
+ - Trace được từ requirement → thiết kế → implementation
13
+
14
+ ---
15
+
16
+ ## CẤU TRÚC TÀI LIỆU
17
+
18
+ ```
19
+ # Báo cáo Tuân thủ: [Tên dự án / Tính năng]
20
+ **Ngày**: [Date] | **Chuẩn bị bởi**: [BA/Compliance Name]
21
+ **Phiên bản**: [v1.0] | **Phân loại**: [Nội bộ / Mật / Công khai]
22
+
23
+ ---
24
+
25
+ ## 1. Phạm vi & Mục đích
26
+ - **Phạm vi áp dụng**: [Hệ thống / Module / Quy trình nào]
27
+ - **Mục đích tài liệu**: [Audit / Review / Phê duyệt / Lưu trữ]
28
+ - **Đối tượng sử dụng**: [Phòng pháp chế / Kiểm toán / Regulator...]
29
+
30
+ ---
31
+
32
+ ## 2. Văn bản pháp lý & Quy định áp dụng
33
+ | # | Văn bản | Số hiệu | Ban hành | Điều khoản liên quan |
34
+ |---|---------|---------|---------|---------------------|
35
+ | 1 | [Tên luật / Nghị định] | [Số/YYYY/CP] | [Date] | Điều [X], Khoản [Y] |
36
+ | 2 | [Chính sách nội bộ] | [Mã chính sách] | [Date] | Mục [Z] |
37
+
38
+ ---
39
+
40
+ ## 3. Ma trận Tuân thủ
41
+
42
+ | # | Yêu cầu | Nguồn (Điều/Khoản) | Trạng thái | Cách đáp ứng | Evidence |
43
+ |---|---------|-------------------|------------|-------------|----------|
44
+ | C-01 | [Mô tả yêu cầu tuân thủ] | [Văn bản, Điều X] | ✅ Đáp ứng | [Mô tả cơ chế/tính năng đáp ứng] | [Link / Tài liệu] |
45
+ | C-02 | [Yêu cầu 2] | | ⚠️ Một phần | [Giải thích] | |
46
+ | C-03 | [Yêu cầu 3] | | ❌ Chưa đáp ứng | [Kế hoạch xử lý + deadline] | |
47
+ | C-04 | [Yêu cầu 4] | | N/A | [Lý do không áp dụng] | |
48
+
49
+ ---
50
+
51
+ ## 4. Kiểm soát Dữ liệu & Bảo mật
52
+ | Loại dữ liệu | Phân loại | Cách lưu trữ | Mã hóa | Thời gian lưu | Quyền truy cập |
53
+ |-------------|-----------|-------------|--------|--------------|---------------|
54
+ | [CCCD / Thông tin cá nhân] | Nhạy cảm | [Database X] | AES-256 | [X năm] | [Role có quyền] |
55
+ | [Dữ liệu giao dịch] | Nội bộ | | | | |
56
+
57
+ ---
58
+
59
+ ## 5. Audit Trail
60
+ Hệ thống ghi lại các hành động sau để phục vụ kiểm toán:
61
+ | Hành động | Thông tin ghi lại | Lưu trữ bao lâu |
62
+ |-----------|------------------|----------------|
63
+ | [Tạo / Sửa / Xóa dữ liệu] | User, Timestamp, IP, Old value, New value | [X năm] |
64
+ | [Đăng nhập / Đăng xuất] | User, Timestamp, IP | [X năm] |
65
+ | [Phê duyệt / Từ chối] | User, Timestamp, Lý do | [X năm] |
66
+
67
+ ---
68
+
69
+ ## 6. Gap Analysis & Kế hoạch xử lý
70
+ | Gap | Mức độ rủi ro | Deadline xử lý | Owner | Trạng thái |
71
+ |-----|--------------|---------------|-------|-----------|
72
+ | [Mô tả gap] | Cao/TB/Thấp | [Date] | [Tên] | In Progress |
73
+
74
+ ---
75
+
76
+ ## 7. Xác nhận & Phê duyệt
77
+ | Vai trò | Họ tên | Chữ ký | Ngày |
78
+ |---------|--------|--------|------|
79
+ | BA soạn thảo | | | |
80
+ | Legal review | | | |
81
+ | Compliance Officer | | | |
82
+ | Phê duyệt cuối | | | |
83
+ ```
@@ -0,0 +1,138 @@
1
+ # Template: Technical Specification
2
+ > Dành cho: Developer / Tech Lead
3
+ > Mục đích: Implement solution — đủ chi tiết để code không cần hỏi thêm
4
+
5
+ ---
6
+
7
+ ## Nguyên tắc viết cho Dev/Tech Lead
8
+ - Càng chi tiết càng tốt — ambiguity = bug
9
+ - Có đủ: business rule, validation rule, edge case, error handling
10
+ - Data model rõ ràng: field name, data type, constraint
11
+ - API contract nếu liên quan tích hợp
12
+ - Không giải thích "tại sao" quá nhiều — dev cần biết "làm gì" và "như thế nào"
13
+ - Có thể dùng pseudocode, bảng, diagram
14
+
15
+ ---
16
+
17
+ ## CẤU TRÚC TÀI LIỆU
18
+
19
+ ```
20
+ # [Tên tính năng / Module] — Technical Spec
21
+ **Ngày**: [Date] | **BA**: [Name] | **Dev**: [Name] | **Phiên bản**: [v0.1]
22
+
23
+ ---
24
+
25
+ ## 1. Tổng quan kỹ thuật
26
+ - Mô tả ngắn: [Tính năng này làm gì về mặt kỹ thuật]
27
+ - Module / Service liên quan: [Tên module, microservice...]
28
+ - Công nghệ: [Stack, framework nếu có ràng buộc]
29
+
30
+ ---
31
+
32
+ ## 2. Actors & Permissions
33
+ | Actor/Role | Quyền | Điều kiện |
34
+ |-----------|-------|-----------|
35
+ | [Role 1] | Create / Read / Update / Delete | [Điều kiện nếu có] |
36
+ | [Role 2] | Read only | |
37
+
38
+ ---
39
+
40
+ ## 3. Luồng xử lý chính (Happy Path)
41
+
42
+ ### [Tên luồng 1]
43
+ ```
44
+ 1. [Actor] thực hiện [action]
45
+ 2. Hệ thống kiểm tra [condition]
46
+ 3. Nếu hợp lệ → [xử lý]
47
+ 4. Lưu [data] vào [table/collection]
48
+ 5. Trả về [response]
49
+ ```
50
+
51
+ ### Exception Flow
52
+ | Trường hợp | Điều kiện | Xử lý | Message hiển thị |
53
+ |-----------|-----------|-------|-----------------|
54
+ | [Case 1] | [Condition] | [Action] | "[Error message]" |
55
+
56
+ ---
57
+
58
+ ## 4. Business Rules & Validation
59
+
60
+ ### Validation Rules
61
+ | Field | Rule | Error Message |
62
+ |-------|------|---------------|
63
+ | [field_name] | Required / Max length X / Format regex | "[Message]" |
64
+ | [field_name] | Unique / FK constraint | "[Message]" |
65
+
66
+ ### Business Rules
67
+ - BR-01: [Quy tắc nghiệp vụ 1 — mô tả cụ thể]
68
+ - BR-02: [Quy tắc nghiệp vụ 2]
69
+ - BR-03: [Công thức tính toán nếu có: field_A = field_B * field_C / 100]
70
+
71
+ ---
72
+
73
+ ## 5. Data Model
74
+
75
+ ### Entity: [Tên entity]
76
+ | Field | Data Type | Required | Constraint | Mô tả |
77
+ |-------|-----------|----------|------------|-------|
78
+ | id | UUID | Yes | PK | |
79
+ | [field_name] | VARCHAR(255) | Yes | Unique | [Mô tả] |
80
+ | [field_name] | DECIMAL(15,2) | No | >= 0 | [Mô tả] |
81
+ | created_at | TIMESTAMP | Yes | Default NOW() | |
82
+ | status | ENUM | Yes | [ACTIVE, INACTIVE, PENDING] | |
83
+
84
+ ### Quan hệ
85
+ - [Entity A] 1 — N [Entity B] qua field [foreign_key]
86
+ - [Entity B] N — N [Entity C] qua bảng trung gian [table_name]
87
+
88
+ ---
89
+
90
+ ## 6. API Contract (nếu có)
91
+
92
+ ### [POST] /api/v1/[resource]
93
+ **Request:**
94
+ ```json
95
+ {
96
+ "field_1": "string",
97
+ "field_2": 0,
98
+ "field_3": true
99
+ }
100
+ ```
101
+ **Response 200:**
102
+ ```json
103
+ {
104
+ "id": "uuid",
105
+ "status": "success",
106
+ "data": { ... }
107
+ }
108
+ ```
109
+ **Response 4xx/5xx:**
110
+ | HTTP Code | Trường hợp | Message |
111
+ |-----------|-----------|---------|
112
+ | 400 | Validation fail | "Invalid input: [field]" |
113
+ | 403 | Không có quyền | "Access denied" |
114
+ | 404 | Không tìm thấy | "[Resource] not found" |
115
+
116
+ ---
117
+
118
+ ## 7. Edge Cases & Lưu ý kỹ thuật
119
+ - [Edge case 1: mô tả + cách xử lý]
120
+ - [Edge case 2]
121
+ - [Performance note nếu có: query này cần index trên field X]
122
+ - [Security note: cần sanitize input field Y]
123
+
124
+ ---
125
+
126
+ ## 8. Checklist trước khi dev bắt đầu
127
+ - [ ] Đã đọc và hiểu toàn bộ spec
128
+ - [ ] Các open question đã được resolve (xem mục 9)
129
+ - [ ] Database migration script đã được plan
130
+ - [ ] Unit test plan đã có
131
+
132
+ ---
133
+
134
+ ## 9. Open Questions cho Dev
135
+ | # | Câu hỏi | Người trả lời | Trạng thái |
136
+ |---|---------|--------------|-----------|
137
+ | Q1 | [Câu hỏi kỹ thuật cần confirm] | BA / Architect | Pending |
138
+ ```