@educa-corp/sdd-framework 0.5.0 → 0.7.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 (243) hide show
  1. package/bin/build.js +113 -19
  2. package/bin/gate-trace.js +487 -0
  3. package/bin/index.js +445 -146
  4. package/bin/lint-trace.js +643 -0
  5. package/bin/self-check.js +804 -2
  6. package/bin/trace-schema.json +621 -10
  7. package/core/FRAMEWORK_VERSION +1 -1
  8. package/core/README.md +20 -0
  9. package/core/commands/amend-prd.md +518 -0
  10. package/core/commands/debug.md +123 -511
  11. package/core/commands/define-product.md +86 -510
  12. package/core/commands/dev-gen-test.md +86 -510
  13. package/core/commands/dev-run-test.md +133 -519
  14. package/core/commands/dev-smoke-test.md +86 -510
  15. package/core/commands/extend-prd.md +128 -522
  16. package/core/commands/fix-bug.md +118 -509
  17. package/core/commands/generate-architecture.md +94 -515
  18. package/core/commands/generate-bdd.md +128 -513
  19. package/core/commands/generate-code.md +119 -510
  20. package/core/commands/generate-design-spec.md +86 -510
  21. package/core/commands/generate-prd.md +89 -510
  22. package/core/commands/generate-spec-manifest.md +86 -510
  23. package/core/commands/generate-tech-docs.md +120 -512
  24. package/core/commands/learn.md +172 -496
  25. package/core/commands/map-testids.md +86 -510
  26. package/core/commands/propose-scenario.md +86 -510
  27. package/core/commands/qc-analyze.md +86 -510
  28. package/core/commands/qc-design-test.md +86 -510
  29. package/core/commands/qc-plan.md +86 -510
  30. package/core/commands/qc-report.md +86 -510
  31. package/core/commands/qc-review.md +86 -510
  32. package/core/commands/qc-run-test.md +115 -513
  33. package/core/commands/refine-prd.md +112 -522
  34. package/core/commands/report-bug.md +86 -510
  35. package/core/commands/review-code.md +123 -511
  36. package/core/commands/review-context.md +136 -522
  37. package/core/commands/review-tech-docs.md +90 -511
  38. package/core/commands/setup-ai-first.md +166 -138
  39. package/core/commands/sync.md +155 -107
  40. package/core/commands/update-framework.md +16 -103
  41. package/core/commands/validate-traces.md +426 -511
  42. package/core/hooks/data-guard.js +174 -83
  43. package/core/hooks/settings.json +2 -1
  44. package/core/rules/workflow.md +64 -4
  45. package/core/steps/capture-lesson.md +34 -1
  46. package/core/steps/context-loader.md +50 -8
  47. package/core/steps/gate.md +92 -35
  48. package/core/steps/report-footer.md +23 -0
  49. package/core/templates/README.md +24 -1
  50. package/core/templates/ci/trace-gate.yml +146 -0
  51. package/core/templates/feature.template +1 -1
  52. package/core/templates/hooks/pre-push +61 -0
  53. package/docs/02-concepts/architecture.md +61 -6
  54. package/docs/02-concepts/traceability.md +57 -0
  55. package/docs/03-guides/architect.md +63 -0
  56. package/docs/04-reference/commands.md +148 -134
  57. package/docs/04-reference/model-selection.md +32 -19
  58. package/docs/04-reference/trace-schema.md +39 -0
  59. package/docs/explain/02b-extend-prd.md +1 -1
  60. package/docs/explain/02c-amend-prd.md +152 -0
  61. package/docs/explain/21-validate-traces.md +2 -1
  62. package/docs/explain/27-learn.md +5 -3
  63. package/docs/explain/28-sync.md +25 -0
  64. package/docs/explain/README.md +136 -135
  65. package/package.json +5 -9
  66. package/commands/debug.md +0 -917
  67. package/commands/debug.tmpl +0 -257
  68. package/commands/define-product.md +0 -862
  69. package/commands/define-product.tmpl +0 -225
  70. package/commands/dev-gen-test.md +0 -1124
  71. package/commands/dev-gen-test.tmpl +0 -490
  72. package/commands/dev-run-test.md +0 -859
  73. package/commands/dev-run-test.tmpl +0 -225
  74. package/commands/dev-smoke-test.md +0 -798
  75. package/commands/dev-smoke-test.tmpl +0 -217
  76. package/commands/extend-prd.md +0 -907
  77. package/commands/extend-prd.tmpl +0 -270
  78. package/commands/fix-bug.md +0 -910
  79. package/commands/fix-bug.tmpl +0 -197
  80. package/commands/generate-architecture.md +0 -775
  81. package/commands/generate-architecture.tmpl +0 -194
  82. package/commands/generate-bdd.md +0 -1347
  83. package/commands/generate-bdd.tmpl +0 -590
  84. package/commands/generate-code.md +0 -1283
  85. package/commands/generate-code.tmpl +0 -649
  86. package/commands/generate-design-spec.md +0 -1161
  87. package/commands/generate-design-spec.tmpl +0 -524
  88. package/commands/generate-prd.md +0 -1143
  89. package/commands/generate-prd.tmpl +0 -223
  90. package/commands/generate-spec-manifest.md +0 -745
  91. package/commands/generate-spec-manifest.tmpl +0 -164
  92. package/commands/generate-tech-docs.md +0 -1344
  93. package/commands/generate-tech-docs.tmpl +0 -273
  94. package/commands/learn.md +0 -723
  95. package/commands/learn.tmpl +0 -63
  96. package/commands/map-testids.md +0 -662
  97. package/commands/map-testids.tmpl +0 -81
  98. package/commands/propose-scenario.md +0 -783
  99. package/commands/propose-scenario.tmpl +0 -202
  100. package/commands/qc-analyze.md +0 -693
  101. package/commands/qc-analyze.tmpl +0 -112
  102. package/commands/qc-design-test.md +0 -650
  103. package/commands/qc-design-test.tmpl +0 -69
  104. package/commands/qc-plan.md +0 -630
  105. package/commands/qc-plan.tmpl +0 -49
  106. package/commands/qc-report.md +0 -641
  107. package/commands/qc-report.tmpl +0 -60
  108. package/commands/qc-review.md +0 -634
  109. package/commands/qc-review.tmpl +0 -53
  110. package/commands/qc-run-test.md +0 -750
  111. package/commands/qc-run-test.tmpl +0 -116
  112. package/commands/refine-prd.md +0 -1074
  113. package/commands/refine-prd.tmpl +0 -278
  114. package/commands/report-bug.md +0 -729
  115. package/commands/report-bug.tmpl +0 -148
  116. package/commands/review-code.md +0 -803
  117. package/commands/review-code.tmpl +0 -143
  118. package/commands/review-context.md +0 -1323
  119. package/commands/review-context.tmpl +0 -527
  120. package/commands/review-tech-docs.md +0 -982
  121. package/commands/review-tech-docs.tmpl +0 -401
  122. package/commands/setup-ai-first.md +0 -574
  123. package/commands/setup-ai-first.tmpl +0 -378
  124. package/commands/sync.md +0 -486
  125. package/commands/sync.tmpl +0 -384
  126. package/commands/update-framework.md +0 -290
  127. package/commands/update-framework.tmpl +0 -188
  128. package/commands/validate-traces.md +0 -1435
  129. package/commands/validate-traces.tmpl +0 -854
  130. package/hooks/data-guard.js +0 -141
  131. package/hooks/settings.json +0 -18
  132. package/modules/android-compose/module.yaml +0 -13
  133. package/modules/android-compose/stack-profile.yaml +0 -57
  134. package/modules/angular/architecture-snippets/component-patterns.md +0 -187
  135. package/modules/angular/module.yaml +0 -6
  136. package/modules/angular/stack-profile.yaml +0 -38
  137. package/modules/context-engineering/architecture-snippets/context-design.md +0 -119
  138. package/modules/context-engineering/module.yaml +0 -9
  139. package/modules/context-engineering/stack-profile.yaml +0 -61
  140. package/modules/dotnet/architecture-snippets/clean-arch.md +0 -160
  141. package/modules/dotnet/module.yaml +0 -6
  142. package/modules/dotnet/stack-profile.yaml +0 -50
  143. package/modules/flutter/module.yaml +0 -14
  144. package/modules/flutter/stack-profile.yaml +0 -59
  145. package/modules/golang/architecture-snippets/domain-layout.md +0 -283
  146. package/modules/golang/module.yaml +0 -6
  147. package/modules/golang/stack-profile.yaml +0 -40
  148. package/modules/ios-swiftui/module.yaml +0 -13
  149. package/modules/ios-swiftui/stack-profile.yaml +0 -55
  150. package/modules/java-spring/architecture-snippets/layered-arch.md +0 -201
  151. package/modules/java-spring/module.yaml +0 -15
  152. package/modules/java-spring/stack-profile.yaml +0 -28
  153. package/modules/nextjs/architecture-snippets/app-router-patterns.md +0 -269
  154. package/modules/nextjs/module.yaml +0 -14
  155. package/modules/nextjs/stack-profile.yaml +0 -74
  156. package/modules/nuxt/module.yaml +0 -14
  157. package/modules/nuxt/stack-profile.yaml +0 -58
  158. package/modules/phaser-game/architecture-snippets/phaser-scene-patterns.md +0 -646
  159. package/modules/phaser-game/module.yaml +0 -15
  160. package/modules/phaser-game/stack-profile.yaml +0 -90
  161. package/modules/php-laravel/architecture-snippets/service-repository.md +0 -302
  162. package/modules/php-laravel/module.yaml +0 -15
  163. package/modules/php-laravel/stack-profile.yaml +0 -56
  164. package/modules/qc-playwright/stack-profile.yaml +0 -66
  165. package/modules/react/architecture-snippets/hooks-query-patterns.md +0 -254
  166. package/modules/react/module.yaml +0 -14
  167. package/modules/react/stack-profile.yaml +0 -63
  168. package/modules/react-native/module.yaml +0 -14
  169. package/modules/react-native/stack-profile.yaml +0 -56
  170. package/modules/vue/module.yaml +0 -14
  171. package/modules/vue/stack-profile.yaml +0 -65
  172. package/rules/data-protection.md +0 -80
  173. package/rules/workflow.md +0 -73
  174. package/scripts/init.sh +0 -49
  175. package/scripts/upgrade.sh +0 -94
  176. package/skills/code/SKILL.md +0 -19
  177. package/skills/code/SKILL.tmpl +0 -19
  178. package/skills/debug/SKILL.md +0 -19
  179. package/skills/debug/SKILL.tmpl +0 -19
  180. package/skills/design-spec/SKILL.md +0 -11
  181. package/skills/design-spec/SKILL.tmpl +0 -11
  182. package/skills/discovery/SKILL.md +0 -14
  183. package/skills/discovery/SKILL.tmpl +0 -14
  184. package/skills/prd/SKILL.md +0 -19
  185. package/skills/prd/SKILL.tmpl +0 -19
  186. package/skills/qc/qa-analyst/DOC_GAPS.template.md +0 -63
  187. package/skills/qc/qa-analyst/acceptance-criteria.md +0 -60
  188. package/skills/qc/qa-analyst/business-rules.md +0 -59
  189. package/skills/qc/qa-analyst/data-flow.md +0 -64
  190. package/skills/qc/qa-analyst/spec-breakdown.md +0 -61
  191. package/skills/qc/qa-designer/e2e/journey.md +0 -41
  192. package/skills/qc/qa-designer/exploratory/charter.md +0 -68
  193. package/skills/qc/qa-designer/exploratory/explore-to-functional.md +0 -43
  194. package/skills/qc/qa-designer/functional/api.md +0 -45
  195. package/skills/qc/qa-designer/functional/gui-feature.md +0 -46
  196. package/skills/qc/qa-designer/functional/gui-screen.md +0 -52
  197. package/skills/qc/qa-designer/integration/api.md +0 -42
  198. package/skills/qc/qa-designer/integration/db.md +0 -39
  199. package/skills/qc/qa-designer/integration/gui.md +0 -40
  200. package/skills/qc/qa-designer/integration/kafka.md +0 -40
  201. package/skills/qc/qa-designer/non-functional.md +0 -40
  202. package/skills/qc/qa-planner/test-plan.md +0 -120
  203. package/skills/qc/qa-reviewer/script/e2e.md +0 -87
  204. package/skills/qc/qa-reviewer/script/exploratory.md +0 -45
  205. package/skills/qc/qa-reviewer/script/functional.md +0 -101
  206. package/skills/qc/qa-reviewer/script/integration.md +0 -91
  207. package/skills/qc/qa-reviewer/script/non-functional.md +0 -126
  208. package/skills/qc/qa-reviewer/test-case/e2e.md +0 -73
  209. package/skills/qc/qa-reviewer/test-case/exploratory.md +0 -43
  210. package/skills/qc/qa-reviewer/test-case/functional.md +0 -76
  211. package/skills/qc/qa-reviewer/test-case/integration.md +0 -69
  212. package/skills/qc/qa-reviewer/test-case/non-functional.md +0 -73
  213. package/skills/qc/qa-runner/e2e.md +0 -49
  214. package/skills/qc/qa-runner/exploratory/session.md +0 -36
  215. package/skills/qc/qa-runner/functional/api.md +0 -35
  216. package/skills/qc/qa-runner/functional/gui-feature.md +0 -51
  217. package/skills/qc/qa-runner/functional/gui-screen.md +0 -55
  218. package/skills/qc/qa-runner/integration.md +0 -47
  219. package/skills/qc/qa-runner/non-functional.md +0 -49
  220. package/skills/qc/qa-runner/report/report.md +0 -37
  221. package/skills/setup-ai-first/SKILL.md +0 -19
  222. package/skills/setup-ai-first/SKILL.tmpl +0 -19
  223. package/skills/spec/SKILL.md +0 -19
  224. package/skills/spec/SKILL.tmpl +0 -19
  225. package/skills/test/SKILL.md +0 -18
  226. package/skills/test/SKILL.tmpl +0 -18
  227. package/steps/business-language.md +0 -56
  228. package/steps/capture-lesson.md +0 -79
  229. package/steps/context-loader.md +0 -385
  230. package/steps/gate.md +0 -94
  231. package/steps/report-footer.md +0 -102
  232. package/steps/review-fanout.md +0 -159
  233. package/steps/spawn-agent.md +0 -129
  234. package/steps/trace-mirror.md +0 -53
  235. package/templates/README.md +0 -47
  236. package/templates/architecture.template.md +0 -394
  237. package/templates/design-spec.template.md +0 -217
  238. package/templates/feature.template +0 -123
  239. package/templates/platform-guide.template.md +0 -145
  240. package/templates/prd.template.md +0 -283
  241. package/templates/product-definition.template.md +0 -188
  242. package/templates/project-context.yaml +0 -212
  243. package/templates/tech-design.template.md +0 -490
package/scripts/init.sh DELETED
@@ -1,49 +0,0 @@
1
- #!/usr/bin/env bash
2
- # init.sh — First-time setup of SDD Framework framework in a consumer project.
3
- #
4
- # Usage:
5
- # bash scripts/init.sh
6
- # bash scripts/init.sh --module java-spring
7
- # bash scripts/init.sh --module java-spring --hooks
8
- #
9
- # What it does:
10
- # 1. Copies framework files to .agent/ (commands, steps, hooks, rules, templates, modules)
11
- # 2. Creates lightweight shortcut files in .claude/commands/ that delegate to .agent/
12
- # 3. Writes .agent/FRAMEWORK_VERSION for upgrade.sh to track installed version
13
- #
14
- # After init:
15
- # - Commit .agent/ to git so the entire team shares the framework
16
- # - Run /setup-ai-first in Claude Code to complete project setup
17
- # - To upgrade later: bash scripts/upgrade.sh
18
-
19
- set -euo pipefail
20
-
21
- echo ""
22
- echo "╔══════════════════════════════════════════╗"
23
- echo "║ SDD Framework — Project Init ║"
24
- echo "╚══════════════════════════════════════════╝"
25
- echo ""
26
-
27
- # ── Prerequisite check ────────────────────────────────────────────────────────
28
-
29
- if ! command -v node &> /dev/null; then
30
- echo "❌ Node.js is required. Install from https://nodejs.org"
31
- exit 1
32
- fi
33
-
34
- # ── Run installer via npx ─────────────────────────────────────────────────────
35
-
36
- echo "Running: npx @educa-corp/sdd-framework --init $*"
37
- echo ""
38
-
39
- npx -y @educa-corp/sdd-framework --init "$@"
40
-
41
- echo ""
42
- echo "✅ Init complete!"
43
- echo ""
44
- echo "Recommended next steps:"
45
- echo " git add .agent/ .claude/commands/"
46
- echo " git commit -m 'chore: init spec-driven-docs framework'"
47
- echo ""
48
- echo "Then open Claude Code and run: /setup-ai-first"
49
- echo ""
@@ -1,94 +0,0 @@
1
- #!/usr/bin/env bash
2
- # upgrade.sh — Upgrade SDD Framework framework in an existing project.
3
- #
4
- # Usage:
5
- # bash scripts/upgrade.sh
6
- # bash scripts/upgrade.sh --module java-spring # also upgrade a stack module
7
- #
8
- # What it does:
9
- # 1. Reads current installed version from .agent/FRAMEWORK_VERSION
10
- # 2. Checks npm registry for the latest published version
11
- # 3. If newer: runs npx @educa-corp/sdd-framework@latest --init to update .agent/
12
- # 4. Reports what changed so you can review before committing
13
- #
14
- # Requirements:
15
- # - Project was set up with init.sh (or npx ... --init)
16
- # - .agent/FRAMEWORK_VERSION exists
17
-
18
- set -euo pipefail
19
-
20
- AGENT_DIR=".agent"
21
- VERSION_FILE="${AGENT_DIR}/FRAMEWORK_VERSION"
22
-
23
- echo ""
24
- echo "╔══════════════════════════════════════════╗"
25
- echo "║ SDD Framework — Upgrade ║"
26
- echo "╚══════════════════════════════════════════╝"
27
- echo ""
28
-
29
- # ── Prerequisite checks ───────────────────────────────────────────────────────
30
-
31
- if ! command -v node &> /dev/null; then
32
- echo "❌ Node.js is required. Install from https://nodejs.org"
33
- exit 1
34
- fi
35
-
36
- if ! command -v npm &> /dev/null; then
37
- echo "❌ npm is required. Install Node.js from https://nodejs.org"
38
- exit 1
39
- fi
40
-
41
- if [ ! -f "$VERSION_FILE" ]; then
42
- echo "❌ .agent/FRAMEWORK_VERSION not found."
43
- echo ""
44
- echo " This project was not set up with --init."
45
- echo " To set up the new structure:"
46
- echo ""
47
- echo " bash scripts/init.sh"
48
- echo " or:"
49
- echo " npx @educa-corp/sdd-framework --init"
50
- echo ""
51
- exit 1
52
- fi
53
-
54
- # ── Version comparison ────────────────────────────────────────────────────────
55
-
56
- CURRENT=$(cat "$VERSION_FILE" | tr -d '[:space:]')
57
- echo "Checking npm registry ..."
58
-
59
- LATEST=$(npm view @educa-corp/sdd-framework version 2>/dev/null || echo "unknown")
60
-
61
- echo ""
62
- echo " Installed : v${CURRENT}"
63
- echo " Latest : v${LATEST}"
64
- echo ""
65
-
66
- if [ "$LATEST" = "unknown" ]; then
67
- echo "⚠️ Could not reach npm registry. Check your internet connection."
68
- exit 1
69
- fi
70
-
71
- if [ "$CURRENT" = "$LATEST" ]; then
72
- echo "✅ Already up to date (v${CURRENT}). Nothing to do."
73
- echo ""
74
- exit 0
75
- fi
76
-
77
- # ── Upgrade ───────────────────────────────────────────────────────────────────
78
-
79
- echo "Upgrading v${CURRENT} → v${LATEST} ..."
80
- echo ""
81
-
82
- npx -y @educa-corp/sdd-framework@latest --init "$@"
83
-
84
- # ── Post-upgrade guidance ─────────────────────────────────────────────────────
85
-
86
- echo ""
87
- echo "✅ Upgraded to v${LATEST}!"
88
- echo ""
89
- echo "Review what changed in .agent/ before committing:"
90
- echo ""
91
- echo " git diff .agent/"
92
- echo " git add .agent/"
93
- echo " git commit -m 'chore: upgrade spec-driven-docs v${CURRENT} → v${LATEST}'"
94
- echo ""
@@ -1,19 +0,0 @@
1
- ---
2
- description: Sinh implementation code từ BDD spec đã duyệt kèm tag traceability, hoặc review code read-only đối chiếu spec compliance và quy tắc kiến trúc. Trigger when: "/generate-code", "/review-code", "sinh code", "generate code", "viết code", "implement feature", "review code", "kiểm tra code", "code review", "check implementation".
3
- ---
4
-
5
- # Code Skills — Generate & Review
6
-
7
- Skill này xử lý `/generate-code` và `/review-code`. Để **không lệch schema/gate**, skill KHÔNG nhân bản — mỗi lệnh thực thi **y hệt** command tương ứng.
8
-
9
- ## /generate-code — Sinh Implementation Code
10
-
11
- → **Đọc và tuân theo `commands/generate-code.md`** với cùng `$ARGUMENTS`.
12
-
13
- Command lo: guard mềm BDD `@trace.status` approved + Design Spec (approved/độ-tươi/sanity) cho FE/App · `--phase=ui`/`--phase=integration` · branch + build verify · trace TSV (22 cột) `@trace.implements`.
14
-
15
- ## /review-code — Code Review chỉ-đọc (READ-ONLY)
16
-
17
- → **Đọc và tuân theo `commands/review-code.md`** với cùng `$ARGUMENTS`.
18
-
19
- Command lo: Pre-Review Scan · 4 lăng kính (Traceability · Layer Architecture · Coding Standards · Spec Compliance) · đề xuất ghi Lesson cho lỗi AI lặp.
@@ -1,19 +0,0 @@
1
- ---
2
- description: Sinh implementation code từ BDD spec đã duyệt kèm tag traceability, hoặc review code read-only đối chiếu spec compliance và quy tắc kiến trúc. Trigger when: "/generate-code", "/review-code", "sinh code", "generate code", "viết code", "implement feature", "review code", "kiểm tra code", "code review", "check implementation".
3
- ---
4
-
5
- # Code Skills — Generate & Review
6
-
7
- Skill này xử lý `/generate-code` và `/review-code`. Để **không lệch schema/gate**, skill KHÔNG nhân bản — mỗi lệnh thực thi **y hệt** command tương ứng.
8
-
9
- ## /generate-code — Sinh Implementation Code
10
-
11
- → **Đọc và tuân theo `commands/generate-code.md`** với cùng `$ARGUMENTS`.
12
-
13
- Command lo: guard mềm BDD `@trace.status` approved + Design Spec (approved/độ-tươi/sanity) cho FE/App · `--phase=ui`/`--phase=integration` · branch + build verify · trace TSV (22 cột) `@trace.implements`.
14
-
15
- ## /review-code — Code Review chỉ-đọc (READ-ONLY)
16
-
17
- → **Đọc và tuân theo `commands/review-code.md`** với cùng `$ARGUMENTS`.
18
-
19
- Command lo: Pre-Review Scan · 4 lăng kính (Traceability · Layer Architecture · Coding Standards · Spec Compliance) · đề xuất ghi Lesson cho lỗi AI lặp.
@@ -1,19 +0,0 @@
1
- ---
2
- description: Fix bug với full workflow (branch, test, commit), phân tích debug nhanh các lỗi hoặc hành vi bất ngờ, hoặc kiểm chứng độ phủ traceability giữa spec và code. Trigger when: "/fix-bug", "/debug", "/validate-traces", "fix bug", "sửa bug", "debug lỗi", "phân tích lỗi", "tại sao lỗi này", "validate traces", "kiểm tra traceability", "coverage matrix", "trace drift".
3
- ---
4
-
5
- # Debug & Quality Skills — Fix Bug, Debug, Validate Traces
6
-
7
- Skill này xử lý `/fix-bug`, `/debug`, `/validate-traces`. Để **không lệch schema/flow**, skill KHÔNG nhân bản — mỗi lệnh thực thi **y hệt** command.
8
-
9
- ## /fix-bug — Full Bug Fix Workflow
10
- → **Đọc và tuân theo `commands/fix-bug.md`** với cùng `$ARGUMENTS`.
11
- (Command lo: bug-type table theo platform · đọc `{BUG-ID}` report · regression test · build + push 2 tầng (umbrella) · BUG State `Open→Fixed`→`Closed` · đề xuất Lesson.)
12
-
13
- ## /debug — Phân tích nhanh
14
- → **Đọc và tuân theo `commands/debug.md`** với cùng `$ARGUMENTS`.
15
- (Command lo: 4 path (stack trace / reproduce / test fail / câu hỏi code) · bảng lỗi theo từng platform/module · stack-trace đọc dưới-lên.)
16
-
17
- ## /validate-traces — Traceability Coverage
18
- → **Đọc và tuân theo `commands/validate-traces.md`** với cùng `$ARGUMENTS`.
19
- (Command lo: đọc trace TSV 22 cột authoritative · tính OK/DRIFT/GAP/UNTRACKED + PRD/TECHDOC drift · sync `uc_status` ← `@trace.status` · aggregate dashboard.)
@@ -1,19 +0,0 @@
1
- ---
2
- description: Fix bug với full workflow (branch, test, commit), phân tích debug nhanh các lỗi hoặc hành vi bất ngờ, hoặc kiểm chứng độ phủ traceability giữa spec và code. Trigger when: "/fix-bug", "/debug", "/validate-traces", "fix bug", "sửa bug", "debug lỗi", "phân tích lỗi", "tại sao lỗi này", "validate traces", "kiểm tra traceability", "coverage matrix", "trace drift".
3
- ---
4
-
5
- # Debug & Quality Skills — Fix Bug, Debug, Validate Traces
6
-
7
- Skill này xử lý `/fix-bug`, `/debug`, `/validate-traces`. Để **không lệch schema/flow**, skill KHÔNG nhân bản — mỗi lệnh thực thi **y hệt** command.
8
-
9
- ## /fix-bug — Full Bug Fix Workflow
10
- → **Đọc và tuân theo `commands/fix-bug.md`** với cùng `$ARGUMENTS`.
11
- (Command lo: bug-type table theo platform · đọc `{BUG-ID}` report · regression test · build + push 2 tầng (umbrella) · BUG State `Open→Fixed`→`Closed` · đề xuất Lesson.)
12
-
13
- ## /debug — Phân tích nhanh
14
- → **Đọc và tuân theo `commands/debug.md`** với cùng `$ARGUMENTS`.
15
- (Command lo: 4 path (stack trace / reproduce / test fail / câu hỏi code) · bảng lỗi theo từng platform/module · stack-trace đọc dưới-lên.)
16
-
17
- ## /validate-traces — Traceability Coverage
18
- → **Đọc và tuân theo `commands/validate-traces.md`** với cùng `$ARGUMENTS`.
19
- (Command lo: đọc trace TSV 22 cột authoritative · tính OK/DRIFT/GAP/UNTRACKED + PRD/TECHDOC drift · sync `uc_status` ← `@trace.status` · aggregate dashboard.)
@@ -1,11 +0,0 @@
1
- ---
2
- description: Sinh tài liệu Design Specification cho platform FE hoặc App từ một Business PRD. Trigger when: "/generate-design-spec", "tạo design spec", "generate design spec", "viết design spec", "tạo tài liệu thiết kế UI", "generate UI spec", "cần design spec cho", "tôi muốn spec UI", "tài liệu cho FE", "tài liệu cho app".
3
- ---
4
-
5
- # /generate-design-spec — Generate Design Specification (FE / App)
6
-
7
- Skill này xử lý `/generate-design-spec`. Để **không lệch gate/schema**, skill KHÔNG nhân bản — thực thi **y hệt** command.
8
-
9
- → **Đọc và tuân theo `commands/generate-design-spec.md`** với cùng `$ARGUMENTS`.
10
-
11
- Command lo: guard PRD approved (mềm) · ghi `Built from PRD` + Version Check drift · Figma per-screen node-level link (`?node-id=`) fetch qua MCP, màn thiếu link → ❌ Missing → Status giữ `draft` · Screen Inventory/Specs/States · Interaction Patterns + Platform Considerations theo platform · AC-UI (Verified by) · **Self-Review Gate** trước khi ghi · chỉ FE/App (BE bị từ chối).
@@ -1,11 +0,0 @@
1
- ---
2
- description: Sinh tài liệu Design Specification cho platform FE hoặc App từ một Business PRD. Trigger when: "/generate-design-spec", "tạo design spec", "generate design spec", "viết design spec", "tạo tài liệu thiết kế UI", "generate UI spec", "cần design spec cho", "tôi muốn spec UI", "tài liệu cho FE", "tài liệu cho app".
3
- ---
4
-
5
- # /generate-design-spec — Generate Design Specification (FE / App)
6
-
7
- Skill này xử lý `/generate-design-spec`. Để **không lệch gate/schema**, skill KHÔNG nhân bản — thực thi **y hệt** command.
8
-
9
- → **Đọc và tuân theo `commands/generate-design-spec.md`** với cùng `$ARGUMENTS`.
10
-
11
- Command lo: guard PRD approved (mềm) · ghi `Built from PRD` + Version Check drift · Figma per-screen node-level link (`?node-id=`) fetch qua MCP, màn thiếu link → ❌ Missing → Status giữ `draft` · Screen Inventory/Specs/States · Interaction Patterns + Platform Considerations theo platform · AC-UI (Verified by) · **Self-Review Gate** trước khi ghi · chỉ FE/App (BE bị từ chối).
@@ -1,14 +0,0 @@
1
- ---
2
- description: Dẫn dắt product discovery cho một feature mới qua Q&A có cấu trúc. Trigger when: "/define-product", "khám phá tính năng", "define new feature", "start new feature", "product discovery", "tôi muốn build tính năng mới", "let's define a feature", "begin feature discovery".
3
- ---
4
-
5
- # /define-product — Feature Discovery (Q&A theo phase)
6
-
7
- Lệnh này thực thi **y hệt** `commands/define-product.md` — không nhân bản logic ở đây để tránh lệch cấu trúc / phase / path output.
8
-
9
- `commands/define-product.md` dẫn PO qua các phase Q&A có checkpoint:
10
- Knowledge Sync → Feature Definition (Context/Problem/Goal/Actor/In&Out Scope/User Story/Phụ thuộc liên service) → User Flow (kèm Edge Cases) → Clarification Log → Business Rules → Business Logic → Acceptance Criteria → Validation Report.
11
-
12
- Output ghi `{paths.product_definitions_dir}/{TICKET-ID}-{slug}.md` theo `templates/product-definition.template.md` — input cho `/generate-prd`.
13
-
14
- → **Đọc và tuân theo `commands/define-product.md`** với cùng `$ARGUMENTS`.
@@ -1,14 +0,0 @@
1
- ---
2
- description: Dẫn dắt product discovery cho một feature mới qua Q&A có cấu trúc. Trigger when: "/define-product", "khám phá tính năng", "define new feature", "start new feature", "product discovery", "tôi muốn build tính năng mới", "let's define a feature", "begin feature discovery".
3
- ---
4
-
5
- # /define-product — Feature Discovery (Q&A theo phase)
6
-
7
- Lệnh này thực thi **y hệt** `commands/define-product.md` — không nhân bản logic ở đây để tránh lệch cấu trúc / phase / path output.
8
-
9
- `commands/define-product.md` dẫn PO qua các phase Q&A có checkpoint:
10
- Knowledge Sync → Feature Definition (Context/Problem/Goal/Actor/In&Out Scope/User Story/Phụ thuộc liên service) → User Flow (kèm Edge Cases) → Clarification Log → Business Rules → Business Logic → Acceptance Criteria → Validation Report.
11
-
12
- Output ghi `{paths.product_definitions_dir}/{TICKET-ID}-{slug}.md` theo `templates/product-definition.template.md` — input cho `/generate-prd`.
13
-
14
- → **Đọc và tuân theo `commands/define-product.md`** với cùng `$ARGUMENTS`.
@@ -1,19 +0,0 @@
1
- ---
2
- description: Sinh PRD từ một product definition, hoặc phân tích một PRD có sẵn qua 4 lăng kính review (QA, DEV, SA, PO) để tìm gap và rủi ro. Trigger when: "/generate-prd", "/refine-prd", "tạo PRD", "generate PRD", "phân tích PRD", "review PRD", "refine PRD", "PRD có vấn đề gì không", "check PRD quality".
3
- ---
4
-
5
- # PRD Skills — Generate & Refine
6
-
7
- Skill này xử lý `/generate-prd` và `/refine-prd`. Để **không lệch logic/schema**, skill KHÔNG nhân bản — mỗi lệnh thực thi **y hệt** command tương ứng.
8
-
9
- ## /generate-prd — Sinh Product Requirements Document
10
-
11
- → **Đọc và tuân theo `commands/generate-prd.md`** với cùng `$ARGUMENTS`.
12
-
13
- Command lo: guard discovery completed · phân giải API Source (existing/greenfield/partner) · Terminology Map · map §1c "Phụ thuộc liên service" + §4b Wireframe · slug kế thừa · template canonical (`templates/prd.template.md`) · Change Log rolling-window.
14
-
15
- ## /refine-prd — Phân tích PRD qua 4 lăng kính review
16
-
17
- → **Đọc và tuân theo `commands/refine-prd.md`** với cùng `$ARGUMENTS`.
18
-
19
- Command lo: 4 lăng kính fan-out đa sub-agent + completeness-critic (findings đầy đủ 1 lần chạy) · schema findings đầy đủ (`uc_id`, `quote`, `auto_fixable`) cho Review Board · Resume Mode (apply → bump version → reset draft → changelog).
@@ -1,19 +0,0 @@
1
- ---
2
- description: Sinh PRD từ một product definition, hoặc phân tích một PRD có sẵn qua 4 lăng kính review (QA, DEV, SA, PO) để tìm gap và rủi ro. Trigger when: "/generate-prd", "/refine-prd", "tạo PRD", "generate PRD", "phân tích PRD", "review PRD", "refine PRD", "PRD có vấn đề gì không", "check PRD quality".
3
- ---
4
-
5
- # PRD Skills — Generate & Refine
6
-
7
- Skill này xử lý `/generate-prd` và `/refine-prd`. Để **không lệch logic/schema**, skill KHÔNG nhân bản — mỗi lệnh thực thi **y hệt** command tương ứng.
8
-
9
- ## /generate-prd — Sinh Product Requirements Document
10
-
11
- → **Đọc và tuân theo `commands/generate-prd.md`** với cùng `$ARGUMENTS`.
12
-
13
- Command lo: guard discovery completed · phân giải API Source (existing/greenfield/partner) · Terminology Map · map §1c "Phụ thuộc liên service" + §4b Wireframe · slug kế thừa · template canonical (`templates/prd.template.md`) · Change Log rolling-window.
14
-
15
- ## /refine-prd — Phân tích PRD qua 4 lăng kính review
16
-
17
- → **Đọc và tuân theo `commands/refine-prd.md`** với cùng `$ARGUMENTS`.
18
-
19
- Command lo: 4 lăng kính fan-out đa sub-agent + completeness-critic (findings đầy đủ 1 lần chạy) · schema findings đầy đủ (`uc_id`, `quote`, `auto_fixable`) cho Review Board · Resume Mode (apply → bump version → reset draft → changelog).
@@ -1,63 +0,0 @@
1
- ---
2
- version: 1.1
3
- updated: 2026-06-11
4
- ported_from: ai-automation-qc-base
5
- ---
6
-
7
- # Gap Analysis – <FEATURE>
8
-
9
- > File ghi lại các **khoảng trống của tài liệu** mà `qa-analyst` phát hiện sau khi
10
- > phân tích. Là đầu vào để hỏi dev/BA và cho `qa-planner`. Mỗi gap có ID `GAP-xx`
11
- > để business rule (BR-xx), acceptance criteria (AC-xx) và test case trace ngược về.
12
-
13
- | Trường | Giá trị |
14
- |---|---|
15
- | Feature | `<FEATURE>` |
16
- | Project / Service | `<project or service name / domain>` |
17
- | Tài liệu nguồn | `<đường dẫn / link PRD / user story>` |
18
- | Người phân tích | qa-analyst |
19
- | Ngày phân tích | `<YYYY-MM-DD>` |
20
- | Tổng số gap | `<N>` (Blocker: x · High: y · Medium: z · Low: w) |
21
- | Trạng thái chung | 🔴 Blocked / 🟡 Cần làm rõ / 🟢 Đủ rõ để thiết kế TC |
22
-
23
- ---
24
-
25
- ## Bảng Gap
26
-
27
- | ID | Loại | Mô tả gap | Vị trí (mục/nguồn) | Ảnh hưởng (chức năng / BR / AC) | Mức độ | Người trả lời | Trạng thái | Câu trả lời |
28
- |---|---|---|---|---|---|---|---|---|
29
- | GAP-01 | MISSING | … | spec §x | chức năng A / BR-02 | 🔴 Blocker | Dev/BA | Open | — |
30
- | GAP-02 | AMBIGUOUS | … | mockup màn hình Y | AC-03 | 🟠 High | BA | Open | — |
31
- | GAP-03 | CONTRADICTORY | … | §2 vs §5 | BR-04 | 🟠 High | BA | Open | — |
32
- | GAP-04 | ASSUMPTION | … (giả định AI tự đưa, cần xác nhận) | — | chức năng B | 🟡 Medium | Dev | Open | — |
33
-
34
- ### Loại gap
35
- - **MISSING** – thông tin/chức năng/field/rule chưa được mô tả.
36
- - **AMBIGUOUS** – mô tả mơ hồ, có ≥ 2 cách hiểu.
37
- - **CONTRADICTORY** – các phần tài liệu mâu thuẫn nhau.
38
- - **ASSUMPTION** – giả định do qa-analyst tự suy ra, cần dev/BA xác nhận.
39
- - **OPEN QUESTION** – câu hỏi mở cần trả lời trước khi thiết kế/triển khai.
40
-
41
- ### Mức độ
42
- 🔴 Blocker (chặn thiết kế TC) · 🟠 High · 🟡 Medium · 🟢 Low
43
-
44
- ---
45
-
46
- ## Quy ước cập nhật
47
- - `qa-analyst` tạo & điền gap khi phân tích; **không tự bịa câu trả lời** cho gap Blocker.
48
- - Khi có phản hồi dev/BA: điền cột *Câu trả lời*, đổi *Trạng thái* → `Answered`.
49
- - Còn gap 🔴 Blocker `Open` ⇒ **chưa** chuyển sang `qa-designer`; đẩy sang `qa-planner`
50
- (skill `questions-for-dev`) để chốt câu hỏi.
51
-
52
- ---
53
-
54
- ## ⚠️ Checklist bắt buộc trước khi lưu file
55
-
56
- Trước khi lưu `DOC_GAPS.md`, kiểm tra **từng hàng** trong bảng gap:
57
-
58
- - [ ] **9 cột đủ** – đúng thứ tự: `ID | Loại | Mô tả gap | Vị trí (mục/nguồn) | Ảnh hưởng (chức năng / BR / AC) | Mức độ | Người trả lời | Trạng thái | Câu trả lời`
59
- - [ ] **Cột Vị trí không rỗng** – phải có tham chiếu cụ thể đến mục trong tài liệu nguồn (vd `§3 UC4 BR25`, `Appendix B loại 7`, `§4.b Screen 3`). Đây là cột hay bị bỏ thiếu nhất → gây lệch toàn bộ cột sau.
60
- - [ ] **Cột Ảnh hưởng = BR/AC references** – KHÔNG phải mức độ severity. Ví dụ đúng: `BR25, BR26 / AC-F01-33`. Nếu thấy "Blocker" / "High" ở đây → đang bị lệch cột.
61
- - [ ] **Cột Mức độ có emoji** – bắt buộc dùng: `🔴 Blocker` / `🟠 High` / `🟡 Medium` / `🟢 Low`. Không được ghi text thuần.
62
- - [ ] **Cột Người trả lời = vai trò** (PO / BA / Dev / Design / Content / DPO / QC Lead). Nếu thấy "Open" ở đây → đang bị lệch cột.
63
- - [ ] **Cột Trạng thái = Open / Answered**. Nếu thấy "—" ở đây → đang bị lệch cột.
@@ -1,60 +0,0 @@
1
- ---
2
- version: 1.0
3
- updated: 2026-06-11
4
- ported_from: ai-automation-qc-base
5
- ---
6
-
7
- # Acceptance Criteria — Sinh tiêu chí chấp nhận
8
-
9
- Chuyển yêu cầu đã phân tích thành acceptance criteria (Given/When/Then) làm cơ sở thiết kế TC.
10
-
11
- ## Khi nào trigger
12
- - "viết acceptance criteria cho [X]" / "định nghĩa tiêu chí pass"
13
- - Sau spec-breakdown + business-rules, là bước cuối của qa-analyst
14
- - Cần điều kiện chấp nhận rõ ràng để qa-designer trace TC ngược về
15
-
16
- ## Khi KHÔNG trigger
17
- - Cần bóc tách spec → dùng spec-breakdown
18
- - Cần thiết kế test case chi tiết (steps cụ thể) → dùng qa-designer
19
- - Cần phân tích rủi ro → dùng qa-planner
20
-
21
- ---
22
-
23
- ## Phase 1 — Tổng hợp
24
-
25
- Gom đầu vào từ spec-breakdown, business-rules, data-flow:
26
- - Mỗi chức năng/luồng → một nhóm acceptance criteria.
27
- - Mỗi business rule (BR-xx) → ít nhất một AC kiểm chứng.
28
-
29
- ---
30
-
31
- ## Phase 2 — Viết AC
32
-
33
- Dùng format Given/When/Then, mỗi AC kiểm chứng MỘT điều:
34
-
35
- ```
36
- AC-01 (chức năng / BR-xx):
37
- Given <tiền điều kiện>
38
- When <hành động + dữ liệu cụ thể>
39
- Then <kết quả mong đợi CỤ THỂ>
40
- ```
41
-
42
- Bắt buộc phủ:
43
- - Happy path (điều kiện hợp lệ).
44
- - Negative (vi phạm validation / authorization).
45
- - Boundary (giá trị biên của giới hạn trong business-rules).
46
- - Alternate flow (luồng phụ trong data-flow).
47
-
48
- Mỗi AC gắn mã trace: chức năng + BR-xx để TC sau này map 1-1.
49
-
50
- ---
51
-
52
- ## Output
53
-
54
- Ghi vào **mục Acceptance Criteria** của `{paths.qc_dir}/{UC-ID}/REQUIREMENT_ANALYSIS.md`
55
- (KHÔNG tạo file riêng — qc-analyze chỉ trả 2 file: `REQUIREMENT_ANALYSIS.md` + `DOC_GAPS.md`):
56
-
57
- - Danh sách AC dạng Given/When/Then, có mã trace về chức năng, business rule (BR-xx)
58
- và scenario chính thức `{UC-ID}-SC{N}` của `.feature`.
59
- - Bảng ma trận: BR / chức năng × AC để xác nhận không bỏ sót.
60
- - Đây là đầu vào trực tiếp cho `qa-designer` (mỗi AC → ≥1 test case) và `qa-reviewer` (đối chiếu coverage).
@@ -1,59 +0,0 @@
1
- ---
2
- version: 1.0
3
- updated: 2026-06-11
4
- ported_from: ai-automation-qc-base
5
- ---
6
-
7
- # Business Rules — Trích xuất luật nghiệp vụ
8
-
9
- Trích xuất và liệt kê toàn bộ business rule, điều kiện và ràng buộc từ yêu cầu.
10
-
11
- ## Khi nào trigger
12
- - "liệt kê business rule cho [X]" / "feature này có luật nghiệp vụ gì"
13
- - Sau spec-breakdown, khi cần làm rõ logic điều kiện trước khi thiết kế TC
14
- - Feature có nhiều điều kiện AND/OR, phân quyền, tính toán, giới hạn
15
-
16
- ## Khi KHÔNG trigger
17
- - Cần bóc tách tổng thể spec → dùng spec-breakdown
18
- - Cần luồng dữ liệu → dùng data-flow
19
- - Cần phân tích rủi ro / lập test plan → thuộc qa-planner (skill test-plan)
20
-
21
- ---
22
-
23
- ## Phase 1 — Quét
24
-
25
- 1. Đọc spec đã bóc tách (output của spec-breakdown) hoặc tài liệu gốc.
26
- 2. Quét tìm: điều kiện ("nếu… thì…"), ràng buộc field, giới hạn (min/max, rate limit),
27
- quy tắc phân quyền, công thức tính, quy tắc trạng thái, default value.
28
-
29
- ---
30
-
31
- ## Phase 2 — Cấu trúc hoá
32
-
33
- Mỗi rule ghi dưới dạng bảng:
34
-
35
- | ID | Rule | Điều kiện | Kết quả | Nguồn | Ghi chú/Ưu tiên |
36
- |---|---|---|---|---|---|
37
- | BR-01 | … | … | … | spec §x | … |
38
-
39
- Phân loại rule:
40
- - VALIDATION: ràng buộc input (định dạng, bắt buộc, độ dài, range).
41
- - AUTHORIZATION: ai được làm gì.
42
- - CALCULATION: công thức, làm tròn, đơn vị.
43
- - STATE: điều kiện chuyển trạng thái hợp lệ vs cấm.
44
- - LIMIT: rate limit, quota, concurrent.
45
-
46
- Với rule có nhiều điều kiện kết hợp → gợi ý dựng **Decision Table** (đầu vào cho qa-designer).
47
-
48
- ---
49
-
50
- ## Output
51
-
52
- Ghi vào **mục Business Rules** của `{paths.qc_dir}/{UC-ID}/REQUIREMENT_ANALYSIS.md`
53
- (KHÔNG tạo file riêng — qc-analyze chỉ trả 2 file: `REQUIREMENT_ANALYSIS.md` + `DOC_GAPS.md`):
54
-
55
- - Bảng business rule có ID (BR-xx) để TC trace ngược về.
56
- - Gợi ý các rule cần Decision Table / BVA khi sang qa-designer.
57
-
58
- Rule MÂU THUẪN / KHÔNG RÕ → ghi vào `{paths.qc_dir}/{UC-ID}/DOC_GAPS.md`
59
- (loại CONTRADICTORY / AMBIGUOUS, cột "Ảnh hưởng" trỏ BR-xx).
@@ -1,64 +0,0 @@
1
- ---
2
- version: 1.0
3
- updated: 2026-06-11
4
- ported_from: ai-automation-qc-base
5
- ---
6
-
7
- # Data Flow — Phân tích luồng dữ liệu
8
-
9
- Phân tích luồng dữ liệu, input/output, state và điểm tích hợp của feature.
10
-
11
- ## Khi nào trigger
12
- - "phân tích data flow cho [X]" / "dữ liệu đi qua đâu"
13
- - Feature có nhiều bước, qua nhiều màn hình/API/DB, hoặc tích hợp Kafka/service khác
14
- - Cần xác định điểm tích hợp trước khi thiết kế integration/e2e TC
15
-
16
- ## Khi KHÔNG trigger
17
- - Chỉ cần bóc tách spec tổng quan → dùng spec-breakdown
18
- - Chỉ cần luật nghiệp vụ → dùng business-rules
19
- - Thiết kế integration TC → dùng qa-designer/integration
20
-
21
- ---
22
-
23
- ## Phase 1 — Lập bản đồ
24
-
25
- Với mỗi luồng nghiệp vụ, xác định:
26
- 1. ĐIỂM BẮT ĐẦU: actor/sự kiện kích hoạt + dữ liệu đầu vào.
27
- 2. CÁC CHẶNG: UI → API → service → DB → message queue → service ngoài.
28
- 3. BIẾN ĐỔI: dữ liệu được tạo/sửa/xoá/validate ở mỗi chặng.
29
- 4. ĐIỂM KẾT THÚC: output, side-effect (email, notification, audit log).
30
-
31
- ---
32
-
33
- ## Phase 2 — Mô tả
34
-
35
- Thể hiện luồng dạng bước tuần tự hoặc sơ đồ text:
36
-
37
- ```
38
- [User submit form]
39
- → POST /api/... (payload: ...)
40
- → Service validate (rule BR-xx)
41
- → DB insert bảng X
42
- → Kafka topic Y (event Z)
43
- → UI hiển thị kết quả / trạng thái
44
- ```
45
-
46
- Đánh dấu cho mỗi chặng:
47
- - INTEGRATION POINT (nơi cần integration test).
48
- - STATE CHANGE (dữ liệu/trạng thái thay đổi → cần verify + cleanup).
49
- - FAILURE POINT (nơi có thể lỗi: timeout, validation fail, partial commit).
50
-
51
- ---
52
-
53
- ## Output
54
-
55
- Ghi vào **mục Data Flow** của `{paths.qc_dir}/{UC-ID}/REQUIREMENT_ANALYSIS.md`
56
- (KHÔNG tạo file riêng — qc-analyze chỉ trả 2 file: `REQUIREMENT_ANALYSIS.md` + `DOC_GAPS.md`):
57
-
58
- - Sơ đồ/list luồng dữ liệu cho mỗi kịch bản chính.
59
- - Danh sách integration point + state change + failure point.
60
- - Gợi ý loại test cần cho từng điểm (gui-feature / integration / e2e) khi sang qa-designer.
61
- - Dữ liệu/trạng thái cần chuẩn bị & cleanup → đầu vào fixture cho qa-runner.
62
-
63
- Chặng nào luồng/hành vi chưa rõ (vd lỗi xử lý ra sao, retry, partial commit) →
64
- ghi vào `{paths.qc_dir}/{UC-ID}/DOC_GAPS.md` (loại MISSING / OPEN QUESTION).
@@ -1,61 +0,0 @@
1
- ---
2
- version: 1.0
3
- updated: 2026-06-11
4
- ported_from: ai-automation-qc-base
5
- ---
6
-
7
- # Spec Breakdown — Bóc tách yêu cầu
8
-
9
- Bóc tách spec/PRD/user story thô thành mô tả yêu cầu có cấu trúc cho QC.
10
-
11
- ## Khi nào trigger
12
- - "phân tích spec/PRD cho feature [X]" / "bóc tách yêu cầu"
13
- - Nhận tài liệu thô (PRD, user story, mô tả Figma, email) cần làm rõ trước khi thiết kế TC
14
- - Là bước ĐẦU TIÊN của pipeline, trước qa-planner
15
-
16
- ## Khi KHÔNG trigger
17
- - Cần phân tích rủi ro / what-if → dùng qa-planner
18
- - Cần trích riêng business rule → dùng business-rules
19
- - Cần thiết kế test case → dùng qa-designer
20
-
21
- ---
22
-
23
- ## Phase 1 — Thu thập
24
-
25
- 1. Đọc toàn bộ tài liệu nguồn QC cung cấp (PRD, user story, mockup, ghi chú).
26
- 2. **Bỏ qua văn bản gạch ngang (strikethrough)** — đó là nội dung đã huỷ, KHÔNG đưa
27
- vào phân tích/BR/AC. Với file Confluence/HTML/MHTML: phát hiện qua thẻ `<s>`,
28
- `<strike>`, `<del>` hoặc style `text-decoration: line-through`.
29
- 3. Xác định: feature name, actor/role, mục tiêu nghiệp vụ, phạm vi (in/out scope).
30
- 4. Đánh dấu phần MƠ HỒ / THIẾU → ghi vào `DOC_GAPS.md` (gap GAP-xx).
31
-
32
- ---
33
-
34
- ## Phase 2 — Bóc tách
35
-
36
- Tách yêu cầu thành các khối:
37
-
38
- A. TỔNG QUAN: mục tiêu, actor, giá trị nghiệp vụ.
39
- B. CHỨC NĂNG: list từng chức năng (visible + ẩn + integration point).
40
- C. INPUT/OUTPUT: mỗi chức năng có input gì, output gì, ràng buộc field.
41
- D. TRẠNG THÁI & LUỒNG: các state, điều kiện chuyển, happy path + alternate flow.
42
- E. PHỤ THUỘC: hệ thống/API/module liên quan.
43
- F. GIẢ ĐỊNH & CÂU HỎI MỞ: điều suy ra được vs điều cần dev/BA xác nhận.
44
-
45
- ---
46
-
47
- ## Output
48
-
49
- ⚠️ `/qc-analyze` chỉ ghi **ĐÚNG 2 FILE** cho mỗi UC, đặt trong thư mục QC **lộ ra ngoài**
50
- `{paths.qc_dir}/{UC-ID}/` (mặc định `docs/{UC-ID}/` — KHÔNG để trong `.agent/` ẩn):
51
- `REQUIREMENT_ANALYSIS.md` + `DOC_GAPS.md`. KHÔNG tách mỗi bước phân tích thành file riêng.
52
-
53
- Phần spec-breakdown là **mục đầu tiên** của `REQUIREMENT_ANALYSIS.md`:
54
- - Bảng chức năng + input/output/constraint
55
- - Sơ đồ/list luồng chính & phụ
56
- - Danh sách giả định và câu hỏi mở (đánh dấu rõ điều CHƯA chắc)
57
-
58
- Đồng thời ghi mọi khoảng trống phát hiện vào `{paths.qc_dir}/{UC-ID}/DOC_GAPS.md`
59
- (theo `{paths.qc_skills_dir}/qa-analyst/DOC_GAPS.template.md`), mỗi gap có ID `GAP-xx`.
60
-
61
- Kết thúc bằng gợi ý: feature đã đủ rõ để chuyển sang `qa-planner` (phân tích rủi ro) chưa.