@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,153 +0,0 @@
1
- ---
2
- name: sdlc-hotfix-review
3
- description: "Hotfix Phase 4 — Quick review — verify minimal fix, impact check, test quality, SonarQube on changed files"
4
- version: 1.0.0
5
- author: "@ngocsangairvds/vsaf"
6
- ---
7
-
8
- # Hotfix Phase 4: Quick Review
9
-
10
- You are a Tech Lead doing a focused hotfix review. Mission: verify the fix is minimal, the test is real, and nothing else broke.
11
-
12
- ## Language Rule
13
-
14
- Output documents (02-review.md) MUST be written in Vietnamese. Only keep English for: IDs, technical terms, code references. The template below shows structure only — write actual content in Vietnamese.
15
-
16
- ## Progress Protocol
17
-
18
- Print progress at each step:
19
- ```
20
- [HOTFIX-REVIEW] [step/4] description... ⏳
21
- [HOTFIX-REVIEW] [step/4] description... ✅
22
- ```
23
-
24
- ## Index Protection
25
-
26
- ⛔ Do NOT modify `graphify-out/` or `.gitnexus/` — READ only.
27
-
28
- ## Phase Entry Protocol
29
-
30
- ```
31
- [HOTFIX-REVIEW] [1/4] Loading context... ⏳
32
- ```
33
-
34
- 1. Read `.vsaf/docs/hotfixes/{bug-id}/01-analysis.md` — understand what was supposed to change
35
- 2. Read `CONTEXT.md`
36
- 3. Identify all files changed in the GREEN phase (use git diff or read the phase report)
37
-
38
- ```
39
- [HOTFIX-REVIEW] [1/4] Loading context... ✅
40
- ```
41
-
42
- ## Tasks
43
-
44
- ### Step 2: Minimality Verification
45
-
46
- ```
47
- [HOTFIX-REVIEW] [2/4] Verifying fix is minimal... ⏳
48
- ```
49
-
50
- Check:
51
- - [ ] Only files identified in the analysis were changed
52
- - [ ] No unnecessary refactoring included
53
- - [ ] No formatting-only changes on untouched code
54
- - [ ] No unrelated fixes bundled in
55
- - [ ] Diff size is proportional to the bug (a 1-line bug should not need 50 lines of changes)
56
-
57
- If any check fails → flag as CHANGES_REQUESTED with specific reason.
58
-
59
- ```
60
- [HOTFIX-REVIEW] [2/4] Verifying fix is minimal... ✅
61
- ```
62
-
63
- ### Step 3: Test Quality Check
64
-
65
- ```
66
- [HOTFIX-REVIEW] [3/4] Verifying test quality... ⏳
67
- ```
68
-
69
- Read the reproduction test and verify:
70
- - [ ] Test targets the specific bug (not a generic happy-path test)
71
- - [ ] Test would FAIL without the fix (it's not trivially always-passing)
72
- - [ ] Test exercises the exact code path from the root cause analysis
73
- - [ ] Test has a descriptive name referencing the bug
74
- - [ ] Test follows project conventions
75
-
76
- ```
77
- [HOTFIX-REVIEW] [3/4] Verifying test quality... ✅
78
- ```
79
-
80
- ### Step 4: Impact Check + SonarQube
81
-
82
- ```
83
- [HOTFIX-REVIEW] [4/4] Impact check + quality gate... ⏳
84
- ```
85
-
86
- 1. Use GitNexus `detect_changes` + `impact` — confirm blast radius matches the analysis
87
- 2. If blast radius is LARGER than analysis predicted → flag for human review
88
- 3. SonarQube rules on changed files only:
89
-
90
- | Metric | Threshold |
91
- |--------|-----------|
92
- | Issues (Blocker) | 0 |
93
- | Issues (Critical) | 0 |
94
- | Security Hotspots | 0 |
95
- | New code smells | 0 |
96
-
97
- > **Standard (single source of truth):** **`.claude/skills/_shared/sdlc/sonar-viettel/quality-gate.md`** — full gate + 357-rule parameters + importable `sonar-viettel-profile.xml` / `sonar-viettel-gate.json`. Same file Phase 3 (`/sdlc-hotfix-implement`) coded against. If SonarQube is present, scan changed files against the `sonar-viettel` profile + gate; otherwise re-check manually. `New code smells = 0` is intentionally stricter than the gate's ≤20 for surgical fixes.
98
-
99
- ```
100
- [HOTFIX-REVIEW] [4/4] Impact check + quality gate... ✅
101
- ```
102
-
103
- ## Gate
104
-
105
- Write `## Gate: APPROVED` or `## Gate: CHANGES_REQUESTED` with reasons.
106
-
107
- If CHANGES_REQUESTED:
108
- - List specific issues with triage: MUST FIX / SHOULD FIX / NOTED
109
- - Do NOT proceed to ship until all MUST FIX items are resolved
110
-
111
- ## Output
112
-
113
- Write file: `.vsaf/docs/hotfixes/{bug-id}/02-review.md`
114
-
115
- ```markdown
116
- # Hotfix Review: {bug-id}
117
-
118
- ## Minimality Check
119
- {minimality check results}
120
-
121
- ## Test Quality Check
122
- {test quality check results}
123
-
124
- ## Blast Radius
125
- {blast radius confirmation — matches/exceeds analysis}
126
-
127
- ## SonarQube
128
- {quality gate results on changed files}
129
-
130
- ## Conclusion
131
- {overall assessment}
132
-
133
- ## Gate: {APPROVED / CHANGES_REQUESTED}
134
- {reasons if changes requested}
135
- ```
136
-
137
- ## Phase Exit Protocol
138
-
139
- Print PHASE REPORT:
140
- - Bug: {bug-id}
141
- - Status: REVIEW COMPLETED
142
- - Gate: {APPROVED / CHANGES_REQUESTED}
143
- - Output: `.vsaf/docs/hotfixes/{bug-id}/02-review.md`
144
- - Next step: `/sdlc-ship` (if approved)
145
-
146
- Update `.vsaf/docs/STATUS.md`.
147
-
148
- ## Rules
149
-
150
- - ⛔ Do NOT modify code — review only
151
- - ⛔ Do NOT modify `graphify-out/` or `.gitnexus/`
152
- - A hotfix review is FAST but NOT sloppy — every check matters
153
- - If the fix touches more files than the analysis predicted, escalate to human
@@ -1,221 +0,0 @@
1
- ---
2
- name: sdlc-hotfix-ship
3
- description: "Hotfix Phase 4 — Ship: commit, PR on hotfix branch, ship report"
4
- version: 1.0.0
5
- author: "@ngocsangairvds/vsaf"
6
- ---
7
-
8
- # Hotfix Phase 4: Ship
9
-
10
- You are DevOps Engineer. Mission: ship the approved hotfix — commit, push, create PR, write ship report.
11
-
12
- ## Progress Protocol
13
-
14
- Print progress at each step:
15
- ```
16
- [HOTFIX-SHIP] [step/5] description... ⏳
17
- [HOTFIX-SHIP] [step/5] description... ✅
18
- ```
19
-
20
- ## Phase Entry Protocol
21
-
22
- ```
23
- [HOTFIX-SHIP] [1/5] Checking prerequisites... ⏳
24
- ```
25
-
26
- 1. Input: `.vsaf/docs/hotfixes/{bug-id}/` directory
27
- 2. Verify these files exist:
28
- - `01-analysis.md` — root cause analysis
29
- - `02-prd.md` — fix requirements (MUST have `## Gate: APPROVED`)
30
- - `03-impl-log.md` — implementation log
31
- 3. Check `02-prd.md` has `## Gate: APPROVED`
32
- - No Gate → Stop: "PRD not approved. Get approval before shipping."
33
- 4. Verify current branch is `hotfix/{bug-id}`
34
- - Wrong branch → Stop: "Not on hotfix branch. Switch to `hotfix/{bug-id}`."
35
- 5. Read `CONTEXT.md`
36
-
37
- ```
38
- [HOTFIX-SHIP] [1/5] Checking prerequisites... ✅
39
- ```
40
-
41
- ## Tasks
42
-
43
- ### Step 2: .gitignore Enforcement
44
-
45
- ```
46
- [HOTFIX-SHIP] [2/5] Checking .gitignore... ⏳
47
- ```
48
-
49
- **MANDATORY** — verify before committing:
50
-
51
- 1. Check `.gitignore` contains:
52
- ```
53
- graphify-out/
54
- .gitnexus/
55
- ```
56
- 2. If MISSING → add automatically and notify user
57
- 3. Verify with `git status` — `graphify-out/` and `.gitnexus/` do NOT appear
58
- 4. If they appear → `git rm --cached -r graphify-out/ .gitnexus/`
59
-
60
- ⚠️ **ABSOLUTELY DO NOT commit `graphify-out/` or `.gitnexus/`**
61
-
62
- ```
63
- [HOTFIX-SHIP] [2/5] Checking .gitignore... ✅
64
- ```
65
-
66
- ### Step 3: Final Test Gate
67
-
68
- ```
69
- [HOTFIX-SHIP] [3/5] Final test verification... ⏳
70
- ```
71
-
72
- Run full test suite one last time before shipping:
73
- ```bash
74
- npm test # or mvn test / gradle test / equivalent
75
- ```
76
-
77
- - ALL tests MUST pass
78
- - If FAIL → Stop: "Tests failing. Fix before shipping."
79
-
80
- ```
81
- [HOTFIX-SHIP] [3/5] Final test verification... ✅
82
- ```
83
-
84
- ### Step 4: Commit + Push + PR
85
-
86
- ```
87
- [HOTFIX-SHIP] [4/5] Commit + push + create PR... ⏳
88
- ```
89
-
90
- **Commit scope — ONLY commit:**
91
- - Source code changes (the fix)
92
- - `.vsaf/docs/hotfixes/{bug-id}/` (all artifacts)
93
- - `.gitignore` (if updated)
94
-
95
- **DO NOT commit:**
96
- - `graphify-out/`
97
- - `.gitnexus/`
98
-
99
- **Commit message format:**
100
- ```
101
- fix({area}): {short description}
102
-
103
- Root cause: {one line from 01-analysis.md}
104
- Closes: #{issue-number} (if applicable)
105
- ```
106
-
107
- **Push + PR:**
108
- ```bash
109
- git push -u origin hotfix/{bug-id}
110
- gh pr create --title "fix({area}): {short description}" --body "{PR body}"
111
- ```
112
-
113
- **PR body template:**
114
- ```markdown
115
- ## Bug Fix: {bug-id}
116
-
117
- ### Root Cause
118
- {from 01-analysis.md — one paragraph}
119
-
120
- ### Fix
121
- {from 03-impl-log.md — what was changed and why}
122
-
123
- ### Tests
124
- - Regression test: `{test file}:{test name}`
125
- - Full suite: {total} tests, all PASS
126
-
127
- ### Affected Files
128
- {list from 03-impl-log.md}
129
-
130
- ### Scope
131
- - ✅ Fix only — no refactoring, no enhancements
132
- - ✅ Regression test added
133
- - ✅ Full test suite passing
134
-
135
- ---
136
- > **Post-pull:** Run `npx gitnexus analyze` and `/graphify` to re-index locally.
137
- ```
138
-
139
- ```
140
- [HOTFIX-SHIP] [4/5] Commit + push + create PR... ✅
141
- ```
142
-
143
- ### Step 5: Ship Report
144
-
145
- ```
146
- [HOTFIX-SHIP] [5/5] Writing ship report... ⏳
147
- ```
148
-
149
- Write file: `.vsaf/docs/hotfixes/{bug-id}/04-ship.md`
150
-
151
- ```markdown
152
- # Ship Report: {bug-id}
153
-
154
- ## PR
155
- - {repo}: PR #{number} — {url}
156
-
157
- ## Branch
158
- `hotfix/{bug-id}` → `main`
159
-
160
- ## Commit Scope
161
- - Source code: {N} files (minimal fix)
162
- - .vsaf/docs/: {M} files (hotfix artifacts)
163
- - Excluded: graphify-out/, .gitnexus/ (local index)
164
-
165
- ## Final Status
166
- - Build: PASS
167
- - Tests: all GREEN (including regression test)
168
- - PRD Gate: APPROVED
169
-
170
- ## Bug Fix Summary
171
- - Root cause: {from 01-analysis.md}
172
- - Regression test: {test file}:{test name}
173
- - Fix: {minimal diff description}
174
-
175
- ## Artifacts
176
- - `01-analysis.md` — root cause analysis
177
- - `02-prd.md` — fix requirements (approved)
178
- - `03-impl-log.md` — TDD implementation log
179
- - `04-ship.md` — this file
180
-
181
- ## Post-pull Setup
182
- After pulling the code, run:
183
- - `npx gitnexus analyze` — re-index code
184
- - `/graphify` — rebuild knowledge graph
185
- ```
186
-
187
- ```
188
- [HOTFIX-SHIP] [5/5] Writing ship report... ✅
189
- ```
190
-
191
- ## Phase Exit Protocol
192
-
193
- Print PHASE REPORT:
194
- ```
195
- ═══════════════════════════════════════════
196
- HOTFIX SHIPPED: {bug-id}
197
- ═══════════════════════════════════════════
198
- Flow: Analyze → PRD → Implement → Ship
199
-
200
- PR: #{number} — {url}
201
- Branch: hotfix/{bug-id}
202
- Commit: source code + .vsaf/docs/ only
203
- Excluded: graphify-out/, .gitnexus/
204
-
205
- Artifacts: .vsaf/docs/hotfixes/{bug-id}/ (4 files)
206
-
207
- Hotfix DONE.
208
- ═══════════════════════════════════════════
209
- ```
210
-
211
- Update `.vsaf/docs/STATUS.md` → move to "Completed Hotfixes".
212
-
213
- ## Rules
214
-
215
- - ⛔ Do NOT review code — that happened during TDD (self-review via SonarQube)
216
- - ⛔ Do NOT commit `graphify-out/` or `.gitnexus/`
217
- - ⛔ Do NOT ship if tests are failing
218
- - ⛔ Do NOT ship without PRD Gate: APPROVED
219
- - Gate comes from PRD approval — no separate review phase needed
220
- - PR description MUST be self-contained
221
- - Commit message follows conventional format: `fix({area}): {description}`
@@ -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/`