@ngocsangairvds/vsaf 5.1.5 → 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 -35
  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
@@ -0,0 +1,51 @@
1
+ ## Gate
2
+
3
+ Write `## Gate: APPROVED` or `## Gate: CHANGES_REQUESTED` with reasons.
4
+
5
+ If CHANGES_REQUESTED:
6
+ - List specific issues with triage: MUST FIX / SHOULD FIX / NOTED
7
+ - Do NOT proceed to ship until all MUST FIX items are resolved
8
+
9
+ ## Output
10
+
11
+ Write file: `.vsaf/docs/hotfixes/{bug-id}/02-review.md`
12
+
13
+ ```markdown
14
+ # Hotfix Review: {bug-id}
15
+
16
+ ## Minimality Check
17
+ {minimality check results}
18
+
19
+ ## Test Quality Check
20
+ {test quality check results}
21
+
22
+ ## Blast Radius
23
+ {blast radius confirmation — matches/exceeds analysis}
24
+
25
+ ## SonarQube
26
+ {quality gate results on changed files}
27
+
28
+ ## Conclusion
29
+ {overall assessment}
30
+
31
+ ## Gate: {APPROVED / CHANGES_REQUESTED}
32
+ {reasons if changes requested}
33
+ ```
34
+
35
+ ## Phase Exit Protocol
36
+
37
+ Print PHASE REPORT:
38
+ - Bug: {bug-id}
39
+ - Status: REVIEW COMPLETED
40
+ - Gate: {APPROVED / CHANGES_REQUESTED}
41
+ - Output: `.vsaf/docs/hotfixes/{bug-id}/02-review.md`
42
+ - Next step: `/sdlc-ship` (if approved)
43
+
44
+ Update `.vsaf/docs/STATUS.md`.
45
+
46
+ ## Rules
47
+
48
+ - ⛔ Do NOT modify code — review only
49
+ - ⛔ Do NOT modify `graphify-out/` or `.gitnexus/`
50
+ - A hotfix review is FAST but NOT sloppy — every check matters
51
+ - If the fix touches more files than the analysis predicted, escalate to human
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-hotfix-review-impact
3
+ description: "Hotfix Review 4/4 — impact and quality gate"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Hotfix Review 4/4 — impact and quality gate
9
+
10
+ @include(step.md)
@@ -0,0 +1,22 @@
1
+ ### Step 4: Impact Check + SonarQube
2
+
3
+ ```
4
+ [HOTFIX-REVIEW] [4/4] Impact check + quality gate... ⏳
5
+ ```
6
+
7
+ 1. Use GitNexus `detect_changes` + `impact` — confirm blast radius matches the analysis
8
+ 2. If blast radius is LARGER than analysis predicted → flag for human review
9
+ 3. SonarQube rules on changed files only:
10
+
11
+ | Metric | Threshold |
12
+ |--------|-----------|
13
+ | Issues (Blocker) | 0 |
14
+ | Issues (Critical) | 0 |
15
+ | Security Hotspots | 0 |
16
+ | New code smells | 0 |
17
+
18
+ > **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.
19
+
20
+ ```
21
+ [HOTFIX-REVIEW] [4/4] Impact check + quality gate... ✅
22
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-hotfix-review-minimality
3
+ description: "Hotfix Review 2/4 — minimality verification"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Hotfix Review 2/4 — minimality verification
9
+
10
+ @include(step.md)
@@ -0,0 +1,18 @@
1
+ ### Step 2: Minimality Verification
2
+
3
+ ```
4
+ [HOTFIX-REVIEW] [2/4] Verifying fix is minimal... ⏳
5
+ ```
6
+
7
+ Check:
8
+ - [ ] Only files identified in the analysis were changed
9
+ - [ ] No unnecessary refactoring included
10
+ - [ ] No formatting-only changes on untouched code
11
+ - [ ] No unrelated fixes bundled in
12
+ - [ ] Diff size is proportional to the bug (a 1-line bug should not need 50 lines of changes)
13
+
14
+ If any check fails → flag as CHANGES_REQUESTED with specific reason.
15
+
16
+ ```
17
+ [HOTFIX-REVIEW] [2/4] Verifying fix is minimal... ✅
18
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-hotfix-review-test-quality
3
+ description: "Hotfix Review 3/4 — test quality check"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Hotfix Review 3/4 — test quality check
9
+
10
+ @include(step.md)
@@ -0,0 +1,16 @@
1
+ ### Step 3: Test Quality Check
2
+
3
+ ```
4
+ [HOTFIX-REVIEW] [3/4] Verifying test quality... ⏳
5
+ ```
6
+
7
+ Read the reproduction test and verify:
8
+ - [ ] Test targets the specific bug (not a generic happy-path test)
9
+ - [ ] Test would FAIL without the fix (it's not trivially always-passing)
10
+ - [ ] Test exercises the exact code path from the root cause analysis
11
+ - [ ] Test has a descriptive name referencing the bug
12
+ - [ ] Test follows project conventions
13
+
14
+ ```
15
+ [HOTFIX-REVIEW] [3/4] Verifying test quality... ✅
16
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-hotfix-ship-commit-pr
3
+ description: "Hotfix Ship 4/5 — commit push PR"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Hotfix Ship 4/5 — commit push PR
9
+
10
+ @include(step.md)
@@ -0,0 +1,58 @@
1
+ ### Step 4: Commit + Push + PR
2
+
3
+ ```
4
+ [HOTFIX-SHIP] [4/5] Commit + push + create PR... ⏳
5
+ ```
6
+
7
+ **Commit scope — ONLY commit:**
8
+ - Source code changes (the fix)
9
+ - `.vsaf/docs/hotfixes/{bug-id}/` (all artifacts)
10
+ - `.gitignore` (if updated)
11
+
12
+ **DO NOT commit:**
13
+ - `graphify-out/`
14
+ - `.gitnexus/`
15
+
16
+ **Commit message format:**
17
+ ```
18
+ fix({area}): {short description}
19
+
20
+ Root cause: {one line from 01-analysis.md}
21
+ Closes: #{issue-number} (if applicable)
22
+ ```
23
+
24
+ **Push + PR:**
25
+ ```bash
26
+ git push -u origin hotfix/{bug-id}
27
+ gh pr create --title "fix({area}): {short description}" --body "{PR body}"
28
+ ```
29
+
30
+ **PR body template:**
31
+ ```markdown
32
+ ## Bug Fix: {bug-id}
33
+
34
+ ### Root Cause
35
+ {from 01-analysis.md — one paragraph}
36
+
37
+ ### Fix
38
+ {from 03-impl-log.md — what was changed and why}
39
+
40
+ ### Tests
41
+ - Regression test: `{test file}:{test name}`
42
+ - Full suite: {total} tests, all PASS
43
+
44
+ ### Affected Files
45
+ {list from 03-impl-log.md}
46
+
47
+ ### Scope
48
+ - ✅ Fix only — no refactoring, no enhancements
49
+ - ✅ Regression test added
50
+ - ✅ Full test suite passing
51
+
52
+ ---
53
+ > **Post-pull:** Run `npx gitnexus analyze` and `/graphify` to re-index locally.
54
+ ```
55
+
56
+ ```
57
+ [HOTFIX-SHIP] [4/5] Commit + push + create PR... ✅
58
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-hotfix-ship-entry
3
+ description: "Hotfix Ship 1/5 — check prerequisites"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Hotfix Ship 1/5 — check prerequisites
9
+
10
+ @include(step.md)
@@ -0,0 +1,20 @@
1
+ ## Phase Entry Protocol
2
+
3
+ ```
4
+ [HOTFIX-SHIP] [1/5] Checking prerequisites... ⏳
5
+ ```
6
+
7
+ 1. Input: `.vsaf/docs/hotfixes/{bug-id}/` directory
8
+ 2. Verify these files exist:
9
+ - `01-analysis.md` — root cause analysis
10
+ - `02-prd.md` — fix requirements (MUST have `## Gate: APPROVED`)
11
+ - `03-impl-log.md` — implementation log
12
+ 3. Check `02-prd.md` has `## Gate: APPROVED`
13
+ - No Gate → Stop: "PRD not approved. Get approval before shipping."
14
+ 4. Verify current branch is `hotfix/{bug-id}`
15
+ - Wrong branch → Stop: "Not on hotfix branch. Switch to `hotfix/{bug-id}`."
16
+ 5. Read `CONTEXT.md`
17
+
18
+ ```
19
+ [HOTFIX-SHIP] [1/5] Checking prerequisites... ✅
20
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-hotfix-ship-exit
3
+ description: "Hotfix Ship — exit protocol and rules"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Hotfix Ship — exit protocol and rules
9
+
10
+ @include(step.md)
@@ -0,0 +1,31 @@
1
+ ## Phase Exit Protocol
2
+
3
+ Print PHASE REPORT:
4
+ ```
5
+ ═══════════════════════════════════════════
6
+ HOTFIX SHIPPED: {bug-id}
7
+ ═══════════════════════════════════════════
8
+ Flow: Analyze → PRD → Implement → Ship
9
+
10
+ PR: #{number} — {url}
11
+ Branch: hotfix/{bug-id}
12
+ Commit: source code + .vsaf/docs/ only
13
+ Excluded: graphify-out/, .gitnexus/
14
+
15
+ Artifacts: .vsaf/docs/hotfixes/{bug-id}/ (4 files)
16
+
17
+ Hotfix DONE.
18
+ ═══════════════════════════════════════════
19
+ ```
20
+
21
+ Update `.vsaf/docs/STATUS.md` → move to "Completed Hotfixes".
22
+
23
+ ## Rules
24
+
25
+ - ⛔ Do NOT review code — that happened during TDD (self-review via SonarQube)
26
+ - ⛔ Do NOT commit `graphify-out/` or `.gitnexus/`
27
+ - ⛔ Do NOT ship if tests are failing
28
+ - ⛔ Do NOT ship without PRD Gate: APPROVED
29
+ - Gate comes from PRD approval — no separate review phase needed
30
+ - PR description MUST be self-contained
31
+ - Commit message follows conventional format: `fix({area}): {description}`
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-hotfix-ship-gitignore
3
+ description: "Hotfix Ship 2/5 — .gitignore enforcement"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Hotfix Ship 2/5 — .gitignore enforcement
9
+
10
+ @include(step.md)
@@ -0,0 +1,22 @@
1
+ ### Step 2: .gitignore Enforcement
2
+
3
+ ```
4
+ [HOTFIX-SHIP] [2/5] Checking .gitignore... ⏳
5
+ ```
6
+
7
+ **MANDATORY** — verify before committing:
8
+
9
+ 1. Check `.gitignore` contains:
10
+ ```
11
+ graphify-out/
12
+ .gitnexus/
13
+ ```
14
+ 2. If MISSING → add automatically and notify user
15
+ 3. Verify with `git status` — `graphify-out/` and `.gitnexus/` do NOT appear
16
+ 4. If they appear → `git rm --cached -r graphify-out/ .gitnexus/`
17
+
18
+ ⚠️ **ABSOLUTELY DO NOT commit `graphify-out/` or `.gitnexus/`**
19
+
20
+ ```
21
+ [HOTFIX-SHIP] [2/5] Checking .gitignore... ✅
22
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-hotfix-ship-report
3
+ description: "Hotfix Ship 5/5 — ship report"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Hotfix Ship 5/5 — ship report
9
+
10
+ @include(step.md)
@@ -0,0 +1,47 @@
1
+ ### Step 5: Ship Report
2
+
3
+ ```
4
+ [HOTFIX-SHIP] [5/5] Writing ship report... ⏳
5
+ ```
6
+
7
+ Write file: `.vsaf/docs/hotfixes/{bug-id}/04-ship.md`
8
+
9
+ ```markdown
10
+ # Ship Report: {bug-id}
11
+
12
+ ## PR
13
+ - {repo}: PR #{number} — {url}
14
+
15
+ ## Branch
16
+ `hotfix/{bug-id}` → `main`
17
+
18
+ ## Commit Scope
19
+ - Source code: {N} files (minimal fix)
20
+ - .vsaf/docs/: {M} files (hotfix artifacts)
21
+ - Excluded: graphify-out/, .gitnexus/ (local index)
22
+
23
+ ## Final Status
24
+ - Build: PASS
25
+ - Tests: all GREEN (including regression test)
26
+ - PRD Gate: APPROVED
27
+
28
+ ## Bug Fix Summary
29
+ - Root cause: {from 01-analysis.md}
30
+ - Regression test: {test file}:{test name}
31
+ - Fix: {minimal diff description}
32
+
33
+ ## Artifacts
34
+ - `01-analysis.md` — root cause analysis
35
+ - `02-prd.md` — fix requirements (approved)
36
+ - `03-impl-log.md` — TDD implementation log
37
+ - `04-ship.md` — this file
38
+
39
+ ## Post-pull Setup
40
+ After pulling the code, run:
41
+ - `npx gitnexus analyze` — re-index code
42
+ - `/graphify` — rebuild knowledge graph
43
+ ```
44
+
45
+ ```
46
+ [HOTFIX-SHIP] [5/5] Writing ship report... ✅
47
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-hotfix-ship-test-gate
3
+ description: "Hotfix Ship 3/5 — final test gate"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Hotfix Ship 3/5 — final test gate
9
+
10
+ @include(step.md)
@@ -0,0 +1,17 @@
1
+ ### Step 3: Final Test Gate
2
+
3
+ ```
4
+ [HOTFIX-SHIP] [3/5] Final test verification... ⏳
5
+ ```
6
+
7
+ Run full test suite one last time before shipping:
8
+ ```bash
9
+ npm test # or mvn test / gradle test / equivalent
10
+ ```
11
+
12
+ - ALL tests MUST pass
13
+ - If FAIL → Stop: "Tests failing. Fix before shipping."
14
+
15
+ ```
16
+ [HOTFIX-SHIP] [3/5] Final test verification... ✅
17
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-implement-build-run
3
+ description: "Implement 7/8 — build + run verification"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Implement 7/8 — build + run verification
9
+
10
+ @include(step.md)
@@ -0,0 +1,85 @@
1
+ ### Step 7: Build & Run Verification
2
+
3
+ ```
4
+ [IMPLEMENT] [7/8] Build & run verification... ⏳
5
+ ```
6
+
7
+ **MANDATORY** — code MUST compile and run successfully before exiting the phase.
8
+
9
+ 1. **Compile check**: Build the entire project → MUST have 0 errors
10
+ - Java: `mvn compile` or `gradle build`
11
+ - Node: `npm run build` / `tsc --noEmit`
12
+ - Angular: `ng build`
13
+ - Go: `go build ./...`
14
+ - If FAIL → fix immediately, DO NOT skip
15
+
16
+ 2. **Run verification**: Start application → MUST start successfully
17
+ - If the project has `docker-compose.yml` → `docker compose up`
18
+ - If not → use native run command
19
+ - Check health endpoint / startup log OK
20
+
21
+ 3. **Environment check**:
22
+ - Detect required runtime (JDK, Node, Python, Go, etc.)
23
+ - If runtime missing → ⚠️ **WARNING**: "Missing {runtime}. Cannot verify build."
24
+ - **Recommend Docker**: "Recommend using Docker to ensure a consistent environment. Create a Dockerfile if one does not exist."
25
+ - If Docker available → prefer building in container
26
+
27
+ 4. **Test suite run**: `npm test` / `mvn test` / equivalent → All tests PASS
28
+
29
+ 5. **Final SonarQube sweep**: Scan all new code one last time before exiting
30
+ - Confirm both New Code and Overall Code conditions are green per the shared `quality-gate.md` (single source of truth)
31
+ - If FAIL → fix immediately, this is a hard gate
32
+
33
+ ⚠️ **DO NOT exit the phase if code does not compile.** This is a hard gate — no exceptions.
34
+
35
+ ```
36
+ [IMPLEMENT] [7/8] Build & run verification... ✅
37
+ ```
38
+
39
+ ## Multi-machine Branching
40
+
41
+ ```
42
+ Single repo:
43
+ main → feat/{feature} → feat/{feature}/epic-1 (Subagent A)
44
+ → feat/{feature}/epic-2 (Subagent B)
45
+
46
+ Multi-repo:
47
+ Subagent A: cd user-service && git checkout -b feat/{feature}
48
+ Subagent B: cd payment-service && git checkout -b feat/{feature}
49
+ ```
50
+
51
+ ## Output
52
+
53
+ - `.vsaf/docs/features/{feature-name}/07-impl-plan.md` — task plan + TDD log
54
+ - Code changes on feature branch
55
+ - All tests GREEN
56
+ - SonarQube metrics PASS (verified during coding)
57
+
58
+ ## Phase Exit Protocol
59
+
60
+ In PHASE REPORT:
61
+ - Done: N tasks completed, M tests written, K subagents dispatched
62
+ - Result: all tests PASS/FAIL
63
+ - 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}%
64
+ - SonarQube (Overall): {PASS/FAIL vs shared gate} — Bugs={N}, Code Smells={N}, Duplication={N}%, ratings={A..E}
65
+ - Output files: `07-impl-plan.md`
66
+ - Code changes: {list files changed}
67
+ - Suggestions: [1] Phase 7 Review (`/sdlc-review`) [2] Save artifacts
68
+
69
+ Update `.vsaf/docs/STATUS.md`.
70
+
71
+ **Notify the user:**
72
+ > Artifacts have been saved. If the session is interrupted, open a new session and run the next phase — data is safe.
73
+
74
+ ## Rules
75
+
76
+ - DO NOT write code without a failing test first (#2 TDD)
77
+ - **MANDATORY** use `/superpowers:subagent-driven-development` — do not run sequential
78
+ - **SonarQube rules apply DURING coding** — do not wait for review
79
+ - Follow the Conflict Map — only modify files assigned to your epic
80
+ - 3-strike rule: task fails 3 times → STOP, escalate
81
+ - Impact analysis MUST run before each commit
82
+ - Smart Zone: clear context every 5 tasks (#4)
83
+ - **Code MUST compile successfully** — hard gate, no exceptions
84
+ - **Recommend Docker** if runtime is missing or containerization is not set up
85
+ - ⛔ DO NOT modify `graphify-out/` or `.gitnexus/`
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-implement-checkpoint
3
+ description: "Implement 3.5/8 — checkpoint review"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Implement 3.5/8 — checkpoint review
9
+
10
+ @include(step.md)
@@ -0,0 +1,20 @@
1
+ ### Step 3.5: Checkpoint Review (every 3-5 tasks)
2
+
3
+ ```
4
+ [IMPLEMENT] [3.5/8] Checkpoint review... ⏳
5
+ ```
6
+
7
+ After every 3-5 completed tasks: invoke `/bmad-checkpoint-preview` (human-in-the-loop walkthrough).
8
+
9
+ Purpose: pause and let the user review progress before continuing.
10
+
11
+ The checkpoint will:
12
+ - Summarize: what was done, which files changed, current tests status
13
+ - Highlight: points of concern, potential issues
14
+ - Ask user: continue / adjust / stop?
15
+
16
+ **Skip checkpoint if** the total plan has fewer than 5 tasks — checkpoint only at the end in that case.
17
+
18
+ ```
19
+ [IMPLEMENT] [3.5/8] Checkpoint review... ✅
20
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-implement-debug
3
+ description: "Implement 5/8 — debug if needed"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Implement 5/8 — debug if needed
9
+
10
+ @include(step.md)
@@ -0,0 +1,25 @@
1
+ ### Step 5: Debug (if needed)
2
+
3
+ ```
4
+ [IMPLEMENT] [5/8] Debug (if there are test failures)... ⏳
5
+ ```
6
+
7
+ Use `/superpowers:systematic-debugging` — when a test does not turn GREEN:
8
+ - Hypothesis → Experiment → Conclusion
9
+ - If it fails 3 times → STOP, escalate
10
+
11
+ **Scope-drift detection:**
12
+
13
+ If during implementation you detect the feature requires CHANGES NOT IN THE SRS:
14
+ 1. Invoke `/bmad-correct-course` — assess impact + propose adjustments
15
+ 2. If requirements have genuinely changed:
16
+ - STOP implementation
17
+ - Update SRS first via `/sdlc-srs` EDIT mode
18
+ - Re-run `/sdlc-test-design` to generate new test cases
19
+ - Restart Phase 6 from Step 3
20
+ 3. If only minor adjustments needed: document the adjustment in `07-impl-plan.md` §Scope Adjustments and continue
21
+ 4. If unclear whether scope changed: STOP and present to user — let them decide
22
+
23
+ ```
24
+ [IMPLEMENT] [5/8] Debug (if there are test failures)... ✅
25
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-implement-impact
3
+ description: "Implement 6/8 — impact verification"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Implement 6/8 — impact verification
9
+
10
+ @include(step.md)
@@ -0,0 +1,12 @@
1
+ ### Step 6: Impact Verification
2
+
3
+ ```
4
+ [IMPLEMENT] [6/8] Impact verification via GitNexus... ⏳
5
+ ```
6
+
7
+ Use GitNexus `impact` — verify no other code is broken.
8
+ Use GitNexus `rename` — safe multi-file refactoring if needed.
9
+
10
+ ```
11
+ [IMPLEMENT] [6/8] Impact verification via GitNexus... ✅
12
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-implement-plan
3
+ description: "Implement 3/8 — task planning"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Implement 3/8 — task planning
9
+
10
+ @include(step.md)
@@ -0,0 +1,13 @@
1
+ ### Step 3: Task Planning
2
+
3
+ ```
4
+ [IMPLEMENT] [3/8] Task planning from testcases + ADR... ⏳
5
+ ```
6
+
7
+ Use `/superpowers:writing-plans` — create granular task plan from testcases + ADR.
8
+ Each task maps to ≥1 FR/NFR.
9
+ Write to `07-impl-plan.md`.
10
+
11
+ ```
12
+ [IMPLEMENT] [3/8] Task planning from testcases + ADR... ✅
13
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-implement-prereq
3
+ description: "Implement 1/8 — input artifacts"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Implement 1/8 — input artifacts
9
+
10
+ @include(step.md)
@@ -0,0 +1,21 @@
1
+ ## Phase Entry Protocol
2
+
3
+ ```
4
+ [IMPLEMENT] [1/8] Checking input artifacts... ⏳
5
+ ```
6
+
7
+ 1. Input:
8
+ - `.vsaf/docs/features/{feature-name}/06-testcases.md`
9
+ - `.vsaf/docs/features/{feature-name}/03-adr.md`
10
+ - `.vsaf/docs/features/{feature-name}/04-epics.md`
11
+ 2. Verify ALL 3 files exist:
12
+ - Any file missing → Ask: "File not found. Have you pulled it yet?"
13
+ 3. Read `.vsaf/docs/STATUS.md`
14
+ 4. Read `CONTEXT.md`
15
+ 5. Query `graph.json` for code structure
16
+
17
+ ```
18
+ [IMPLEMENT] [1/8] Checking input artifacts... ✅
19
+ ```
20
+
21
+ **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`.