@ngocsangairvds/vsaf 3.1.14 → 3.1.15

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngocsangairvds/vsaf",
3
- "version": "3.1.14",
3
+ "version": "3.1.15",
4
4
  "description": "VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.",
5
5
  "keywords": ["claude", "claude-code", "ai", "sdlc", "framework", "bmad", "gitnexus", "superpowers"],
6
6
  "bin": {
package/src/global.js CHANGED
@@ -32,22 +32,16 @@ function installSkills() {
32
32
  fs.mkdirSync(SKILLS_DST, { recursive: true });
33
33
 
34
34
  let installed = 0;
35
- let skipped = 0;
36
35
 
37
36
  for (const entry of fs.readdirSync(SKILLS_SRC, { withFileTypes: true })) {
38
37
  const src = path.join(SKILLS_SRC, entry.name);
39
38
  const dst = path.join(SKILLS_DST, entry.name);
40
39
 
41
- if (fs.existsSync(dst)) {
42
- skipped++;
43
- continue;
44
- }
45
-
46
40
  entry.isDirectory() ? copyDir(src, dst) : copyFile(src, dst);
47
41
  installed++;
48
42
  }
49
43
 
50
- ok(`${installed} skill(s) installed, ${skipped} already present`);
44
+ ok(`${installed} skill(s) installed/updated`);
51
45
  }
52
46
 
53
47
  // ── Binary helpers ───────────────────────────────────────────────────────────
package/src/project.js CHANGED
@@ -116,7 +116,6 @@ function syncLocalBmadSkills() {
116
116
  ];
117
117
 
118
118
  let installed = 0;
119
- let skipped = 0;
120
119
 
121
120
  for (const targetRoot of targets) {
122
121
  fs.mkdirSync(targetRoot, { recursive: true });
@@ -125,17 +124,12 @@ function syncLocalBmadSkills() {
125
124
  const src = path.join(SKILLS_SRC, entry.name);
126
125
  const dst = path.join(targetRoot, entry.name);
127
126
 
128
- if (fs.existsSync(dst)) {
129
- skipped++;
130
- continue;
131
- }
132
-
133
127
  entry.isDirectory() ? copyDir(src, dst) : copyFile(src, dst);
134
128
  installed++;
135
129
  }
136
130
  }
137
131
 
138
- ok(`${installed} BMAD skill copy(ies), ${skipped} already present`);
132
+ ok(`${installed} BMAD skill(s) installed/updated`);
139
133
  }
140
134
 
141
135
  function initGitNexus() {
@@ -34,9 +34,9 @@ Implement code strictly following PRD, SRS, and testcases, one task at a time, w
34
34
  ```
35
35
 
36
36
  ### Step 1 — Read PRD + SRS + testcase (mandatory — must read all 3 fully)
37
- - Read the PRD file in `docs/project/planning-artifacts/` — understand WHY and WHAT
38
- - Read the SRS file in `docs/project/srs/` — understand HOW, FRs/NFRs
39
- - Read the testcase file in `docs/project/testcases/` — understand acceptance criteria
37
+ - Read the PRD file in `.vsaf/docs/planning-artifacts/` — understand WHY and WHAT
38
+ - Read the SRS file in `.vsaf/docs/srs/` — understand HOW, FRs/NFRs
39
+ - Read the testcase file in `.vsaf/docs/testcases/` — understand acceptance criteria
40
40
  - Confirm FR/NFR → testcase mapping before starting
41
41
  - If a gap is found (FR/NFR without testcase, or testcase contradicts SRS): NOTIFY USER before continuing
42
42
  - **Do NOT start coding without having read all 3 documents**
@@ -21,14 +21,14 @@ Thoroughly understand the domain, market, user needs, and technical feasibility
21
21
  ### Step 1 — Domain Research
22
22
  - Use skill `bmad-domain-research` to deep dive into the domain/industry
23
23
  - Output: terminology, business rules, regulatory constraints, domain patterns
24
- - Save to `docs/project/planning-artifacts/domain-research-[topic].md`
24
+ - Save to `.vsaf/docs/planning-artifacts/domain-research-[topic].md`
25
25
 
26
26
  ### Step 2 — Market Research
27
27
  - Use skill `bmad-market-research` to analyze:
28
28
  - Competition landscape: who is doing what, strengths/weaknesses
29
29
  - Customer needs: pain points, underserved segments
30
30
  - Market trends: which directions are growing
31
- - Save to `docs/project/planning-artifacts/market-research-[topic].md`
31
+ - Save to `.vsaf/docs/planning-artifacts/market-research-[topic].md`
32
32
 
33
33
  ### Step 3 — Technical Feasibility
34
34
  - Use skill `bmad-technical-research` to assess:
@@ -36,12 +36,12 @@ Thoroughly understand the domain, market, user needs, and technical feasibility
36
36
  - Integration constraints
37
37
  - Performance/scale requirements
38
38
  - Build vs buy decisions
39
- - Save to `docs/project/planning-artifacts/tech-research-[topic].md`
39
+ - Save to `.vsaf/docs/planning-artifacts/tech-research-[topic].md`
40
40
 
41
41
  ### Step 4 — Product Brief
42
42
  - Use skill `bmad-product-brief` to synthesize findings into a product brief
43
43
  - Product brief = summary of: what problem, for whom, what solution, why now
44
- - Save to `docs/project/planning-artifacts/product-brief-[name].md`
44
+ - Save to `.vsaf/docs/planning-artifacts/product-brief-[name].md`
45
45
 
46
46
  ### Step 5 — PRFAQ Challenge (Working Backwards)
47
47
  - Use skill `bmad-prfaq` to stress-test the product concept
@@ -55,7 +55,7 @@ Thoroughly understand the domain, market, user needs, and technical feasibility
55
55
  - PRD includes: vision, goals, FRs, NFRs, epics, user stories, success metrics
56
56
  - After creation: use skill `bmad-validate-prd` to validate the PRD meets standards
57
57
  - If validation FAILs: John will use `bmad-edit-prd` to fix issues immediately
58
- - Save to `docs/project/planning-artifacts/prd-[name].md`
58
+ - Save to `.vsaf/docs/planning-artifacts/prd-[name].md`
59
59
 
60
60
  ### Step 7 — Multi-agent Review (Party Mode)
61
61
  - Use skill `bmad-party-mode` to organize a roundtable:
@@ -69,11 +69,11 @@ Thoroughly understand the domain, market, user needs, and technical feasibility
69
69
  ## Discovery Complete: [product/domain]
70
70
 
71
71
  ### Research artifacts
72
- - Domain research: docs/project/planning-artifacts/domain-research-[topic].md
73
- - Market research: docs/project/planning-artifacts/market-research-[topic].md
74
- - Tech research: docs/project/planning-artifacts/tech-research-[topic].md
75
- - Product brief: docs/project/planning-artifacts/product-brief-[name].md
76
- - PRD: docs/project/planning-artifacts/prd-[name].md
72
+ - Domain research: .vsaf/docs/planning-artifacts/domain-research-[topic].md
73
+ - Market research: .vsaf/docs/planning-artifacts/market-research-[topic].md
74
+ - Tech research: .vsaf/docs/planning-artifacts/tech-research-[topic].md
75
+ - Product brief: .vsaf/docs/planning-artifacts/product-brief-[name].md
76
+ - PRD: .vsaf/docs/planning-artifacts/prd-[name].md
77
77
 
78
78
  ### Key findings
79
79
  - [3-5 bullet point summary]
@@ -14,7 +14,7 @@ Must have run `/vsaf-plan` and have its output before running this skill.
14
14
  ## Steps
15
15
 
16
16
  ### Step 0 — Determine mode: Create or Edit
17
- - Check if a PRD already exists in `docs/project/planning-artifacts/` for this feature
17
+ - Check if a PRD already exists in `.vsaf/docs/planning-artifacts/` for this feature
18
18
  - **If none exists** → Mode: CREATE (create from scratch)
19
19
  - **If one exists** → Mode: EDIT (edit based on feedback/changes)
20
20
  - Ask user: "A PRD already exists. Do you want to create a new one from scratch or edit the existing one?"
@@ -25,7 +25,7 @@ Must have run `/vsaf-plan` and have its output before running this skill.
25
25
  - Use skill `bmad-agent-pm` (John) to guide the PRD creation process from `/vsaf-plan` output
26
26
  - John will call skill `bmad-create-prd` to generate a standard PRD
27
27
  - PRD must include: vision, goals, FRs, NFRs, epics, user stories, success metrics, scope, out-of-scope, assumptions
28
- - Save to `docs/project/planning-artifacts/prd-[feature].md`
28
+ - Save to `.vsaf/docs/planning-artifacts/prd-[feature].md`
29
29
 
30
30
  #### Mode EDIT:
31
31
  - Use skill `bmad-edit-prd` to edit the existing PRD
@@ -43,7 +43,7 @@ Must have run `/vsaf-plan` and have its output before running this skill.
43
43
  ## PRD Created/Updated
44
44
 
45
45
  ### File
46
- - docs/project/planning-artifacts/prd-[feature].md
46
+ - .vsaf/docs/planning-artifacts/prd-[feature].md
47
47
  - Mode: [CREATE / EDIT]
48
48
  - Validation: [PASS / FAIL — details if fail]
49
49
 
@@ -15,9 +15,9 @@ Analyze the PRD and write a feature-level SRS following a standard template —
15
15
 
16
16
  ## Configuration
17
17
  ```yaml
18
- outputDir: docs/project/srs
19
- featureTemplate: _bmad/bmm/1-analysis/bmad-document-project/templates/srs-feature-template.md
20
- systemTemplate: _bmad/bmm/1-analysis/bmad-document-project/templates/srs-system-template.md
18
+ outputDir: .vsaf/docs/srs
19
+ featureTemplate: .vsaf/_bmad/bmm/1-analysis/bmad-document-project/templates/srs-feature-template.md
20
+ systemTemplate: .vsaf/_bmad/bmm/1-analysis/bmad-document-project/templates/srs-system-template.md
21
21
  ```
22
22
 
23
23
  ## Steps
@@ -27,7 +27,7 @@ systemTemplate: _bmad/bmm/1-analysis/bmad-document-project/templates/srs-system-
27
27
  Before starting, check if the user has provided sufficient information:
28
28
 
29
29
  **Required:**
30
- - [ ] PRD document (file path or content) — typically at `docs/project/planning-artifacts/prd-[feature].md`
30
+ - [ ] PRD document (file path or content) — typically at `.vsaf/docs/planning-artifacts/prd-[feature].md`
31
31
  - [ ] Figma link (URL figma.com/design/...) — if available
32
32
 
33
33
  If PRD is missing, **stop immediately** and request from the user:
@@ -48,7 +48,7 @@ Only continue when the PRD is available.
48
48
  ---
49
49
 
50
50
  ### Step 1 — Determine mode: Create or Edit
51
- - Check if an SRS already exists in `docs/project/srs/` for this feature
51
+ - Check if an SRS already exists in `.vsaf/docs/srs/` for this feature
52
52
  - **If none exists** → Mode: CREATE
53
53
  - **If one exists** → Mode: EDIT
54
54
  - Ask user: "An SRS already exists. Do you want to create a new one from scratch or edit the existing one?"
@@ -104,7 +104,7 @@ After this step, output a **"Gap Analysis Report"** and ask the user if they wan
104
104
 
105
105
  ### Step 4 — Write SRS following the Feature Template
106
106
 
107
- Read the template at `_bmad/bmm/1-analysis/bmad-document-project/templates/srs-feature-template.md` and write the SRS **strictly following the template structure**, including all 12 sections (0-11):
107
+ Read the template at `.vsaf/_bmad/bmm/1-analysis/bmad-document-project/templates/srs-feature-template.md` and write the SRS **strictly following the template structure**, including all 12 sections (0-11):
108
108
 
109
109
  0. **Preamble** — Document information, change log table, approval table
110
110
  1. **Introduction** — Objectives, scope, reference documents
@@ -140,14 +140,14 @@ Read the template at `_bmad/bmm/1-analysis/bmad-document-project/templates/srs-f
140
140
  ---
141
141
 
142
142
  ### Step 6 — Save SRS file
143
- Save the SRS document to: `docs/project/srs/SRS-[project-name]-[FR-ID]-[feature-name]-v1.0.md`
143
+ Save the SRS document to: `.vsaf/docs/srs/SRS-[project-name]-[FR-ID]-[feature-name]-v1.0.md`
144
144
 
145
145
  ### Step 7 — Output to user
146
146
  ```
147
147
  ## SRS Created/Updated
148
148
 
149
149
  ### File
150
- - docs/project/srs/SRS-[project-name]-[FR-ID]-[feature-name]-v1.0.md
150
+ - .vsaf/docs/srs/SRS-[project-name]-[FR-ID]-[feature-name]-v1.0.md
151
151
  - Mode: [CREATE / EDIT]
152
152
  - Use Cases written: [N]
153
153
  - Validation: [PASS / FAIL — details if fail]
@@ -159,7 +159,7 @@ Save the SRS document to: `docs/project/srs/SRS-[project-name]-[FR-ID]-[feature-
159
159
  - [SRS sections still containing {{...}} that need additional input]
160
160
 
161
161
  ## Next step
162
- Run /vsaf-test docs/project/srs/SRS-[...].md to generate testcases
162
+ Run /vsaf-test .vsaf/docs/srs/SRS-[...].md to generate testcases
163
163
  ```
164
164
 
165
165
  ## Notes
@@ -29,7 +29,7 @@ Ensure documentation is always up to date and AI agents have sufficient context.
29
29
  ### Step 2 — Generate project documentation
30
30
  - Use skill `bmad-document-project` to generate/update project docs
31
31
  - Output: architecture description, module breakdown, API endpoints, data flows
32
- - Save to `docs/project/`
32
+ - Save to `.vsaf/docs/`
33
33
 
34
34
  ### Step 3 — Generate project context for AI
35
35
  - Use skill `bmad-generate-project-context` to create `project-context.md`
@@ -38,8 +38,8 @@ Build a full mental model of the project before touching any code.
38
38
  - Identify: hot symbols (many callers), risk areas (high fan-out)
39
39
 
40
40
  ### Step 7 — Read project documentation + synthesize
41
- - Read `docs/project/planning-artifacts/` to find PRDs, ADRs, architecture docs
42
- - Read `docs/project/srs/` to find existing SRS documents
41
+ - Read `.vsaf/docs/planning-artifacts/` to find PRDs, ADRs, architecture docs
42
+ - Read `.vsaf/docs/srs/` to find existing SRS documents
43
43
  - Synthesize all findings into a project overview
44
44
 
45
45
  ### Step 8 — Output to user
@@ -33,7 +33,7 @@ Fully understand the requirement, analyze impact, and determine the implementati
33
33
  - Use skill `bmad-agent-architect` to propose an architecture approach
34
34
  - Compare alternatives, choose the most suitable approach
35
35
  - **If risk is HIGH or > 3 modules**: use skill `bmad-create-architecture` to create a formal ADR (Architecture Decision Record)
36
- - Save to `docs/project/planning-artifacts/adr-[feature].md`
36
+ - Save to `.vsaf/docs/planning-artifacts/adr-[feature].md`
37
37
 
38
38
  ### Step 4 — Dual Brainstorm
39
39
 
@@ -91,4 +91,4 @@ Date: [YYYY-MM-DD]
91
91
  - Retro must be data-backed — do not accept "I feel like..." without evidence
92
92
  - If GitNexus index is stale: run `vsaf index` before the retro
93
93
  - Action items must be actionable and have an owner — do not write vague "improve testing"
94
- - Save retro output to `docs/project/implementation-artifacts/retro-[sprint].md` to track historical data
94
+ - Save retro output to `.vsaf/docs/implementation-artifacts/retro-[sprint].md` to track historical data
@@ -10,7 +10,7 @@ Multi-layer review, verify scope, validate architecture, push PR. Ensure code ha
10
10
 
11
11
  ## Prerequisites
12
12
  - Have run `/vsaf-build` with PRD + SRS + testcase
13
- - Have run `/vsaf-test run` — results file exists at `docs/project/testcases/[feature]-results.md`
13
+ - Have run `/vsaf-test run` — results file exists at `.vsaf/docs/testcases/[feature]-results.md`
14
14
  - Ship gate from `/vsaf-test run` = PASS
15
15
  - No failing tests
16
16
 
@@ -78,7 +78,7 @@ git push origin feature/<name>
78
78
  ```
79
79
  PR description must include:
80
80
  - Impact summary (from GitNexus detect_changes)
81
- - Test results file path: `docs/project/testcases/[feature]-results.md`
81
+ - Test results file path: `.vsaf/docs/testcases/[feature]-results.md`
82
82
  - Adversarial triage: MUST FIX: 0, SHOULD FIX: N, NOTED: N
83
83
  - Shape check result
84
84
 
@@ -98,7 +98,7 @@ PR description must include:
98
98
  ### PR
99
99
  - Branch: feature/[name]
100
100
  - PR: [link]
101
- - Test results: docs/project/testcases/[feature]-results.md
101
+ - Test results: .vsaf/docs/testcases/[feature]-results.md
102
102
 
103
103
  ## Next step
104
104
  - Run /vsaf-retro if this is the end of a sprint/epic
@@ -33,7 +33,7 @@ Manage backlog and sprints for the project — break PRD/SRS into stories, creat
33
33
  - Prioritize stories (MoSCoW or WSJF)
34
34
  - Assign stories to sprint based on capacity
35
35
  - Identify dependencies between stories
36
- - Save sprint plan to `docs/project/planning-artifacts/sprint-plan.md`
36
+ - Save sprint plan to `.vsaf/docs/planning-artifacts/sprint-plan.md`
37
37
 
38
38
  #### Step 3 — Output
39
39
  ```
@@ -94,12 +94,12 @@ Or: /vsaf-plan <story description> to start the first feature
94
94
  #### Step 1 — Create story file
95
95
  - Use skill `bmad-create-story` with story ID from the sprint plan
96
96
  - Story file includes: full context, acceptance criteria, technical notes, dependencies
97
- - Save to `docs/project/planning-artifacts/stories/story-[id].md`
97
+ - Save to `.vsaf/docs/planning-artifacts/stories/story-[id].md`
98
98
 
99
99
  #### Step 2 — Output
100
100
  ```
101
101
  ## Story Created: [story title]
102
- - File: docs/project/planning-artifacts/stories/story-[id].md
102
+ - File: .vsaf/docs/planning-artifacts/stories/story-[id].md
103
103
 
104
104
  ### Next step
105
105
  Run /vsaf-plan <story description> to plan implementation
@@ -21,7 +21,7 @@ Create comprehensive testcase coverage documentation from SRS to serve as a cont
21
21
 
22
22
  ## Prerequisites
23
23
  - Already ran `/vsaf-doc-prd` and `/vsaf-doc-srs`
24
- - SRS file exists in `docs/project/srs/`
24
+ - SRS file exists in `.vsaf/docs/srs/`
25
25
 
26
26
  ## Steps
27
27
 
@@ -30,7 +30,7 @@ Create comprehensive testcase coverage documentation from SRS to serve as a cont
30
30
  - Reference existing patterns to generate testcases consistent with the codebase
31
31
 
32
32
  ### Step 1 — Generate test cases from SRS (BMAD qa)
33
- - Use skill `bmad-qa-generate-e2e-tests` with the SRS file in `docs/project/srs/` as input
33
+ - Use skill `bmad-qa-generate-e2e-tests` with the SRS file in `.vsaf/docs/srs/` as input
34
34
  - Test cases must cover: happy path, edge cases, error cases, NFRs
35
35
  - Source: from FRs/NFRs in SRS — NOT based on implementation
36
36
 
@@ -50,7 +50,7 @@ Create comprehensive testcase coverage documentation from SRS to serve as a cont
50
50
  - Each testcase has: input, expected output, pass/fail criteria
51
51
 
52
52
  ### Step 5 — Save testcase document
53
- - Save testcases to `docs/project/testcases/[feature].md`
53
+ - Save testcases to `.vsaf/docs/testcases/[feature].md`
54
54
  - Format:
55
55
 
56
56
  ```markdown
@@ -89,7 +89,7 @@ Create comprehensive testcase coverage documentation from SRS to serve as a cont
89
89
  - Implementation readiness: [PASS / FAIL]
90
90
 
91
91
  Files:
92
- - docs/project/testcases/[feature].md
92
+ - .vsaf/docs/testcases/[feature].md
93
93
 
94
94
  ## Next step
95
95
  [If PASS]: Run /vsaf-build <path/to/prd> <path/to/srs> <path/to/testcases>
@@ -105,7 +105,7 @@ Execute the full test suite, verify coverage matches changed code, write a struc
105
105
 
106
106
  ## Prerequisites
107
107
  - Already ran `/vsaf-build` — code implementation is complete
108
- - Testcase file exists at `docs/project/testcases/[feature].md`
108
+ - Testcase file exists at `.vsaf/docs/testcases/[feature].md`
109
109
 
110
110
  ## Steps
111
111
 
@@ -132,7 +132,7 @@ Execute the full test suite, verify coverage matches changed code, write a struc
132
132
  - Record constraint compliance results in the results file
133
133
 
134
134
  ### Step 6 — Write results file
135
- - Save results to `docs/project/testcases/[feature]-results.md`
135
+ - Save results to `.vsaf/docs/testcases/[feature]-results.md`
136
136
  - Format:
137
137
 
138
138
  ```markdown
@@ -188,7 +188,7 @@ Date: [YYYY-MM-DD]
188
188
  - Shape check: [PASS / SKIP / FAIL]
189
189
  - Ship gate: [PASS ✓ / FAIL ✗]
190
190
 
191
- Results file: docs/project/testcases/[feature]-results.md
191
+ Results file: .vsaf/docs/testcases/[feature]-results.md
192
192
 
193
193
  ## Next step
194
194
  [If PASS]: Run /vsaf-ship