@ngocsangairvds/vsaf 5.1.4 → 5.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/package.json +1 -1
  2. package/packages/cli/dist/adapters/antigravity.d.ts.map +1 -1
  3. package/packages/cli/dist/adapters/antigravity.js +7 -2
  4. package/packages/cli/dist/adapters/antigravity.js.map +1 -1
  5. package/packages/cli/dist/adapters/codex.js +1 -1
  6. package/packages/cli/dist/adapters/codex.js.map +1 -1
  7. package/packages/cli/dist/adapters/cursor.js +1 -1
  8. package/packages/cli/dist/adapters/cursor.js.map +1 -1
  9. package/packages/cli/dist/commands/install.d.ts.map +1 -1
  10. package/packages/cli/dist/commands/install.js +21 -1
  11. package/packages/cli/dist/commands/install.js.map +1 -1
  12. package/packages/cli/dist/commands/skill.d.ts.map +1 -1
  13. package/packages/cli/dist/commands/skill.js +5 -2
  14. package/packages/cli/dist/commands/skill.js.map +1 -1
  15. package/skills/sdlc/architecture/current-state/SKILL.md +10 -0
  16. package/skills/sdlc/architecture/current-state/step.md +13 -0
  17. package/skills/sdlc/architecture/decision/SKILL.md +10 -0
  18. package/skills/sdlc/architecture/decision/step.md +21 -0
  19. package/skills/sdlc/architecture/epics/SKILL.md +10 -0
  20. package/skills/sdlc/architecture/epics/step.md +34 -0
  21. package/skills/sdlc/architecture/grill/SKILL.md +10 -0
  22. package/skills/sdlc/architecture/grill/step.md +26 -0
  23. package/skills/sdlc/architecture/prereq/SKILL.md +10 -0
  24. package/skills/sdlc/architecture/prereq/step.md +16 -0
  25. package/skills/sdlc/architecture/readiness/SKILL.md +10 -0
  26. package/skills/sdlc/architecture/readiness/step.md +76 -0
  27. package/skills/sdlc/complete/context/SKILL.md +10 -0
  28. package/skills/sdlc/complete/context/step.md +14 -0
  29. package/skills/sdlc/complete/knowledge/SKILL.md +10 -0
  30. package/skills/sdlc/complete/knowledge/step.md +22 -0
  31. package/skills/sdlc/complete/prereq/SKILL.md +10 -0
  32. package/skills/sdlc/complete/prereq/step.md +16 -0
  33. package/skills/sdlc/complete/reindex/SKILL.md +10 -0
  34. package/skills/sdlc/complete/reindex/step.md +24 -0
  35. package/skills/sdlc/complete/status/SKILL.md +10 -0
  36. package/skills/sdlc/complete/status/step.md +52 -0
  37. package/skills/sdlc/discovery/brainstorm/SKILL.md +10 -0
  38. package/skills/sdlc/discovery/brainstorm/step.md +27 -0
  39. package/skills/sdlc/discovery/domain/SKILL.md +10 -0
  40. package/skills/sdlc/discovery/domain/step.md +13 -0
  41. package/skills/sdlc/discovery/grill/SKILL.md +10 -0
  42. package/skills/sdlc/discovery/grill/step.md +22 -0
  43. package/skills/sdlc/discovery/prereq/SKILL.md +10 -0
  44. package/skills/sdlc/discovery/prereq/step.md +16 -0
  45. package/skills/sdlc/discovery/prfaq/SKILL.md +10 -0
  46. package/skills/sdlc/discovery/prfaq/step.md +68 -0
  47. package/skills/sdlc/discovery/system/SKILL.md +10 -0
  48. package/skills/sdlc/discovery/system/step.md +19 -0
  49. package/skills/sdlc/hotfix/analyze/entry/SKILL.md +10 -0
  50. package/skills/sdlc/hotfix/analyze/entry/step.md +15 -0
  51. package/skills/sdlc/hotfix/analyze/exit/SKILL.md +10 -0
  52. package/skills/sdlc/hotfix/analyze/exit/step.md +19 -0
  53. package/skills/sdlc/hotfix/analyze/fix-strategy/SKILL.md +10 -0
  54. package/skills/sdlc/hotfix/analyze/fix-strategy/step.md +15 -0
  55. package/skills/sdlc/hotfix/analyze/gitnexus/SKILL.md +10 -0
  56. package/skills/sdlc/hotfix/analyze/gitnexus/step.md +17 -0
  57. package/skills/sdlc/hotfix/analyze/grill/SKILL.md +10 -0
  58. package/skills/sdlc/hotfix/analyze/grill/step.md +23 -0
  59. package/skills/sdlc/hotfix/analyze/reasoning/SKILL.md +10 -0
  60. package/skills/sdlc/hotfix/analyze/reasoning/step.md +29 -0
  61. package/skills/sdlc/hotfix/analyze/write/SKILL.md +10 -0
  62. package/skills/sdlc/hotfix/analyze/write/step.md +45 -0
  63. package/skills/sdlc/hotfix/implement/branch/SKILL.md +10 -0
  64. package/skills/sdlc/hotfix/implement/branch/step.md +15 -0
  65. package/skills/sdlc/hotfix/implement/entry/SKILL.md +10 -0
  66. package/skills/sdlc/hotfix/implement/entry/step.md +20 -0
  67. package/skills/sdlc/hotfix/implement/gate/SKILL.md +10 -0
  68. package/skills/sdlc/hotfix/implement/gate/step.md +104 -0
  69. package/skills/sdlc/hotfix/implement/impact/SKILL.md +10 -0
  70. package/skills/sdlc/hotfix/implement/impact/step.md +15 -0
  71. package/skills/sdlc/hotfix/implement/sonar/SKILL.md +10 -0
  72. package/skills/sdlc/hotfix/implement/sonar/step.md +27 -0
  73. package/skills/sdlc/hotfix/implement/tdd/SKILL.md +10 -0
  74. package/skills/sdlc/hotfix/implement/tdd/step.md +33 -0
  75. package/skills/sdlc/hotfix/implement/verify/SKILL.md +10 -0
  76. package/skills/sdlc/hotfix/implement/verify/step.md +27 -0
  77. package/skills/sdlc/hotfix/prd/entry/SKILL.md +10 -0
  78. package/skills/sdlc/hotfix/prd/entry/step.md +20 -0
  79. package/skills/sdlc/hotfix/prd/gate/SKILL.md +10 -0
  80. package/skills/sdlc/hotfix/prd/gate/step.md +32 -0
  81. package/skills/sdlc/hotfix/prd/requirements/SKILL.md +10 -0
  82. package/skills/sdlc/hotfix/prd/requirements/step.md +19 -0
  83. package/skills/sdlc/hotfix/prd/validate/SKILL.md +10 -0
  84. package/skills/sdlc/hotfix/prd/validate/step.md +19 -0
  85. package/skills/sdlc/hotfix/prd/write/SKILL.md +10 -0
  86. package/skills/sdlc/hotfix/prd/write/step.md +38 -0
  87. package/skills/sdlc/hotfix/review/entry/SKILL.md +10 -0
  88. package/skills/sdlc/hotfix/review/entry/step.md +13 -0
  89. package/skills/sdlc/hotfix/review/gate/SKILL.md +10 -0
  90. package/skills/sdlc/hotfix/review/gate/step.md +51 -0
  91. package/skills/sdlc/hotfix/review/impact/SKILL.md +10 -0
  92. package/skills/sdlc/hotfix/review/impact/step.md +22 -0
  93. package/skills/sdlc/hotfix/review/minimality/SKILL.md +10 -0
  94. package/skills/sdlc/hotfix/review/minimality/step.md +18 -0
  95. package/skills/sdlc/hotfix/review/test-quality/SKILL.md +10 -0
  96. package/skills/sdlc/hotfix/review/test-quality/step.md +16 -0
  97. package/skills/sdlc/hotfix/ship/commit-pr/SKILL.md +10 -0
  98. package/skills/sdlc/hotfix/ship/commit-pr/step.md +58 -0
  99. package/skills/sdlc/hotfix/ship/entry/SKILL.md +10 -0
  100. package/skills/sdlc/hotfix/ship/entry/step.md +20 -0
  101. package/skills/sdlc/hotfix/ship/exit/SKILL.md +10 -0
  102. package/skills/sdlc/hotfix/ship/exit/step.md +31 -0
  103. package/skills/sdlc/hotfix/ship/gitignore/SKILL.md +10 -0
  104. package/skills/sdlc/hotfix/ship/gitignore/step.md +22 -0
  105. package/skills/sdlc/hotfix/ship/report/SKILL.md +10 -0
  106. package/skills/sdlc/hotfix/ship/report/step.md +47 -0
  107. package/skills/sdlc/hotfix/ship/test-gate/SKILL.md +10 -0
  108. package/skills/sdlc/hotfix/ship/test-gate/step.md +17 -0
  109. package/skills/sdlc/implement/build-run/SKILL.md +10 -0
  110. package/skills/sdlc/implement/build-run/step.md +85 -0
  111. package/skills/sdlc/implement/checkpoint/SKILL.md +10 -0
  112. package/skills/sdlc/implement/checkpoint/step.md +20 -0
  113. package/skills/sdlc/implement/debug/SKILL.md +10 -0
  114. package/skills/sdlc/implement/debug/step.md +25 -0
  115. package/skills/sdlc/implement/impact/SKILL.md +10 -0
  116. package/skills/sdlc/implement/impact/step.md +12 -0
  117. package/skills/sdlc/implement/plan/SKILL.md +10 -0
  118. package/skills/sdlc/implement/plan/step.md +13 -0
  119. package/skills/sdlc/implement/prereq/SKILL.md +10 -0
  120. package/skills/sdlc/implement/prereq/step.md +21 -0
  121. package/skills/sdlc/implement/subagents/SKILL.md +10 -0
  122. package/skills/sdlc/implement/subagents/step.md +38 -0
  123. package/skills/sdlc/implement/tdd/SKILL.md +10 -0
  124. package/skills/sdlc/implement/tdd/step.md +24 -0
  125. package/skills/sdlc/init/SKILL.md +7 -0
  126. package/skills/sdlc/onboard-code/SKILL.md +7 -0
  127. package/skills/sdlc/onboard-docs/SKILL.md +7 -0
  128. package/skills/sdlc/pack.yaml +83 -16
  129. package/skills/sdlc/prd/blast-radius/SKILL.md +10 -0
  130. package/skills/sdlc/prd/blast-radius/step.md +76 -0
  131. package/skills/sdlc/prd/create/SKILL.md +10 -0
  132. package/skills/sdlc/prd/create/step.md +21 -0
  133. package/skills/sdlc/prd/elicitation/SKILL.md +10 -0
  134. package/skills/sdlc/prd/elicitation/step.md +12 -0
  135. package/skills/sdlc/prd/prereq/SKILL.md +10 -0
  136. package/skills/sdlc/prd/prereq/step.md +16 -0
  137. package/skills/sdlc/prd/validate/SKILL.md +10 -0
  138. package/skills/sdlc/prd/validate/step.md +24 -0
  139. package/skills/sdlc/review/code/SKILL.md +10 -0
  140. package/skills/sdlc/review/code/step.md +45 -0
  141. package/skills/sdlc/review/debate/SKILL.md +10 -0
  142. package/skills/sdlc/review/debate/step.md +84 -0
  143. package/skills/sdlc/review/impact/SKILL.md +10 -0
  144. package/skills/sdlc/review/impact/step.md +14 -0
  145. package/skills/sdlc/review/prereq/SKILL.md +10 -0
  146. package/skills/sdlc/review/prereq/step.md +18 -0
  147. package/skills/sdlc/review/verification/SKILL.md +10 -0
  148. package/skills/sdlc/review/verification/step.md +16 -0
  149. package/skills/sdlc/ship/commit/SKILL.md +10 -0
  150. package/skills/sdlc/ship/commit/step.md +23 -0
  151. package/skills/sdlc/ship/gitignore/SKILL.md +10 -0
  152. package/skills/sdlc/ship/gitignore/step.md +22 -0
  153. package/skills/sdlc/ship/pr/SKILL.md +10 -0
  154. package/skills/sdlc/ship/pr/step.md +34 -0
  155. package/skills/sdlc/ship/prereq/SKILL.md +10 -0
  156. package/skills/sdlc/ship/prereq/step.md +16 -0
  157. package/skills/sdlc/ship/report/SKILL.md +10 -0
  158. package/skills/sdlc/ship/report/step.md +74 -0
  159. package/skills/sdlc/srs/interface/SKILL.md +10 -0
  160. package/skills/sdlc/srs/interface/step.md +44 -0
  161. package/skills/sdlc/srs/prereq/SKILL.md +10 -0
  162. package/skills/sdlc/srs/prereq/step.md +19 -0
  163. package/skills/sdlc/srs/validate/SKILL.md +10 -0
  164. package/skills/sdlc/srs/validate/step.md +23 -0
  165. package/skills/sdlc/srs/write/SKILL.md +10 -0
  166. package/skills/sdlc/srs/write/step.md +19 -0
  167. package/skills/sdlc/test-design/boundary/SKILL.md +10 -0
  168. package/skills/sdlc/test-design/boundary/step.md +12 -0
  169. package/skills/sdlc/test-design/cases/SKILL.md +10 -0
  170. package/skills/sdlc/test-design/cases/step.md +22 -0
  171. package/skills/sdlc/test-design/coverage/SKILL.md +10 -0
  172. package/skills/sdlc/test-design/coverage/step.md +63 -0
  173. package/skills/sdlc/test-design/prereq/SKILL.md +10 -0
  174. package/skills/sdlc/test-design/prereq/step.md +15 -0
  175. package/{skills/sdlc/workflows → workflows/sdlc}/hotfix-tdd.yaml +2 -1
  176. package/{skills/sdlc/workflows → workflows/sdlc}/hotfix.yaml +8 -4
  177. package/workflows/sdlc/master-sdlc.yaml +64 -0
  178. package/workflows/sdlc/sdlc-architecture.yaml +43 -0
  179. package/workflows/sdlc/sdlc-build.yaml +51 -0
  180. package/workflows/sdlc/sdlc-design.yaml +61 -0
  181. package/workflows/sdlc/sdlc-discovery.yaml +43 -0
  182. package/workflows/sdlc/sdlc-feature-complete.yaml +36 -0
  183. package/workflows/sdlc/sdlc-hotfix-analyze.yaml +43 -0
  184. package/workflows/sdlc/sdlc-hotfix-implement.yaml +43 -0
  185. package/workflows/sdlc/sdlc-hotfix-prd.yaml +31 -0
  186. package/workflows/sdlc/sdlc-hotfix-review.yaml +31 -0
  187. package/workflows/sdlc/sdlc-hotfix-ship.yaml +37 -0
  188. package/workflows/sdlc/sdlc-implement.yaml +60 -0
  189. package/workflows/sdlc/sdlc-prd.yaml +36 -0
  190. package/workflows/sdlc/sdlc-qa.yaml +91 -0
  191. package/workflows/sdlc/sdlc-review.yaml +36 -0
  192. package/workflows/sdlc/sdlc-ship.yaml +36 -0
  193. package/workflows/sdlc/sdlc-srs.yaml +29 -0
  194. package/workflows/sdlc/sdlc-test-design.yaml +29 -0
  195. package/workflows/sdlc/sdlc-testcase.yaml +25 -0
  196. package/workflows/sdlc/sdlc-thinking.yaml +67 -0
  197. package/skills/sdlc/architecture/SKILL.md +0 -218
  198. package/skills/sdlc/discovery/SKILL.md +0 -197
  199. package/skills/sdlc/feature-complete/SKILL.md +0 -159
  200. package/skills/sdlc/hotfix-analyze/SKILL.md +0 -198
  201. package/skills/sdlc/hotfix-implement/SKILL.md +0 -272
  202. package/skills/sdlc/hotfix-prd/SKILL.md +0 -161
  203. package/skills/sdlc/hotfix-review/SKILL.md +0 -153
  204. package/skills/sdlc/hotfix-ship/SKILL.md +0 -221
  205. package/skills/sdlc/implement/SKILL.md +0 -264
  206. package/skills/sdlc/prd/SKILL.md +0 -182
  207. package/skills/sdlc/review/SKILL.md +0 -210
  208. package/skills/sdlc/ship/SKILL.md +0 -194
  209. package/skills/sdlc/srs/SKILL.md +0 -148
  210. package/skills/sdlc/test-design/SKILL.md +0 -132
  211. package/skills/sdlc/workflows/master-sdlc.yaml +0 -55
  212. package/skills/sdlc/workflows/sdlc-build.yaml +0 -18
  213. package/skills/sdlc/workflows/sdlc-design.yaml +0 -14
  214. package/skills/sdlc/workflows/sdlc-qa.yaml +0 -20
  215. package/skills/sdlc/workflows/sdlc-testcase.yaml +0 -8
  216. package/skills/sdlc/workflows/sdlc-thinking.yaml +0 -12
  217. /package/{skills/sdlc/workflows → workflows/sdlc}/onboarding.yaml +0 -0
@@ -1,161 +0,0 @@
1
- ---
2
- name: sdlc-hotfix-prd
3
- description: "Hotfix Phase 2 — Lightweight PRD from analysis: fix requirements, acceptance criteria, scope"
4
- version: 1.0.0
5
- author: "@ngocsangairvds/vsaf"
6
- ---
7
-
8
- # Hotfix Phase 2: PRD (Fix Requirements)
9
-
10
- You are a Principal Product Owner focused on a surgical fix. Mission: define exactly what needs to change, acceptance criteria, and "done" definition — no discovery needed (grill already happened in analyze phase).
11
-
12
- ## Language Rule
13
-
14
- Output documents (02-prd.md) MUST be written in Vietnamese. Only keep English for: IDs, technical terms, code references.
15
-
16
- ## Progress Protocol
17
-
18
- Print progress at each step:
19
- ```
20
- [HOTFIX-PRD] [step/4] description... ⏳
21
- [HOTFIX-PRD] [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-PRD] [1/4] Checking input artifacts... ⏳
32
- ```
33
-
34
- 1. Input: `.vsaf/docs/hotfixes/{bug-id}/01-analysis.md`
35
- 2. Verify file exists:
36
- - Does not exist → Stop: "Analysis not found. Run `/sdlc-hotfix-analyze` first."
37
- 3. Read the analysis file — extract:
38
- - Root cause (file:line)
39
- - Blast radius
40
- - Fix strategy (proposed in analyze phase)
41
- - Affected files
42
- 4. Read `.vsaf/docs/STATUS.md`
43
- 5. Read `CONTEXT.md`
44
-
45
- ```
46
- [HOTFIX-PRD] [1/4] Checking input artifacts... ✅
47
- ```
48
-
49
- ## Tasks
50
-
51
- ### Step 2: Define Fix Requirements
52
-
53
- ```
54
- [HOTFIX-PRD] [2/4] Defining fix requirements from analysis... ⏳
55
- ```
56
-
57
- Based on the analysis (NOT a new grill session — that already happened), define:
58
-
59
- 1. **Fix Goal** — one sentence: what the fix achieves
60
- 2. **Functional Requirements** — FR-001, FR-002... (typically 1-3 for a hotfix)
61
- - Each FR traces to the root cause or blast radius item
62
- 3. **Acceptance Criteria** — Given/When/Then for each FR
63
- - MUST include a regression test criterion: "Given the fix is applied, When {original reproduction steps}, Then {expected behavior}"
64
- 4. **Scope Boundary** — explicitly state what is OUT of scope (no refactoring, no enhancements)
65
- 5. **Non-Functional Requirements** — only if relevant (performance regression, security)
66
-
67
- ```
68
- [HOTFIX-PRD] [2/4] Defining fix requirements... ✅
69
- ```
70
-
71
- ### Step 3: Validate + Risk Check
72
-
73
- ```
74
- [HOTFIX-PRD] [3/4] Validating PRD... ⏳
75
- ```
76
-
77
- Use `/bmad-validate-prd` — validate:
78
- - Every FR is testable
79
- - Acceptance criteria are unambiguous
80
- - Scope is minimal (hotfix, not enhancement)
81
- - Fix addresses root cause, not just symptom
82
-
83
- If FAIL → fix inline, re-validate.
84
-
85
- Use GitNexus `impact` — confirm blast radius from analysis is still accurate.
86
-
87
- ```
88
- [HOTFIX-PRD] [3/4] Validating PRD... ✅
89
- ```
90
-
91
- ### Step 4: Write PRD
92
-
93
- ```
94
- [HOTFIX-PRD] [4/4] Writing hotfix PRD... ⏳
95
- ```
96
-
97
- Write file: `.vsaf/docs/hotfixes/{bug-id}/02-prd.md`
98
-
99
- ```markdown
100
- # Hotfix PRD: {bug-id}
101
-
102
- ## Fix Goal
103
- {one sentence}
104
-
105
- ## Source
106
- - Analysis: `01-analysis.md`
107
- - Root cause: {file:line — summary}
108
-
109
- ## Functional Requirements
110
-
111
- ### FR-001: {title}
112
- {description}
113
-
114
- **Acceptance Criteria:**
115
- - Given {context}, When {action}, Then {expected result}
116
-
117
- ### FR-002: {title} (if needed)
118
- ...
119
-
120
- ## Non-Functional Requirements
121
- {NFR-001 if applicable, otherwise "N/A — no NFR impact for this fix"}
122
-
123
- ## Scope Boundary
124
- **In scope:** {what will change}
125
- **Out of scope:** {what will NOT change — no refactoring, no enhancements}
126
-
127
- ## Blast Radius (confirmed)
128
- {from GitNexus impact — files that may be affected}
129
-
130
- ## Gate: {PENDING / APPROVED by {name} on {date}}
131
- ```
132
-
133
- ```
134
- [HOTFIX-PRD] [4/4] Writing hotfix PRD... ✅
135
- ```
136
-
137
- ## Gate
138
-
139
- Human must approve the PRD. Write `## Gate: APPROVED` at the end of the file.
140
- Do NOT proceed to implementation without the Gate marker.
141
-
142
- ## Phase Exit Protocol
143
-
144
- Print PHASE REPORT:
145
- - Bug: {bug-id}
146
- - Status: PRD COMPLETED
147
- - FRs: {count} functional requirements
148
- - Output: `.vsaf/docs/hotfixes/{bug-id}/02-prd.md`
149
- - Next step: `/sdlc-hotfix-implement`
150
-
151
- Update `.vsaf/docs/STATUS.md`.
152
-
153
- > Artifacts saved. If the session is interrupted, open a new session and run the next phase — data is safe.
154
-
155
- ## Rules
156
-
157
- - ⛔ Do NOT start a new grill session — analysis already has grill results
158
- - ⛔ Do NOT modify `graphify-out/` or `.gitnexus/`
159
- - ⛔ Do NOT add enhancements — hotfix scope only
160
- - Scope MUST be minimal — fix root cause, add regression test, nothing more
161
- - Every FR MUST be directly traceable to the root cause or blast radius
@@ -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}`