@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
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-implement-subagents
3
+ description: "Implement 2/8 — subagent setup"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Implement 2/8 — subagent setup
9
+
10
+ @include(step.md)
@@ -0,0 +1,38 @@
1
+ ## Subagent-Driven Development Protocol
2
+
3
+ ```
4
+ [IMPLEMENT] [2/8] Initializing subagent-driven development... ⏳
5
+ ```
6
+
7
+ **MANDATORY** — Check and activate `/superpowers:subagent-driven-development`:
8
+ 1. If not already in subagent mode → **switch immediately**
9
+ 2. Analyze `04-epics.md` → identify Conflict Map
10
+ 3. Dispatch each epic/story as a separate subagent running in parallel
11
+ 4. Each subagent follows the Conflict Map — only modify files assigned to its epic
12
+
13
+ ```
14
+ [IMPLEMENT] [2/8] Initializing subagent-driven development... ✅
15
+ ```
16
+
17
+ ## SonarQube Quality Gate — Apply DURING Coding
18
+
19
+ ⚠️ **DO NOT wait for review phase.** Each subagent MUST self-check the `sonar-viettel` gate WHILE writing code.
20
+
21
+ > **Standard (single source of truth):** **`.claude/skills/_shared/sdlc/sonar-viettel/quality-gate.md`** — full New Code + Overall Code tables, the 357-rule parameters, and the importable `sonar-viettel-profile.xml` / `sonar-viettel-gate.json`. **Read it.** Phase 7 (`/sdlc-review`) re-checks the **same** file — anything that passes here must pass there. Do NOT invent stricter or looser values.
22
+
23
+ **Hard fails to self-check (summary — see the shared doc for the full gate):**
24
+ - New Code: Issues / Blocker / Critical / Major / Vulnerabilities = **0**; Code Smells **≤ 20**; Security Hotspots Reviewed = **100%**; Duplicated **≤ 45%**; Maintainability / Reliability / Security Rating **≥ A**.
25
+ - Overall Code: Bugs = **0**; Code Smells **≤ 50**; same Blocker/Critical/Major/Vuln/Duplication/rating rules.
26
+ - Honour the parametrised rules — S107 (params), S3776 (complexity), S110 (inheritance), S1479 (switch), S1192 (literals), S2068/S2077 (secrets/injection), S100/S101/S115 (naming). **Thresholds live authoritatively in the profile XML** — derive them via the snippet in the shared `quality-gate.md`, do not memorise numbers.
27
+
28
+ **How to apply during coding:**
29
+ - **After each function** → self-review: security vulnerabilities? code smells? duplication?
30
+ - **After each class** → check SOLID violations, naming conventions, interface segregation
31
+ - **Before each commit** → scan changed files for: SQL injection, XSS, command injection, hardcoded secrets, null dereference, resource leaks, concurrency issues, duplicated blocks
32
+ - **Auto-detect SonarQube:** check whether `sonar-scanner` is on PATH.
33
+ - Present → import the profile + gate from the shared folder, then run `sonar-scanner` incremental.
34
+ - Absent → print `Sonar not found → self-checklist mode` and self-review against the shared `quality-gate.md`. This is a fully supported path, not a fallback to apologise for — SonarQube is OPTIONAL.
35
+
36
+ **Goal:** Review phase should only need to RE-CHECK, not find bugs for the first time.
37
+
38
+ ## Tasks
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-implement-tdd
3
+ description: "Implement 4/8 — TDD cycle"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Implement 4/8 — TDD cycle
9
+
10
+ @include(step.md)
@@ -0,0 +1,24 @@
1
+ ### Step 4: TDD Cycle (per subagent)
2
+
3
+ ```
4
+ [IMPLEMENT] [4/8] TDD cycle — RED → GREEN → REFACTOR... ⏳
5
+ ```
6
+
7
+ Use `/superpowers:test-driven-development`:
8
+
9
+ For each test case in `06-testcases.md`:
10
+ 1. **RED**: Write test → run → MUST FAIL
11
+ 2. **GREEN**: Write minimal code → run → MUST PASS
12
+ - ⚠️ **While writing GREEN code** → apply SonarQube rules immediately:
13
+ - Do not create security vulnerabilities
14
+ - No code smells (long method, deep nesting)
15
+ - No duplicated code
16
+ - Null-safe, proper error handling
17
+ 3. **REFACTOR**: Clean code, do not change behavior
18
+ - Refactor MUST improve SonarQube metrics, not degrade them
19
+
20
+ Use `/superpowers:executing-plans` — execute plan in order.
21
+
22
+ ```
23
+ [IMPLEMENT] [4/8] TDD cycle — RED → GREEN → REFACTOR... ✅
24
+ ```
@@ -23,6 +23,13 @@ Icon: `⏳` running, `✅` done, `❌` error.
23
23
 
24
24
  > ⛔ DO NOT modify `graphify-out/` or `.gitnexus/` — only READ and DO NOT write to these directories.
25
25
 
26
+ ## Artifact Write Boundary
27
+
28
+ - Create generated knowledge, documentation, SDLC artifacts, reports, and agent-readable markdown only at the project root beside `.vsaf` or inside the root `.vsaf/` directory.
29
+ - Do NOT create `docs/`, `.vsaf/`, `CONTEXT.md`, `AGENTS.md`, knowledge files, reports, or generated artifacts inside service/subproject folders.
30
+ - For service-specific notes, write under root `.vsaf/docs/` using the service name in the path or filename.
31
+ - Write inside a service/subproject folder only when the user explicitly authorizes that path, or when the task is a source-code/test change for that service.
32
+
26
33
  ## Input
27
34
 
28
35
  - Project path: `$ARGUMENTS` (or current directory)
@@ -21,6 +21,13 @@ Icon: `⏳` running, `✅` done, `❌` error.
21
21
 
22
22
  > ⛔ DO NOT modify `graphify-out/` or `.gitnexus/` — only GitNexus tools are allowed to write to `.gitnexus/`.
23
23
 
24
+ ## Artifact Write Boundary
25
+
26
+ - Create generated knowledge, documentation, SDLC artifacts, reports, and agent-readable markdown only at the project root beside `.vsaf` or inside the root `.vsaf/` directory.
27
+ - Do NOT create `docs/`, `.vsaf/`, `CONTEXT.md`, `AGENTS.md`, knowledge files, reports, or generated artifacts inside service/subproject folders.
28
+ - For service-specific notes, write under root `.vsaf/docs/` using the service name in the path or filename.
29
+ - Write inside a service/subproject folder only when the user explicitly authorizes that path, or when the task is a source-code/test change for that service.
30
+
24
31
  ## Clear Responsibility Assignment
25
32
 
26
33
  | Tool | Scope | Notes |
@@ -22,6 +22,13 @@ Icon: `⏳` running, `✅` done, `❌` error.
22
22
  > ⛔ DO NOT modify `graphify-out/` or `.gitnexus/` DIRECTLY — only graphify is allowed to write to `graphify-out/`.
23
23
  > **Exception:** Phase 3 supplements nodes/edges directly into `graph.json` after graphify has built it — this is the only permitted direct modification.
24
24
 
25
+ ## Artifact Write Boundary
26
+
27
+ - Create generated knowledge, documentation, SDLC artifacts, reports, and agent-readable markdown only at the project root beside `.vsaf` or inside the root `.vsaf/` directory.
28
+ - Do NOT create `docs/`, `.vsaf/`, `CONTEXT.md`, `AGENTS.md`, knowledge files, reports, or generated artifacts inside service/subproject folders.
29
+ - For service-specific notes, write under root `.vsaf/docs/` using the service name in the path or filename.
30
+ - Write inside a service/subproject folder only when the user explicitly authorizes that path, or when the task is a source-code/test change for that service.
31
+
25
32
  ## Input
26
33
 
27
34
  - Project path: `$ARGUMENTS` (or current directory)
@@ -2,6 +2,7 @@ name: sdlc
2
2
  version: 1.2.0
3
3
  description: Distributed Agentic SDLC — multi-machine, multi-repo, graph-based knowledge
4
4
  author: "@ngocsangairvds/vsaf"
5
+ workflows: ../../workflows/sdlc
5
6
 
6
7
  skills:
7
8
  # Setup
@@ -13,24 +14,91 @@ skills:
13
14
  - onboard-code
14
15
 
15
16
  # Phase 1-9 — Main flow
16
- - discovery
17
- - prd
18
- - architecture
19
- - srs
20
17
  - write-srs
21
18
  - validate-srs
22
- - test-design
23
- - implement
24
- - review
25
- - feature-complete
26
- - ship
27
19
 
28
- # Hotfix flow
29
- - hotfix-analyze
30
- - hotfix-prd
31
- - hotfix-implement
32
- - hotfix-ship
33
- - hotfix-review
20
+ # Hotfix step skills — generated from hotfix phase SKILL.md files
21
+ - hotfix/analyze/entry
22
+ - hotfix/analyze/grill
23
+ - hotfix/analyze/gitnexus
24
+ - hotfix/analyze/reasoning
25
+ - hotfix/analyze/fix-strategy
26
+ - hotfix/analyze/write
27
+ - hotfix/analyze/exit
28
+ - hotfix/prd/entry
29
+ - hotfix/prd/requirements
30
+ - hotfix/prd/validate
31
+ - hotfix/prd/write
32
+ - hotfix/prd/gate
33
+ - hotfix/implement/entry
34
+ - hotfix/implement/branch
35
+ - hotfix/implement/tdd
36
+ - hotfix/implement/sonar
37
+ - hotfix/implement/verify
38
+ - hotfix/implement/impact
39
+ - hotfix/implement/gate
40
+ - hotfix/review/entry
41
+ - hotfix/review/minimality
42
+ - hotfix/review/test-quality
43
+ - hotfix/review/impact
44
+ - hotfix/review/gate
45
+ - hotfix/ship/entry
46
+ - hotfix/ship/gitignore
47
+ - hotfix/ship/test-gate
48
+ - hotfix/ship/commit-pr
49
+ - hotfix/ship/report
50
+ - hotfix/ship/exit
51
+
52
+
53
+ # Phase step skills — generated from phase SKILL.md files
54
+ - discovery/prereq
55
+ - discovery/system
56
+ - discovery/grill
57
+ - discovery/brainstorm
58
+ - discovery/domain
59
+ - discovery/prfaq
60
+ - prd/prereq
61
+ - prd/elicitation
62
+ - prd/create
63
+ - prd/validate
64
+ - prd/blast-radius
65
+ - architecture/prereq
66
+ - architecture/current-state
67
+ - architecture/grill
68
+ - architecture/decision
69
+ - architecture/epics
70
+ - architecture/readiness
71
+ - srs/prereq
72
+ - srs/write
73
+ - srs/validate
74
+ - srs/interface
75
+ - test-design/prereq
76
+ - test-design/cases
77
+ - test-design/boundary
78
+ - test-design/coverage
79
+ - implement/prereq
80
+ - implement/subagents
81
+ - implement/plan
82
+ - implement/checkpoint
83
+ - implement/tdd
84
+ - implement/debug
85
+ - implement/impact
86
+ - implement/build-run
87
+ - review/prereq
88
+ - review/verification
89
+ - review/code
90
+ - review/impact
91
+ - review/debate
92
+ - complete/prereq
93
+ - complete/context
94
+ - complete/knowledge
95
+ - complete/reindex
96
+ - complete/status
97
+ - ship/prereq
98
+ - ship/gitignore
99
+ - ship/commit
100
+ - ship/pr
101
+ - ship/report
34
102
 
35
103
  # Diagnostics
36
104
  - sdlc-health
@@ -62,4 +130,3 @@ bundled:
62
130
  - zoom-out
63
131
  - tdd
64
132
  - improve-codebase-architecture
65
-
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-prd-blast-radius
3
+ description: "PRD 5/5 — blast radius + output"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # PRD 5/5 — blast radius + output
9
+
10
+ @include(step.md)
@@ -0,0 +1,76 @@
1
+ ### Step 5: Blast Radius
2
+
3
+ ```
4
+ [PRD] [5/5] Assessing blast radius via GitNexus... ⏳
5
+ ```
6
+
7
+ Use GitNexus `impact` — assess scope of feature impact.
8
+ Write to `02-prd.md` §Blast Radius.
9
+
10
+ ```
11
+ [PRD] [5/5] Assessing blast radius via GitNexus... ✅
12
+ ```
13
+
14
+ ## Gate
15
+
16
+ Human must approve the PRD. Write `## Gate: APPROVED` at the end of the file.
17
+ Do NOT proceed to Phase 3 without the Gate marker.
18
+
19
+ **Automated mode (opt-in):** when the environment has `VSAF_CI=1` or `VSAF_AUTO_APPROVE=1`, write the Gate yourself as `## Gate: APPROVED (auto · VSAF_CI · rationale: <one line>)` and proceed — the one-line rationale is REQUIRED for audit. Without the env flag, a human must approve (default).
20
+
21
+ ## Output
22
+
23
+ Write file: `.vsaf/docs/features/{feature-name}/02-prd.md`
24
+
25
+ ```markdown
26
+ # PRD: {feature-name}
27
+
28
+ ## Grill Log
29
+ {elicitation Q&A}
30
+
31
+ ## Requirements
32
+ ### User Stories
33
+ {with acceptance criteria}
34
+ ### Functional Requirements
35
+ {FR-001, FR-002...}
36
+ ### Non-Functional Requirements
37
+ {NFR-001, NFR-002...}
38
+
39
+ ## Validation
40
+ {validate-prd result}
41
+
42
+ ## Adversarial
43
+ {adversarial findings}
44
+
45
+ ## Blast Radius
46
+ {GitNexus impact result}
47
+
48
+ ## Gate: {PENDING / APPROVED by {name} on {date}}
49
+ ```
50
+
51
+ ## Artifact Auto-Save
52
+
53
+ After writing the file, print the message:
54
+
55
+ > Artifacts saved. If the session is interrupted, open a new session and run the next phase — data is safe.
56
+
57
+ ## Phase Exit Protocol
58
+
59
+ Print PHASE REPORT:
60
+ - Feature: {feature-name}
61
+ - Status: COMPLETED
62
+ - Completed: elicitation, create PRD, validate, adversarial review, blast radius
63
+ - Output files: `.vsaf/docs/features/{feature-name}/02-prd.md`
64
+ - Suggested next steps:
65
+ [1] Phase 3 Architecture → `/sdlc-architecture`
66
+ [2] Save artifacts
67
+
68
+ Update `.vsaf/docs/STATUS.md`.
69
+
70
+ ## Rules
71
+
72
+ - ⛔ Do NOT skip elicitation — Shared Understanding is mandatory
73
+ - ⛔ Do NOT modify `graphify-out/` or `.gitnexus/`
74
+ - Every user story MUST have acceptance criteria
75
+ - Every FR/NFR MUST have a unique ID
76
+ - Do NOT proceed if blast radius = HIGH without human approval
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-prd-create
3
+ description: "PRD 3/5 — create PRD"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # PRD 3/5 — create PRD
9
+
10
+ @include(step.md)
@@ -0,0 +1,21 @@
1
+ ### Step 3: Create PRD
2
+
3
+ ```
4
+ [PRD] [3/5] Creating PRD from grill results... ⏳
5
+ ```
6
+
7
+ Use `/bmad-create-prd` — create structured PRD from grill results (Step 2).
8
+
9
+ Ensure the output covers:
10
+
11
+ 1. **Goals** — business goals + success metrics
12
+ 2. **User Stories** — each MUST have acceptance criteria (Given/When/Then)
13
+ 3. **Functional Requirements** — unique ID per requirement (FR-001, FR-002...)
14
+ 4. **Non-Functional Requirements** — unique ID (NFR-001, NFR-002...) — performance, security, scalability
15
+ 5. **Success Metrics** — measurable KPIs tied to goals
16
+
17
+ Write to `02-prd.md` §Requirements.
18
+
19
+ ```
20
+ [PRD] [3/5] Creating PRD from grill results... ✅
21
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-prd-elicitation
3
+ description: "PRD 2/5 — elicitation"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # PRD 2/5 — elicitation
9
+
10
+ @include(step.md)
@@ -0,0 +1,12 @@
1
+ ### Step 2: Elicitation (Grill Session)
2
+
3
+ ```
4
+ [PRD] [2/5] Grill session — elicitation probing edge cases... ⏳
5
+ ```
6
+
7
+ Use `/bmad-advanced-elicitation` — grill 40-100 questions probing edge cases.
8
+ Record results in `02-prd.md` §Grill Log.
9
+
10
+ ```
11
+ [PRD] [2/5] Grill session — elicitation probing edge cases... ✅
12
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-prd-prereq
3
+ description: "PRD 1/5 — prerequisites"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # PRD 1/5 — prerequisites
9
+
10
+ @include(step.md)
@@ -0,0 +1,16 @@
1
+ ## Phase Entry Protocol
2
+
3
+ ```
4
+ [PRD] [1/5] Checking prerequisites... ⏳
5
+ ```
6
+
7
+ 1. Input: `.vsaf/docs/features/{feature-name}/01-discovery.md`
8
+ 2. Check if file exists:
9
+ - Does not exist → Ask: "File not found. Have you run Phase 1 Discovery?"
10
+ 3. Read `.vsaf/docs/STATUS.md`
11
+ 4. Read `CONTEXT.md`
12
+ 5. Query `graph.json` for business domain context
13
+
14
+ ```
15
+ [PRD] [1/5] Checking prerequisites... ✅
16
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-prd-validate
3
+ description: "PRD 4/5 — validate + adversarial review"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # PRD 4/5 — validate + adversarial review
9
+
10
+ @include(step.md)
@@ -0,0 +1,24 @@
1
+ ### Step 4: Validate + Adversarial Review
2
+
3
+ ```
4
+ [PRD] [4/5] Validate + adversarial review... ⏳
5
+ ```
6
+
7
+ **4a — Validate PRD:**
8
+
9
+ Use `/bmad-validate-prd` — validate the PRD against BMAD standards:
10
+ - Completeness — all user stories covered by FRs? All FRs traceable to a user story?
11
+ - Clarity — any ambiguous requirements? Can each FR be implemented without guessing?
12
+ - Testability — can each FR be verified with a test case?
13
+ - Consistency — any FRs that contradict each other?
14
+
15
+ Write to `02-prd.md` §Validation. If FAIL → fix inline, re-validate.
16
+
17
+ **4b — Adversarial review:**
18
+
19
+ Use `/bmad-review-adversarial-general` — cynical review to find gaps.
20
+ Write to `02-prd.md` §Adversarial.
21
+
22
+ ```
23
+ [PRD] [4/5] Validate + adversarial review... ✅
24
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-review-code
3
+ description: "Review 3/5 — code review + quality gate"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Review 3/5 — code review + quality gate
9
+
10
+ @include(step.md)
@@ -0,0 +1,45 @@
1
+ ### Step 3: Code Review
2
+
3
+ ```
4
+ [REVIEW] [3/5] Adversarial code review... ⏳
5
+ ```
6
+
7
+ Use `/bmad-code-review` — adversarial code review on the feature branch diff with parallel review layers (Blind Hunter, Edge Case Hunter, Acceptance Auditor).
8
+
9
+ Ensure the review covers:
10
+
11
+ 1. **Security scan** — SQL injection, XSS, command injection, hardcoded secrets, insecure deserialization
12
+ 2. **Data integrity** — null dereference, resource leaks, race conditions, missing transactions
13
+ 3. **SOLID violations** — god classes, leaky abstractions, interface segregation
14
+ 4. **Naming consistency** — verify against CONTEXT.md terminology
15
+ 5. **SRS compliance** — every FR/NFR implemented? Any extra scope not in SRS?
16
+
17
+ Classify each finding: MUST FIX / SHOULD FIX / NOTED.
18
+ Write to `08-review.md` §Code Review.
19
+
20
+ #### Quality Gate Re-check (SonarQube)
21
+
22
+ **IMPORTANT:** SonarQube rules were already applied in Phase 6 (Implementation). The Review phase only RE-CHECKS — confirming that code still meets standards after all changes.
23
+
24
+ Verify that code meets the `sonar-viettel` Quality Gate.
25
+
26
+ > **Standard (single source of truth):** **`.claude/skills/_shared/sdlc/sonar-viettel/quality-gate.md`** — the full New Code + Overall Code tables, the 357-rule parameters, and the importable `sonar-viettel-profile.xml` / `sonar-viettel-gate.json`. This is the **same** file Phase 6 (`/sdlc-implement`) coded against — review only confirms compliance, do not change the numbers.
27
+
28
+ **Hard fails to confirm (summary — see the shared doc for the full gate):**
29
+ - New Code: Issues / Blocker / Critical / Major / Vulnerabilities = **0**; Code Smells **≤ 20**; Security Hotspots Reviewed = **100%**; Duplicated **≤ 45%**; Maintainability / Reliability / Security Rating **≥ A**.
30
+ - Overall Code: Bugs = **0**; Code Smells **≤ 50**; same Blocker/Critical/Major/Vuln/Duplication/rating rules.
31
+
32
+ **How to execute (auto-detect — check whether `sonar-scanner` is on PATH):**
33
+ - SonarQube present → ensure it uses the `sonar-viettel` Profile + Gate (import from the shared folder if missing), run `sonar-scanner`, and check the report
34
+ - SonarQube absent → print `Sonar not found → self-checklist mode` and perform a manual re-check against the shared `quality-gate.md` (a fully supported path — SonarQube is OPTIONAL):
35
+ - Scan for security vulnerabilities (SQL injection, XSS, command injection, hardcoded secrets)
36
+ - Scan for bugs (null dereference, resource leaks, concurrency issues)
37
+ - Scan for code smells (long methods, deep nesting, duplicated blocks)
38
+ - Verify naming conventions, SOLID principles, duplicated blocks
39
+ - Write results to `08-review.md` §Quality Gate
40
+
41
+ **Quality Gate FAIL** → classify each issue as MUST FIX / SHOULD FIX / NOTED per the triage rules below.
42
+
43
+ ```
44
+ [REVIEW] [3/5] Adversarial code review + Quality Gate re-check... ✅
45
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-review-debate
3
+ description: "Review 5/5 — debate + output"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Review 5/5 — debate + output
9
+
10
+ @include(step.md)
@@ -0,0 +1,84 @@
1
+ ### Step 5: Debate (complex features only)
2
+
3
+ ```
4
+ [REVIEW] [5/5] Multi-agent debate (if needed)... ⏳
5
+ ```
6
+
7
+ Use `/bmad-party-mode` — multi-agent debate:
8
+ - Security vs Performance vs Maintainability
9
+ Write to `08-review.md` §Debate.
10
+
11
+ ```
12
+ [REVIEW] [5/5] Multi-agent debate... ✅
13
+ ```
14
+
15
+ ## Gate
16
+
17
+ MUST FIX = 0, Human approve.
18
+
19
+ **Automated mode (opt-in):** when `VSAF_CI=1` or `VSAF_AUTO_APPROVE=1` is set AND MUST FIX = 0, write `## Gate: APPROVED (auto · VSAF_CI · rationale: <one line>)` and proceed. If MUST FIX > 0, NEVER auto-approve — return to Phase 6 (Implement) regardless of the flag. Without the env flag, a human must approve (default).
20
+
21
+ Triage:
22
+ - **MUST FIX**: Security, data loss, SRS FR/NFR not satisfied, crash → Blocks ship
23
+ - **SHOULD FIX**: Performance, maintainability → Fix if time allows
24
+ - **NOTED**: Style, minor naming → Log only
25
+
26
+ If MUST FIX > 0 → return to Phase 6 (Implementation) with specific issues.
27
+
28
+ ## Output
29
+
30
+ Write file: `.vsaf/docs/features/{feature-name}/08-review.md`
31
+
32
+ ```markdown
33
+ # Review: {feature-name}
34
+
35
+ ## Verification
36
+ - Build: PASS/FAIL
37
+ - Tests: {X}/{Y} passed
38
+ - Uncommitted files: none
39
+ - Scope: matches SRS ✓
40
+
41
+ ## Code Review
42
+ ### MUST FIX
43
+ - (none)
44
+ ### SHOULD FIX
45
+ - {issue description}
46
+ ### NOTED
47
+ - {minor items}
48
+
49
+ ## Quality Gate (Re-check)
50
+ - SonarQube: {available / manual re-check}
51
+ - New Code: {PASS/FAIL} — Issues={N}, Blocker={N}, Critical={N}, Major={N}, Smells={N}, Vulns={N}, Duplication={N}%
52
+ - Overall: {PASS/FAIL} — Bugs={N}, Blocker={N}, Critical={N}, Major={N}, Smells={N}, Vulns={N}, Duplication={N}%
53
+ - Compile: PASS/FAIL
54
+ - Runtime: PASS/FAIL
55
+
56
+ ## Impact
57
+ - Files changed: {N}
58
+ - Blast radius: {low/medium/high}
59
+ - Confidence: {%}
60
+
61
+ ## Debate (if applicable)
62
+ {party-mode findings}
63
+
64
+ ## Gate: {PENDING / APPROVED by {name} on {date}}
65
+ ```
66
+
67
+ ## Phase Exit Protocol
68
+
69
+ Print PHASE REPORT:
70
+ - Results: MUST FIX = {N}, SHOULD FIX = {N}, NOTED = {N}
71
+ - Output files: `08-review.md`
72
+ - Suggestion: [1] `/sdlc-feature-complete` (if APPROVED) [2] Return to Phase 6 (if MUST FIX > 0)
73
+
74
+ Update `.vsaf/docs/STATUS.md`.
75
+
76
+ ## Rules
77
+
78
+ - Review against SRS (spec), NOT against code implementation
79
+ - Max 2 review rounds — if still failing → escalate to human
80
+ - MUST FIX items MUST be resolved before feature-complete
81
+ - **Quality Gate FAIL = MUST FIX** — Blocker, Critical, Vulnerability all block ship
82
+ - **Code does not compile = MUST FIX** — hard gate, no exceptions
83
+ - If there is no SonarQube, Claude performs a manual quality gate re-check
84
+ - **SonarQube only RE-CHECKS** — rules were applied in Phase 6, review only confirms compliance
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-review-impact
3
+ description: "Review 4/5 — impact assessment"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Review 4/5 — impact assessment
9
+
10
+ @include(step.md)
@@ -0,0 +1,14 @@
1
+ ### Step 4: Impact Assessment
2
+
3
+ ```
4
+ [REVIEW] [4/5] Impact assessment via GitNexus... ⏳
5
+ ```
6
+
7
+ Use GitNexus `detect_changes` + `impact`:
8
+ - Confirm only expected files changed
9
+ - Blast radius confidence scoring
10
+ Write to `08-review.md` §Impact.
11
+
12
+ ```
13
+ [REVIEW] [4/5] Impact assessment... ✅
14
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-review-prereq
3
+ description: "Review 1/5 — prerequisites"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Review 1/5 — prerequisites
9
+
10
+ @include(step.md)