@anhth2/spec-driven-dev-plugin 0.10.0 → 0.11.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 (203) hide show
  1. package/commands/debug.md +38 -8
  2. package/commands/define-product.md +38 -8
  3. package/commands/dev-gen-test.md +39 -9
  4. package/commands/dev-gen-test.tmpl +1 -1
  5. package/commands/dev-run-test.md +43 -10
  6. package/commands/dev-run-test.tmpl +5 -2
  7. package/commands/dev-smoke-test.md +38 -8
  8. package/commands/fix-bug.md +38 -8
  9. package/commands/generate-bdd.md +42 -10
  10. package/commands/generate-bdd.tmpl +4 -2
  11. package/commands/generate-code.md +39 -9
  12. package/commands/generate-code.tmpl +1 -1
  13. package/commands/generate-design-spec.md +38 -8
  14. package/commands/generate-prd.md +38 -8
  15. package/commands/generate-spec-manifest.md +38 -8
  16. package/commands/generate-tech-docs.md +38 -8
  17. package/commands/learn.md +38 -8
  18. package/commands/propose-scenario.md +38 -8
  19. package/commands/qc-analyze.md +514 -0
  20. package/commands/qc-analyze.tmpl +71 -0
  21. package/commands/qc-design-test.md +510 -0
  22. package/commands/qc-design-test.tmpl +67 -0
  23. package/commands/qc-plan.md +492 -0
  24. package/commands/qc-plan.tmpl +49 -0
  25. package/commands/qc-report.md +491 -0
  26. package/commands/qc-report.tmpl +48 -0
  27. package/commands/qc-review.md +496 -0
  28. package/commands/qc-review.tmpl +53 -0
  29. package/commands/qc-run-test.md +538 -0
  30. package/commands/qc-run-test.tmpl +77 -0
  31. package/commands/refine-prd.md +38 -8
  32. package/commands/report-bug.md +38 -8
  33. package/commands/review-code.md +38 -8
  34. package/commands/review-context.md +38 -8
  35. package/commands/review-tech-docs.md +38 -8
  36. package/commands/setup-ai-first.md +7 -0
  37. package/commands/sync.md +7 -0
  38. package/commands/update-framework.md +7 -0
  39. package/commands/validate-traces.md +54 -12
  40. package/commands/validate-traces.tmpl +16 -4
  41. package/core/FRAMEWORK_VERSION +1 -1
  42. package/core/commands/debug.md +38 -8
  43. package/core/commands/define-product.md +38 -8
  44. package/core/commands/dev-gen-test.md +39 -9
  45. package/core/commands/dev-run-test.md +43 -10
  46. package/core/commands/dev-smoke-test.md +38 -8
  47. package/core/commands/fix-bug.md +38 -8
  48. package/core/commands/generate-bdd.md +42 -10
  49. package/core/commands/generate-code.md +39 -9
  50. package/core/commands/generate-design-spec.md +38 -8
  51. package/core/commands/generate-prd.md +38 -8
  52. package/core/commands/generate-spec-manifest.md +38 -8
  53. package/core/commands/generate-tech-docs.md +38 -8
  54. package/core/commands/learn.md +38 -8
  55. package/core/commands/propose-scenario.md +38 -8
  56. package/core/commands/qc-analyze.md +514 -0
  57. package/core/commands/qc-design-test.md +510 -0
  58. package/core/commands/qc-plan.md +492 -0
  59. package/core/commands/qc-report.md +491 -0
  60. package/core/commands/qc-review.md +496 -0
  61. package/core/commands/qc-run-test.md +538 -0
  62. package/core/commands/refine-prd.md +38 -8
  63. package/core/commands/report-bug.md +38 -8
  64. package/core/commands/review-code.md +38 -8
  65. package/core/commands/review-context.md +38 -8
  66. package/core/commands/review-tech-docs.md +38 -8
  67. package/core/commands/setup-ai-first.md +7 -0
  68. package/core/commands/sync.md +7 -0
  69. package/core/commands/update-framework.md +7 -0
  70. package/core/commands/validate-traces.md +54 -12
  71. package/core/modules/qc-playwright/stack-profile.yaml +65 -0
  72. package/core/skills/code/SKILL.md +45 -8
  73. package/core/skills/debug/SKILL.md +52 -8
  74. package/core/skills/design-spec/SKILL.md +38 -8
  75. package/core/skills/discovery/SKILL.md +38 -8
  76. package/core/skills/prd/SKILL.md +14 -0
  77. package/core/skills/qc/qa-analyst/DOC_GAPS.template.md +63 -0
  78. package/core/skills/qc/qa-analyst/acceptance-criteria.md +56 -0
  79. package/core/skills/qc/qa-analyst/business-rules.md +55 -0
  80. package/core/skills/qc/qa-analyst/data-flow.md +60 -0
  81. package/core/skills/qc/qa-analyst/spec-breakdown.md +57 -0
  82. package/core/skills/qc/qa-designer/e2e/journey.md +41 -0
  83. package/core/skills/qc/qa-designer/exploratory/charter.md +68 -0
  84. package/core/skills/qc/qa-designer/exploratory/explore-to-functional.md +43 -0
  85. package/core/skills/qc/qa-designer/functional/api.md +45 -0
  86. package/core/skills/qc/qa-designer/functional/gui-feature.md +46 -0
  87. package/core/skills/qc/qa-designer/functional/gui-screen.md +52 -0
  88. package/core/skills/qc/qa-designer/integration/api.md +42 -0
  89. package/core/skills/qc/qa-designer/integration/db.md +39 -0
  90. package/core/skills/qc/qa-designer/integration/gui.md +40 -0
  91. package/core/skills/qc/qa-designer/integration/kafka.md +40 -0
  92. package/core/skills/qc/qa-designer/non-functional.md +40 -0
  93. package/core/skills/qc/qa-planner/test-plan.md +120 -0
  94. package/core/skills/qc/qa-reviewer/script/e2e.md +87 -0
  95. package/core/skills/qc/qa-reviewer/script/exploratory.md +45 -0
  96. package/core/skills/qc/qa-reviewer/script/functional.md +101 -0
  97. package/core/skills/qc/qa-reviewer/script/integration.md +91 -0
  98. package/core/skills/qc/qa-reviewer/script/non-functional.md +126 -0
  99. package/core/skills/qc/qa-reviewer/test-case/e2e.md +73 -0
  100. package/core/skills/qc/qa-reviewer/test-case/exploratory.md +43 -0
  101. package/core/skills/qc/qa-reviewer/test-case/functional.md +76 -0
  102. package/core/skills/qc/qa-reviewer/test-case/integration.md +69 -0
  103. package/core/skills/qc/qa-reviewer/test-case/non-functional.md +73 -0
  104. package/core/skills/qc/qa-runner/e2e.md +49 -0
  105. package/core/skills/qc/qa-runner/exploratory/session.md +36 -0
  106. package/core/skills/qc/qa-runner/functional/api.md +35 -0
  107. package/core/skills/qc/qa-runner/functional/gui-feature.md +51 -0
  108. package/core/skills/qc/qa-runner/functional/gui-screen.md +55 -0
  109. package/core/skills/qc/qa-runner/integration.md +47 -0
  110. package/core/skills/qc/qa-runner/non-functional.md +49 -0
  111. package/core/skills/qc/qa-runner/report/report.md +37 -0
  112. package/core/skills/setup-ai-first/SKILL.md +7 -0
  113. package/core/skills/spec/SKILL.md +14 -0
  114. package/core/skills/test/SKILL.md +83 -16
  115. package/core/steps/context-loader.md +31 -8
  116. package/core/steps/report-footer.md +7 -0
  117. package/core/templates/project-context.yaml +8 -0
  118. package/docs/01-getting-started/README.md +19 -0
  119. package/docs/01-getting-started/core-concepts.md +102 -0
  120. package/docs/01-getting-started/installation.md +154 -0
  121. package/docs/01-getting-started/quickstart.md +85 -0
  122. package/docs/02-guides/README.md +27 -0
  123. package/docs/02-guides/developer/README.md +46 -0
  124. package/docs/02-guides/developer/bdd-and-trace.md +123 -0
  125. package/docs/02-guides/developer/commands.md +76 -0
  126. package/docs/02-guides/developer/pr-checklist.md +15 -0
  127. package/docs/02-guides/developer/scenarios.md +448 -0
  128. package/docs/02-guides/developer/workflow.md +59 -0
  129. package/docs/02-guides/product-owner/README.md +77 -0
  130. package/docs/02-guides/product-owner/commands.md +30 -0
  131. package/docs/02-guides/product-owner/handoff-checklist.md +42 -0
  132. package/docs/02-guides/product-owner/prd-writing-rules.md +45 -0
  133. package/docs/02-guides/product-owner/scenarios.md +357 -0
  134. package/docs/02-guides/qc-automation.md +92 -0
  135. package/docs/02-guides/tester/README.md +72 -0
  136. package/docs/02-guides/tester/bug-reporting.md +117 -0
  137. package/docs/02-guides/tester/reading-specs.md +79 -0
  138. package/docs/02-guides/tester/scenarios.md +186 -0
  139. package/docs/02-guides/tester/spec-manifest.md +124 -0
  140. package/docs/02-guides/tester/test-checklist.md +31 -0
  141. package/docs/02-guides/tester/workflow.md +79 -0
  142. package/docs/03-concepts/README.md +19 -0
  143. package/docs/03-concepts/architecture.md +243 -0
  144. package/docs/03-concepts/pipeline.md +249 -0
  145. package/docs/03-concepts/traceability.md +148 -0
  146. package/docs/04-operations/README.md +33 -0
  147. package/docs/04-operations/bug-flow.md +321 -0
  148. package/docs/04-operations/publishing.md +137 -0
  149. package/docs/04-operations/sync-and-update.md +328 -0
  150. package/docs/05-reference/README.md +29 -0
  151. package/docs/05-reference/commands.md +229 -0
  152. package/docs/05-reference/modules.md +110 -0
  153. package/docs/05-reference/trace-schema.md +146 -0
  154. package/docs/README.md +51 -0
  155. package/modules/qc-playwright/stack-profile.yaml +65 -0
  156. package/package.json +2 -2
  157. package/skills/code/SKILL.md +45 -8
  158. package/skills/debug/SKILL.md +52 -8
  159. package/skills/design-spec/SKILL.md +38 -8
  160. package/skills/discovery/SKILL.md +38 -8
  161. package/skills/prd/SKILL.md +14 -0
  162. package/skills/qc/qa-analyst/DOC_GAPS.template.md +63 -0
  163. package/skills/qc/qa-analyst/acceptance-criteria.md +56 -0
  164. package/skills/qc/qa-analyst/business-rules.md +55 -0
  165. package/skills/qc/qa-analyst/data-flow.md +60 -0
  166. package/skills/qc/qa-analyst/spec-breakdown.md +57 -0
  167. package/skills/qc/qa-designer/e2e/journey.md +41 -0
  168. package/skills/qc/qa-designer/exploratory/charter.md +68 -0
  169. package/skills/qc/qa-designer/exploratory/explore-to-functional.md +43 -0
  170. package/skills/qc/qa-designer/functional/api.md +45 -0
  171. package/skills/qc/qa-designer/functional/gui-feature.md +46 -0
  172. package/skills/qc/qa-designer/functional/gui-screen.md +52 -0
  173. package/skills/qc/qa-designer/integration/api.md +42 -0
  174. package/skills/qc/qa-designer/integration/db.md +39 -0
  175. package/skills/qc/qa-designer/integration/gui.md +40 -0
  176. package/skills/qc/qa-designer/integration/kafka.md +40 -0
  177. package/skills/qc/qa-designer/non-functional.md +40 -0
  178. package/skills/qc/qa-planner/test-plan.md +120 -0
  179. package/skills/qc/qa-reviewer/script/e2e.md +87 -0
  180. package/skills/qc/qa-reviewer/script/exploratory.md +45 -0
  181. package/skills/qc/qa-reviewer/script/functional.md +101 -0
  182. package/skills/qc/qa-reviewer/script/integration.md +91 -0
  183. package/skills/qc/qa-reviewer/script/non-functional.md +126 -0
  184. package/skills/qc/qa-reviewer/test-case/e2e.md +73 -0
  185. package/skills/qc/qa-reviewer/test-case/exploratory.md +43 -0
  186. package/skills/qc/qa-reviewer/test-case/functional.md +76 -0
  187. package/skills/qc/qa-reviewer/test-case/integration.md +69 -0
  188. package/skills/qc/qa-reviewer/test-case/non-functional.md +73 -0
  189. package/skills/qc/qa-runner/e2e.md +49 -0
  190. package/skills/qc/qa-runner/exploratory/session.md +36 -0
  191. package/skills/qc/qa-runner/functional/api.md +35 -0
  192. package/skills/qc/qa-runner/functional/gui-feature.md +51 -0
  193. package/skills/qc/qa-runner/functional/gui-screen.md +55 -0
  194. package/skills/qc/qa-runner/integration.md +47 -0
  195. package/skills/qc/qa-runner/non-functional.md +49 -0
  196. package/skills/qc/qa-runner/report/report.md +37 -0
  197. package/skills/setup-ai-first/SKILL.md +7 -0
  198. package/skills/spec/SKILL.md +14 -0
  199. package/skills/test/SKILL.md +83 -16
  200. package/steps/context-loader.md +31 -8
  201. package/steps/report-footer.md +7 -0
  202. package/templates/project-context.yaml +8 -0
  203. package/ARCHITECTURE.md +0 -258
@@ -34,6 +34,13 @@ Suggest the logical next command based on workflow phase:
34
34
  | /generate-design-spec | Designer review → Figma links confirmed → PO + Designer sign-off → `/generate-bdd {prd-file}` |
35
35
  | /generate-bdd | `/review-context {feature-file}` to verify coverage |
36
36
  | /review-context (BDD) | `/generate-tech-docs {UC-ID}` if APPROVED; regenerate if NEEDS_FIX |
37
+ | /qc-analyze | `/qc-plan {UC-ID}` (resolve 🔴 blocker gaps first) |
38
+ | /qc-plan | `/qc-design-test {UC-ID}` |
39
+ | /qc-design-test | `/qc-review {UC-ID}` (test-case review) |
40
+ | /qc-review (test-case) | `/qc-run-test {UC-ID}` if APPROVED; fix TCs if NEEDS_FIX |
41
+ | /qc-run-test | `/qc-report {UC-ID}` then `/qc-review {UC-ID}` (script review) |
42
+ | /qc-review (script) | `/qc-report {UC-ID}` then create PR if APPROVED |
43
+ | /qc-report | `/validate-traces {UC-ID}` to refresh Living Docs (qc_status) |
37
44
  | /generate-tech-docs | `/review-tech-docs {tech-design-file}` |
38
45
  | /review-tech-docs | `/generate-code {feature-file}` if APPROVED; fix doc if NEEDS_FIX |
39
46
  | /generate-code | First gen → `/review-code {UC-ID}`; re-gen → `/dev-gen-test {UC-ID}` |
@@ -106,6 +106,14 @@ domains:
106
106
  # module: "{{STACK_MODULE}}" # e.g., java-spring, nextjs, flutter
107
107
  # specs_dir: "{{SERVICE_SUBMODULE_DIR}}/specs/bdd"
108
108
  # tech_docs_dir: "{{SERVICE_SUBMODULE_DIR}}/specs/tech-docs"
109
+ #
110
+ # IMPORTANT — per-service CLAUDE.md:
111
+ # Each service submodule should have its OWN CLAUDE.md ({path}/CLAUDE.md) defining its
112
+ # architecture + coding standards for ITS stack. context-loader loads CLAUDE.md in two
113
+ # layers: root CLAUDE.md (umbrella-wide shared rules) + {service}/CLAUDE.md (overlay,
114
+ # wins on conflict for architecture/coding-standards). The agent sits at the umbrella
115
+ # root, so without a service CLAUDE.md, code generation falls back to umbrella defaults
116
+ # (likely the wrong stack). Generate one per service via /setup-ai-first inside each.
109
117
  # {{DOMAIN_2}}:
110
118
  # path: "{{SERVICE_2_DIR}}"
111
119
  # module: "{{STACK_MODULE}}"
package/ARCHITECTURE.md DELETED
@@ -1,258 +0,0 @@
1
- # Framework Architecture
2
-
3
- > **Nguyên tắc**: Nhìn file này để hiểu toàn bộ framework trước khi đọc bất kỳ file chi tiết nào.
4
-
5
- ---
6
-
7
- ## Layer Diagram
8
-
9
- ```
10
- ╔══════════════════════════════════════════════════════════════════════╗
11
- ║ SPEC-DRIVEN DEV FRAMEWORK v0.3 ║
12
- ╚══════════════════════════════════════════════════════════════════════╝
13
-
14
- ┌──────────────────────────────────────────────────────────────────────┐
15
- │ LAYER 0 — PROTECTION (luôn chạy trước) │
16
- │ │
17
- │ hooks/data-guard.js → PreToolUse hook: chặn đọc file nhạy cảm │
18
- │ rules/data-protection.md → Quy tắc declarative cho AI agent │
19
- └──────────────────────────────────────────────────────────────────────┘
20
- │ safe ↓ blocked → ✋ STOP
21
- ┌──────────────────────────────────────────────────────────────────────┐
22
- │ LAYER 1 — ENTRY POINT (user trigger) │
23
- │ │
24
- │ commands/*.tmpl skills/*/SKILL.tmpl │
25
- │ (slash commands) (auto-trigger by description match) │
26
- │ /generate-bdd detect: "tạo BDD", "sinh feature" │
27
- │ /generate-code detect: "viết code", "implement" │
28
- └──────────────────────────────────────────────────────────────────────┘
29
- │ both built by bin/build.js
30
- ┌──────────────────────────────────────────────────────────────────────┐
31
- │ LAYER 2 — SHARED STEPS (DRY, injected) │
32
- │ │
33
- │ steps/gate.md → resolve target file + CHECKPOINT │
34
- │ steps/context-loader.md → load project config + rules │
35
- │ steps/report-footer.md → standard output format │
36
- │ │
37
- │ Injected at build time via {{include:steps/X.md}} │
38
- │ Source: *.tmpl → Output: *.md (gitignored) │
39
- └──────────────────────────────────────────────────────────────────────┘
40
- │ context loaded
41
- ┌──────────────────────────────────────────────────────────────────────┐
42
- │ LAYER 3 — PROJECT CONTEXT (read from consumer project) │
43
- │ │
44
- │ .agent/project-context.yaml → paths, tech_stack, domains │
45
- │ CLAUDE.md → architecture, coding standards │
46
- │ rules/data-protection.md → what AI must never access │
47
- │ .agent/modules/{stack}/ → stack rules (plug-in, optional) │
48
- └──────────────────────────────────────────────────────────────────────┘
49
- │ context-aware
50
- ┌──────────────────────────────────────────────────────────────────────┐
51
- │ LAYER 4 — EXECUTION (command logic) │
52
- │ │
53
- │ DISCOVERY PRD / BDD CODE / DEV-CHECK DEBUG │
54
- │ /define-product /generate-prd /generate-code /fix-bug │
55
- │ /refine-prd /dev-gen-test /debug │
56
- │ /generate-bdd /dev-run-test /validate- │
57
- │ /generate-tech-docs /dev-smoke-test traces │
58
- │ /review-code /setup-ai-first │
59
- │ │
60
- │ Lưu ý: /dev-gen-test, /dev-run-test, /dev-smoke-test là dev │
61
- │ self-check / smoke (dev tự kiểm code của mình), KHÔNG phải bộ │
62
- │ test QC chính thức — QC là một flow riêng chạy sau. │
63
- └──────────────────────────────────────────────────────────────────────┘
64
-
65
- ┌──────────────────────────────────────────────────────────────────────┐
66
- │ LAYER 5 — OUTPUT (artifacts in consumer proj) │
67
- │ │
68
- │ Spec module (cross-team, via {spec_source}): │
69
- │ specs/product-definition/ specs/prd/ specs/bdd/ │
70
- │ specs/tech-docs/ (API contract) .living-docs/ (gitignored) │
71
- │ Service submodule (per-service): │
72
- │ src/ .trace/*.tsv (authoritative, committed) .agent/review/ │
73
- └──────────────────────────────────────────────────────────────────────┘
74
- ```
75
-
76
- ---
77
-
78
- ## Data Flow — Một command chạy như thế nào
79
-
80
- ```
81
- User types: /generate-bdd specs/prd/payment/PAY-01.md
82
-
83
-
84
- [L0] data-guard.js checks tool calls in real-time
85
- → nếu AI cố đọc .env / *.key → BLOCK + warn
86
-
87
-
88
- [L1] commands/generate-bdd.md được Claude đọc
89
- (assembled từ generate-bdd.tmpl + injected steps)
90
-
91
-
92
- [L2] gate.md → resolve file path từ $ARGUMENTS
93
- context-loader.md → đọc project-context.yaml, CLAUDE.md,
94
- rules/data-protection.md,
95
- modules/{stack}/stack-profile.yaml
96
-
97
-
98
- [L3] Claude biết: tech_stack, domains, architecture rules,
99
- sensitive files to avoid, stack-specific patterns
100
-
101
-
102
- [L4] generate-bdd logic:
103
- → đọc PRD → extract UC/BR/AC
104
- → apply BDD rules R1-R10
105
- → viết specs/bdd/{domain}/{UC-ID}.feature
106
-
107
-
108
- [L5] Output: specs/bdd/payment/PAY-01-UC1.feature
109
- ```
110
-
111
- ---
112
-
113
- ## Build System
114
-
115
- ```
116
- Source (committed to git) Build output (gitignored)
117
- ────────────────────────── ─────────────────────────
118
- commands/*.tmpl ──┐
119
- skills/**/SKILL.tmpl ──┤ node bin/build.js → commands/*.md
120
- steps/*.md (shared) ──┘ skills/**/SKILL.md
121
-
122
- Trigger:
123
- npm run build ← manual
124
- prepublishOnly hook ← auto before npm publish
125
- bin/index.js install ← auto when user runs npx
126
- ```
127
-
128
- ---
129
-
130
- ## Module Plug-in System
131
-
132
- ```
133
- Available modules (modules/):
134
- java-spring, angular, react, nextjs,
135
- dotnet, golang, php-laravel, context-engineering
136
-
137
- Usage:
138
- npx @anhth2/spec-driven-dev-plugin --module java-spring
139
- └─ copies modules/java-spring/ → consumer/.agent/modules/java-spring/
140
-
141
- At runtime, context-loader.md reads:
142
- .agent/modules/{tech_stack.module}/stack-profile.yaml
143
- .agent/modules/{tech_stack.module}/architecture-snippets/
144
- ```
145
-
146
- ---
147
-
148
- ## Hook System — Data Protection
149
-
150
- ```
151
- Consumer project setup:
152
- .claude/settings.json ← registers hook (provided as template)
153
- hooks/data-guard.js ← copied from this package on install
154
-
155
- Runtime:
156
- Every tool use (Read, Write, Edit, Bash)
157
-
158
-
159
- data-guard.js checks:
160
- .env* / *.key / *.pem / *secret* / *password* / *credential*
161
- application-prod.* / appsettings.Production.*
162
-
163
- safe → allow blocked → exit(2) + warn user
164
- ```
165
-
166
- ---
167
-
168
- ## Future — Sub-Agent Pattern (v2 roadmap)
169
-
170
- Khi một số command quá nặng cho single context window:
171
-
172
- ```
173
- Main session (orchestrator — lightweight, chỉ coordinate)
174
-
175
- ├─ spawn spec-agent ──→ /refine-prd analysis (own context window)
176
- │ └─ returns: findings.yaml
177
-
178
- ├─ spawn codegen-agent ──→ /generate-code UC1 (own context window)
179
- │ └─ returns: src/ changes
180
-
181
- └─ spawn test-agent ──→ /dev-gen-test UC1 (own context window)
182
- └─ returns: dev self-check test files (smoke, không phải QC)
183
-
184
- Benefits:
185
- - Main session không bị bloat bởi large file reads
186
- - Mỗi agent focus vào 1 task, ít hallucination hơn
187
- - Parallel execution cho multiple UCs
188
-
189
- Implementation path:
190
- 1. Tạo steps/spawn-agent.md — pattern + handoff payload format
191
- 2. Tạo commands/orchestrate-feature.tmpl — top-level orchestrator
192
- 3. Sub-agent commands nhận input qua $ARGUMENTS (JSON payload)
193
- ```
194
-
195
- ---
196
-
197
- ## Directory Map
198
-
199
- ```
200
- spec-driven-dev/
201
- ├── ARCHITECTURE.md ← Đọc đây trước ◀◀◀
202
- ├── bin/
203
- │ ├── build.js ← assembles *.tmpl → *.md
204
- │ └── index.js ← npm installer + hook installer
205
- ├── commands/
206
- │ └── *.tmpl ← slash commands (23 commands)
207
- ├── hooks/
208
- │ ├── data-guard.js ← PreToolUse sensitive file protection
209
- │ └── settings.json ← hook registration template
210
- ├── modules/
211
- │ └── {stack}/ ← 8 stacks: java-spring, angular, react,
212
- │ ├── module.yaml nextjs, dotnet, golang, php-laravel,
213
- │ ├── stack-profile.yaml context-engineering
214
- │ └── architecture-snippets/
215
- ├── rules/
216
- │ ├── data-protection.md ← what AI must NEVER read/write
217
- │ └── workflow.md ← general AI behavior rules
218
- ├── skills/
219
- │ └── {name}/SKILL.tmpl ← Claude plugin skills (8 skills)
220
- ├── steps/
221
- │ ├── gate.md ← shared: file resolve + checkpoint
222
- │ ├── context-loader.md ← shared: load all project context
223
- │ ├── spawn-agent.md ← shared: sub-agent orchestration
224
- │ ├── capture-lesson.md ← shared: record a guardrail (/learn etc.)
225
- │ └── report-footer.md ← shared: standard output format
226
- └── templates/
227
- ├── project-context.yaml ← consumer project config template
228
- ├── architecture.template.md
229
- └── platform-guide.template.md
230
- ```
231
-
232
- > Build output (gitignored): `commands/*.md`, `skills/**/SKILL.md`, and `core/` (the distributable copied into a consumer's `.agent/` by `--init`). Consumer-side tester artifacts live in the shared spec repo under `feedback/bug-reports/` and `feedback/bdd-proposals/`. In umbrella mode the **API contract (tech-docs)** is a **cross-team artifact**: khi `setup.spec_source` được set, tech-docs LUÔN route về `{spec_source}/specs/tech-docs/` (giống PRD / design-spec / domain-knowledge), KHÔNG per-service — để FE/App đọc contract qua spec submodule ở `/generate-code --phase=integration`. Chỉ khi không có `spec_source` thì tech-docs mới nằm per-service.
233
-
234
- > **Living Docs / trace data location**: `.trace/*.tsv` của mỗi service là **authoritative** và được commit trong chính SERVICE submodule. Canonical report của Living Docs (`trace-report.json` + bản TSV mirror đã namespaced) được sinh vào SPEC MODULE tại `{spec_source}/.living-docs/` (gitignored) bởi `/sync` hoặc `/validate-traces`. Ngoài ra một panel mirror cục bộ tại `./.trace` của workspace hiện tại cũng được ghi để VS Code panel resolve được data ngay cả khi mở bên trong một service submodule (không chỉ ở umbrella root). Lý do: spec module được mount vào mọi umbrella/service workspace, nên nó là nơi chung, luôn resolve được cho cross-team dashboard.
235
- >
236
- > Trace TSV schema có thêm 2 cột `dev_selftest` (pass/fail/not_run) và `dev_selftest_at`, được set bởi `/dev-run-test` và surface trong Living Docs report như tín hiệu **dev self-check** (không phải coverage QC chính thức).
237
-
238
- ---
239
-
240
- ## Maintenance Guide
241
-
242
- | Muốn thay đổi gì | Sửa file nào |
243
- |------------------|-------------|
244
- | Logic của 1 command cụ thể | `commands/{name}.tmpl` |
245
- | Logic của 1 skill cụ thể | `skills/{name}/SKILL.tmpl` |
246
- | Gate / checkpoint pattern | `steps/gate.md` |
247
- | Context loading | `steps/context-loader.md` |
248
- | Report format | `steps/report-footer.md` |
249
- | Sensitive file patterns | `hooks/data-guard.js` + `rules/data-protection.md` |
250
- | Stack-specific rules | `modules/{stack}/stack-profile.yaml` |
251
- | Project setup template | `templates/project-context.yaml` |
252
- | Build system | `bin/build.js` |
253
- | Installer | `bin/index.js` |
254
-
255
- Sau khi sửa bất kỳ `.tmpl` hoặc `steps/*.md`:
256
- ```bash
257
- npm run build # regenerate tất cả *.md
258
- ```