@edupia-tutor/spec-driven-docs 0.14.0 → 0.14.2

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 (162) hide show
  1. package/bin/index.js +12 -1
  2. package/commands/debug.md +436 -436
  3. package/commands/debug.tmpl +111 -111
  4. package/commands/define-product.md +350 -345
  5. package/commands/define-product.tmpl +69 -64
  6. package/commands/dev-gen-test.md +365 -365
  7. package/commands/dev-gen-test.tmpl +63 -63
  8. package/commands/dev-run-test.md +376 -376
  9. package/commands/dev-run-test.tmpl +74 -74
  10. package/commands/dev-smoke-test.md +341 -341
  11. package/commands/dev-smoke-test.tmpl +60 -60
  12. package/commands/fix-bug.md +403 -403
  13. package/commands/fix-bug.tmpl +78 -78
  14. package/commands/generate-bdd.md +513 -513
  15. package/commands/generate-bdd.tmpl +211 -211
  16. package/commands/generate-code.md +481 -483
  17. package/commands/generate-code.tmpl +179 -181
  18. package/commands/generate-design-spec.md +497 -497
  19. package/commands/generate-design-spec.tmpl +220 -220
  20. package/commands/generate-prd.md +452 -400
  21. package/commands/generate-prd.tmpl +50 -200
  22. package/commands/generate-spec-manifest.md +340 -340
  23. package/commands/generate-spec-manifest.tmpl +59 -59
  24. package/commands/generate-tech-docs.md +365 -365
  25. package/commands/generate-tech-docs.tmpl +84 -84
  26. package/commands/learn.md +347 -347
  27. package/commands/learn.tmpl +22 -22
  28. package/commands/map-testids.md +322 -322
  29. package/commands/map-testids.tmpl +41 -41
  30. package/commands/propose-scenario.md +335 -335
  31. package/commands/propose-scenario.tmpl +54 -54
  32. package/commands/qc-analyze.md +323 -324
  33. package/commands/qc-analyze.tmpl +42 -43
  34. package/commands/qc-design-test.md +304 -304
  35. package/commands/qc-design-test.tmpl +23 -23
  36. package/commands/qc-plan.md +297 -297
  37. package/commands/qc-plan.tmpl +16 -16
  38. package/commands/qc-report.md +302 -302
  39. package/commands/qc-report.tmpl +21 -21
  40. package/commands/qc-review.md +298 -298
  41. package/commands/qc-review.tmpl +17 -17
  42. package/commands/qc-run-test.md +337 -337
  43. package/commands/qc-run-test.tmpl +35 -35
  44. package/commands/refine-prd.md +428 -430
  45. package/commands/refine-prd.tmpl +62 -62
  46. package/commands/report-bug.md +351 -351
  47. package/commands/report-bug.tmpl +70 -70
  48. package/commands/review-code.md +364 -364
  49. package/commands/review-code.tmpl +39 -39
  50. package/commands/review-context.md +578 -580
  51. package/commands/review-context.tmpl +212 -212
  52. package/commands/review-tech-docs.md +427 -427
  53. package/commands/review-tech-docs.tmpl +146 -146
  54. package/commands/setup-ai-first.md +239 -239
  55. package/commands/setup-ai-first.tmpl +133 -133
  56. package/commands/sync.md +145 -145
  57. package/commands/sync.tmpl +93 -93
  58. package/commands/update-framework.md +88 -88
  59. package/commands/update-framework.tmpl +36 -36
  60. package/commands/validate-traces.md +381 -381
  61. package/commands/validate-traces.tmpl +100 -100
  62. package/core/FRAMEWORK_VERSION +1 -1
  63. package/core/commands/debug.md +436 -436
  64. package/core/commands/define-product.md +350 -345
  65. package/core/commands/dev-gen-test.md +365 -365
  66. package/core/commands/dev-run-test.md +376 -376
  67. package/core/commands/dev-smoke-test.md +341 -341
  68. package/core/commands/fix-bug.md +403 -403
  69. package/core/commands/generate-bdd.md +513 -513
  70. package/core/commands/generate-code.md +481 -483
  71. package/core/commands/generate-design-spec.md +497 -497
  72. package/core/commands/generate-prd.md +452 -400
  73. package/core/commands/generate-spec-manifest.md +340 -340
  74. package/core/commands/generate-tech-docs.md +365 -365
  75. package/core/commands/learn.md +347 -347
  76. package/core/commands/map-testids.md +322 -322
  77. package/core/commands/propose-scenario.md +335 -335
  78. package/core/commands/qc-analyze.md +323 -324
  79. package/core/commands/qc-design-test.md +304 -304
  80. package/core/commands/qc-plan.md +297 -297
  81. package/core/commands/qc-report.md +302 -302
  82. package/core/commands/qc-review.md +298 -298
  83. package/core/commands/qc-run-test.md +337 -337
  84. package/core/commands/refine-prd.md +428 -430
  85. package/core/commands/report-bug.md +351 -351
  86. package/core/commands/review-code.md +364 -364
  87. package/core/commands/review-context.md +578 -580
  88. package/core/commands/review-tech-docs.md +427 -427
  89. package/core/commands/setup-ai-first.md +239 -239
  90. package/core/commands/sync.md +145 -145
  91. package/core/commands/update-framework.md +88 -88
  92. package/core/commands/validate-traces.md +381 -381
  93. package/core/skills/code/SKILL.md +389 -389
  94. package/core/skills/debug/SKILL.md +391 -391
  95. package/core/skills/design-spec/SKILL.md +318 -318
  96. package/core/skills/discovery/SKILL.md +7 -547
  97. package/core/skills/prd/SKILL.md +298 -394
  98. package/core/skills/setup-ai-first/SKILL.md +80 -80
  99. package/core/skills/spec/SKILL.md +178 -178
  100. package/core/skills/test/SKILL.md +604 -604
  101. package/core/steps/capture-lesson.md +44 -44
  102. package/core/steps/context-loader.md +175 -175
  103. package/core/steps/gate.md +54 -54
  104. package/core/steps/report-footer.md +52 -52
  105. package/core/steps/review-fanout.md +85 -87
  106. package/core/steps/spawn-agent.md +45 -45
  107. package/core/steps/trace-mirror.md +21 -21
  108. package/core/templates/architecture.template.md +37 -37
  109. package/core/templates/design-spec.template.md +77 -77
  110. package/core/templates/platform-guide.template.md +47 -47
  111. package/core/templates/prd.template.md +107 -232
  112. package/core/templates/product-definition.template.md +101 -88
  113. package/core/templates/project-context.yaml +2 -2
  114. package/docs/01-getting-started/core-concepts.md +1 -1
  115. package/docs/01-getting-started/quickstart.md +7 -7
  116. package/docs/02-guides/developer/bdd-and-trace.md +1 -1
  117. package/docs/02-guides/developer/scenarios.md +5 -5
  118. package/docs/02-guides/product-owner/handoff-checklist.md +1 -1
  119. package/docs/02-guides/product-owner/scenarios.md +23 -23
  120. package/docs/02-guides/tester/bug-reporting.md +2 -2
  121. package/docs/02-guides/tester/reading-specs.md +2 -2
  122. package/docs/02-guides/tester/scenarios.md +1 -1
  123. package/docs/02-guides/tester/spec-manifest.md +3 -3
  124. package/docs/02-guides/tester/workflow.md +1 -1
  125. package/docs/03-concepts/architecture.md +3 -3
  126. package/docs/03-concepts/pipeline.md +3 -3
  127. package/docs/04-operations/publishing.md +20 -3
  128. package/docs/04-operations/sync-and-update.md +5 -5
  129. package/docs/05-reference/command-cheatsheet.md +2 -2
  130. package/docs/05-reference/commands.md +8 -8
  131. package/package.json +1 -1
  132. package/scripts/migrate-specs.js +5 -3
  133. package/scripts/rename-prd-files.js +174 -0
  134. package/skills/code/SKILL.md +389 -389
  135. package/skills/code/SKILL.tmpl +56 -56
  136. package/skills/debug/SKILL.md +391 -391
  137. package/skills/debug/SKILL.tmpl +60 -60
  138. package/skills/design-spec/SKILL.md +318 -318
  139. package/skills/design-spec/SKILL.tmpl +37 -37
  140. package/skills/discovery/SKILL.md +7 -547
  141. package/skills/discovery/SKILL.tmpl +7 -140
  142. package/skills/prd/SKILL.md +298 -394
  143. package/skills/prd/SKILL.tmpl +40 -151
  144. package/skills/setup-ai-first/SKILL.md +80 -80
  145. package/skills/setup-ai-first/SKILL.tmpl +28 -28
  146. package/skills/spec/SKILL.md +178 -178
  147. package/skills/spec/SKILL.tmpl +20 -20
  148. package/skills/test/SKILL.md +604 -604
  149. package/skills/test/SKILL.tmpl +44 -44
  150. package/steps/capture-lesson.md +44 -44
  151. package/steps/context-loader.md +175 -175
  152. package/steps/gate.md +54 -54
  153. package/steps/report-footer.md +52 -52
  154. package/steps/review-fanout.md +85 -87
  155. package/steps/spawn-agent.md +45 -45
  156. package/steps/trace-mirror.md +21 -21
  157. package/templates/architecture.template.md +37 -37
  158. package/templates/design-spec.template.md +77 -77
  159. package/templates/platform-guide.template.md +47 -47
  160. package/templates/prd.template.md +107 -232
  161. package/templates/product-definition.template.md +101 -88
  162. package/templates/project-context.yaml +2 -2
@@ -1,10 +1,10 @@
1
1
  ---
2
- description: Generates BDD .feature files from an approved PRD, or generates technical design documents. Trigger when: "/generate-bdd", "/generate-tech-docs", "tạo BDD", "tạo spec", "generate feature file", "write BDD scenarios", "tạo technical design", "tech design", "sinh tech docs", "API design", "sinh .feature".
2
+ description: Sinh file BDD .feature từ một PRD đã duyệt, hoặc sinh tài liệu technical design. Trigger when: "/generate-bdd", "/generate-tech-docs", "tạo BDD", "tạo spec", "generate feature file", "write BDD scenarios", "tạo technical design", "tech design", "sinh tech docs", "API design", "sinh .feature".
3
3
  ---
4
4
 
5
5
  # Spec Skills — BDD & Technical Design
6
6
 
7
- This skill handles two commands: `/generate-bdd` to create BDD feature files, and `/generate-tech-docs` to create technical design documents.
7
+ Skill này xử hai lệnh: `/generate-bdd` để tạo file BDD feature, `/generate-tech-docs` để tạo tài liệu technical design.
8
8
 
9
9
  ---
10
10
 
@@ -12,102 +12,102 @@ This skill handles two commands: `/generate-bdd` to create BDD feature files, an
12
12
 
13
13
  ### Gate
14
14
 
15
- <!-- Directory: specs/*/*/prd.md -->
16
- # Gate — Universal Entry Procedure
15
+ <!-- Directory: specs/*/*/*.md (file PRD ở gốc feature folder) -->
16
+ # Gate — Quy trình vào chuẩn cho mọi lệnh
17
17
 
18
- Every command must execute this gate before proceeding with its specific logic.
18
+ Mọi lệnh PHẢI chạy gate này trước khi thực thi phần logic riêng của nó.
19
19
 
20
- ## Step 0 — Sub-Agent Mode Check
20
+ ## Bước 0 — Kiểm tra chế độ Sub-Agent
21
21
 
22
- Before anything else, check if `$ARGUMENTS` is a JSON payload from an orchestrator:
22
+ Trước tiên, kiểm tra xem `$ARGUMENTS` phải payload JSON từ một orchestrator hay không:
23
23
 
24
- 1. Attempt to parse `$ARGUMENTS` as JSON.
25
- 2. If it parses successfully **and** contains `"_agent_mode": true`:
26
- - **Skip Steps 1, 2, and 3 of this Gate entirely.**
27
- - Set target file = `payload.target_file`
28
- - Set loaded context = `payload.context` (do NOT run context-loader.md)
29
- - Set UC scope = `payload.uc_id` (process only this UC)
30
- - Set line range = `payload.uc_section` (read only that PRD section)
31
- - Proceed directly to the command-specific logic.
32
- 3. If `$ARGUMENTS` is not JSON or `_agent_mode` is absent continue to Step 1 (normal mode).
24
+ 1. Thử parse `$ARGUMENTS` dưới dạng JSON.
25
+ 2. Nếu parse thành công **và** chứa `"_agent_mode": true`:
26
+ - **Bỏ qua hoàn toàn Bước 1, 2 3 của Gate này.**
27
+ - Đặt target file = `payload.target_file`
28
+ - Đặt loaded context = `payload.context` (KHÔNG chạy context-loader.md)
29
+ - Đặt phạm vi UC = `payload.uc_id` (chỉ xử UC này)
30
+ - Đặt line range = `payload.uc_section` (chỉ đọc đúng section đó của PRD)
31
+ - Đi thẳng tới phần logic riêng của lệnh.
32
+ 3. Nếu `$ARGUMENTS` không phải JSON hoặc không có `_agent_mode` tiếp tục sang Bước 1 (chế độ thường).
33
33
 
34
- ## Step 0-B — Model Check
34
+ ## Bước 0-B — Kiểm tra Model
35
35
 
36
- *Skip this step if `_agent_mode: true` (sub-agent — orchestrator already validated).*
36
+ *Bỏ qua bước này nếu `_agent_mode: true` (sub-agent — orchestrator đã kiểm tra rồi).*
37
37
 
38
- Complex generation and review commands require strong reasoning.
39
- Using a smaller model risks missed edge cases, incomplete spec analysis, and architecture violations.
38
+ Các lệnh sinh nội dung và review phức tạp đòi hỏi khả năng suy luận mạnh.
39
+ Dùng model nhỏ hơn sẽ rủi ro: bỏ sót edge case, phân tích spec thiếu sót, vi phạm kiến trúc.
40
40
 
41
- Display and wait for response:
41
+ Hiển thị chờ phản hồi:
42
42
 
43
43
  ```
44
44
  ⚙️ MODEL CHECK
45
45
  ──────────────────────────────────────────────────────────────────
46
- Recommended : claude-opus-4 (or latest Opus model)
47
- Why needed : Spec analysis, architecture review, code generation
48
- require deep reasoning. Smaller models miss edge cases.
46
+ Recommended : claude-opus-4 (hoặc model Opus mới nhất)
47
+ Why needed : Phân tích spec, review kiến trúc, sinh code đòi hỏi
48
+ suy luận sâu. Model nhỏ hơn dễ bỏ sót edge case.
49
49
 
50
- To switch in Claude Code:
51
- • Settings → Model → select "claude-opus"
52
- or: /model → choose claude-opus
50
+ Cách đổi trong Claude Code:
51
+ • Settings → Model → chọn "claude-opus"
52
+ hoặc: /model → chọn claude-opus
53
53
 
54
- Running on claude-opus?
55
- Y — yes, on claude-opus → proceed
56
- S — skip check (I accept lower quality risk with current model)
54
+ Đang chạy claude-opus?
55
+ Y — đúng, đang dùng claude-opus → tiếp tục
56
+ S — bỏ qua kiểm tra (tôi chấp nhận rủi ro chất lượng thấp hơn với model hiện tại)
57
57
  ──────────────────────────────────────────────────────────────────
58
58
  ```
59
59
 
60
- - "Y" → proceed to Step 1.
61
- - "S" → proceed to Step 1 (user accepts risk, add ⚠️ to final report).
62
- - "N" or anything else → **STOP.** Output: "Please switch to claude-opus, then re-run this command."
60
+ - "Y" → tiếp tục sang Bước 1.
61
+ - "S" → tiếp tục sang Bước 1 (người dùng chấp nhận rủi ro, thêm ⚠️ vào report cuối).
62
+ - "N" hoặc bất kỳ giá trị nào khác → **DỪNG.** Xuất: "Vui lòng chuyển sang claude-opus rồi chạy lại lệnh này."
63
63
 
64
- ## Step 1 — Resolve Target File
64
+ ## Bước 1 — Xác định Target File
65
65
 
66
- 1. If `$ARGUMENTS` is provided and points to an existing file → use it directly as the target.
67
- 2. If `$ARGUMENTS` is a **bare UC-ID / ticket ID / partial name** (no path) → resolve it to a file by globbing the feature-package layout. The `{prd-slug}` is **not known yet**, so use a `*` wildcard for that segment, and a recursive `**` under `bdd/` so the platform subfolders (`bdd/web/`, `bdd/app/`, `bdd/system/`) are all covered:
68
- - **BDD commands** (target is a `.feature`): `{specs_dir}/{domain}/*/bdd/**/{UC-ID}*.feature` — or `{specs_dir}/*/*/bdd/**/{UC-ID}*.feature` if the domain is also unknown. If a platform/scope is implied by the command (e.g. a system tech-doc needs the `system/` BDD), prefer the match under that platform subfolder.
69
- - **PRD commands** (target is `prd.md`): `{specs_dir}/{domain}/*/prd.md` (match the feature folder whose id corresponds), else `{specs_dir}/*/*/prd.md`.
70
- - **tech-docs commands**: `{specs_dir}/{domain}/*/tech-docs/{UC-ID}*-tech-design*.md`.
71
- - **design-spec commands**: `{specs_dir}/{domain}/*/design-spec/{TICKET-ID}*.md`.
66
+ 1. Nếu `$ARGUMENTS` được cung cấp trỏ tới một file tồn tại dùng trực tiếp làm target.
67
+ 2. Nếu `$ARGUMENTS` một **UC-ID / ticket ID / tên rút gọn** (không path) → phân giải thành file bằng cách glob theo bố cục feature-package. `{prd-slug}` lúc này **chưa biết**, nên dùng wildcard `*` cho segment đó, `**` đệ quy dưới `bdd/` để phủ hết các thư mục con theo platform (`bdd/web/`, `bdd/app/`, `bdd/system/`):
68
+ - **Lệnh BDD** (target `.feature`): `{specs_dir}/{domain}/*/bdd/**/{UC-ID}*.feature` — hoặc `{specs_dir}/*/*/bdd/**/{UC-ID}*.feature` nếu domain cũng chưa biết. Nếu lệnh ngụ ý một platform/scope cụ thể (vd: system tech-doc cần BDD `system/`), ưu tiên kết quả trong thư mục con platform đó.
69
+ - **Lệnh PRD** (target file PRD `{TICKET-ID}-{prd-slug}.md` — file `.md` duy nhất ở gốc feature folder, cạnh `bdd/`): `{specs_dir}/{domain}/*/{TICKET-ID}*.md` nếu biết TICKET-ID; nếu không, `{specs_dir}/{domain}/*/*.md` (khớp feature folder id tương ứng), hoặc `{specs_dir}/*/*/*.md` nếu domain cũng chưa biết. *(Glob `*/*.md` ở cấp gốc folder chỉ khớp PRD — tech-docs/design-spec `.md` nằm sâu hơn trong thư mục con.)*
70
+ - **Lệnh tech-docs**: `{specs_dir}/{domain}/*/tech-docs/{UC-ID}*-tech-design*.md`.
71
+ - **Lệnh design-spec**: `{specs_dir}/{domain}/*/design-spec/{TICKET-ID}*.md`.
72
72
 
73
- Once a file matches: set it as the target **and** record `domain` + `prd_slug` from its path (per the extraction rule in `context-loader.md` Step 1 — `prd_slug` = first segment after `{specs_dir}/{domain}/`). Every path the command later reads or writes (sibling BDD/tech-docs/design-spec/trace) uses **that resolved `prd_slug`**, so all artifacts stay in one feature package. If several files match (e.g. multiple platforms), pick per the command's platform/scope or list them and ask.
74
- 3. If `$ARGUMENTS` is empty or no match found:
75
- - List files in the relevant directory for this command (e.g., `specs/*/*/prd.md` for PRD commands, `specs/*/*/bdd/**/*.feature` for BDD commands).
76
- - Present the list to the user and ask: "Which file do you want to work with? (Enter number or filename)"
77
- - Wait for user selection before continuing.
73
+ Khi một file khớp: đặt làm target **và** ghi lại `domain` + `prd_slug` từ path của nó (theo quy tắc trích xuất trong `context-loader.md` Bước 1 — `prd_slug` = segment đầu tiên sau `{specs_dir}/{domain}/`). Mọi path lệnh đọc/ghi về sau (BDD/tech-docs/design-spec/trace cùng cấp) đều dùng **`prd_slug` đã phân giải đó**, nên tất cả artifact nằm chung một feature package. Nếu nhiều file khớp (vd: nhiều platform), chọn theo platform/scope của lệnh hoặc liệt kê ra và hỏi.
74
+ 3. Nếu `$ARGUMENTS` rỗng hoặc không tìm thấy file khớp:
75
+ - Liệt các file trong thư mục liên quan của lệnh này (vd: `specs/*/*/*.md` file PRD ở gốc mỗi feature folder — cho lệnh PRD, `specs/*/*/bdd/**/*.feature` cho lệnh BDD).
76
+ - Hiển thị danh sách cho người dùng và hỏi: "Bạn muốn làm việc với file nào? (Nhập số thứ tự hoặc tên file)"
77
+ - Chờ người dùng chọn rồi mới tiếp tục.
78
78
 
79
- ## Step 2 — Execute Context Loader
79
+ ## Bước 2 — Chạy Context Loader
80
80
 
81
- Load all project context by following the procedure in `steps/context-loader.md`.
82
- Store all loaded context in memory for use throughout this command session.
81
+ Nạp toàn bộ context của dự án bằng cách làm theo quy trình trong `steps/context-loader.md`.
82
+ Lưu toàn bộ context đã nạp vào bộ nhớ để dùng xuyên suốt phiên làm việc của lệnh.
83
83
 
84
- ## Step 3 — CHECKPOINT
84
+ ## Bước 3 — CHECKPOINT
85
85
 
86
- After completing Steps 1 and 2, display a summary and wait for confirmation:
86
+ Sau khi hoàn thành Bước 1 2, hiển thị bản tóm tắt chờ xác nhận:
87
87
 
88
88
  ```
89
89
  CHECKPOINT
90
90
  -----------
91
91
  Target : {resolved file path}
92
- Project : {project.name from project-context.yaml}
92
+ Project : {project.name từ project-context.yaml}
93
93
  Tech stack : {language} / {framework}
94
- Module : {module if set, else "not configured"}
95
- Domains : {comma-separated domain list}
94
+ Module : {module nếu có, else "not configured"}
95
+ Domains : {danh sách domain, ngăn cách bởi dấu phẩy}
96
96
 
97
- Proceed? (Y/N)
97
+ Tiếp tục? (Y/N)
98
98
  ```
99
99
 
100
- Wait for explicit "Y" or "N" from the user before continuing.
101
- - "Y" → proceed to the command-specific steps below.
102
- - "N" → stop and ask what the user wants to change.
100
+ Chờ người dùng trả lời rõ ràng "Y" hoặc "N" rồi mới tiếp tục.
101
+ - "Y" → tiếp tục sang các bước riêng của lệnh bên dưới.
102
+ - "N" → dừng lại hỏi người dùng muốn thay đổi gì.
103
103
 
104
104
 
105
- Also verify: Check that the PRD `Status` is `approved` (not `draft`).
106
- - If `draft`: warn "PRD is still draft. Proceed anyway? Findings from /refine-prd may not be addressed yet."
105
+ Cũng verify: Kiểm tra PRD `Status` `approved` (không phải `draft`).
106
+ - Nếu `draft`: cảnh báo "PRD vẫn đang draft. Vẫn tiếp tục? Findings từ /refine-prd thể chưa được xử lý."
107
107
 
108
108
  ### UC Decomposition
109
109
 
110
- For each Use Case in the PRD, derive scenarios. Present outline:
110
+ Với mỗi Use Case trong PRD, suy ra scenario. Trình bày outline:
111
111
 
112
112
  ```
113
113
  {DOMAIN}-UC1: {Name}
@@ -121,15 +121,15 @@ For each Use Case in the PRD, derive scenarios. Present outline:
121
121
  ...
122
122
  ```
123
123
 
124
- **CHECKPOINT** — Ask: "Does this outline look correct? Any missing scenarios?"
125
- Wait for confirmation before generating files.
124
+ **CHECKPOINT** — Hỏi: "Outline này đúng chưa? scenario nào còn thiếu không?"
125
+ Chờ xác nhận trước khi sinh file.
126
126
 
127
127
  ### Generate
128
128
 
129
- For each UC, write `specs/{domain}/{prd-slug}/bdd/{UC-ID}-{slug}.feature`:
129
+ Với mỗi UC, ghi `specs/{domain}/{prd-slug}/bdd/{UC-ID}-{slug}.feature`:
130
130
 
131
131
  ```gherkin
132
- # @trace.source=specs/{domain}/{prd-slug}/prd.md
132
+ # @trace.source=specs/{domain}/{prd-slug}/{TICKET-ID}-{prd-slug}.md
133
133
  # @trace.uc={UC-ID}
134
134
  Feature: {UC Name}
135
135
 
@@ -162,12 +162,12 @@ Feature: {UC Name}
162
162
 
163
163
  ### Quality Check
164
164
 
165
- After generating, self-evaluate:
166
- - [ ] Every acceptance criteria from PRD has at least one scenario
167
- - [ ] Every business rule is covered by at least one scenario
168
- - [ ] Error scenarios are present (validation, not-found, unauthorized)
169
- - [ ] Scenarios are atomic (one behavior per scenario)
170
- - [ ] No implementation details in feature files (no SQL, no class names)
165
+ Sau khi sinh, tự đánh giá:
166
+ - [ ] Mỗi acceptance criteria từ PRD ít nhất một scenario
167
+ - [ ] Mỗi business rule được phủ bởi ít nhất một scenario
168
+ - [ ] error scenario (validation, not-found, unauthorized)
169
+ - [ ] Scenario atomic (một behavior mỗi scenario)
170
+ - [ ] Không có chi tiết implementation trong feature file (không SQL, không tên class)
171
171
 
172
172
  ### Output
173
173
 
@@ -181,38 +181,38 @@ Files created:
181
181
  Quality: {score}%
182
182
  ```
183
183
 
184
- # Report Footer — Standard Command Output Format
184
+ # Report Footer — Định dạng output chuẩn cho mọi lệnh
185
185
 
186
- Every command report must end with this standard footer section.
186
+ Mọi report của lệnh phải kết thúc bằng section footer chuẩn này.
187
187
 
188
188
  ## Status Badge
189
189
 
190
- Choose one based on outcome:
191
- - `✅ Complete` — all steps succeeded, no issues found
192
- - `❌ Failed` — command could not complete due to a blocking error
193
- - `⚠️ Warnings` — completed with non-blocking issues that should be reviewed
190
+ Chọn một theo kết quả:
191
+ - `✅ Complete` — mọi bước thành công, không vấn đề
192
+ - `❌ Failed` — lệnh không hoàn thành được do lỗi chặn
193
+ - `⚠️ Warnings` — hoàn thành nhưng vấn đề không chặn, nên review lại
194
194
 
195
195
  ## Output Artifacts
196
196
 
197
- List every file created or modified by this command:
197
+ Liệt mọi file được tạo hoặc sửa bởi lệnh này:
198
198
  ```
199
199
  Output Artifacts:
200
- {created|updated} {file-path} ({brief description})
201
- {created|updated} {file-path} ({brief description})
200
+ {created|updated} {file-path} ({ tả ngắn})
201
+ {created|updated} {file-path} ({ tả ngắn})
202
202
  ```
203
203
 
204
- If no files were written (e.g., review or analysis commands) → write `Output Artifacts: none (read-only)`.
204
+ Nếu không ghi file nào (vd: lệnh review hoặc phân tích) → ghi `Output Artifacts: none (read-only)`.
205
205
 
206
206
  ## Pipeline Position
207
207
 
208
- Print a one-line map of the pipeline with the CURRENT command's phase marked `◀ bạn ở đây`,
209
- so the user always sees where this command sits in the end-to-end flow:
208
+ In một đồ pipeline một dòng, đánh dấu phase của lệnh HIỆN TẠI bằng `◀ bạn ở đây`,
209
+ để người dùng luôn thấy lệnh này nằm đâu trong luồng end-to-end:
210
210
 
211
211
  ```
212
212
  Discovery → PRD → [Design Spec] → BDD → Tech Design → Code → Dev Self-Check → QC → Trace Audit
213
213
  ```
214
214
 
215
- Find the current command in this phase legend and mark **its** phase in the map above:
215
+ Tìm lệnh hiện tại trong bảng phase dưới đây đánh dấu **phase của nó** trong sơ đồ trên:
216
216
 
217
217
  | Phase | Commands |
218
218
  |-------|----------|
@@ -226,61 +226,61 @@ Find the current command in this phase legend and mark **its** phase in the map
226
226
  | QC | `/qc-analyze` · `/qc-plan` · `/qc-design-test` · `/qc-review` · `/qc-run-test` · `/qc-report` |
227
227
  | Trace Audit | `/validate-traces` |
228
228
 
229
- For a **review command**, also append the 3-step review loop with the current step marked, e.g.:
229
+ Với **lệnh review**, thêm vòng review 3 bước đánh dấu bước hiện tại, vd:
230
230
  `Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume`.
231
231
 
232
- **Cross-cutting commands** (`/sync`, `/update-framework`, `/fix-bug`, `/debug`, `/learn`,
233
- `/report-bug`, `/propose-scenario`, `/generate-spec-manifest`) sit outside the linear pipeline
234
- **omit the Pipeline line entirely** for these (do not force-fit them onto the map).
232
+ **Lệnh xuyên suốt** (`/sync`, `/update-framework`, `/fix-bug`, `/debug`, `/learn`,
233
+ `/report-bug`, `/propose-scenario`, `/generate-spec-manifest`) nằm ngoài pipeline tuyến tính
234
+ **bỏ hẳn dòng Pipeline** cho các lệnh này (đừng cố nhét chúng vào đồ).
235
235
 
236
- ## Next Command Suggestion
236
+ ## Gợi ý lệnh tiếp theo
237
237
 
238
- Suggest the logical next command based on workflow phase:
238
+ Gợi ý lệnh kế tiếp hợp theo phase của workflow:
239
239
 
240
- | Current command | Suggest next |
240
+ | Lệnh hiện tại | Gợi ý lệnh tiếp theo |
241
241
  |-------------------------|-----------------------------------------------|
242
- | /setup-ai-first | `/define-product` to start your first feature |
242
+ | /setup-ai-first | `/define-product` để bắt đầu feature đầu tiên |
243
243
  | /define-product | `/generate-prd {product-definition-file}` |
244
- | /generate-prd | `/refine-prd {prd-file}` then `/review-context {prd-file}` |
245
- | /refine-prd | Open Review Board → update PRD → `/review-context {prd-file}` |
246
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (then BDD after sign-off); BE: `/generate-bdd {prd-file}` directly; fix PRD if NEEDS_FIX |
247
- | /generate-design-spec | Designer review → Figma links confirmed → PO + Designer sign-off → `/generate-bdd {prd-file}` |
248
- | /generate-bdd | `/review-context {feature-file}` to verify coverage |
249
- | /review-context (BDD) | `/generate-tech-docs {UC-ID}` if APPROVED; regenerate if NEEDS_FIX |
250
- | /qc-analyze | `/qc-plan {UC-ID}` (resolve 🔴 blocker gaps first) |
244
+ | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
245
+ | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
246
+ | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
247
+ | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
248
+ | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
249
+ | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
250
+ | /qc-analyze | `/qc-plan {UC-ID}` (xử các gap blocker 🔴 trước) |
251
251
  | /qc-plan | `/qc-design-test {UC-ID}` |
252
- | /qc-design-test | `/qc-review {UC-ID}` (test-case review) |
253
- | /qc-review (test-case) | `/qc-run-test {UC-ID}` if APPROVED; fix TCs if NEEDS_FIX |
254
- | /qc-run-test | `/qc-report {UC-ID}` then `/qc-review {UC-ID}` (script review) |
255
- | /qc-review (script) | `/qc-report {UC-ID}` then create PR if APPROVED |
256
- | /qc-report | `/validate-traces {UC-ID}` to refresh Living Docs (qc_status) |
252
+ | /qc-design-test | `/qc-review {UC-ID}` (review test-case) |
253
+ | /qc-review (test-case) | `/qc-run-test {UC-ID}` nếu APPROVED; sửa TC nếu NEEDS_FIX |
254
+ | /qc-run-test | `/qc-report {UC-ID}` rồi `/qc-review {UC-ID}` (review script) |
255
+ | /qc-review (script) | `/qc-report {UC-ID}` rồi tạo PR nếu APPROVED |
256
+ | /qc-report | `/validate-traces {UC-ID}` để làm mới Living Docs (qc_status) |
257
257
  | /generate-tech-docs | `/review-tech-docs {tech-design-file}` |
258
- | /review-tech-docs | `/generate-code {feature-file}` if APPROVED; fix doc if NEEDS_FIX |
259
- | /generate-code | First gen → `/review-code {UC-ID}`; re-gen → `/dev-gen-test {UC-ID}` |
258
+ | /review-tech-docs | `/generate-code {feature-file}` nếu APPROVED; sửa doc nếu NEEDS_FIX |
259
+ | /generate-code | Lần gen đầu → `/review-code {UC-ID}`; gen lại → `/dev-gen-test {UC-ID}` |
260
260
  | /dev-gen-test | `/dev-run-test {UC-ID}` |
261
261
  | /dev-run-test (passing) | `/review-code {UC-ID}` |
262
- | /dev-run-test (failing) | `/fix-bug {ticket-id}` or `/debug {error}` |
263
- | /review-code | `/dev-smoke-test {UC-ID}` or create PR |
264
- | /dev-smoke-test | Create PR and link to ticket |
265
- | /validate-traces | DRIFT/UNTRACKED → `/generate-code {UC-ID}`; GAP → `/dev-gen-test {UC-ID}`; all OK → create PR |
266
- | /fix-bug | Create PR and link to ticket |
267
- | /debug | `/fix-bug {ticket-id}` if fix needed |
268
- | /report-bug | Send to dev (`/fix-bug {BUG-ID}`); if coverage gap → `/propose-scenario {UC-ID}` |
269
- | /propose-scenario | Notify PO/Dev to review the proposal in `feedback/bdd-proposals/` |
270
- | /learn | Continue working — lesson applies on next command |
271
- | /sync | `/validate-traces` for full coverage; act on any `📥 tester feedback` surfaced |
272
- | /update-framework | Review `git diff .agent/`, commit; `/sync` for project content |
273
-
274
- Format the footer as:
262
+ | /dev-run-test (failing) | `/fix-bug {ticket-id}` hoặc `/debug {error}` |
263
+ | /review-code | `/dev-smoke-test {UC-ID}` hoặc tạo PR |
264
+ | /dev-smoke-test | Tạo PR link tới ticket |
265
+ | /validate-traces | DRIFT/UNTRACKED → `/generate-code {UC-ID}`; GAP → `/dev-gen-test {UC-ID}`; tất cả OK → tạo PR |
266
+ | /fix-bug | Tạo PR link tới ticket |
267
+ | /debug | `/fix-bug {ticket-id}` nếu cần sửa |
268
+ | /report-bug | Gửi cho dev (`/fix-bug {BUG-ID}`); nếu thiếu coverage → `/propose-scenario {UC-ID}` |
269
+ | /propose-scenario | Báo PO/Dev review proposal trong `feedback/bdd-proposals/` |
270
+ | /learn | Tiếp tục làm việc — lesson áp dụng lệnh kế tiếp |
271
+ | /sync | `/validate-traces` để xem độ phủ đầy đủ; xử lý mọi `📥 tester feedback` được nêu |
272
+ | /update-framework | Review `git diff .agent/`, commit; `/sync` để đồng bộ nội dung dự án |
273
+
274
+ Định dạng footer như sau:
275
275
  ```
276
276
  ---
277
277
  Status : {badge}
278
- {Output Artifacts block}
278
+ {khối Output Artifacts}
279
279
  Pipeline : Discovery → PRD → [BDD ◀ bạn ở đây] → Tech Design → Code → Dev Self-Check → QC → Trace Audit
280
- (review cmd) Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume
281
- Next : {suggested command with example arguments}
280
+ (lệnh review) Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume
281
+ Next : {lệnh gợi ý kèm ví dụ tham số}
282
282
  ```
283
- *(Omit the `Pipeline` line for cross-cutting commands listed above.)*
283
+ *(Bỏ dòng `Pipeline` cho các lệnh xuyên suốt liệt kê ở trên.)*
284
284
 
285
285
 
286
286
  ---
@@ -289,12 +289,12 @@ Next : {suggested command with example arguments}
289
289
 
290
290
  ### Gate
291
291
 
292
- Check BDD quality (read .feature files, verify scenarios are well-formed).
293
- If quality < 80%, halt and report: "BDD quality insufficient. Fix these issues first: [list]"
292
+ Kiểm tra chất lượng BDD (đọc file .feature, verify scenario well-formed).
293
+ Nếu chất lượng < 80%, dừng report: "BDD quality insufficient. Fix these issues first: [list]"
294
294
 
295
295
  ### Generate
296
296
 
297
- Write `specs/{domain}/{prd-slug}/tech-docs/{UC-ID}-tech-design.md`:
297
+ Ghi `specs/{domain}/{prd-slug}/tech-docs/{UC-ID}-tech-design.md`:
298
298
 
299
299
  ```markdown
300
300
  # Technical Design — {UC-ID}: {Feature}
@@ -356,40 +356,40 @@ Sequence for each UC:
356
356
  {List external service calls, event producers/consumers}
357
357
  ```
358
358
 
359
- Instruct: "SA/Lead should review and approve before running /generate-code."
359
+ Hướng dẫn: "SA/Lead nên review approve trước khi chạy /generate-code."
360
360
 
361
- # Report Footer — Standard Command Output Format
361
+ # Report Footer — Định dạng output chuẩn cho mọi lệnh
362
362
 
363
- Every command report must end with this standard footer section.
363
+ Mọi report của lệnh phải kết thúc bằng section footer chuẩn này.
364
364
 
365
365
  ## Status Badge
366
366
 
367
- Choose one based on outcome:
368
- - `✅ Complete` — all steps succeeded, no issues found
369
- - `❌ Failed` — command could not complete due to a blocking error
370
- - `⚠️ Warnings` — completed with non-blocking issues that should be reviewed
367
+ Chọn một theo kết quả:
368
+ - `✅ Complete` — mọi bước thành công, không vấn đề
369
+ - `❌ Failed` — lệnh không hoàn thành được do lỗi chặn
370
+ - `⚠️ Warnings` — hoàn thành nhưng vấn đề không chặn, nên review lại
371
371
 
372
372
  ## Output Artifacts
373
373
 
374
- List every file created or modified by this command:
374
+ Liệt mọi file được tạo hoặc sửa bởi lệnh này:
375
375
  ```
376
376
  Output Artifacts:
377
- {created|updated} {file-path} ({brief description})
378
- {created|updated} {file-path} ({brief description})
377
+ {created|updated} {file-path} ({ tả ngắn})
378
+ {created|updated} {file-path} ({ tả ngắn})
379
379
  ```
380
380
 
381
- If no files were written (e.g., review or analysis commands) → write `Output Artifacts: none (read-only)`.
381
+ Nếu không ghi file nào (vd: lệnh review hoặc phân tích) → ghi `Output Artifacts: none (read-only)`.
382
382
 
383
383
  ## Pipeline Position
384
384
 
385
- Print a one-line map of the pipeline with the CURRENT command's phase marked `◀ bạn ở đây`,
386
- so the user always sees where this command sits in the end-to-end flow:
385
+ In một đồ pipeline một dòng, đánh dấu phase của lệnh HIỆN TẠI bằng `◀ bạn ở đây`,
386
+ để người dùng luôn thấy lệnh này nằm đâu trong luồng end-to-end:
387
387
 
388
388
  ```
389
389
  Discovery → PRD → [Design Spec] → BDD → Tech Design → Code → Dev Self-Check → QC → Trace Audit
390
390
  ```
391
391
 
392
- Find the current command in this phase legend and mark **its** phase in the map above:
392
+ Tìm lệnh hiện tại trong bảng phase dưới đây đánh dấu **phase của nó** trong sơ đồ trên:
393
393
 
394
394
  | Phase | Commands |
395
395
  |-------|----------|
@@ -403,59 +403,59 @@ Find the current command in this phase legend and mark **its** phase in the map
403
403
  | QC | `/qc-analyze` · `/qc-plan` · `/qc-design-test` · `/qc-review` · `/qc-run-test` · `/qc-report` |
404
404
  | Trace Audit | `/validate-traces` |
405
405
 
406
- For a **review command**, also append the 3-step review loop with the current step marked, e.g.:
406
+ Với **lệnh review**, thêm vòng review 3 bước đánh dấu bước hiện tại, vd:
407
407
  `Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume`.
408
408
 
409
- **Cross-cutting commands** (`/sync`, `/update-framework`, `/fix-bug`, `/debug`, `/learn`,
410
- `/report-bug`, `/propose-scenario`, `/generate-spec-manifest`) sit outside the linear pipeline
411
- **omit the Pipeline line entirely** for these (do not force-fit them onto the map).
409
+ **Lệnh xuyên suốt** (`/sync`, `/update-framework`, `/fix-bug`, `/debug`, `/learn`,
410
+ `/report-bug`, `/propose-scenario`, `/generate-spec-manifest`) nằm ngoài pipeline tuyến tính
411
+ **bỏ hẳn dòng Pipeline** cho các lệnh này (đừng cố nhét chúng vào đồ).
412
412
 
413
- ## Next Command Suggestion
413
+ ## Gợi ý lệnh tiếp theo
414
414
 
415
- Suggest the logical next command based on workflow phase:
415
+ Gợi ý lệnh kế tiếp hợp theo phase của workflow:
416
416
 
417
- | Current command | Suggest next |
417
+ | Lệnh hiện tại | Gợi ý lệnh tiếp theo |
418
418
  |-------------------------|-----------------------------------------------|
419
- | /setup-ai-first | `/define-product` to start your first feature |
419
+ | /setup-ai-first | `/define-product` để bắt đầu feature đầu tiên |
420
420
  | /define-product | `/generate-prd {product-definition-file}` |
421
- | /generate-prd | `/refine-prd {prd-file}` then `/review-context {prd-file}` |
422
- | /refine-prd | Open Review Board → update PRD → `/review-context {prd-file}` |
423
- | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (then BDD after sign-off); BE: `/generate-bdd {prd-file}` directly; fix PRD if NEEDS_FIX |
424
- | /generate-design-spec | Designer review → Figma links confirmed → PO + Designer sign-off → `/generate-bdd {prd-file}` |
425
- | /generate-bdd | `/review-context {feature-file}` to verify coverage |
426
- | /review-context (BDD) | `/generate-tech-docs {UC-ID}` if APPROVED; regenerate if NEEDS_FIX |
427
- | /qc-analyze | `/qc-plan {UC-ID}` (resolve 🔴 blocker gaps first) |
421
+ | /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
422
+ | /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
423
+ | /review-context (PRD) | FE/App: `/generate-design-spec {prd-file}` (rồi BDD sau khi sign-off); BE: `/generate-bdd {prd-file}` trực tiếp; sửa PRD nếu NEEDS_FIX |
424
+ | /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
425
+ | /generate-bdd | `/review-context {feature-file}` để kiểm tra độ phủ |
426
+ | /review-context (BDD) | `/generate-tech-docs {UC-ID}` nếu APPROVED; sinh lại nếu NEEDS_FIX |
427
+ | /qc-analyze | `/qc-plan {UC-ID}` (xử các gap blocker 🔴 trước) |
428
428
  | /qc-plan | `/qc-design-test {UC-ID}` |
429
- | /qc-design-test | `/qc-review {UC-ID}` (test-case review) |
430
- | /qc-review (test-case) | `/qc-run-test {UC-ID}` if APPROVED; fix TCs if NEEDS_FIX |
431
- | /qc-run-test | `/qc-report {UC-ID}` then `/qc-review {UC-ID}` (script review) |
432
- | /qc-review (script) | `/qc-report {UC-ID}` then create PR if APPROVED |
433
- | /qc-report | `/validate-traces {UC-ID}` to refresh Living Docs (qc_status) |
429
+ | /qc-design-test | `/qc-review {UC-ID}` (review test-case) |
430
+ | /qc-review (test-case) | `/qc-run-test {UC-ID}` nếu APPROVED; sửa TC nếu NEEDS_FIX |
431
+ | /qc-run-test | `/qc-report {UC-ID}` rồi `/qc-review {UC-ID}` (review script) |
432
+ | /qc-review (script) | `/qc-report {UC-ID}` rồi tạo PR nếu APPROVED |
433
+ | /qc-report | `/validate-traces {UC-ID}` để làm mới Living Docs (qc_status) |
434
434
  | /generate-tech-docs | `/review-tech-docs {tech-design-file}` |
435
- | /review-tech-docs | `/generate-code {feature-file}` if APPROVED; fix doc if NEEDS_FIX |
436
- | /generate-code | First gen → `/review-code {UC-ID}`; re-gen → `/dev-gen-test {UC-ID}` |
435
+ | /review-tech-docs | `/generate-code {feature-file}` nếu APPROVED; sửa doc nếu NEEDS_FIX |
436
+ | /generate-code | Lần gen đầu → `/review-code {UC-ID}`; gen lại → `/dev-gen-test {UC-ID}` |
437
437
  | /dev-gen-test | `/dev-run-test {UC-ID}` |
438
438
  | /dev-run-test (passing) | `/review-code {UC-ID}` |
439
- | /dev-run-test (failing) | `/fix-bug {ticket-id}` or `/debug {error}` |
440
- | /review-code | `/dev-smoke-test {UC-ID}` or create PR |
441
- | /dev-smoke-test | Create PR and link to ticket |
442
- | /validate-traces | DRIFT/UNTRACKED → `/generate-code {UC-ID}`; GAP → `/dev-gen-test {UC-ID}`; all OK → create PR |
443
- | /fix-bug | Create PR and link to ticket |
444
- | /debug | `/fix-bug {ticket-id}` if fix needed |
445
- | /report-bug | Send to dev (`/fix-bug {BUG-ID}`); if coverage gap → `/propose-scenario {UC-ID}` |
446
- | /propose-scenario | Notify PO/Dev to review the proposal in `feedback/bdd-proposals/` |
447
- | /learn | Continue working — lesson applies on next command |
448
- | /sync | `/validate-traces` for full coverage; act on any `📥 tester feedback` surfaced |
449
- | /update-framework | Review `git diff .agent/`, commit; `/sync` for project content |
450
-
451
- Format the footer as:
439
+ | /dev-run-test (failing) | `/fix-bug {ticket-id}` hoặc `/debug {error}` |
440
+ | /review-code | `/dev-smoke-test {UC-ID}` hoặc tạo PR |
441
+ | /dev-smoke-test | Tạo PR link tới ticket |
442
+ | /validate-traces | DRIFT/UNTRACKED → `/generate-code {UC-ID}`; GAP → `/dev-gen-test {UC-ID}`; tất cả OK → tạo PR |
443
+ | /fix-bug | Tạo PR link tới ticket |
444
+ | /debug | `/fix-bug {ticket-id}` nếu cần sửa |
445
+ | /report-bug | Gửi cho dev (`/fix-bug {BUG-ID}`); nếu thiếu coverage → `/propose-scenario {UC-ID}` |
446
+ | /propose-scenario | Báo PO/Dev review proposal trong `feedback/bdd-proposals/` |
447
+ | /learn | Tiếp tục làm việc — lesson áp dụng lệnh kế tiếp |
448
+ | /sync | `/validate-traces` để xem độ phủ đầy đủ; xử lý mọi `📥 tester feedback` được nêu |
449
+ | /update-framework | Review `git diff .agent/`, commit; `/sync` để đồng bộ nội dung dự án |
450
+
451
+ Định dạng footer như sau:
452
452
  ```
453
453
  ---
454
454
  Status : {badge}
455
- {Output Artifacts block}
455
+ {khối Output Artifacts}
456
456
  Pipeline : Discovery → PRD → [BDD ◀ bạn ở đây] → Tech Design → Code → Dev Self-Check → QC → Trace Audit
457
- (review cmd) Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume
458
- Next : {suggested command with example arguments}
457
+ (lệnh review) Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume
458
+ Next : {lệnh gợi ý kèm ví dụ tham số}
459
459
  ```
460
- *(Omit the `Pipeline` line for cross-cutting commands listed above.)*
460
+ *(Bỏ dòng `Pipeline` cho các lệnh xuyên suốt liệt kê ở trên.)*
461
461