@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
@@ -1,159 +0,0 @@
1
- ---
2
- name: sdlc-feature-complete
3
- description: Phase 8 — Feature Completion — update CONTEXT, KNOWLEDGE, GitNexus re-index, Graphify rebuild + verify
4
- version: 1.0.0
5
- author: "@ngocsangairvds/vsaf"
6
- ---
7
-
8
- # Phase 8: Feature Complete
9
-
10
- You are Knowledge Engineer + DevOps. Mission: update all project knowledge after review is APPROVED — BEFORE shipping.
11
-
12
- **Why this phase comes BEFORE ship:** Ensures shared knowledge (CONTEXT.md, KNOWLEDGE.md) is updated and committed with the PR, so team members can understand the feature as soon as they pull code.
13
-
14
- ## Progress Protocol
15
-
16
- Print progress at each step in this format:
17
- ```
18
- [FEATURE-COMPLETE] [step/5] description... ⏳
19
- [FEATURE-COMPLETE] [step/5] description... ✅
20
- ```
21
-
22
- ## Artifact Auto-save
23
-
24
- 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.
25
-
26
- ## Phase Entry Protocol
27
-
28
- ```
29
- [FEATURE-COMPLETE] [1/5] Checking prerequisites... ⏳
30
- ```
31
-
32
- 1. Input: Feature name `$ARGUMENTS`
33
- 2. Check that `.vsaf/docs/features/{feature-name}/08-review.md` exists
34
- 3. Check for **Gate: APPROVED** in `08-review.md`
35
- - No Gate APPROVED → Stop: "Review has not been approved. Run `/sdlc-review` first."
36
- 4. Read `.vsaf/docs/STATUS.md`
37
- 5. Read `CONTEXT.md`
38
-
39
- ```
40
- [FEATURE-COMPLETE] [1/5] Checking prerequisites... ✅
41
- ```
42
-
43
- ## Tasks
44
-
45
- ### Step 2: Update CONTEXT.md
46
-
47
- ```
48
- [FEATURE-COMPLETE] [2/5] Updating CONTEXT.md — extracting new terminology... ⏳
49
- ```
50
-
51
- Read all artifacts in `.vsaf/docs/features/{feature-name}/`:
52
- - Extract new terminology that emerged during the development process
53
- - Append to `CONTEXT.md` §Shared Language table
54
- - Only add terminology that is TRULY new — no duplicates
55
-
56
- ```
57
- [FEATURE-COMPLETE] [2/5] Updating CONTEXT.md... ✅
58
- ```
59
-
60
- ### Step 3: Update KNOWLEDGE.md
61
-
62
- ```
63
- [FEATURE-COMPLETE] [3/5] Updating KNOWLEDGE.md — patterns, decisions, gotchas... ⏳
64
- ```
65
-
66
- Append to `.vsaf/docs/KNOWLEDGE.md`:
67
- - Lessons learned (patterns, anti-patterns)
68
- - Noteworthy decisions (from ADR)
69
- - Gotchas discovered during implementation
70
-
71
- Format:
72
- ```markdown
73
- ## {feature-name} ({date})
74
- - **Pattern**: {pattern learned}
75
- - **Decision**: {key decision and rationale}
76
- - **Gotcha**: {unexpected issue and solution}
77
- ```
78
-
79
- ```
80
- [FEATURE-COMPLETE] [3/5] Updating KNOWLEDGE.md... ✅
81
- ```
82
-
83
- ### Step 4: Re-index GitNexus
84
-
85
- ```
86
- [FEATURE-COMPLETE] [4/5] Re-index GitNexus + Rebuild Graphify graph... ⏳
87
- ```
88
-
89
- 1. Run GitNexus `group_sync` — re-index the latest code structure
90
- - MUST run BEFORE Graphify (Graphify needs the latest code structure)
91
-
92
- 2. Run `/graphify` — rebuild graph with **docs only** (DO NOT rebuild code graph)
93
- - Target: `.vsaf/docs/` folder — documents, artifacts, CONTEXT.md, KNOWLEDGE.md only
94
- - Output: `graphify-out/graph.json` updated
95
-
96
- 3. Claude verifies graph:
97
- - Do new domain terms from CONTEXT.md have nodes in the graph?
98
- - Do new patterns from KNOWLEDGE.md have nodes/edges?
99
- - Are feature artifacts linked correctly?
100
- - If missing → add to `graph.json`
101
-
102
- **This is the ONLY phase (besides onboard) allowed to modify `graphify-out/` and `.gitnexus/`.**
103
-
104
- ```
105
- [FEATURE-COMPLETE] [4/5] Re-index GitNexus + Rebuild Graphify graph... ✅
106
- ```
107
-
108
- ### Step 5: Update STATUS.md
109
-
110
- ```
111
- [FEATURE-COMPLETE] [5/5] Updating STATUS.md... ⏳
112
- ```
113
-
114
- Update `.vsaf/docs/STATUS.md`:
115
- - Move feature to "Knowledge Updated" status
116
- - Record completion timestamp
117
-
118
- ```
119
- [FEATURE-COMPLETE] [5/5] Updating STATUS.md... ✅
120
- ```
121
-
122
- ## Output
123
-
124
- Print FEATURE COMPLETE REPORT:
125
-
126
- ```
127
- ═══════════════════════════════════════════
128
- FEATURE COMPLETE: {feature-name}
129
- ═══════════════════════════════════════════
130
- Phase: 8 (Feature Complete — before ship)
131
-
132
- Knowledge updates:
133
- - CONTEXT.md: +{N} domain terms
134
- - KNOWLEDGE.md: +{N} patterns, +{M} decisions, +{K} gotchas
135
- - GitNexus: re-indexed
136
- - graph.json: +{N} nodes, +{M} edges (docs only)
137
-
138
- STATUS: Knowledge Updated — ready to ship
139
-
140
- Next: `/sdlc-ship` to create PR and ship
141
- ═══════════════════════════════════════════
142
- ```
143
-
144
- ## Phase Exit Protocol
145
-
146
- Print PHASE REPORT:
147
- - Output: CONTEXT.md, KNOWLEDGE.md, graph.json, GitNexus index updated
148
- - Suggestion: `/sdlc-ship` to commit + create PR
149
-
150
- Update `.vsaf/docs/STATUS.md`.
151
-
152
- ## Rules
153
-
154
- - KNOWLEDGE.md is append-only — DO NOT edit old entries
155
- - GitNexus re-index BEFORE Graphify rebuild
156
- - Graph verification MUST run — do not skip
157
- - Graphify rebuild is docs only — DO NOT rebuild code graph in this phase
158
- - **This is the ONLY phase (besides onboard) allowed to modify `graphify-out/` and `.gitnexus/`**
159
- - This phase MUST run BEFORE ship — so knowledge is committed with the PR
@@ -1,198 +0,0 @@
1
- ---
2
- name: sdlc-hotfix-analyze
3
- description: "Hotfix Phase 1 — Analyze bug report via GitNexus impact + context, identify root cause and blast radius"
4
- version: 1.0.0
5
- author: "@ngocsangairvds/vsaf"
6
- ---
7
-
8
- # Hotfix Phase 1: Analyze Bug Report
9
-
10
- You are a Senior Bug Analyst. Mission: read the tester's bug report, trace root cause via GitNexus, and produce a clear analysis for the fix team.
11
-
12
- ## Language Rule
13
-
14
- Output documents (01-analysis.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-ANALYZE] [step/6] description... ⏳
21
- [HOTFIX-ANALYZE] [step/6] 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-ANALYZE] [1/6] Reading bug report... ⏳
32
- ```
33
-
34
- 1. Input: `$ARGUMENTS` — path to bug report file from tester
35
- 2. Read the bug report file
36
- 3. Read `CONTEXT.md` for domain context
37
- 4. Read `.vsaf/docs/STATUS.md`
38
- 5. Extract a short `{bug-id}` from the report filename or title (e.g., `fix-null-rating`, `fix-auth-timeout`)
39
-
40
- ```
41
- [HOTFIX-ANALYZE] [1/6] Reading bug report... ✅
42
- ```
43
-
44
- ## Tasks
45
-
46
- ### Step 2: Grill Session — Clarify Bug Context
47
-
48
- ```
49
- [HOTFIX-ANALYZE] [2/6] Grill session — interviewing user about bug... ⏳
50
- ```
51
-
52
- Use `/grill-me` to interview the user about the bug. Walk down each branch of the problem tree:
53
- - What exactly was observed? Under what conditions?
54
- - Can it be reproduced consistently? What are the exact steps?
55
- - When did it start? What changed recently?
56
- - What is the expected behavior vs actual behavior?
57
- - Which users/environments are affected?
58
- - Any workarounds discovered?
59
-
60
- Continue grilling until you have a complete understanding. Then extract:
61
- - **Symptoms** — what the tester/user observed
62
- - **Reproduction steps** — exact steps to trigger the bug
63
- - **Expected vs actual behavior**
64
- - **Affected area** — which feature/module/endpoint
65
-
66
- ```
67
- [HOTFIX-ANALYZE] [2/6] Grill session complete ✅
68
- ```
69
-
70
- ### Step 3: Root Cause via GitNexus
71
-
72
- ```
73
- [HOTFIX-ANALYZE] [3/6] Mapping code structure via GitNexus... ⏳
74
- ```
75
-
76
- 1. Use GitNexus `context` — understand the affected module's structure and dependencies
77
- 2. Use GitNexus `impact` — trace which files and symbols are in the blast radius
78
- 3. Use GitNexus `route_map` — map the call chain from entry point to suspected buggy code
79
- 4. Collect:
80
- - **Affected files** — files that contain or touch the suspected area
81
- - **Call chain** — entry point → intermediate → suspected defect
82
- - **Blast radius** — what else could break if this area is changed
83
-
84
- ```
85
- [HOTFIX-ANALYZE] [3/6] Mapping code structure via GitNexus... ✅
86
- ```
87
-
88
- ### Step 4: Deep Thinking — Root Cause Reasoning
89
-
90
- ```
91
- [HOTFIX-ANALYZE] [4/6] Deep thinking — reasoning about root cause... ⏳
92
- ```
93
-
94
- **Two approaches available — choose based on complexity:**
95
-
96
- **Option A: Full approach** — Use `/superpowers:systematic-debugging` for complex, multi-layered bugs where you need structured hypothesis testing with instrumentation.
97
-
98
- **Option B: Lean approach (mattpocock)** — Use `/diagnose` for focused bugs where the feedback loop is clear. `/diagnose` provides a disciplined 6-phase loop: build feedback loop → reproduce → hypothesise → instrument → fix → regression-test. Also use `/zoom-out` if the affected code area is unfamiliar.
99
-
100
- Regardless of approach:
101
-
102
- 1. **Read the actual source code** — do NOT rely only on GitNexus metadata. Open and read every file in the call chain identified in Step 3.
103
- 2. **Form hypotheses** — based on symptoms + code reading, list 2-3 possible root causes
104
- 3. **Evaluate each hypothesis:**
105
- - Does it explain ALL symptoms from the bug report?
106
- - Does it match the reproduction steps?
107
- - Is it consistent with the code structure from GitNexus?
108
- 4. **Eliminate** — rule out hypotheses that don't explain all symptoms
109
- 5. **Conclude** — select the most likely root cause with specific file:line reference
110
- 6. **Propose fix strategy** — minimal approach to fix the confirmed root cause
111
-
112
- If no hypothesis explains all symptoms → the bug report may be incomplete. List what information is missing.
113
-
114
- ```
115
- [HOTFIX-ANALYZE] [4/6] Deep thinking — reasoning about root cause... ✅
116
- ```
117
-
118
- ### Step 5: Grill Fix Strategy
119
-
120
- ```
121
- [HOTFIX-ANALYZE] [5/6] Grill session — stress-testing fix strategy... ⏳
122
- ```
123
-
124
- Use `/grill-me` again to stress-test the proposed fix strategy with the user:
125
- - Does the fix address the root cause, not just the symptom?
126
- - Are there edge cases the fix could miss?
127
- - Could the fix introduce regressions in related areas?
128
- - Is the fix scope appropriate for a hotfix (minimal)?
129
-
130
- ```
131
- [HOTFIX-ANALYZE] [5/6] Fix strategy validated ✅
132
- ```
133
-
134
- ### Step 6: Write Analysis
135
-
136
- ```
137
- [HOTFIX-ANALYZE] [6/6] Writing analysis document... ⏳
138
- ```
139
-
140
- Create directory `.vsaf/docs/hotfixes/{bug-id}/` if it doesn't exist.
141
-
142
- Write file: `.vsaf/docs/hotfixes/{bug-id}/01-analysis.md`
143
-
144
- ```markdown
145
- # Bug Analysis: {bug-id}
146
-
147
- ## Tester Report
148
- {summary of bug report}
149
-
150
- ## Symptoms
151
- {symptoms observed}
152
-
153
- ## Reproduction Steps
154
- {reproduction steps}
155
-
156
- ## Hypotheses
157
- | # | Hypothesis | Explains all symptoms? | Verdict |
158
- |---|-----------|----------------------|---------|
159
- | 1 | {hypothesis} | {yes/no + why} | Eliminated / Selected |
160
-
161
- ## Root Cause
162
- {confirmed root cause — specific code defect with file:line references}
163
-
164
- ## Affected Files
165
- | File | Role | Severity |
166
- |------|------|----------|
167
- | {file} | {role in the bug} | Direct / Indirect |
168
-
169
- ## Blast Radius
170
- {what else could break}
171
-
172
- ## Fix Strategy
173
- {minimal fix approach — what to change and why}
174
- ```
175
-
176
- ```
177
- [HOTFIX-ANALYZE] [6/6] Writing analysis document... ✅
178
- ```
179
-
180
- ## Phase Exit Protocol
181
-
182
- Print PHASE REPORT:
183
- - Bug: {bug-id}
184
- - Status: ANALYSIS COMPLETED
185
- - Root cause: {one-line summary}
186
- - Affected files: {count} files
187
- - Output: `.vsaf/docs/hotfixes/{bug-id}/01-analysis.md`
188
- - Next step: `/sdlc-hotfix-prd`
189
-
190
- Update `.vsaf/docs/STATUS.md`.
191
-
192
- ## Rules
193
-
194
- - ⛔ Do NOT modify code — analysis only
195
- - ⛔ Do NOT modify `graphify-out/` or `.gitnexus/`
196
- - GitNexus impact analysis is MANDATORY — never skip it
197
- - Root cause must reference specific file:line, not vague descriptions
198
- - `/grill-me` is MANDATORY — used in Step 2 (clarify bug) and Step 5 (validate fix strategy)
@@ -1,272 +0,0 @@
1
- ---
2
- name: sdlc-hotfix-implement
3
- description: "Hotfix Phase 3 — TDD implementation: RED → GREEN → REFACTOR, minimal fix, SonarQube-in-loop"
4
- version: 1.0.0
5
- author: "@ngocsangairvds/vsaf"
6
- ---
7
-
8
- # Hotfix Phase 3: Implementation (TDD)
9
-
10
- You are a Senior Software Engineer performing a surgical fix. Mission: implement the fix using strict TDD — write failing test first, make it pass with minimal code, refactor. No subagents, no parallel epics — hotfixes are focused single-area changes.
11
-
12
- ## Progress Protocol
13
-
14
- Print progress at each step:
15
- ```
16
- [HOTFIX-IMPL] [step/6] description... ⏳
17
- [HOTFIX-IMPL] [step/6] description... ✅
18
- ```
19
-
20
- ## Index Protection
21
-
22
- ⛔ Do NOT modify `graphify-out/` or `.gitnexus/` — READ only.
23
-
24
- ## Phase Entry Protocol
25
-
26
- ```
27
- [HOTFIX-IMPL] [1/6] Checking input artifacts... ⏳
28
- ```
29
-
30
- 1. Input:
31
- - `.vsaf/docs/hotfixes/{bug-id}/02-prd.md`
32
- - `.vsaf/docs/hotfixes/{bug-id}/01-analysis.md`
33
- 2. Verify BOTH files exist:
34
- - Missing → Stop: "Run previous phases first."
35
- 3. Check `02-prd.md` has `## Gate: APPROVED`
36
- - No Gate → Stop: "PRD not approved. Get approval first."
37
- 4. Extract from PRD: FRs, acceptance criteria, scope boundary
38
- 5. Extract from analysis: root cause (file:line), affected files, fix strategy
39
- 6. Read `CONTEXT.md`
40
-
41
- ```
42
- [HOTFIX-IMPL] [1/6] Checking input artifacts... ✅
43
- ```
44
-
45
- ## Tasks
46
-
47
- ### Step 2: Branch Setup
48
-
49
- ```
50
- [HOTFIX-IMPL] [2/6] Creating hotfix branch... ⏳
51
- ```
52
-
53
- ```bash
54
- git checkout -b hotfix/{bug-id}
55
- ```
56
-
57
- If branch already exists → switch to it.
58
-
59
- ```
60
- [HOTFIX-IMPL] [2/6] Creating hotfix branch... ✅
61
- ```
62
-
63
- ### Step 3: TDD Cycle — `/tdd` Methodology
64
-
65
- ```
66
- [HOTFIX-IMPL] [3/6] TDD cycle — RED → GREEN → REFACTOR... ⏳
67
- ```
68
-
69
- Use `/tdd` methodology — behavior-based, vertical slice:
70
-
71
- **For each FR in the PRD:**
72
-
73
- 1. **RED — Write failing test FIRST**
74
- - Test the BEHAVIOR described in the acceptance criteria
75
- - Test the PUBLIC INTERFACE, not internals
76
- - Include the regression test: reproduce the original bug → MUST FAIL before fix
77
- - Run test → confirm it FAILS (red)
78
- - ⚠️ If test passes without code changes → the test is wrong or the bug is already fixed
79
-
80
- 2. **GREEN — Write MINIMAL code to pass**
81
- - Change ONLY what is needed to make the test pass
82
- - Stay within the scope boundary from PRD
83
- - Apply SonarQube rules while writing (see below)
84
- - Run test → confirm it PASSES (green)
85
-
86
- 3. **REFACTOR — Clean without changing behavior**
87
- - Remove duplication introduced by the fix
88
- - Improve naming if needed
89
- - Run ALL tests → still green
90
-
91
- **Repeat for each FR.** Typically 1-3 cycles for a hotfix.
92
-
93
- ```
94
- [HOTFIX-IMPL] [3/6] TDD cycle complete ✅
95
- ```
96
-
97
- ### Step 4: SonarQube Self-Check
98
-
99
- ```
100
- [HOTFIX-IMPL] [4/6] SonarQube quality check... ⏳
101
- ```
102
-
103
- Apply DURING Step 3 (not after). After the fix is complete, final sweep.
104
-
105
- > **Standard (single source of truth):** **`.claude/skills/_shared/sdlc/sonar-viettel/quality-gate.md`** — full gate, 357-rule parameters, and the importable `sonar-viettel-profile.xml` / `sonar-viettel-gate.json`. Phase 4 (`/sdlc-hotfix-review`) re-checks the same file. A hotfix applies the gate's **New Code** conditions on changed files.
106
-
107
- | Metric | Threshold |
108
- |--------|-----------|
109
- | Issues / Blocker / Critical / Major | = 0 |
110
- | Code Smells (new) | = 0 — stricter than the gate's ≤20 **by design**: a surgical 1–3 line fix has no excuse to add a smell, and `/sdlc-hotfix-review` rejects any new smell |
111
- | Vulnerabilities | = 0 |
112
- | Security Hotspots Reviewed | = 100% |
113
- | Duplicated Lines (new) | ≤ 45% |
114
- | Maintainability / Reliability / Security Rating | ≥ A |
115
-
116
- **Honour the `sonar-viettel` parametrised rules in the changed code** — S107 (params), S3776 (complexity), S1192 (literals), S2068/S2077 (secrets/injection), S100/S101/S115 (naming). **Thresholds are authoritative in the profile XML** — derive them via the snippet in the shared `quality-gate.md`, do not hard-code numbers.
117
-
118
- - If project has SonarQube → import the profile + gate from the shared folder, then run `sonar-scanner` incremental
119
- - If not → Claude self-reviews changed files against the shared `quality-gate.md`
120
-
121
- ```
122
- [HOTFIX-IMPL] [4/6] SonarQube quality check... ✅
123
- ```
124
-
125
- ### Step 5: Build & Test Verification
126
-
127
- ```
128
- [HOTFIX-IMPL] [5/6] Build & test verification... ⏳
129
- ```
130
-
131
- **MANDATORY — hard gate:**
132
-
133
- 1. **Compile**: Build entire project → 0 errors
134
- - Java: `mvn compile` / `gradle build`
135
- - Node: `npm run build` / `tsc --noEmit`
136
- - Angular: `ng build`
137
- - Go: `go build ./...`
138
- - FAIL → fix immediately
139
-
140
- 2. **Full test suite**: Run ALL tests (not just new ones)
141
- - `npm test` / `mvn test` / equivalent
142
- - ALL tests MUST pass — no regressions
143
- - FAIL → use `/diagnose` to find the issue
144
-
145
- 3. **Regression test confirmation**: The specific test from Step 3 RED phase → now PASSES
146
-
147
- ⚠️ DO NOT exit if build fails or tests fail. This is a hard gate.
148
-
149
- ```
150
- [HOTFIX-IMPL] [5/6] Build & test verification... ✅
151
- ```
152
-
153
- ### Step 6: Impact Verification
154
-
155
- ```
156
- [HOTFIX-IMPL] [6/6] Impact verification via GitNexus... ⏳
157
- ```
158
-
159
- Use GitNexus `impact` — verify the fix did not break anything outside blast radius.
160
-
161
- If unexpected impact detected → evaluate:
162
- - Within scope boundary → OK, note in impl log
163
- - Outside scope boundary → STOP, escalate to user
164
-
165
- ```
166
- [HOTFIX-IMPL] [6/6] Impact verification... ✅
167
- ```
168
-
169
- ## Verification Gate
170
-
171
- ⛔ **NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.**
172
-
173
- Before printing Phase Exit, you MUST pass ALL checks below. For each check: **run the command → read the full output → verify the claim matches the output.** Do NOT trust memory, do NOT trust previous runs, do NOT say "should pass."
174
-
175
- | # | Check | Command to Run | Evidence Required | ❌ NOT Acceptable |
176
- |---|-------|---------------|-------------------|-------------------|
177
- | 1 | Build compiles | `mvn compile` / `npm run build` / equivalent | `BUILD SUCCESS` or `0 errors` in output | "It compiled earlier" |
178
- | 2 | All tests pass | `npm test` / `mvn test` / equivalent | `X passed, 0 failed` in output | "Tests should still pass" |
179
- | 3 | Regression test passes | Run specific test by name | Test name + PASS in output | "I wrote the test so it passes" |
180
- | 4 | No new SonarQube issues | Check output from Step 4 | 0 blockers, 0 critical, 0 vulns | "Code looks clean" |
181
- | 5 | GitNexus impact clean | Check output from Step 6 | Blast radius matches analysis | "Fix is minimal so it's fine" |
182
- | 6 | Scope boundary held | `git diff --stat` | Changed files ⊆ files listed in analysis | "I only changed what was needed" |
183
-
184
- **Red flags — if you catch yourself thinking any of these, STOP and run the command:**
185
- - "It should work" → Run it and prove it
186
- - "I'm confident" → Confidence ≠ evidence
187
- - "I already checked" → Check again with fresh output
188
- - "It's a small change so it's safe" → Small changes break big systems
189
- - "The test passed during TDD" → TDD was minutes ago; verify NOW
190
-
191
- **Procedure:**
192
- 1. Run checks 1-6 sequentially
193
- 2. For each: paste the **actual command output** (or key lines) into `03-impl-log.md` under a `## Verification Evidence` section
194
- 3. If ANY check fails → fix → re-run ALL checks (not just the failed one)
195
- 4. Only after ALL 6 checks show fresh passing evidence → proceed to Phase Exit
196
-
197
- ## Output
198
-
199
- Write file: `.vsaf/docs/hotfixes/{bug-id}/03-impl-log.md`
200
-
201
- ```markdown
202
- # Implementation Log: {bug-id}
203
-
204
- ## Branch
205
- `hotfix/{bug-id}`
206
-
207
- ## TDD Cycles
208
-
209
- ### FR-001: {title}
210
- - RED: {test file}:{test name} — FAILED ✓
211
- - GREEN: {changed files} — PASSED ✓
212
- - REFACTOR: {what was cleaned}
213
-
214
- ### FR-002: {title} (if applicable)
215
- ...
216
-
217
- ## Files Changed
218
- | File | Change type | Lines |
219
- |------|-------------|-------|
220
- | {file} | Modified / Added | +{n} -{m} |
221
-
222
- ## Test Results
223
- - New tests: {count}
224
- - Regression test: {test name} — PASS
225
- - Full suite: {total} tests, all PASS
226
-
227
- ## SonarQube
228
- - Issues: 0
229
- - Vulnerabilities: 0
230
- - Duplication: {n}%
231
-
232
- ## Build
233
- - Compile: PASS
234
- - Full test suite: PASS
235
-
236
- ## Verification Evidence
237
-
238
- | # | Check | Result | Evidence |
239
- |---|-------|--------|----------|
240
- | 1 | Build compiles | ✅ PASS | `{actual build output line}` |
241
- | 2 | All tests pass | ✅ PASS | `{X} passed, 0 failed` |
242
- | 3 | Regression test | ✅ PASS | `{test name} — PASSED` |
243
- | 4 | SonarQube clean | ✅ PASS | 0 blocker, 0 critical, 0 vuln |
244
- | 5 | Impact clean | ✅ PASS | Blast radius = {files}, matches analysis |
245
- | 6 | Scope held | ✅ PASS | `git diff --stat`: {n} files changed, all within scope |
246
- ```
247
-
248
- ## Phase Exit Protocol
249
-
250
- Print PHASE REPORT:
251
- - Bug: {bug-id}
252
- - Status: IMPLEMENTATION COMPLETED
253
- - Branch: `hotfix/{bug-id}`
254
- - Tests: {new} new, {total} total — all PASS
255
- - Files changed: {count}
256
- - Output: `.vsaf/docs/hotfixes/{bug-id}/03-impl-log.md`
257
- - Next step: `/sdlc-hotfix-ship`
258
-
259
- Update `.vsaf/docs/STATUS.md`.
260
-
261
- > Artifacts saved. If the session is interrupted, open a new session and run the next phase — data is safe.
262
-
263
- ## Rules
264
-
265
- - ⛔ Do NOT write code without a failing test first (TDD)
266
- - ⛔ Do NOT modify `graphify-out/` or `.gitnexus/`
267
- - ⛔ Do NOT exceed scope boundary defined in PRD
268
- - ⛔ Do NOT use subagent-driven development — hotfixes are sequential, focused
269
- - Code MUST compile — hard gate, no exceptions
270
- - Full test suite MUST pass — no regressions allowed
271
- - If fix fails 3 times → STOP, escalate to user
272
- - If scope drift detected → STOP, go back to PRD