@ngocsangairvds/vsaf 5.1.5 → 5.1.7

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 (280) 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 +14 -30
  4. package/packages/cli/dist/adapters/antigravity.js.map +1 -1
  5. package/packages/cli/dist/adapters/claude.d.ts.map +1 -1
  6. package/packages/cli/dist/adapters/claude.js +8 -10
  7. package/packages/cli/dist/adapters/claude.js.map +1 -1
  8. package/packages/cli/dist/adapters/codex.d.ts.map +1 -1
  9. package/packages/cli/dist/adapters/codex.js +6 -9
  10. package/packages/cli/dist/adapters/codex.js.map +1 -1
  11. package/packages/cli/dist/adapters/cursor.d.ts.map +1 -1
  12. package/packages/cli/dist/adapters/cursor.js +22 -24
  13. package/packages/cli/dist/adapters/cursor.js.map +1 -1
  14. package/packages/cli/dist/commands/init.d.ts.map +1 -1
  15. package/packages/cli/dist/commands/init.js +7 -19
  16. package/packages/cli/dist/commands/init.js.map +1 -1
  17. package/packages/cli/dist/commands/install.d.ts +3 -6
  18. package/packages/cli/dist/commands/install.d.ts.map +1 -1
  19. package/packages/cli/dist/commands/install.js +27 -10
  20. package/packages/cli/dist/commands/install.js.map +1 -1
  21. package/packages/cli/dist/commands/skill.d.ts.map +1 -1
  22. package/packages/cli/dist/commands/skill.js +40 -16
  23. package/packages/cli/dist/commands/skill.js.map +1 -1
  24. package/packages/cli/dist/index.js +2 -2
  25. package/packages/cli/dist/index.js.map +1 -1
  26. package/packages/cli/dist/install/orchestrator.d.ts +0 -8
  27. package/packages/cli/dist/install/orchestrator.d.ts.map +1 -1
  28. package/packages/cli/dist/install/orchestrator.js +3 -54
  29. package/packages/cli/dist/install/orchestrator.js.map +1 -1
  30. package/packages/cli/dist/server/routes/runs.d.ts.map +1 -1
  31. package/packages/cli/dist/server/routes/runs.js +81 -3
  32. package/packages/cli/dist/server/routes/runs.js.map +1 -1
  33. package/packages/cli/dist/server/routes/workflows.d.ts.map +1 -1
  34. package/packages/cli/dist/server/routes/workflows.js +76 -17
  35. package/packages/cli/dist/server/routes/workflows.js.map +1 -1
  36. package/packages/cli/dist/server/services/execution-manager.d.ts +11 -1
  37. package/packages/cli/dist/server/services/execution-manager.d.ts.map +1 -1
  38. package/packages/cli/dist/server/services/execution-manager.js +88 -17
  39. package/packages/cli/dist/server/services/execution-manager.js.map +1 -1
  40. package/packages/cli/dist/server/static.d.ts.map +1 -1
  41. package/packages/cli/dist/server/static.js +4 -1
  42. package/packages/cli/dist/server/static.js.map +1 -1
  43. package/packages/cli/dist/server/workflow-path.d.ts +3 -0
  44. package/packages/cli/dist/server/workflow-path.d.ts.map +1 -0
  45. package/packages/cli/dist/server/workflow-path.js +25 -0
  46. package/packages/cli/dist/server/workflow-path.js.map +1 -0
  47. package/packages/core/dist/store/recovery.d.ts.map +1 -1
  48. package/packages/core/dist/store/recovery.js +12 -1
  49. package/packages/core/dist/store/recovery.js.map +1 -1
  50. package/packages/core/dist/store/run-store.d.ts +3 -0
  51. package/packages/core/dist/store/run-store.d.ts.map +1 -1
  52. package/packages/core/dist/store/run-store.js +33 -0
  53. package/packages/core/dist/store/run-store.js.map +1 -1
  54. package/packages/core/dist/store/types.d.ts +2 -2
  55. package/packages/core/dist/store/types.d.ts.map +1 -1
  56. package/packages/core/dist/store/types.js.map +1 -1
  57. package/packages/core/dist/store/wal.js +1 -1
  58. package/packages/core/dist/store/wal.js.map +1 -1
  59. package/packages/web/dist/web/3rdpartylicenses.txt +26 -26
  60. package/packages/web/dist/web/browser/chunk-4YPNNQ2T.js +4 -0
  61. package/packages/web/dist/web/browser/chunk-E227ZHPJ.js +1 -0
  62. package/packages/web/dist/web/browser/chunk-JFBK3MNW.js +1 -0
  63. package/packages/web/dist/web/browser/chunk-L2VOQBBI.js +1 -0
  64. package/packages/web/dist/web/browser/chunk-OJJM5VOH.js +1 -0
  65. package/packages/web/dist/web/browser/chunk-U2H3QYAG.js +5 -0
  66. package/packages/web/dist/web/browser/chunk-VA7KFQOR.js +1 -0
  67. package/packages/web/dist/web/browser/chunk-WV3C6DNH.js +1 -0
  68. package/packages/web/dist/web/browser/index.html +2 -2
  69. package/packages/web/dist/web/browser/main-THGFWXYL.js +1 -0
  70. package/packages/web/dist/web/browser/{styles-JBPZVY54.css → styles-PWTTI45T.css} +1 -1
  71. package/skills/sdlc/architecture/current-state/SKILL.md +10 -0
  72. package/skills/sdlc/architecture/current-state/step.md +13 -0
  73. package/skills/sdlc/architecture/decision/SKILL.md +10 -0
  74. package/skills/sdlc/architecture/decision/step.md +21 -0
  75. package/skills/sdlc/architecture/epics/SKILL.md +10 -0
  76. package/skills/sdlc/architecture/epics/step.md +34 -0
  77. package/skills/sdlc/architecture/grill/SKILL.md +10 -0
  78. package/skills/sdlc/architecture/grill/step.md +26 -0
  79. package/skills/sdlc/architecture/prereq/SKILL.md +10 -0
  80. package/skills/sdlc/architecture/prereq/step.md +16 -0
  81. package/skills/sdlc/architecture/readiness/SKILL.md +10 -0
  82. package/skills/sdlc/architecture/readiness/step.md +76 -0
  83. package/skills/sdlc/complete/context/SKILL.md +10 -0
  84. package/skills/sdlc/complete/context/step.md +14 -0
  85. package/skills/sdlc/complete/knowledge/SKILL.md +10 -0
  86. package/skills/sdlc/complete/knowledge/step.md +22 -0
  87. package/skills/sdlc/complete/prereq/SKILL.md +10 -0
  88. package/skills/sdlc/complete/prereq/step.md +16 -0
  89. package/skills/sdlc/complete/reindex/SKILL.md +10 -0
  90. package/skills/sdlc/complete/reindex/step.md +24 -0
  91. package/skills/sdlc/complete/status/SKILL.md +10 -0
  92. package/skills/sdlc/complete/status/step.md +52 -0
  93. package/skills/sdlc/discovery/brainstorm/SKILL.md +10 -0
  94. package/skills/sdlc/discovery/brainstorm/step.md +27 -0
  95. package/skills/sdlc/discovery/domain/SKILL.md +10 -0
  96. package/skills/sdlc/discovery/domain/step.md +13 -0
  97. package/skills/sdlc/discovery/grill/SKILL.md +10 -0
  98. package/skills/sdlc/discovery/grill/step.md +22 -0
  99. package/skills/sdlc/discovery/prereq/SKILL.md +10 -0
  100. package/skills/sdlc/discovery/prereq/step.md +16 -0
  101. package/skills/sdlc/discovery/prfaq/SKILL.md +10 -0
  102. package/skills/sdlc/discovery/prfaq/step.md +68 -0
  103. package/skills/sdlc/discovery/system/SKILL.md +10 -0
  104. package/skills/sdlc/discovery/system/step.md +19 -0
  105. package/skills/sdlc/hotfix/analyze/entry/SKILL.md +10 -0
  106. package/skills/sdlc/hotfix/analyze/entry/step.md +15 -0
  107. package/skills/sdlc/hotfix/analyze/exit/SKILL.md +10 -0
  108. package/skills/sdlc/hotfix/analyze/exit/step.md +19 -0
  109. package/skills/sdlc/hotfix/analyze/fix-strategy/SKILL.md +10 -0
  110. package/skills/sdlc/hotfix/analyze/fix-strategy/step.md +15 -0
  111. package/skills/sdlc/hotfix/analyze/gitnexus/SKILL.md +10 -0
  112. package/skills/sdlc/hotfix/analyze/gitnexus/step.md +17 -0
  113. package/skills/sdlc/hotfix/analyze/grill/SKILL.md +10 -0
  114. package/skills/sdlc/hotfix/analyze/grill/step.md +23 -0
  115. package/skills/sdlc/hotfix/analyze/reasoning/SKILL.md +10 -0
  116. package/skills/sdlc/hotfix/analyze/reasoning/step.md +29 -0
  117. package/skills/sdlc/hotfix/analyze/write/SKILL.md +10 -0
  118. package/skills/sdlc/hotfix/analyze/write/step.md +45 -0
  119. package/skills/sdlc/hotfix/implement/branch/SKILL.md +10 -0
  120. package/skills/sdlc/hotfix/implement/branch/step.md +15 -0
  121. package/skills/sdlc/hotfix/implement/entry/SKILL.md +10 -0
  122. package/skills/sdlc/hotfix/implement/entry/step.md +20 -0
  123. package/skills/sdlc/hotfix/implement/gate/SKILL.md +10 -0
  124. package/skills/sdlc/hotfix/implement/gate/step.md +104 -0
  125. package/skills/sdlc/hotfix/implement/impact/SKILL.md +10 -0
  126. package/skills/sdlc/hotfix/implement/impact/step.md +15 -0
  127. package/skills/sdlc/hotfix/implement/sonar/SKILL.md +10 -0
  128. package/skills/sdlc/hotfix/implement/sonar/step.md +27 -0
  129. package/skills/sdlc/hotfix/implement/tdd/SKILL.md +10 -0
  130. package/skills/sdlc/hotfix/implement/tdd/step.md +33 -0
  131. package/skills/sdlc/hotfix/implement/verify/SKILL.md +10 -0
  132. package/skills/sdlc/hotfix/implement/verify/step.md +27 -0
  133. package/skills/sdlc/hotfix/prd/entry/SKILL.md +10 -0
  134. package/skills/sdlc/hotfix/prd/entry/step.md +20 -0
  135. package/skills/sdlc/hotfix/prd/gate/SKILL.md +10 -0
  136. package/skills/sdlc/hotfix/prd/gate/step.md +32 -0
  137. package/skills/sdlc/hotfix/prd/requirements/SKILL.md +10 -0
  138. package/skills/sdlc/hotfix/prd/requirements/step.md +19 -0
  139. package/skills/sdlc/hotfix/prd/validate/SKILL.md +10 -0
  140. package/skills/sdlc/hotfix/prd/validate/step.md +19 -0
  141. package/skills/sdlc/hotfix/prd/write/SKILL.md +10 -0
  142. package/skills/sdlc/hotfix/prd/write/step.md +38 -0
  143. package/skills/sdlc/hotfix/review/entry/SKILL.md +10 -0
  144. package/skills/sdlc/hotfix/review/entry/step.md +13 -0
  145. package/skills/sdlc/hotfix/review/gate/SKILL.md +10 -0
  146. package/skills/sdlc/hotfix/review/gate/step.md +51 -0
  147. package/skills/sdlc/hotfix/review/impact/SKILL.md +10 -0
  148. package/skills/sdlc/hotfix/review/impact/step.md +22 -0
  149. package/skills/sdlc/hotfix/review/minimality/SKILL.md +10 -0
  150. package/skills/sdlc/hotfix/review/minimality/step.md +18 -0
  151. package/skills/sdlc/hotfix/review/test-quality/SKILL.md +10 -0
  152. package/skills/sdlc/hotfix/review/test-quality/step.md +16 -0
  153. package/skills/sdlc/hotfix/ship/commit-pr/SKILL.md +10 -0
  154. package/skills/sdlc/hotfix/ship/commit-pr/step.md +58 -0
  155. package/skills/sdlc/hotfix/ship/entry/SKILL.md +10 -0
  156. package/skills/sdlc/hotfix/ship/entry/step.md +20 -0
  157. package/skills/sdlc/hotfix/ship/exit/SKILL.md +10 -0
  158. package/skills/sdlc/hotfix/ship/exit/step.md +31 -0
  159. package/skills/sdlc/hotfix/ship/gitignore/SKILL.md +10 -0
  160. package/skills/sdlc/hotfix/ship/gitignore/step.md +22 -0
  161. package/skills/sdlc/hotfix/ship/report/SKILL.md +10 -0
  162. package/skills/sdlc/hotfix/ship/report/step.md +47 -0
  163. package/skills/sdlc/hotfix/ship/test-gate/SKILL.md +10 -0
  164. package/skills/sdlc/hotfix/ship/test-gate/step.md +17 -0
  165. package/skills/sdlc/implement/build-run/SKILL.md +10 -0
  166. package/skills/sdlc/implement/build-run/step.md +85 -0
  167. package/skills/sdlc/implement/checkpoint/SKILL.md +10 -0
  168. package/skills/sdlc/implement/checkpoint/step.md +20 -0
  169. package/skills/sdlc/implement/debug/SKILL.md +10 -0
  170. package/skills/sdlc/implement/debug/step.md +25 -0
  171. package/skills/sdlc/implement/impact/SKILL.md +10 -0
  172. package/skills/sdlc/implement/impact/step.md +12 -0
  173. package/skills/sdlc/implement/plan/SKILL.md +10 -0
  174. package/skills/sdlc/implement/plan/step.md +13 -0
  175. package/skills/sdlc/implement/prereq/SKILL.md +10 -0
  176. package/skills/sdlc/implement/prereq/step.md +21 -0
  177. package/skills/sdlc/implement/subagents/SKILL.md +10 -0
  178. package/skills/sdlc/implement/subagents/step.md +38 -0
  179. package/skills/sdlc/implement/tdd/SKILL.md +10 -0
  180. package/skills/sdlc/implement/tdd/step.md +24 -0
  181. package/skills/sdlc/init/SKILL.md +7 -0
  182. package/skills/sdlc/onboard-code/SKILL.md +7 -0
  183. package/skills/sdlc/onboard-docs/SKILL.md +7 -0
  184. package/skills/sdlc/pack.yaml +83 -16
  185. package/skills/sdlc/prd/blast-radius/SKILL.md +10 -0
  186. package/skills/sdlc/prd/blast-radius/step.md +76 -0
  187. package/skills/sdlc/prd/create/SKILL.md +10 -0
  188. package/skills/sdlc/prd/create/step.md +21 -0
  189. package/skills/sdlc/prd/elicitation/SKILL.md +10 -0
  190. package/skills/sdlc/prd/elicitation/step.md +12 -0
  191. package/skills/sdlc/prd/prereq/SKILL.md +10 -0
  192. package/skills/sdlc/prd/prereq/step.md +16 -0
  193. package/skills/sdlc/prd/validate/SKILL.md +10 -0
  194. package/skills/sdlc/prd/validate/step.md +24 -0
  195. package/skills/sdlc/review/code/SKILL.md +10 -0
  196. package/skills/sdlc/review/code/step.md +45 -0
  197. package/skills/sdlc/review/debate/SKILL.md +10 -0
  198. package/skills/sdlc/review/debate/step.md +84 -0
  199. package/skills/sdlc/review/impact/SKILL.md +10 -0
  200. package/skills/sdlc/review/impact/step.md +14 -0
  201. package/skills/sdlc/review/prereq/SKILL.md +10 -0
  202. package/skills/sdlc/review/prereq/step.md +18 -0
  203. package/skills/sdlc/review/verification/SKILL.md +10 -0
  204. package/skills/sdlc/review/verification/step.md +16 -0
  205. package/skills/sdlc/ship/commit/SKILL.md +10 -0
  206. package/skills/sdlc/ship/commit/step.md +23 -0
  207. package/skills/sdlc/ship/gitignore/SKILL.md +10 -0
  208. package/skills/sdlc/ship/gitignore/step.md +22 -0
  209. package/skills/sdlc/ship/pr/SKILL.md +10 -0
  210. package/skills/sdlc/ship/pr/step.md +34 -0
  211. package/skills/sdlc/ship/prereq/SKILL.md +10 -0
  212. package/skills/sdlc/ship/prereq/step.md +16 -0
  213. package/skills/sdlc/ship/report/SKILL.md +10 -0
  214. package/skills/sdlc/ship/report/step.md +74 -0
  215. package/skills/sdlc/srs/interface/SKILL.md +10 -0
  216. package/skills/sdlc/srs/interface/step.md +44 -0
  217. package/skills/sdlc/srs/prereq/SKILL.md +10 -0
  218. package/skills/sdlc/srs/prereq/step.md +19 -0
  219. package/skills/sdlc/srs/validate/SKILL.md +10 -0
  220. package/skills/sdlc/srs/validate/step.md +23 -0
  221. package/skills/sdlc/srs/write/SKILL.md +10 -0
  222. package/skills/sdlc/srs/write/step.md +19 -0
  223. package/skills/sdlc/test-design/boundary/SKILL.md +10 -0
  224. package/skills/sdlc/test-design/boundary/step.md +12 -0
  225. package/skills/sdlc/test-design/cases/SKILL.md +10 -0
  226. package/skills/sdlc/test-design/cases/step.md +22 -0
  227. package/skills/sdlc/test-design/coverage/SKILL.md +10 -0
  228. package/skills/sdlc/test-design/coverage/step.md +63 -0
  229. package/skills/sdlc/test-design/prereq/SKILL.md +10 -0
  230. package/skills/sdlc/test-design/prereq/step.md +15 -0
  231. package/{skills/sdlc/workflows → workflows/sdlc}/hotfix-tdd.yaml +2 -1
  232. package/{skills/sdlc/workflows → workflows/sdlc}/hotfix.yaml +8 -4
  233. package/workflows/sdlc/master-sdlc.yaml +64 -0
  234. package/workflows/sdlc/sdlc-architecture.yaml +43 -0
  235. package/workflows/sdlc/sdlc-build.yaml +51 -0
  236. package/workflows/sdlc/sdlc-design.yaml +61 -0
  237. package/workflows/sdlc/sdlc-discovery.yaml +43 -0
  238. package/workflows/sdlc/sdlc-feature-complete.yaml +36 -0
  239. package/workflows/sdlc/sdlc-hotfix-analyze.yaml +43 -0
  240. package/workflows/sdlc/sdlc-hotfix-implement.yaml +43 -0
  241. package/workflows/sdlc/sdlc-hotfix-prd.yaml +31 -0
  242. package/workflows/sdlc/sdlc-hotfix-review.yaml +31 -0
  243. package/workflows/sdlc/sdlc-hotfix-ship.yaml +37 -0
  244. package/workflows/sdlc/sdlc-implement.yaml +60 -0
  245. package/workflows/sdlc/sdlc-prd.yaml +36 -0
  246. package/workflows/sdlc/sdlc-qa.yaml +91 -0
  247. package/workflows/sdlc/sdlc-review.yaml +36 -0
  248. package/workflows/sdlc/sdlc-ship.yaml +36 -0
  249. package/workflows/sdlc/sdlc-srs.yaml +29 -0
  250. package/workflows/sdlc/sdlc-test-design.yaml +29 -0
  251. package/workflows/sdlc/sdlc-testcase.yaml +25 -0
  252. package/workflows/sdlc/sdlc-thinking.yaml +67 -0
  253. package/packages/web/dist/web/browser/chunk-IPMFXW6N.js +0 -1
  254. package/packages/web/dist/web/browser/chunk-IX2QWMX2.js +0 -1
  255. package/packages/web/dist/web/browser/chunk-QMAH5NZC.js +0 -1
  256. package/packages/web/dist/web/browser/chunk-RGFLNLPM.js +0 -1
  257. package/packages/web/dist/web/browser/chunk-RKWDHBN3.js +0 -5
  258. package/packages/web/dist/web/browser/chunk-XGYEZIV4.js +0 -1
  259. package/packages/web/dist/web/browser/main-IIUZVPMI.js +0 -1
  260. package/skills/sdlc/architecture/SKILL.md +0 -218
  261. package/skills/sdlc/discovery/SKILL.md +0 -197
  262. package/skills/sdlc/feature-complete/SKILL.md +0 -159
  263. package/skills/sdlc/hotfix-analyze/SKILL.md +0 -198
  264. package/skills/sdlc/hotfix-implement/SKILL.md +0 -272
  265. package/skills/sdlc/hotfix-prd/SKILL.md +0 -161
  266. package/skills/sdlc/hotfix-review/SKILL.md +0 -153
  267. package/skills/sdlc/hotfix-ship/SKILL.md +0 -221
  268. package/skills/sdlc/implement/SKILL.md +0 -264
  269. package/skills/sdlc/prd/SKILL.md +0 -182
  270. package/skills/sdlc/review/SKILL.md +0 -210
  271. package/skills/sdlc/ship/SKILL.md +0 -194
  272. package/skills/sdlc/srs/SKILL.md +0 -148
  273. package/skills/sdlc/test-design/SKILL.md +0 -132
  274. package/skills/sdlc/workflows/master-sdlc.yaml +0 -35
  275. package/skills/sdlc/workflows/sdlc-build.yaml +0 -18
  276. package/skills/sdlc/workflows/sdlc-design.yaml +0 -14
  277. package/skills/sdlc/workflows/sdlc-qa.yaml +0 -20
  278. package/skills/sdlc/workflows/sdlc-testcase.yaml +0 -8
  279. package/skills/sdlc/workflows/sdlc-thinking.yaml +0 -12
  280. /package/{skills/sdlc/workflows → workflows/sdlc}/onboarding.yaml +0 -0
@@ -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
@@ -1,194 +0,0 @@
1
- ---
2
- name: sdlc-ship
3
- description: Phase 9 — Ship via commit (source + .vsaf/docs only) + PR generation
4
- version: 1.0.0
5
- author: "@ngocsangairvds/vsaf"
6
- ---
7
-
8
- # Phase 9: Ship
9
-
10
- You are DevOps Engineer. Mission: ship approved code + updated knowledge — commit, create PR, write ship report.
11
-
12
- ## Progress Protocol
13
-
14
- Print progress at each step in this format:
15
- ```
16
- [SHIP] [step/5] description... ⏳
17
- [SHIP] [step/5] description... ✅
18
- ```
19
-
20
- ## Phase Entry Protocol
21
-
22
- ```
23
- [SHIP] [1/5] Checking prerequisites... ⏳
24
- ```
25
-
26
- 1. Input: `.vsaf/docs/features/{feature-name}/08-review.md`
27
- 2. Check that the file exists + **check for Gate: APPROVED**
28
- - No Gate → Stop: "Review has not been approved"
29
- 3. Check `.vsaf/docs/STATUS.md` — feature must be in "Knowledge Updated" status
30
- - If not → Stop: "Feature has not passed feature-complete. Run `/sdlc-feature-complete` first."
31
- 4. Read `CONTEXT.md`
32
-
33
- ```
34
- [SHIP] [1/5] Checking prerequisites... ✅
35
- ```
36
-
37
- ## Tasks
38
-
39
- ### Step 2: .gitignore Enforcement
40
-
41
- ```
42
- [SHIP] [2/5] Checking .gitignore — ensuring index files are not committed... ⏳
43
- ```
44
-
45
- **MANDATORY** — MUST verify before committing:
46
-
47
- 1. Check that `.gitignore` contains:
48
- ```
49
- graphify-out/
50
- .gitnexus/
51
- ```
52
- 2. If MISSING → **AUTOMATICALLY add to `.gitignore`** and notify user
53
- 3. Verify with `git status` — `graphify-out/` and `.gitnexus/` DO NOT appear in staged/unstaged files
54
- 4. If they still appear → `git rm --cached -r graphify-out/ .gitnexus/` before committing
55
-
56
- ⚠️ **ABSOLUTELY DO NOT commit `graphify-out/` or `.gitnexus/`** — these are local indexes, each machine builds its own.
57
-
58
- ```
59
- [SHIP] [2/5] Checking .gitignore... ✅
60
- ```
61
-
62
- ### Step 3: Merge Strategy + Commit
63
-
64
- ```
65
- [SHIP] [3/5] Commit source code + .vsaf/docs/... ⏳
66
- ```
67
-
68
- Use `/superpowers:finishing-a-development-branch`:
69
- - Decide merge strategy (merge commit / squash / rebase)
70
- - Resolve conflicts if any
71
- - Verify final build passes
72
-
73
- **Commit scope — ONLY commit:**
74
- - Source code changes (implementation / fix)
75
- - `.vsaf/docs/` folder (artifacts, CONTEXT.md, KNOWLEDGE.md, STATUS.md)
76
- - `.gitignore` (if updated)
77
-
78
- **DO NOT commit:**
79
- - `graphify-out/` — local graph index
80
- - `.gitnexus/` — local code index
81
-
82
- ```
83
- [SHIP] [3/5] Commit source code + .vsaf/docs/... ✅
84
- ```
85
-
86
- ### Step 4: Push + PR
87
-
88
- ```
89
- [SHIP] [4/5] Push branch + create PR... ⏳
90
- ```
91
-
92
- Generate PR description from review artifacts:
93
- - Read the review file from `{artifact-dir}` — summary, impact, test results
94
- - Create a structured PR description
95
- - Open PR (or suggest command if multi-repo)
96
-
97
- **Branch naming:** `feat/{feature-name}`
98
-
99
- **Single repo:**
100
- ```bash
101
- git push -u origin {branch}
102
- gh pr create --title "{title}" --body "{description}"
103
- ```
104
-
105
- **Multi-repo:**
106
- ```
107
- For each repo with code changes:
108
- cd {repo} && git push -u origin {branch}
109
- gh pr create --title "{title}" --body "{description}"
110
- ```
111
-
112
- **Add note to PR description:**
113
- ```
114
- > **Note for reviewer:** After pulling the code, run `npx gitnexus analyze` and `/graphify` to re-index locally.
115
- ```
116
-
117
- ```
118
- [SHIP] [4/5] Push branch + create PR... ✅
119
- ```
120
-
121
- ### Step 5: Ship Report
122
-
123
- ```
124
- [SHIP] [5/5] Writing ship report... ⏳
125
- ```
126
-
127
- Write file: `.vsaf/docs/features/{feature-name}/09-ship.md`
128
-
129
- ```
130
- [SHIP] [5/5] Writing ship report... ✅
131
- ```
132
-
133
- ## Output
134
-
135
- ```markdown
136
- # Ship Report: {feature-name}
137
-
138
- ## PR
139
- - {repo}: PR #{number} — {url}
140
-
141
- ## Merge Strategy
142
- {merge commit / squash / rebase}
143
-
144
- ## Commit Scope
145
- - Source code: {N} files
146
- - .vsaf/docs/: {M} files (artifacts + knowledge)
147
- - Excluded: graphify-out/, .gitnexus/ (local index)
148
-
149
- ## Final Status
150
- - Build: PASS
151
- - Tests: all GREEN
152
- - Review: APPROVED
153
- - Knowledge: UPDATED (feature-complete done)
154
-
155
- ## Traceability
156
- US-001 → FR-001 → TC-001 → impl ✓
157
- US-002 → FR-002 → TC-003 → impl ✓
158
-
159
- ## Post-pull Setup
160
- After pulling the code, run:
161
- - `npx gitnexus analyze` — re-index code
162
- - `/graphify` — rebuild knowledge graph
163
- ```
164
-
165
- ## Phase Exit Protocol
166
-
167
- Print PHASE REPORT:
168
- ```
169
- ═══════════════════════════════════════════
170
- SHIP COMPLETE: {feature-name}
171
- ═══════════════════════════════════════════
172
- Phase: 9 (Ship — final phase)
173
-
174
- PR: #{number} — {url}
175
- Commit: source code + .vsaf/docs/ only
176
- Excluded: graphify-out/, .gitnexus/
177
-
178
- Phases completed: 1→2→3→4→5→6→7→8→9
179
- Artifacts: .vsaf/docs/features/{feature-name}/ (9 files)
180
-
181
- Feature DONE.
182
- ═══════════════════════════════════════════
183
- ```
184
-
185
- Update `.vsaf/docs/STATUS.md` → move to "Completed Features".
186
-
187
- ## Rules
188
-
189
- - DO NOT review code — that is the review phase's job
190
- - Only ship code that is APPROVED + knowledge UPDATED (feature-complete done)
191
- - PR description MUST be self-contained (reading the PR alone should be enough to understand the feature without reading artifacts)
192
- - **ABSOLUTELY DO NOT commit `graphify-out/` or `.gitnexus/`** — verify .gitignore first
193
- - **ONLY commit source code + `.vsaf/docs/`**
194
- - Add re-index note to PR description for team members