@ngocsangairvds/vsaf 5.1.4 → 5.1.6

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 (217) hide show
  1. package/package.json +1 -1
  2. package/packages/cli/dist/adapters/antigravity.d.ts.map +1 -1
  3. package/packages/cli/dist/adapters/antigravity.js +7 -2
  4. package/packages/cli/dist/adapters/antigravity.js.map +1 -1
  5. package/packages/cli/dist/adapters/codex.js +1 -1
  6. package/packages/cli/dist/adapters/codex.js.map +1 -1
  7. package/packages/cli/dist/adapters/cursor.js +1 -1
  8. package/packages/cli/dist/adapters/cursor.js.map +1 -1
  9. package/packages/cli/dist/commands/install.d.ts.map +1 -1
  10. package/packages/cli/dist/commands/install.js +21 -1
  11. package/packages/cli/dist/commands/install.js.map +1 -1
  12. package/packages/cli/dist/commands/skill.d.ts.map +1 -1
  13. package/packages/cli/dist/commands/skill.js +5 -2
  14. package/packages/cli/dist/commands/skill.js.map +1 -1
  15. package/skills/sdlc/architecture/current-state/SKILL.md +10 -0
  16. package/skills/sdlc/architecture/current-state/step.md +13 -0
  17. package/skills/sdlc/architecture/decision/SKILL.md +10 -0
  18. package/skills/sdlc/architecture/decision/step.md +21 -0
  19. package/skills/sdlc/architecture/epics/SKILL.md +10 -0
  20. package/skills/sdlc/architecture/epics/step.md +34 -0
  21. package/skills/sdlc/architecture/grill/SKILL.md +10 -0
  22. package/skills/sdlc/architecture/grill/step.md +26 -0
  23. package/skills/sdlc/architecture/prereq/SKILL.md +10 -0
  24. package/skills/sdlc/architecture/prereq/step.md +16 -0
  25. package/skills/sdlc/architecture/readiness/SKILL.md +10 -0
  26. package/skills/sdlc/architecture/readiness/step.md +76 -0
  27. package/skills/sdlc/complete/context/SKILL.md +10 -0
  28. package/skills/sdlc/complete/context/step.md +14 -0
  29. package/skills/sdlc/complete/knowledge/SKILL.md +10 -0
  30. package/skills/sdlc/complete/knowledge/step.md +22 -0
  31. package/skills/sdlc/complete/prereq/SKILL.md +10 -0
  32. package/skills/sdlc/complete/prereq/step.md +16 -0
  33. package/skills/sdlc/complete/reindex/SKILL.md +10 -0
  34. package/skills/sdlc/complete/reindex/step.md +24 -0
  35. package/skills/sdlc/complete/status/SKILL.md +10 -0
  36. package/skills/sdlc/complete/status/step.md +52 -0
  37. package/skills/sdlc/discovery/brainstorm/SKILL.md +10 -0
  38. package/skills/sdlc/discovery/brainstorm/step.md +27 -0
  39. package/skills/sdlc/discovery/domain/SKILL.md +10 -0
  40. package/skills/sdlc/discovery/domain/step.md +13 -0
  41. package/skills/sdlc/discovery/grill/SKILL.md +10 -0
  42. package/skills/sdlc/discovery/grill/step.md +22 -0
  43. package/skills/sdlc/discovery/prereq/SKILL.md +10 -0
  44. package/skills/sdlc/discovery/prereq/step.md +16 -0
  45. package/skills/sdlc/discovery/prfaq/SKILL.md +10 -0
  46. package/skills/sdlc/discovery/prfaq/step.md +68 -0
  47. package/skills/sdlc/discovery/system/SKILL.md +10 -0
  48. package/skills/sdlc/discovery/system/step.md +19 -0
  49. package/skills/sdlc/hotfix/analyze/entry/SKILL.md +10 -0
  50. package/skills/sdlc/hotfix/analyze/entry/step.md +15 -0
  51. package/skills/sdlc/hotfix/analyze/exit/SKILL.md +10 -0
  52. package/skills/sdlc/hotfix/analyze/exit/step.md +19 -0
  53. package/skills/sdlc/hotfix/analyze/fix-strategy/SKILL.md +10 -0
  54. package/skills/sdlc/hotfix/analyze/fix-strategy/step.md +15 -0
  55. package/skills/sdlc/hotfix/analyze/gitnexus/SKILL.md +10 -0
  56. package/skills/sdlc/hotfix/analyze/gitnexus/step.md +17 -0
  57. package/skills/sdlc/hotfix/analyze/grill/SKILL.md +10 -0
  58. package/skills/sdlc/hotfix/analyze/grill/step.md +23 -0
  59. package/skills/sdlc/hotfix/analyze/reasoning/SKILL.md +10 -0
  60. package/skills/sdlc/hotfix/analyze/reasoning/step.md +29 -0
  61. package/skills/sdlc/hotfix/analyze/write/SKILL.md +10 -0
  62. package/skills/sdlc/hotfix/analyze/write/step.md +45 -0
  63. package/skills/sdlc/hotfix/implement/branch/SKILL.md +10 -0
  64. package/skills/sdlc/hotfix/implement/branch/step.md +15 -0
  65. package/skills/sdlc/hotfix/implement/entry/SKILL.md +10 -0
  66. package/skills/sdlc/hotfix/implement/entry/step.md +20 -0
  67. package/skills/sdlc/hotfix/implement/gate/SKILL.md +10 -0
  68. package/skills/sdlc/hotfix/implement/gate/step.md +104 -0
  69. package/skills/sdlc/hotfix/implement/impact/SKILL.md +10 -0
  70. package/skills/sdlc/hotfix/implement/impact/step.md +15 -0
  71. package/skills/sdlc/hotfix/implement/sonar/SKILL.md +10 -0
  72. package/skills/sdlc/hotfix/implement/sonar/step.md +27 -0
  73. package/skills/sdlc/hotfix/implement/tdd/SKILL.md +10 -0
  74. package/skills/sdlc/hotfix/implement/tdd/step.md +33 -0
  75. package/skills/sdlc/hotfix/implement/verify/SKILL.md +10 -0
  76. package/skills/sdlc/hotfix/implement/verify/step.md +27 -0
  77. package/skills/sdlc/hotfix/prd/entry/SKILL.md +10 -0
  78. package/skills/sdlc/hotfix/prd/entry/step.md +20 -0
  79. package/skills/sdlc/hotfix/prd/gate/SKILL.md +10 -0
  80. package/skills/sdlc/hotfix/prd/gate/step.md +32 -0
  81. package/skills/sdlc/hotfix/prd/requirements/SKILL.md +10 -0
  82. package/skills/sdlc/hotfix/prd/requirements/step.md +19 -0
  83. package/skills/sdlc/hotfix/prd/validate/SKILL.md +10 -0
  84. package/skills/sdlc/hotfix/prd/validate/step.md +19 -0
  85. package/skills/sdlc/hotfix/prd/write/SKILL.md +10 -0
  86. package/skills/sdlc/hotfix/prd/write/step.md +38 -0
  87. package/skills/sdlc/hotfix/review/entry/SKILL.md +10 -0
  88. package/skills/sdlc/hotfix/review/entry/step.md +13 -0
  89. package/skills/sdlc/hotfix/review/gate/SKILL.md +10 -0
  90. package/skills/sdlc/hotfix/review/gate/step.md +51 -0
  91. package/skills/sdlc/hotfix/review/impact/SKILL.md +10 -0
  92. package/skills/sdlc/hotfix/review/impact/step.md +22 -0
  93. package/skills/sdlc/hotfix/review/minimality/SKILL.md +10 -0
  94. package/skills/sdlc/hotfix/review/minimality/step.md +18 -0
  95. package/skills/sdlc/hotfix/review/test-quality/SKILL.md +10 -0
  96. package/skills/sdlc/hotfix/review/test-quality/step.md +16 -0
  97. package/skills/sdlc/hotfix/ship/commit-pr/SKILL.md +10 -0
  98. package/skills/sdlc/hotfix/ship/commit-pr/step.md +58 -0
  99. package/skills/sdlc/hotfix/ship/entry/SKILL.md +10 -0
  100. package/skills/sdlc/hotfix/ship/entry/step.md +20 -0
  101. package/skills/sdlc/hotfix/ship/exit/SKILL.md +10 -0
  102. package/skills/sdlc/hotfix/ship/exit/step.md +31 -0
  103. package/skills/sdlc/hotfix/ship/gitignore/SKILL.md +10 -0
  104. package/skills/sdlc/hotfix/ship/gitignore/step.md +22 -0
  105. package/skills/sdlc/hotfix/ship/report/SKILL.md +10 -0
  106. package/skills/sdlc/hotfix/ship/report/step.md +47 -0
  107. package/skills/sdlc/hotfix/ship/test-gate/SKILL.md +10 -0
  108. package/skills/sdlc/hotfix/ship/test-gate/step.md +17 -0
  109. package/skills/sdlc/implement/build-run/SKILL.md +10 -0
  110. package/skills/sdlc/implement/build-run/step.md +85 -0
  111. package/skills/sdlc/implement/checkpoint/SKILL.md +10 -0
  112. package/skills/sdlc/implement/checkpoint/step.md +20 -0
  113. package/skills/sdlc/implement/debug/SKILL.md +10 -0
  114. package/skills/sdlc/implement/debug/step.md +25 -0
  115. package/skills/sdlc/implement/impact/SKILL.md +10 -0
  116. package/skills/sdlc/implement/impact/step.md +12 -0
  117. package/skills/sdlc/implement/plan/SKILL.md +10 -0
  118. package/skills/sdlc/implement/plan/step.md +13 -0
  119. package/skills/sdlc/implement/prereq/SKILL.md +10 -0
  120. package/skills/sdlc/implement/prereq/step.md +21 -0
  121. package/skills/sdlc/implement/subagents/SKILL.md +10 -0
  122. package/skills/sdlc/implement/subagents/step.md +38 -0
  123. package/skills/sdlc/implement/tdd/SKILL.md +10 -0
  124. package/skills/sdlc/implement/tdd/step.md +24 -0
  125. package/skills/sdlc/init/SKILL.md +7 -0
  126. package/skills/sdlc/onboard-code/SKILL.md +7 -0
  127. package/skills/sdlc/onboard-docs/SKILL.md +7 -0
  128. package/skills/sdlc/pack.yaml +83 -16
  129. package/skills/sdlc/prd/blast-radius/SKILL.md +10 -0
  130. package/skills/sdlc/prd/blast-radius/step.md +76 -0
  131. package/skills/sdlc/prd/create/SKILL.md +10 -0
  132. package/skills/sdlc/prd/create/step.md +21 -0
  133. package/skills/sdlc/prd/elicitation/SKILL.md +10 -0
  134. package/skills/sdlc/prd/elicitation/step.md +12 -0
  135. package/skills/sdlc/prd/prereq/SKILL.md +10 -0
  136. package/skills/sdlc/prd/prereq/step.md +16 -0
  137. package/skills/sdlc/prd/validate/SKILL.md +10 -0
  138. package/skills/sdlc/prd/validate/step.md +24 -0
  139. package/skills/sdlc/review/code/SKILL.md +10 -0
  140. package/skills/sdlc/review/code/step.md +45 -0
  141. package/skills/sdlc/review/debate/SKILL.md +10 -0
  142. package/skills/sdlc/review/debate/step.md +84 -0
  143. package/skills/sdlc/review/impact/SKILL.md +10 -0
  144. package/skills/sdlc/review/impact/step.md +14 -0
  145. package/skills/sdlc/review/prereq/SKILL.md +10 -0
  146. package/skills/sdlc/review/prereq/step.md +18 -0
  147. package/skills/sdlc/review/verification/SKILL.md +10 -0
  148. package/skills/sdlc/review/verification/step.md +16 -0
  149. package/skills/sdlc/ship/commit/SKILL.md +10 -0
  150. package/skills/sdlc/ship/commit/step.md +23 -0
  151. package/skills/sdlc/ship/gitignore/SKILL.md +10 -0
  152. package/skills/sdlc/ship/gitignore/step.md +22 -0
  153. package/skills/sdlc/ship/pr/SKILL.md +10 -0
  154. package/skills/sdlc/ship/pr/step.md +34 -0
  155. package/skills/sdlc/ship/prereq/SKILL.md +10 -0
  156. package/skills/sdlc/ship/prereq/step.md +16 -0
  157. package/skills/sdlc/ship/report/SKILL.md +10 -0
  158. package/skills/sdlc/ship/report/step.md +74 -0
  159. package/skills/sdlc/srs/interface/SKILL.md +10 -0
  160. package/skills/sdlc/srs/interface/step.md +44 -0
  161. package/skills/sdlc/srs/prereq/SKILL.md +10 -0
  162. package/skills/sdlc/srs/prereq/step.md +19 -0
  163. package/skills/sdlc/srs/validate/SKILL.md +10 -0
  164. package/skills/sdlc/srs/validate/step.md +23 -0
  165. package/skills/sdlc/srs/write/SKILL.md +10 -0
  166. package/skills/sdlc/srs/write/step.md +19 -0
  167. package/skills/sdlc/test-design/boundary/SKILL.md +10 -0
  168. package/skills/sdlc/test-design/boundary/step.md +12 -0
  169. package/skills/sdlc/test-design/cases/SKILL.md +10 -0
  170. package/skills/sdlc/test-design/cases/step.md +22 -0
  171. package/skills/sdlc/test-design/coverage/SKILL.md +10 -0
  172. package/skills/sdlc/test-design/coverage/step.md +63 -0
  173. package/skills/sdlc/test-design/prereq/SKILL.md +10 -0
  174. package/skills/sdlc/test-design/prereq/step.md +15 -0
  175. package/{skills/sdlc/workflows → workflows/sdlc}/hotfix-tdd.yaml +2 -1
  176. package/{skills/sdlc/workflows → workflows/sdlc}/hotfix.yaml +8 -4
  177. package/workflows/sdlc/master-sdlc.yaml +64 -0
  178. package/workflows/sdlc/sdlc-architecture.yaml +43 -0
  179. package/workflows/sdlc/sdlc-build.yaml +51 -0
  180. package/workflows/sdlc/sdlc-design.yaml +61 -0
  181. package/workflows/sdlc/sdlc-discovery.yaml +43 -0
  182. package/workflows/sdlc/sdlc-feature-complete.yaml +36 -0
  183. package/workflows/sdlc/sdlc-hotfix-analyze.yaml +43 -0
  184. package/workflows/sdlc/sdlc-hotfix-implement.yaml +43 -0
  185. package/workflows/sdlc/sdlc-hotfix-prd.yaml +31 -0
  186. package/workflows/sdlc/sdlc-hotfix-review.yaml +31 -0
  187. package/workflows/sdlc/sdlc-hotfix-ship.yaml +37 -0
  188. package/workflows/sdlc/sdlc-implement.yaml +60 -0
  189. package/workflows/sdlc/sdlc-prd.yaml +36 -0
  190. package/workflows/sdlc/sdlc-qa.yaml +91 -0
  191. package/workflows/sdlc/sdlc-review.yaml +36 -0
  192. package/workflows/sdlc/sdlc-ship.yaml +36 -0
  193. package/workflows/sdlc/sdlc-srs.yaml +29 -0
  194. package/workflows/sdlc/sdlc-test-design.yaml +29 -0
  195. package/workflows/sdlc/sdlc-testcase.yaml +25 -0
  196. package/workflows/sdlc/sdlc-thinking.yaml +67 -0
  197. package/skills/sdlc/architecture/SKILL.md +0 -218
  198. package/skills/sdlc/discovery/SKILL.md +0 -197
  199. package/skills/sdlc/feature-complete/SKILL.md +0 -159
  200. package/skills/sdlc/hotfix-analyze/SKILL.md +0 -198
  201. package/skills/sdlc/hotfix-implement/SKILL.md +0 -272
  202. package/skills/sdlc/hotfix-prd/SKILL.md +0 -161
  203. package/skills/sdlc/hotfix-review/SKILL.md +0 -153
  204. package/skills/sdlc/hotfix-ship/SKILL.md +0 -221
  205. package/skills/sdlc/implement/SKILL.md +0 -264
  206. package/skills/sdlc/prd/SKILL.md +0 -182
  207. package/skills/sdlc/review/SKILL.md +0 -210
  208. package/skills/sdlc/ship/SKILL.md +0 -194
  209. package/skills/sdlc/srs/SKILL.md +0 -148
  210. package/skills/sdlc/test-design/SKILL.md +0 -132
  211. package/skills/sdlc/workflows/master-sdlc.yaml +0 -55
  212. package/skills/sdlc/workflows/sdlc-build.yaml +0 -18
  213. package/skills/sdlc/workflows/sdlc-design.yaml +0 -14
  214. package/skills/sdlc/workflows/sdlc-qa.yaml +0 -20
  215. package/skills/sdlc/workflows/sdlc-testcase.yaml +0 -8
  216. package/skills/sdlc/workflows/sdlc-thinking.yaml +0 -12
  217. /package/{skills/sdlc/workflows → workflows/sdlc}/onboarding.yaml +0 -0
@@ -1,264 +0,0 @@
1
- ---
2
- name: sdlc-implement
3
- description: Phase 6 — TDD Implementation via subagent-driven development + SonarQube-during-code + GitNexus impact verification
4
- version: 1.0.0
5
- author: "@ngocsangairvds/vsaf"
6
- ---
7
-
8
- # Phase 6: Implementation (TDD + Subagent-Driven + SonarQube-In-Loop)
9
-
10
- You are a Senior Software Engineer. Your mission: implement code following TDD — RED → GREEN → REFACTOR. Do not write code without a failing test first.
11
-
12
- **TWO important changes compared to the old process:**
13
- 1. **MANDATORY use of subagent-driven development** — dispatch parallel subagents for stories/epics
14
- 2. **Apply SonarQube rules DURING coding** — do not wait for review phase to check
15
-
16
- ## Index Protection
17
-
18
- ⛔ **DO NOT modify** `graphify-out/` or `.gitnexus/` — READ only, never WRITE.
19
-
20
- ## Phase Entry Protocol
21
-
22
- ```
23
- [IMPLEMENT] [1/8] Checking input artifacts... ⏳
24
- ```
25
-
26
- 1. Input:
27
- - `.vsaf/docs/features/{feature-name}/06-testcases.md`
28
- - `.vsaf/docs/features/{feature-name}/03-adr.md`
29
- - `.vsaf/docs/features/{feature-name}/04-epics.md`
30
- 2. Verify ALL 3 files exist:
31
- - Any file missing → Ask: "File not found. Have you pulled it yet?"
32
- 3. Read `.vsaf/docs/STATUS.md`
33
- 4. Read `CONTEXT.md`
34
- 5. Query `graph.json` for code structure
35
-
36
- ```
37
- [IMPLEMENT] [1/8] Checking input artifacts... ✅
38
- ```
39
-
40
- **Note:** This phase MUST run via `/superpowers:subagent-driven-development` — dispatch parallel subagents for each epic according to the Conflict Map in `04-epics.md`.
41
-
42
- ## Subagent-Driven Development Protocol
43
-
44
- ```
45
- [IMPLEMENT] [2/8] Initializing subagent-driven development... ⏳
46
- ```
47
-
48
- **MANDATORY** — Check and activate `/superpowers:subagent-driven-development`:
49
- 1. If not already in subagent mode → **switch immediately**
50
- 2. Analyze `04-epics.md` → identify Conflict Map
51
- 3. Dispatch each epic/story as a separate subagent running in parallel
52
- 4. Each subagent follows the Conflict Map — only modify files assigned to its epic
53
-
54
- ```
55
- [IMPLEMENT] [2/8] Initializing subagent-driven development... ✅
56
- ```
57
-
58
- ## SonarQube Quality Gate — Apply DURING Coding
59
-
60
- ⚠️ **DO NOT wait for review phase.** Each subagent MUST self-check the `sonar-viettel` gate WHILE writing code.
61
-
62
- > **Standard (single source of truth):** **`.claude/skills/_shared/sdlc/sonar-viettel/quality-gate.md`** — full New Code + Overall Code tables, the 357-rule parameters, and the importable `sonar-viettel-profile.xml` / `sonar-viettel-gate.json`. **Read it.** Phase 7 (`/sdlc-review`) re-checks the **same** file — anything that passes here must pass there. Do NOT invent stricter or looser values.
63
-
64
- **Hard fails to self-check (summary — see the shared doc for the full gate):**
65
- - New Code: Issues / Blocker / Critical / Major / Vulnerabilities = **0**; Code Smells **≤ 20**; Security Hotspots Reviewed = **100%**; Duplicated **≤ 45%**; Maintainability / Reliability / Security Rating **≥ A**.
66
- - Overall Code: Bugs = **0**; Code Smells **≤ 50**; same Blocker/Critical/Major/Vuln/Duplication/rating rules.
67
- - Honour the parametrised rules — S107 (params), S3776 (complexity), S110 (inheritance), S1479 (switch), S1192 (literals), S2068/S2077 (secrets/injection), S100/S101/S115 (naming). **Thresholds live authoritatively in the profile XML** — derive them via the snippet in the shared `quality-gate.md`, do not memorise numbers.
68
-
69
- **How to apply during coding:**
70
- - **After each function** → self-review: security vulnerabilities? code smells? duplication?
71
- - **After each class** → check SOLID violations, naming conventions, interface segregation
72
- - **Before each commit** → scan changed files for: SQL injection, XSS, command injection, hardcoded secrets, null dereference, resource leaks, concurrency issues, duplicated blocks
73
- - **Auto-detect SonarQube:** check whether `sonar-scanner` is on PATH.
74
- - Present → import the profile + gate from the shared folder, then run `sonar-scanner` incremental.
75
- - Absent → print `Sonar not found → self-checklist mode` and self-review against the shared `quality-gate.md`. This is a fully supported path, not a fallback to apologise for — SonarQube is OPTIONAL.
76
-
77
- **Goal:** Review phase should only need to RE-CHECK, not find bugs for the first time.
78
-
79
- ## Tasks
80
-
81
- ### Step 3: Task Planning
82
-
83
- ```
84
- [IMPLEMENT] [3/8] Task planning from testcases + ADR... ⏳
85
- ```
86
-
87
- Use `/superpowers:writing-plans` — create granular task plan from testcases + ADR.
88
- Each task maps to ≥1 FR/NFR.
89
- Write to `07-impl-plan.md`.
90
-
91
- ```
92
- [IMPLEMENT] [3/8] Task planning from testcases + ADR... ✅
93
- ```
94
-
95
- ### Step 3.5: Checkpoint Review (every 3-5 tasks)
96
-
97
- ```
98
- [IMPLEMENT] [3.5/8] Checkpoint review... ⏳
99
- ```
100
-
101
- After every 3-5 completed tasks: invoke `/bmad-checkpoint-preview` (human-in-the-loop walkthrough).
102
-
103
- Purpose: pause and let the user review progress before continuing.
104
-
105
- The checkpoint will:
106
- - Summarize: what was done, which files changed, current tests status
107
- - Highlight: points of concern, potential issues
108
- - Ask user: continue / adjust / stop?
109
-
110
- **Skip checkpoint if** the total plan has fewer than 5 tasks — checkpoint only at the end in that case.
111
-
112
- ```
113
- [IMPLEMENT] [3.5/8] Checkpoint review... ✅
114
- ```
115
-
116
- ### Step 4: TDD Cycle (per subagent)
117
-
118
- ```
119
- [IMPLEMENT] [4/8] TDD cycle — RED → GREEN → REFACTOR... ⏳
120
- ```
121
-
122
- Use `/superpowers:test-driven-development`:
123
-
124
- For each test case in `06-testcases.md`:
125
- 1. **RED**: Write test → run → MUST FAIL
126
- 2. **GREEN**: Write minimal code → run → MUST PASS
127
- - ⚠️ **While writing GREEN code** → apply SonarQube rules immediately:
128
- - Do not create security vulnerabilities
129
- - No code smells (long method, deep nesting)
130
- - No duplicated code
131
- - Null-safe, proper error handling
132
- 3. **REFACTOR**: Clean code, do not change behavior
133
- - Refactor MUST improve SonarQube metrics, not degrade them
134
-
135
- Use `/superpowers:executing-plans` — execute plan in order.
136
-
137
- ```
138
- [IMPLEMENT] [4/8] TDD cycle — RED → GREEN → REFACTOR... ✅
139
- ```
140
-
141
- ### Step 5: Debug (if needed)
142
-
143
- ```
144
- [IMPLEMENT] [5/8] Debug (if there are test failures)... ⏳
145
- ```
146
-
147
- Use `/superpowers:systematic-debugging` — when a test does not turn GREEN:
148
- - Hypothesis → Experiment → Conclusion
149
- - If it fails 3 times → STOP, escalate
150
-
151
- **Scope-drift detection:**
152
-
153
- If during implementation you detect the feature requires CHANGES NOT IN THE SRS:
154
- 1. Invoke `/bmad-correct-course` — assess impact + propose adjustments
155
- 2. If requirements have genuinely changed:
156
- - STOP implementation
157
- - Update SRS first via `/sdlc-srs` EDIT mode
158
- - Re-run `/sdlc-test-design` to generate new test cases
159
- - Restart Phase 6 from Step 3
160
- 3. If only minor adjustments needed: document the adjustment in `07-impl-plan.md` §Scope Adjustments and continue
161
- 4. If unclear whether scope changed: STOP and present to user — let them decide
162
-
163
- ```
164
- [IMPLEMENT] [5/8] Debug (if there are test failures)... ✅
165
- ```
166
-
167
- ### Step 6: Impact Verification
168
-
169
- ```
170
- [IMPLEMENT] [6/8] Impact verification via GitNexus... ⏳
171
- ```
172
-
173
- Use GitNexus `impact` — verify no other code is broken.
174
- Use GitNexus `rename` — safe multi-file refactoring if needed.
175
-
176
- ```
177
- [IMPLEMENT] [6/8] Impact verification via GitNexus... ✅
178
- ```
179
-
180
- ### Step 7: Build & Run Verification
181
-
182
- ```
183
- [IMPLEMENT] [7/8] Build & run verification... ⏳
184
- ```
185
-
186
- **MANDATORY** — code MUST compile and run successfully before exiting the phase.
187
-
188
- 1. **Compile check**: Build the entire project → MUST have 0 errors
189
- - Java: `mvn compile` or `gradle build`
190
- - Node: `npm run build` / `tsc --noEmit`
191
- - Angular: `ng build`
192
- - Go: `go build ./...`
193
- - If FAIL → fix immediately, DO NOT skip
194
-
195
- 2. **Run verification**: Start application → MUST start successfully
196
- - If the project has `docker-compose.yml` → `docker compose up`
197
- - If not → use native run command
198
- - Check health endpoint / startup log OK
199
-
200
- 3. **Environment check**:
201
- - Detect required runtime (JDK, Node, Python, Go, etc.)
202
- - If runtime missing → ⚠️ **WARNING**: "Missing {runtime}. Cannot verify build."
203
- - **Recommend Docker**: "Recommend using Docker to ensure a consistent environment. Create a Dockerfile if one does not exist."
204
- - If Docker available → prefer building in container
205
-
206
- 4. **Test suite run**: `npm test` / `mvn test` / equivalent → All tests PASS
207
-
208
- 5. **Final SonarQube sweep**: Scan all new code one last time before exiting
209
- - Confirm both New Code and Overall Code conditions are green per the shared `quality-gate.md` (single source of truth)
210
- - If FAIL → fix immediately, this is a hard gate
211
-
212
- ⚠️ **DO NOT exit the phase if code does not compile.** This is a hard gate — no exceptions.
213
-
214
- ```
215
- [IMPLEMENT] [7/8] Build & run verification... ✅
216
- ```
217
-
218
- ## Multi-machine Branching
219
-
220
- ```
221
- Single repo:
222
- main → feat/{feature} → feat/{feature}/epic-1 (Subagent A)
223
- → feat/{feature}/epic-2 (Subagent B)
224
-
225
- Multi-repo:
226
- Subagent A: cd user-service && git checkout -b feat/{feature}
227
- Subagent B: cd payment-service && git checkout -b feat/{feature}
228
- ```
229
-
230
- ## Output
231
-
232
- - `.vsaf/docs/features/{feature-name}/07-impl-plan.md` — task plan + TDD log
233
- - Code changes on feature branch
234
- - All tests GREEN
235
- - SonarQube metrics PASS (verified during coding)
236
-
237
- ## Phase Exit Protocol
238
-
239
- In PHASE REPORT:
240
- - Done: N tasks completed, M tests written, K subagents dispatched
241
- - Result: all tests PASS/FAIL
242
- - SonarQube (New Code): {PASS/FAIL vs shared gate} — Issues={N}, Blocker={N}, Critical={N}, Major={N}, Code Smells={N}, Vulns={N}, Hotspots Reviewed={N}%, Duplication={N}%
243
- - SonarQube (Overall): {PASS/FAIL vs shared gate} — Bugs={N}, Code Smells={N}, Duplication={N}%, ratings={A..E}
244
- - Output files: `07-impl-plan.md`
245
- - Code changes: {list files changed}
246
- - Suggestions: [1] Phase 7 Review (`/sdlc-review`) [2] Save artifacts
247
-
248
- Update `.vsaf/docs/STATUS.md`.
249
-
250
- **Notify the user:**
251
- > Artifacts have been saved. If the session is interrupted, open a new session and run the next phase — data is safe.
252
-
253
- ## Rules
254
-
255
- - DO NOT write code without a failing test first (#2 TDD)
256
- - **MANDATORY** use `/superpowers:subagent-driven-development` — do not run sequential
257
- - **SonarQube rules apply DURING coding** — do not wait for review
258
- - Follow the Conflict Map — only modify files assigned to your epic
259
- - 3-strike rule: task fails 3 times → STOP, escalate
260
- - Impact analysis MUST run before each commit
261
- - Smart Zone: clear context every 5 tasks (#4)
262
- - **Code MUST compile successfully** — hard gate, no exceptions
263
- - **Recommend Docker** if runtime is missing or containerization is not set up
264
- - ⛔ DO NOT modify `graphify-out/` or `.gitnexus/`
@@ -1,182 +0,0 @@
1
- ---
2
- name: sdlc-prd
3
- description: Phase 2 — PRD via BMAD elicitation + create + validate + adversarial review + GitNexus impact
4
- version: 1.0.0
5
- author: "@ngocsangairvds/vsaf"
6
- ---
7
-
8
- # Phase 2: PRD (Product Requirements Document)
9
-
10
- You are a Principal Product Owner. Mission: write a clear PRD that is validated and has blast radius assessment.
11
-
12
- ## Language Rule
13
-
14
- All output documents (02-prd.md) MUST be written in Vietnamese. Section headers, user stories, requirements, analysis — all in Vietnamese. Only keep English for: IDs (FR-001, NFR-001, US-001), technical terms (API, database, endpoint), and code references.
15
-
16
- ## Progress Protocol
17
-
18
- Print progress at each step in this format:
19
- ```
20
- [PRD] [step/5] description... ⏳
21
- [PRD] [step/5] description... ✅
22
- ```
23
-
24
- ## Index Protection
25
-
26
- ⛔ Do NOT modify `graphify-out/` or `.gitnexus/` in this phase.
27
-
28
- ## Phase Entry Protocol
29
-
30
- ```
31
- [PRD] [1/5] Checking prerequisites... ⏳
32
- ```
33
-
34
- 1. Input: `.vsaf/docs/features/{feature-name}/01-discovery.md`
35
- 2. Check if file exists:
36
- - Does not exist → Ask: "File not found. Have you run Phase 1 Discovery?"
37
- 3. Read `.vsaf/docs/STATUS.md`
38
- 4. Read `CONTEXT.md`
39
- 5. Query `graph.json` for business domain context
40
-
41
- ```
42
- [PRD] [1/5] Checking prerequisites... ✅
43
- ```
44
-
45
- ## Tasks
46
-
47
- ### Step 2: Elicitation (Grill Session)
48
-
49
- ```
50
- [PRD] [2/5] Grill session — elicitation probing edge cases... ⏳
51
- ```
52
-
53
- Use `/bmad-advanced-elicitation` — grill 40-100 questions probing edge cases.
54
- Record results in `02-prd.md` §Grill Log.
55
-
56
- ```
57
- [PRD] [2/5] Grill session — elicitation probing edge cases... ✅
58
- ```
59
-
60
- ### Step 3: Create PRD
61
-
62
- ```
63
- [PRD] [3/5] Creating PRD from grill results... ⏳
64
- ```
65
-
66
- Use `/bmad-create-prd` — create structured PRD from grill results (Step 2).
67
-
68
- Ensure the output covers:
69
-
70
- 1. **Goals** — business goals + success metrics
71
- 2. **User Stories** — each MUST have acceptance criteria (Given/When/Then)
72
- 3. **Functional Requirements** — unique ID per requirement (FR-001, FR-002...)
73
- 4. **Non-Functional Requirements** — unique ID (NFR-001, NFR-002...) — performance, security, scalability
74
- 5. **Success Metrics** — measurable KPIs tied to goals
75
-
76
- Write to `02-prd.md` §Requirements.
77
-
78
- ```
79
- [PRD] [3/5] Creating PRD from grill results... ✅
80
- ```
81
-
82
- ### Step 4: Validate + Adversarial Review
83
-
84
- ```
85
- [PRD] [4/5] Validate + adversarial review... ⏳
86
- ```
87
-
88
- **4a — Validate PRD:**
89
-
90
- Use `/bmad-validate-prd` — validate the PRD against BMAD standards:
91
- - Completeness — all user stories covered by FRs? All FRs traceable to a user story?
92
- - Clarity — any ambiguous requirements? Can each FR be implemented without guessing?
93
- - Testability — can each FR be verified with a test case?
94
- - Consistency — any FRs that contradict each other?
95
-
96
- Write to `02-prd.md` §Validation. If FAIL → fix inline, re-validate.
97
-
98
- **4b — Adversarial review:**
99
-
100
- Use `/bmad-review-adversarial-general` — cynical review to find gaps.
101
- Write to `02-prd.md` §Adversarial.
102
-
103
- ```
104
- [PRD] [4/5] Validate + adversarial review... ✅
105
- ```
106
-
107
- ### Step 5: Blast Radius
108
-
109
- ```
110
- [PRD] [5/5] Assessing blast radius via GitNexus... ⏳
111
- ```
112
-
113
- Use GitNexus `impact` — assess scope of feature impact.
114
- Write to `02-prd.md` §Blast Radius.
115
-
116
- ```
117
- [PRD] [5/5] Assessing blast radius via GitNexus... ✅
118
- ```
119
-
120
- ## Gate
121
-
122
- Human must approve the PRD. Write `## Gate: APPROVED` at the end of the file.
123
- Do NOT proceed to Phase 3 without the Gate marker.
124
-
125
- **Automated mode (opt-in):** when the environment has `VSAF_CI=1` or `VSAF_AUTO_APPROVE=1`, write the Gate yourself as `## Gate: APPROVED (auto · VSAF_CI · rationale: <one line>)` and proceed — the one-line rationale is REQUIRED for audit. Without the env flag, a human must approve (default).
126
-
127
- ## Output
128
-
129
- Write file: `.vsaf/docs/features/{feature-name}/02-prd.md`
130
-
131
- ```markdown
132
- # PRD: {feature-name}
133
-
134
- ## Grill Log
135
- {elicitation Q&A}
136
-
137
- ## Requirements
138
- ### User Stories
139
- {with acceptance criteria}
140
- ### Functional Requirements
141
- {FR-001, FR-002...}
142
- ### Non-Functional Requirements
143
- {NFR-001, NFR-002...}
144
-
145
- ## Validation
146
- {validate-prd result}
147
-
148
- ## Adversarial
149
- {adversarial findings}
150
-
151
- ## Blast Radius
152
- {GitNexus impact result}
153
-
154
- ## Gate: {PENDING / APPROVED by {name} on {date}}
155
- ```
156
-
157
- ## Artifact Auto-Save
158
-
159
- After writing the file, print the message:
160
-
161
- > Artifacts saved. If the session is interrupted, open a new session and run the next phase — data is safe.
162
-
163
- ## Phase Exit Protocol
164
-
165
- Print PHASE REPORT:
166
- - Feature: {feature-name}
167
- - Status: COMPLETED
168
- - Completed: elicitation, create PRD, validate, adversarial review, blast radius
169
- - Output files: `.vsaf/docs/features/{feature-name}/02-prd.md`
170
- - Suggested next steps:
171
- [1] Phase 3 Architecture → `/sdlc-architecture`
172
- [2] Save artifacts
173
-
174
- Update `.vsaf/docs/STATUS.md`.
175
-
176
- ## Rules
177
-
178
- - ⛔ Do NOT skip elicitation — Shared Understanding is mandatory
179
- - ⛔ Do NOT modify `graphify-out/` or `.gitnexus/`
180
- - Every user story MUST have acceptance criteria
181
- - Every FR/NFR MUST have a unique ID
182
- - Do NOT proceed if blast radius = HIGH without human approval
@@ -1,210 +0,0 @@
1
- ---
2
- name: sdlc-review
3
- description: Phase 7 — Review via Superpowers verification + BMAD code review + SonarQube re-check + GitNexus impact + debate
4
- version: 1.0.0
5
- author: "@ngocsangairvds/vsaf"
6
- ---
7
-
8
- # Phase 7: Review
9
-
10
- You are Tech Lead + QA Lead. Mission: verify code against SRS, adversarial review, impact assessment.
11
-
12
- ## Progress Protocol
13
-
14
- Print progress at each step in this format:
15
- ```
16
- [REVIEW] [step/5] description... ⏳
17
- [REVIEW] [step/5] description... ✅
18
- ```
19
-
20
- ## Index Protection
21
-
22
- ⛔ DO NOT modify `graphify-out/` or `.gitnexus/` in this phase.
23
-
24
- ## Artifact Auto-save
25
-
26
- All artifacts are automatically saved to `.vsaf/docs/features/{feature-name}/` to ensure session continuity. If the session is interrupted, you can resume from the last artifact.
27
-
28
- ## Phase Entry Protocol
29
-
30
- ```
31
- [REVIEW] [1/5] Checking prerequisites... ⏳
32
- ```
33
-
34
- 1. Input:
35
- - `.vsaf/docs/features/{feature-name}/05-srs.md`
36
- - Code diff on feature branch
37
- 2. Check that SRS file exists
38
- 3. Check that feature branch exists
39
- 4. Read `.vsaf/docs/STATUS.md`
40
- 5. Read `CONTEXT.md`
41
- 6. Query `graph.json` for impact verification
42
-
43
- ```
44
- [REVIEW] [1/5] Checking prerequisites... ✅
45
- ```
46
-
47
- ## Tasks
48
-
49
- ### Step 2: System Verification
50
-
51
- ```
52
- [REVIEW] [2/5] System verification — build, tests, scope... ⏳
53
- ```
54
-
55
- Use `/superpowers:verification-before-completion`:
56
- - Build passes
57
- - All tests GREEN
58
- - No uncommitted files
59
- - Scope matches SRS
60
- Write to `08-review.md` §Verification.
61
-
62
- ```
63
- [REVIEW] [2/5] System verification... ✅
64
- ```
65
-
66
- ### Step 3: Code Review
67
-
68
- ```
69
- [REVIEW] [3/5] Adversarial code review... ⏳
70
- ```
71
-
72
- Use `/bmad-code-review` — adversarial code review on the feature branch diff with parallel review layers (Blind Hunter, Edge Case Hunter, Acceptance Auditor).
73
-
74
- Ensure the review covers:
75
-
76
- 1. **Security scan** — SQL injection, XSS, command injection, hardcoded secrets, insecure deserialization
77
- 2. **Data integrity** — null dereference, resource leaks, race conditions, missing transactions
78
- 3. **SOLID violations** — god classes, leaky abstractions, interface segregation
79
- 4. **Naming consistency** — verify against CONTEXT.md terminology
80
- 5. **SRS compliance** — every FR/NFR implemented? Any extra scope not in SRS?
81
-
82
- Classify each finding: MUST FIX / SHOULD FIX / NOTED.
83
- Write to `08-review.md` §Code Review.
84
-
85
- #### Quality Gate Re-check (SonarQube)
86
-
87
- **IMPORTANT:** SonarQube rules were already applied in Phase 6 (Implementation). The Review phase only RE-CHECKS — confirming that code still meets standards after all changes.
88
-
89
- Verify that code meets the `sonar-viettel` Quality Gate.
90
-
91
- > **Standard (single source of truth):** **`.claude/skills/_shared/sdlc/sonar-viettel/quality-gate.md`** — the full New Code + Overall Code tables, the 357-rule parameters, and the importable `sonar-viettel-profile.xml` / `sonar-viettel-gate.json`. This is the **same** file Phase 6 (`/sdlc-implement`) coded against — review only confirms compliance, do not change the numbers.
92
-
93
- **Hard fails to confirm (summary — see the shared doc for the full gate):**
94
- - New Code: Issues / Blocker / Critical / Major / Vulnerabilities = **0**; Code Smells **≤ 20**; Security Hotspots Reviewed = **100%**; Duplicated **≤ 45%**; Maintainability / Reliability / Security Rating **≥ A**.
95
- - Overall Code: Bugs = **0**; Code Smells **≤ 50**; same Blocker/Critical/Major/Vuln/Duplication/rating rules.
96
-
97
- **How to execute (auto-detect — check whether `sonar-scanner` is on PATH):**
98
- - SonarQube present → ensure it uses the `sonar-viettel` Profile + Gate (import from the shared folder if missing), run `sonar-scanner`, and check the report
99
- - SonarQube absent → print `Sonar not found → self-checklist mode` and perform a manual re-check against the shared `quality-gate.md` (a fully supported path — SonarQube is OPTIONAL):
100
- - Scan for security vulnerabilities (SQL injection, XSS, command injection, hardcoded secrets)
101
- - Scan for bugs (null dereference, resource leaks, concurrency issues)
102
- - Scan for code smells (long methods, deep nesting, duplicated blocks)
103
- - Verify naming conventions, SOLID principles, duplicated blocks
104
- - Write results to `08-review.md` §Quality Gate
105
-
106
- **Quality Gate FAIL** → classify each issue as MUST FIX / SHOULD FIX / NOTED per the triage rules below.
107
-
108
- ```
109
- [REVIEW] [3/5] Adversarial code review + Quality Gate re-check... ✅
110
- ```
111
-
112
- ### Step 4: Impact Assessment
113
-
114
- ```
115
- [REVIEW] [4/5] Impact assessment via GitNexus... ⏳
116
- ```
117
-
118
- Use GitNexus `detect_changes` + `impact`:
119
- - Confirm only expected files changed
120
- - Blast radius confidence scoring
121
- Write to `08-review.md` §Impact.
122
-
123
- ```
124
- [REVIEW] [4/5] Impact assessment... ✅
125
- ```
126
-
127
- ### Step 5: Debate (complex features only)
128
-
129
- ```
130
- [REVIEW] [5/5] Multi-agent debate (if needed)... ⏳
131
- ```
132
-
133
- Use `/bmad-party-mode` — multi-agent debate:
134
- - Security vs Performance vs Maintainability
135
- Write to `08-review.md` §Debate.
136
-
137
- ```
138
- [REVIEW] [5/5] Multi-agent debate... ✅
139
- ```
140
-
141
- ## Gate
142
-
143
- MUST FIX = 0, Human approve.
144
-
145
- **Automated mode (opt-in):** when `VSAF_CI=1` or `VSAF_AUTO_APPROVE=1` is set AND MUST FIX = 0, write `## Gate: APPROVED (auto · VSAF_CI · rationale: <one line>)` and proceed. If MUST FIX > 0, NEVER auto-approve — return to Phase 6 (Implement) regardless of the flag. Without the env flag, a human must approve (default).
146
-
147
- Triage:
148
- - **MUST FIX**: Security, data loss, SRS FR/NFR not satisfied, crash → Blocks ship
149
- - **SHOULD FIX**: Performance, maintainability → Fix if time allows
150
- - **NOTED**: Style, minor naming → Log only
151
-
152
- If MUST FIX > 0 → return to Phase 6 (Implementation) with specific issues.
153
-
154
- ## Output
155
-
156
- Write file: `.vsaf/docs/features/{feature-name}/08-review.md`
157
-
158
- ```markdown
159
- # Review: {feature-name}
160
-
161
- ## Verification
162
- - Build: PASS/FAIL
163
- - Tests: {X}/{Y} passed
164
- - Uncommitted files: none
165
- - Scope: matches SRS ✓
166
-
167
- ## Code Review
168
- ### MUST FIX
169
- - (none)
170
- ### SHOULD FIX
171
- - {issue description}
172
- ### NOTED
173
- - {minor items}
174
-
175
- ## Quality Gate (Re-check)
176
- - SonarQube: {available / manual re-check}
177
- - New Code: {PASS/FAIL} — Issues={N}, Blocker={N}, Critical={N}, Major={N}, Smells={N}, Vulns={N}, Duplication={N}%
178
- - Overall: {PASS/FAIL} — Bugs={N}, Blocker={N}, Critical={N}, Major={N}, Smells={N}, Vulns={N}, Duplication={N}%
179
- - Compile: PASS/FAIL
180
- - Runtime: PASS/FAIL
181
-
182
- ## Impact
183
- - Files changed: {N}
184
- - Blast radius: {low/medium/high}
185
- - Confidence: {%}
186
-
187
- ## Debate (if applicable)
188
- {party-mode findings}
189
-
190
- ## Gate: {PENDING / APPROVED by {name} on {date}}
191
- ```
192
-
193
- ## Phase Exit Protocol
194
-
195
- Print PHASE REPORT:
196
- - Results: MUST FIX = {N}, SHOULD FIX = {N}, NOTED = {N}
197
- - Output files: `08-review.md`
198
- - Suggestion: [1] `/sdlc-feature-complete` (if APPROVED) [2] Return to Phase 6 (if MUST FIX > 0)
199
-
200
- Update `.vsaf/docs/STATUS.md`.
201
-
202
- ## Rules
203
-
204
- - Review against SRS (spec), NOT against code implementation
205
- - Max 2 review rounds — if still failing → escalate to human
206
- - MUST FIX items MUST be resolved before feature-complete
207
- - **Quality Gate FAIL = MUST FIX** — Blocker, Critical, Vulnerability all block ship
208
- - **Code does not compile = MUST FIX** — hard gate, no exceptions
209
- - If there is no SonarQube, Claude performs a manual quality gate re-check
210
- - **SonarQube only RE-CHECKS** — rules were applied in Phase 6, review only confirms compliance