@ngocsangairvds/vsaf 4.0.7 → 4.0.9
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/README.md +7 -5
- package/package.json +2 -2
- package/packages/cli/dist/commands/init.d.ts.map +1 -1
- package/packages/cli/dist/commands/init.js +25 -14
- package/packages/cli/dist/commands/init.js.map +1 -1
- package/packages/cli/dist/commands/install.d.ts.map +1 -1
- package/packages/cli/dist/commands/install.js +12 -0
- package/packages/cli/dist/commands/install.js.map +1 -1
- package/packages/cli/dist/commands/skill.js +8 -8
- package/packages/cli/dist/commands/skill.js.map +1 -1
- package/packages/core/dist/skills/skill-loader.d.ts.map +1 -1
- package/packages/core/dist/skills/skill-loader.js +9 -4
- package/packages/core/dist/skills/skill-loader.js.map +1 -1
- package/skills/sdlc/architecture/SKILL.md +22 -8
- package/skills/sdlc/bmad-checkpoint-preview/SKILL.md +29 -0
- package/skills/sdlc/bmad-checkpoint-preview/generate-trail.md +38 -0
- package/skills/sdlc/bmad-checkpoint-preview/step-01-orientation.md +105 -0
- package/skills/sdlc/bmad-checkpoint-preview/step-02-walkthrough.md +89 -0
- package/skills/sdlc/bmad-checkpoint-preview/step-03-detail-pass.md +106 -0
- package/skills/sdlc/bmad-checkpoint-preview/step-04-testing.md +74 -0
- package/skills/sdlc/bmad-checkpoint-preview/step-05-wrapup.md +24 -0
- package/skills/sdlc/bmad-correct-course/SKILL.md +6 -0
- package/skills/sdlc/bmad-correct-course/checklist.md +288 -0
- package/skills/sdlc/bmad-correct-course/workflow.md +267 -0
- package/skills/sdlc/discovery/SKILL.md +2 -2
- package/skills/sdlc/install-deps.mjs +19 -3
- package/skills/sdlc/pack.yaml +3 -1
- package/skills/sdlc/prd/SKILL.md +20 -5
- package/skills/sdlc/review/SKILL.md +9 -5
- package/skills/sdlc/sdlc-health/SKILL.md +5 -3
- package/skills/sdlc/setup/SKILL.md +1 -1
- package/skills/sdlc/srs/SKILL.md +7 -6
- package/skills/sdlc/test-design/SKILL.md +10 -6
- package/skills/sdlc/workflows/hotfix-tdd.yaml +2 -2
- package/skills/sdlc/workflows/hotfix.yaml +5 -5
- package/skills/sdlc/workflows/master-sdlc.yaml +9 -9
- package/skills/sdlc/workflows/onboarding.yaml +2 -2
- package/skills/sdlc/workflows/sdlc-build.yaml +1 -1
- package/skills/sdlc/workflows/sdlc-design.yaml +2 -2
- package/skills/sdlc/workflows/sdlc-qa.yaml +3 -3
- package/skills/sdlc/workflows/sdlc-testcase.yaml +1 -1
- package/skills/sdlc/workflows/sdlc-thinking.yaml +2 -2
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ validate ○ pending
|
|
|
32
32
|
- **Web dashboard** — Angular SPA with workflow management and realtime SSE monitoring
|
|
33
33
|
- **REST API** — Fastify server for programmatic access to workflows and runs
|
|
34
34
|
- **MCP server** — Model Context Protocol integration for Claude Code
|
|
35
|
-
- **Skill pack system** —
|
|
35
|
+
- **Skill pack system** — 40 bundled skills (18 SDLC + 17 BMAD + 5 mattpocock lean)
|
|
36
36
|
- **AJV validation** — JSON Schema validation for workflow definitions
|
|
37
37
|
- **Cycle detection** — DAG cycle detection prevents infinite loops
|
|
38
38
|
- **Error recovery** — configurable retry backoff strategies for failed nodes
|
|
@@ -146,7 +146,7 @@ Starts a Model Context Protocol (MCP) server that exposes VSAF workflows and ski
|
|
|
146
146
|
### `vsaf install`
|
|
147
147
|
|
|
148
148
|
```bash
|
|
149
|
-
vsaf install sdlc # Deploy
|
|
149
|
+
vsaf install sdlc # Deploy 39 skills to .claude/skills/
|
|
150
150
|
```
|
|
151
151
|
|
|
152
152
|
### `vsaf skill`
|
|
@@ -347,7 +347,7 @@ vsaf run fix-issue --resume run-a1b2c3d4e5f6 # Skip completed nodes
|
|
|
347
347
|
|
|
348
348
|
## SDLC Skill Pack
|
|
349
349
|
|
|
350
|
-
VSAF ships with a complete SDLC skill pack —
|
|
350
|
+
VSAF ships with a complete SDLC skill pack — 40 skills organized into workflows for building features and fixing bugs with TDD discipline.
|
|
351
351
|
|
|
352
352
|
### Setup
|
|
353
353
|
|
|
@@ -514,7 +514,7 @@ Every SDLC phase can be invoked directly as a Claude skill:
|
|
|
514
514
|
| `hotfix-green` | TDD GREEN — minimal fix to pass the test |
|
|
515
515
|
| `hotfix-review` | Quick review — minimality + test quality |
|
|
516
516
|
|
|
517
|
-
### Bundled BMAD Skills (
|
|
517
|
+
### Bundled BMAD Skills (17)
|
|
518
518
|
|
|
519
519
|
Used by discovery, prd, architecture, srs, test-design, and review phases:
|
|
520
520
|
|
|
@@ -535,6 +535,8 @@ Used by discovery, prd, architecture, srs, test-design, and review phases:
|
|
|
535
535
|
| `bmad-code-review` | Review code changes adversarially |
|
|
536
536
|
| `bmad-party-mode` | Orchestrate group discussion simulations |
|
|
537
537
|
| `bmad-qa-generate-e2e-tests` | Generate end-to-end automated tests |
|
|
538
|
+
| `bmad-checkpoint-preview` | LLM-assisted human-in-the-loop checkpoint |
|
|
539
|
+
| `bmad-correct-course` | Manage significant changes during epic |
|
|
538
540
|
|
|
539
541
|
### Bundled Mattpocock Lean Skills (5)
|
|
540
542
|
|
|
@@ -663,7 +665,7 @@ Strict dependency direction: **web → (HTTP) → cli → core**. Published as a
|
|
|
663
665
|
| AI adapter | Shell out to `claude` CLI | No SDK dependency, simple to test |
|
|
664
666
|
| Schema validation | AJV | Industry standard JSON Schema |
|
|
665
667
|
| MCP integration | Stdio-based MCP server | Native Claude Code protocol, zero network config |
|
|
666
|
-
| Skill distribution | `vsaf install` →
|
|
668
|
+
| Skill distribution | `vsaf install` → `.claude/skills/` | Project-local install, available to Claude Code |
|
|
667
669
|
|
|
668
670
|
### Tech Stack
|
|
669
671
|
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,WAAW;IAC1B,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CACvB;AAED,wBAAsB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDxF"}
|
|
@@ -4,6 +4,7 @@ exports.execInit = execInit;
|
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
const skill_js_1 = require("./skill.js");
|
|
7
|
+
const install_js_1 = require("./install.js");
|
|
7
8
|
const DEFAULT_CONFIG = `provider: claude
|
|
8
9
|
model: sonnet
|
|
9
10
|
isolation:
|
|
@@ -25,40 +26,50 @@ async function execInit(projectPath, options) {
|
|
|
25
26
|
(0, fs_1.mkdirSync)((0, path_1.join)(vsafDir, 'workflows'), { recursive: true });
|
|
26
27
|
(0, fs_1.mkdirSync)((0, path_1.join)(vsafDir, 'commands'), { recursive: true });
|
|
27
28
|
(0, fs_1.mkdirSync)((0, path_1.join)(vsafDir, 'storage'), { recursive: true });
|
|
28
|
-
(0, fs_1.mkdirSync)((0, path_1.join)(vsafDir, 'skills'), { recursive: true });
|
|
29
29
|
(0, fs_1.writeFileSync)((0, path_1.join)(vsafDir, 'config.yaml'), DEFAULT_CONFIG, 'utf-8');
|
|
30
30
|
// Auto-install skill pack (default: sdlc)
|
|
31
31
|
const packName = options?.pack !== false ? (options?.pack ?? 'sdlc') : null;
|
|
32
32
|
if (packName) {
|
|
33
|
-
(0, skill_js_1.
|
|
33
|
+
const packDir = (0, skill_js_1.resolveSource)(packName);
|
|
34
34
|
const packInfo = (0, skill_js_1.resolvePackInfo)(packName, projectPath);
|
|
35
|
-
(0,
|
|
35
|
+
const skillsDir = (0, path_1.join)(projectPath, '.claude', 'skills');
|
|
36
|
+
(0, install_js_1.deploySkills)(packDir, packName, packInfo.skillNames, skillsDir, {});
|
|
37
|
+
if (packInfo.bundledNames.length > 0) {
|
|
38
|
+
(0, install_js_1.deploySkills)(packDir, packName, packInfo.bundledNames, skillsDir, { noPrefix: true });
|
|
39
|
+
}
|
|
40
|
+
const prefixedNames = packInfo.skillNames
|
|
41
|
+
.filter(n => n !== 'setup')
|
|
42
|
+
.map(n => `${packName}-${n}`);
|
|
43
|
+
(0, skill_js_1.skillInit)(packName, projectPath, prefixedNames, { workflows: packInfo.workflows });
|
|
36
44
|
}
|
|
37
45
|
// Create .mcp.json for MCP server registration
|
|
38
46
|
const mcpPath = (0, path_1.join)(projectPath, '.mcp.json');
|
|
47
|
+
const vsafServer = { type: 'stdio', command: 'vsaf', args: ['mcp'] };
|
|
48
|
+
const gitnexusServer = { type: 'stdio', command: 'npx', args: ['-y', 'gitnexus@latest', 'mcp'] };
|
|
39
49
|
if (!(0, fs_1.existsSync)(mcpPath)) {
|
|
40
50
|
const mcpConfig = {
|
|
41
51
|
mcpServers: {
|
|
42
|
-
vsaf:
|
|
43
|
-
|
|
44
|
-
command: 'vsaf',
|
|
45
|
-
args: ['mcp'],
|
|
46
|
-
},
|
|
52
|
+
vsaf: vsafServer,
|
|
53
|
+
gitnexus: gitnexusServer,
|
|
47
54
|
},
|
|
48
55
|
};
|
|
49
56
|
(0, fs_1.writeFileSync)(mcpPath, JSON.stringify(mcpConfig, null, 2) + '\n', 'utf-8');
|
|
50
57
|
}
|
|
51
58
|
else {
|
|
52
|
-
// Merge vsaf
|
|
59
|
+
// Merge vsaf + gitnexus servers into existing .mcp.json
|
|
53
60
|
const existing = JSON.parse((0, fs_1.readFileSync)(mcpPath, 'utf-8'));
|
|
54
61
|
if (!existing.mcpServers)
|
|
55
62
|
existing.mcpServers = {};
|
|
63
|
+
let changed = false;
|
|
56
64
|
if (!existing.mcpServers.vsaf) {
|
|
57
|
-
existing.mcpServers.vsaf =
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
65
|
+
existing.mcpServers.vsaf = vsafServer;
|
|
66
|
+
changed = true;
|
|
67
|
+
}
|
|
68
|
+
if (!existing.mcpServers.gitnexus) {
|
|
69
|
+
existing.mcpServers.gitnexus = gitnexusServer;
|
|
70
|
+
changed = true;
|
|
71
|
+
}
|
|
72
|
+
if (changed) {
|
|
62
73
|
(0, fs_1.writeFileSync)(mcpPath, JSON.stringify(existing, null, 2) + '\n', 'utf-8');
|
|
63
74
|
}
|
|
64
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAGD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAOD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/C,YAAY,CA4Bd;AAUD,wBAAgB,aAAa,IAAI,WAAW,EAAE,CAU7C;AAqCD,wBAAgB,eAAe,IAAI,cAAc,CAqDhD;
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAGD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAOD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/C,YAAY,CA4Bd;AAUD,wBAAgB,aAAa,IAAI,WAAW,EAAE,CAU7C;AAqCD,wBAAgB,eAAe,IAAI,cAAc,CAqDhD;AA+BD,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,sBAA2B,GACnC,aAAa,CAoGf"}
|
|
@@ -160,8 +160,20 @@ const PLUGIN_GUIDE = `
|
|
|
160
160
|
│ apt install gh (Linux) │
|
|
161
161
|
│ winget install GitHub.cli (Windows) │
|
|
162
162
|
└──────────────────────────────────────────────────────────┘`;
|
|
163
|
+
// ── Node.js LTS Check ──
|
|
164
|
+
function checkNodeLTS() {
|
|
165
|
+
const major = parseInt(process.versions.node.split('.')[0], 10);
|
|
166
|
+
if (major % 2 !== 0) {
|
|
167
|
+
console.warn(`\n⚠️ Node.js v${process.versions.node} is a non-LTS (Current) release.`);
|
|
168
|
+
console.warn(' Native npm packages (e.g. gitnexus) may fail to build.');
|
|
169
|
+
console.warn(' Recommended: switch to an LTS version (v22 or v24).');
|
|
170
|
+
console.warn(' → nvm install --lts OR brew install node@24\n');
|
|
171
|
+
}
|
|
172
|
+
}
|
|
163
173
|
// ── Main Install ──
|
|
164
174
|
function execInstall(pack, projectPath, options = {}) {
|
|
175
|
+
// Check Node.js version early — native modules break on non-LTS
|
|
176
|
+
checkNodeLTS();
|
|
165
177
|
// Validate pack is a simple name (no URLs or paths)
|
|
166
178
|
if (pack.includes('/') || pack.includes('\\') || pack.startsWith('.') || pack.startsWith('http')) {
|
|
167
179
|
throw new Error(`"${pack}" is not a valid pack name. Use a built-in pack name (e.g. "sdlc").`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":";;AAkDA,oCAkCC;AAUD,sCAUC;AAqCD,0CAqDC;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,10 +26,10 @@ function resolvePackInfo(packName, projectPath) {
|
|
|
26
26
|
if ((0, fs_1.existsSync)(builtInPackYaml)) {
|
|
27
27
|
return readPackInfo(builtInDir, builtInPackYaml);
|
|
28
28
|
}
|
|
29
|
-
// 2. Try installed pack.yaml at .
|
|
30
|
-
const installedPackYaml = (0, path_1.join)(projectPath, '.
|
|
29
|
+
// 2. Try installed pack.yaml at .claude/skills/{packName}/pack.yaml
|
|
30
|
+
const installedPackYaml = (0, path_1.join)(projectPath, '.claude', 'skills', packName, 'pack.yaml');
|
|
31
31
|
if ((0, fs_1.existsSync)(installedPackYaml)) {
|
|
32
|
-
return readPackInfo((0, path_1.join)(projectPath, '.
|
|
32
|
+
return readPackInfo((0, path_1.join)(projectPath, '.claude', 'skills', packName), installedPackYaml);
|
|
33
33
|
}
|
|
34
34
|
throw new Error(`Pack "${packName}" not found. Available built-in packs: sdlc, vds-skill`);
|
|
35
35
|
}
|
|
@@ -49,7 +49,7 @@ function readPackInfo(packDir, packYamlPath) {
|
|
|
49
49
|
}
|
|
50
50
|
// ── List ──
|
|
51
51
|
function skillList(projectPath) {
|
|
52
|
-
const skillsDir = (0, path_1.join)(projectPath, '.
|
|
52
|
+
const skillsDir = (0, path_1.join)(projectPath, '.claude', 'skills');
|
|
53
53
|
if (!(0, fs_1.existsSync)(skillsDir))
|
|
54
54
|
return [];
|
|
55
55
|
const linkedMap = scanLinkedCommands(projectPath);
|
|
@@ -73,7 +73,7 @@ function skillList(projectPath) {
|
|
|
73
73
|
}
|
|
74
74
|
// ── Info ──
|
|
75
75
|
function skillInfo(name, projectPath) {
|
|
76
|
-
const skillDir = (0, path_1.join)(projectPath, '.
|
|
76
|
+
const skillDir = (0, path_1.join)(projectPath, '.claude', 'skills', name);
|
|
77
77
|
const skillFile = (0, path_1.join)(skillDir, 'SKILL.md');
|
|
78
78
|
if (!(0, fs_1.existsSync)(skillFile)) {
|
|
79
79
|
throw new Error(`Skill not found: "${name}"`);
|
|
@@ -92,7 +92,7 @@ function skillInfo(name, projectPath) {
|
|
|
92
92
|
}
|
|
93
93
|
// ── Remove ──
|
|
94
94
|
function skillRemove(name, projectPath) {
|
|
95
|
-
const skillDir = (0, path_1.join)(projectPath, '.
|
|
95
|
+
const skillDir = (0, path_1.join)(projectPath, '.claude', 'skills', name);
|
|
96
96
|
if (!(0, fs_1.existsSync)(skillDir)) {
|
|
97
97
|
throw new Error(`Skill not found: "${name}"`);
|
|
98
98
|
}
|
|
@@ -102,7 +102,7 @@ function skillRemove(name, projectPath) {
|
|
|
102
102
|
}
|
|
103
103
|
// ── Add ──
|
|
104
104
|
function skillAdd(source, projectPath, options) {
|
|
105
|
-
const skillsDir = (0, path_1.join)(projectPath, '.
|
|
105
|
+
const skillsDir = (0, path_1.join)(projectPath, '.claude', 'skills');
|
|
106
106
|
(0, fs_1.mkdirSync)(skillsDir, { recursive: true });
|
|
107
107
|
const resolvedSource = resolveSource(source);
|
|
108
108
|
const detected = detectSkillType(resolvedSource);
|
|
@@ -138,7 +138,7 @@ function skillInit(packName, projectPath, skillNames, options) {
|
|
|
138
138
|
result.commandsSkipped.push(name);
|
|
139
139
|
continue;
|
|
140
140
|
}
|
|
141
|
-
const skillDir = (0, path_1.join)(projectPath, '.
|
|
141
|
+
const skillDir = (0, path_1.join)(projectPath, '.claude', 'skills', name);
|
|
142
142
|
const skillFile = (0, path_1.join)(skillDir, 'SKILL.md');
|
|
143
143
|
let description = name;
|
|
144
144
|
if ((0, fs_1.existsSync)(skillFile)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-loader.d.ts","sourceRoot":"","sources":["../../src/skills/skill-loader.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"skill-loader.d.ts","sourceRoot":"","sources":["../../src/skills/skill-loader.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,KAAK,CA0BlE"}
|
|
@@ -9,11 +9,16 @@ const fs_1 = require("fs");
|
|
|
9
9
|
const path_1 = require("path");
|
|
10
10
|
const gray_matter_1 = __importDefault(require("gray-matter"));
|
|
11
11
|
function loadSkill(name, projectPath) {
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
// Primary: .claude/skills/, Fallback: .vsaf/skills/ (backward compat)
|
|
13
|
+
const primaryDir = (0, path_1.join)(projectPath, '.claude', 'skills', name);
|
|
14
|
+
const fallbackDir = (0, path_1.join)(projectPath, '.vsaf', 'skills', name);
|
|
15
|
+
const skillDir = (0, fs_1.existsSync)((0, path_1.join)(primaryDir, 'SKILL.md')) ? primaryDir
|
|
16
|
+
: (0, fs_1.existsSync)((0, path_1.join)(fallbackDir, 'SKILL.md')) ? fallbackDir
|
|
17
|
+
: null;
|
|
18
|
+
if (!skillDir) {
|
|
19
|
+
throw new Error(`Skill not found: "${name}" (expected at ${(0, path_1.join)(primaryDir, 'SKILL.md')})`);
|
|
16
20
|
}
|
|
21
|
+
const skillFile = (0, path_1.join)(skillDir, 'SKILL.md');
|
|
17
22
|
const raw = (0, fs_1.readFileSync)(skillFile, 'utf-8');
|
|
18
23
|
const { data, content } = (0, gray_matter_1.default)(raw);
|
|
19
24
|
const resolvedBody = resolveIncludes(content.trim(), skillDir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-loader.js","sourceRoot":"","sources":["../../src/skills/skill-loader.ts"],"names":[],"mappings":";;;;;AAaA,
|
|
1
|
+
{"version":3,"file":"skill-loader.js","sourceRoot":"","sources":["../../src/skills/skill-loader.ts"],"names":[],"mappings":";;;;;AAaA,8BA0BC;AAvCD,2CAA2C;AAC3C,2BAA8C;AAC9C,+BAA4B;AAC5B,8DAAiC;AAUjC,SAAgB,SAAS,CAAC,IAAY,EAAE,WAAmB;IACzD,sEAAsE;IACtE,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;QACpE,CAAC,CAAC,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;YACzD,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,kBAAkB,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAE7C,MAAM,GAAG,GAAG,IAAA,iBAAY,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAA,qBAAM,EAAC,GAAG,CAAC,CAAC;IAEtC,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IAE/D,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;QACvB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;QACnC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,YAAY;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAAe,EAAE,QAAgB;IACxD,OAAO,OAAO,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,MAAM,EAAE,YAAoB,EAAE,EAAE;QAC9E,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,4BAA4B,YAAY,iBAAiB,QAAQ,GAAG,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -89,10 +89,13 @@ Use `/bmad-advanced-elicitation` — grill architecture-specific questions BASED
|
|
|
89
89
|
[ARCHITECTURE] [4/6] Designing architecture based on grill answers... ⏳
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
92
|
+
Based on grill answers from Step 3, design architecture:
|
|
93
|
+
|
|
94
|
+
1. **Component diagram** — identify bounded contexts and their interfaces
|
|
95
|
+
2. **Deep Module validation** — each component: small public interface, complex logic inside
|
|
96
|
+
3. **Data model** — entity relationships, schema changes, migration strategy
|
|
97
|
+
4. **Integration points** — APIs, message queues, external services
|
|
98
|
+
5. **Trade-offs** — explicitly state: "Based on answer '{user answer}' → chose '{approach}' because '{reasoning}'"
|
|
96
99
|
|
|
97
100
|
Write to `03-adr.md` §Current State + §Grill Session + §Decision.
|
|
98
101
|
|
|
@@ -106,8 +109,13 @@ Write to `03-adr.md` §Current State + §Grill Session + §Decision.
|
|
|
106
109
|
[ARCHITECTURE] [5/6] Splitting epics + conflict map... ⏳
|
|
107
110
|
```
|
|
108
111
|
|
|
109
|
-
|
|
110
|
-
|
|
112
|
+
Split PRD into vertical slices (DB→API→UI per epic, NOT horizontal layers):
|
|
113
|
+
|
|
114
|
+
1. Group related FRs into epics — each epic deliverable independently
|
|
115
|
+
2. Each story MUST be a vertical slice with clear acceptance criteria
|
|
116
|
+
3. Create Conflict Map — which file belongs to which epic
|
|
117
|
+
|
|
118
|
+
Write to `04-epics.md`:
|
|
111
119
|
|
|
112
120
|
```markdown
|
|
113
121
|
## Epic 1: {name} [Owner: {ai/person}] [Branch: feat/{feature}/epic-1]
|
|
@@ -136,8 +144,14 @@ Write to `04-epics.md` with Conflict Map:
|
|
|
136
144
|
[ARCHITECTURE] [6/6] Checking implementation readiness... ⏳
|
|
137
145
|
```
|
|
138
146
|
|
|
139
|
-
|
|
140
|
-
|
|
147
|
+
Validate architecture is clear enough to implement:
|
|
148
|
+
|
|
149
|
+
1. **PRD coverage** — every FR traceable to at least one epic/story?
|
|
150
|
+
2. **Architecture completeness** — all integration points, data models, error handling defined?
|
|
151
|
+
3. **Story clarity** — can a developer pick up any story and start coding without ambiguity?
|
|
152
|
+
4. **Conflict map** — any file claimed by multiple epics without resolution?
|
|
153
|
+
|
|
154
|
+
Write to `03-adr.md` §Readiness. If FAIL → record what's missing, fix ADR or PRD.
|
|
141
155
|
|
|
142
156
|
```
|
|
143
157
|
[ARCHITECTURE] [6/6] Checking implementation readiness... ✅
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bmad-checkpoint-preview
|
|
3
|
+
description: 'LLM-assisted human-in-the-loop review. Make sense of a change, focus attention where it matters, test. Use when the user says "checkpoint", "human review", or "walk me through this change".'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Checkpoint Review Workflow
|
|
7
|
+
|
|
8
|
+
**Goal:** Guide a human through reviewing a change — from purpose and context into details.
|
|
9
|
+
|
|
10
|
+
You are assisting the user in reviewing a change.
|
|
11
|
+
|
|
12
|
+
## Global Step Rules (apply to every step)
|
|
13
|
+
|
|
14
|
+
- **Path:line format** — Every code reference must use CWD-relative `path:line` format (no leading `/`) so it is clickable in IDE-embedded terminals (e.g., `src/auth/middleware.ts:42`).
|
|
15
|
+
- **Front-load then shut up** — Present the entire output for the current step in a single coherent message. Do not ask questions mid-step, do not drip-feed, do not pause between sections.
|
|
16
|
+
- **Language** — Speak in `{communication_language}`. Write any file output in `{document_output_language}`.
|
|
17
|
+
|
|
18
|
+
## INITIALIZATION
|
|
19
|
+
|
|
20
|
+
Load and read full config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|
21
|
+
|
|
22
|
+
- `implementation_artifacts`
|
|
23
|
+
- `planning_artifacts`
|
|
24
|
+
- `communication_language`
|
|
25
|
+
- `document_output_language`
|
|
26
|
+
|
|
27
|
+
## FIRST STEP
|
|
28
|
+
|
|
29
|
+
Read fully and follow `./step-01-orientation.md` to begin.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Generate Review Trail
|
|
2
|
+
|
|
3
|
+
Generate a review trail from the diff and codebase context. A generated trail is lower quality than an author-produced one, but far better than none.
|
|
4
|
+
|
|
5
|
+
## Follow Global Step Rules in SKILL.md
|
|
6
|
+
|
|
7
|
+
## INSTRUCTIONS
|
|
8
|
+
|
|
9
|
+
1. Get the full diff against the appropriate baseline (same rules as Surface Area Stats in step-01).
|
|
10
|
+
2. Read changed files in full — not just diff hunks. Surrounding code reveals intent that hunks alone miss. If total file content exceeds ~50k tokens, read only the files with the largest diff hunks in full and use hunks for the rest.
|
|
11
|
+
3. If a spec exists, use its Intent section to anchor concern identification.
|
|
12
|
+
4. Identify 2–5 concerns: cohesive design intents that each explain *why* behind a cluster of changes. Prefer functional groupings and architectural boundaries over file-level splits. A single-concern change is fine — don't invent groupings.
|
|
13
|
+
5. For each concern, select 1–4 `path:line` stops — locations where the concern is most visible. Prefer entry points, decision points, and boundary crossings over mechanical changes.
|
|
14
|
+
6. Lead with the entry point — the highest-leverage stop a reviewer should see first. Inside each concern, order stops so each builds on the previous. End with peripherals (tests, config, types).
|
|
15
|
+
7. Format each stop using `path:line` per the global step rules:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
**{Concern name}**
|
|
19
|
+
|
|
20
|
+
- {one-line framing, ≤15 words}
|
|
21
|
+
`src/path/to/file.ts:42`
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
When there is only one concern, omit the bold label — just list the stops directly.
|
|
25
|
+
|
|
26
|
+
## PRESENT
|
|
27
|
+
|
|
28
|
+
Output after the orientation:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
I built a review trail for this {change_type} (no author-produced trail was found):
|
|
32
|
+
|
|
33
|
+
{generated trail}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The generated trail serves as the Suggested Review Order for subsequent steps. Set `review_mode` to `full-trail` — a trail now exists, so all downstream steps should treat it as one.
|
|
37
|
+
|
|
38
|
+
If git is unavailable or the diff cannot be retrieved, return to step-01 with: "Could not generate trail — git unavailable."
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Step 1: Orientation
|
|
2
|
+
|
|
3
|
+
Display: `[Orientation] → Walkthrough → Detail Pass → Testing`
|
|
4
|
+
|
|
5
|
+
## Follow Global Step Rules in SKILL.md
|
|
6
|
+
|
|
7
|
+
## FIND THE CHANGE
|
|
8
|
+
|
|
9
|
+
The conversation context before this skill was triggered IS your starting point — not a blank slate. Check in this order — stop as soon as the change is identified:
|
|
10
|
+
|
|
11
|
+
1. **Explicit argument**
|
|
12
|
+
Did the user pass a PR, commit SHA, branch, or spec file this message?
|
|
13
|
+
- PR reference → resolve to branch/commit via `gh pr view`. If resolution fails, ask for a SHA or branch.
|
|
14
|
+
- Spec file, commit, or branch → use directly.
|
|
15
|
+
|
|
16
|
+
2. **Recent conversation**
|
|
17
|
+
Do the last few messages reveal what change the user wants reviewed? Look for spec paths, commit refs, branches, PRs, or descriptions of a change. Use the same routing as above.
|
|
18
|
+
|
|
19
|
+
3. **Sprint tracking**
|
|
20
|
+
Check for a sprint status file (`*sprint-status*`) in `{implementation_artifacts}` or `{planning_artifacts}`. If found, scan for stories with status `review`:
|
|
21
|
+
- Exactly one → suggest it and confirm with the user.
|
|
22
|
+
- Multiple → present as numbered options.
|
|
23
|
+
- None → fall through.
|
|
24
|
+
|
|
25
|
+
4. **Current git state**
|
|
26
|
+
Check current branch and HEAD. Confirm: "I see HEAD is `<short-sha>` on `<branch>` — is this the change you want to review?"
|
|
27
|
+
|
|
28
|
+
5. **Ask**
|
|
29
|
+
If none of the above identified a change, ask:
|
|
30
|
+
- What changed and why?
|
|
31
|
+
- Which commit, branch, or PR should I look at?
|
|
32
|
+
- Do you have a spec, bug report, or anything else that explains what this change is supposed to do?
|
|
33
|
+
|
|
34
|
+
If after 3 exchanges you still can't identify a change, HALT.
|
|
35
|
+
|
|
36
|
+
Never ask extra questions beyond what the cascade prescribes. If a step above already identified the change, skip the remaining steps.
|
|
37
|
+
|
|
38
|
+
## ENRICH
|
|
39
|
+
|
|
40
|
+
Once a change is identified from any source above, fill in the complementary artifact:
|
|
41
|
+
|
|
42
|
+
- If you have a spec, look for `baseline_commit` in its frontmatter to determine the diff baseline.
|
|
43
|
+
- If you have a commit or branch, check `{implementation_artifacts}` for a spec whose `baseline_commit` is an ancestor of that commit/branch (i.e., the spec describes work done on top of that baseline).
|
|
44
|
+
- If you found both a spec and a commit/branch, use both.
|
|
45
|
+
|
|
46
|
+
## DETERMINE WHAT YOU HAVE
|
|
47
|
+
|
|
48
|
+
Set `change_type` to match how the user referred to the change — `PR`, `commit`, `branch`, or their own words (e.g. `auth refactor`). Default to `change` if ambiguous.
|
|
49
|
+
|
|
50
|
+
Set `review_mode` — pick the first match:
|
|
51
|
+
|
|
52
|
+
1. **`full-trail`** — ENRICH found a spec with a `## Suggested Review Order` section. Intent source: spec's Intent section.
|
|
53
|
+
2. **`spec-only`** — ENRICH found a spec but it has no Suggested Review Order. Intent source: spec's Intent section.
|
|
54
|
+
3. **`bare-commit`** — no spec found. Intent source: commit message. If the commit message is terse (under 10 words), scan the diff for the primary change pattern and draft a one-sentence intent. Flag it as `[inferred]` in the output so the user can correct it.
|
|
55
|
+
|
|
56
|
+
## PRODUCE ORIENTATION
|
|
57
|
+
|
|
58
|
+
### Intent Summary
|
|
59
|
+
|
|
60
|
+
- If intent comes from a spec's Intent section, display it verbatim regardless of length — it's already written to be concise.
|
|
61
|
+
- For other sources (commit messages, bug reports, user description): if ≤200 tokens, display verbatim. If longer, distill to ≤200 tokens. Link to the full source when one exists (e.g. a file path or URL).
|
|
62
|
+
- Format: `> **Intent:** {summary}`
|
|
63
|
+
|
|
64
|
+
### Surface Area Stats
|
|
65
|
+
|
|
66
|
+
Best-effort stats derived from the diff. Try these baselines in order:
|
|
67
|
+
|
|
68
|
+
1. `baseline_commit` from the spec's frontmatter.
|
|
69
|
+
2. Branch merge-base against `main` (or the default branch).
|
|
70
|
+
3. `HEAD~1..HEAD` (latest commit only — tell the user).
|
|
71
|
+
4. If git is unavailable or all of the above fail, skip stats and note: "Could not compute stats."
|
|
72
|
+
|
|
73
|
+
Use `git diff --stat` and `git diff --numstat` for file-level counts, and scan the full diff content for the richer metrics.
|
|
74
|
+
|
|
75
|
+
Display as:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
N files changed · M modules touched · ~L lines of logic · B boundary crossings · P new public interfaces
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
- **Files changed**: count from `git diff --stat`.
|
|
82
|
+
- **Modules touched**: distinct top-level directories with changes (from `--stat` file paths).
|
|
83
|
+
- **Lines of logic**: added/modified lines excluding blanks, imports, formatting. Scan diff content; `~` because approximate.
|
|
84
|
+
- **Boundary crossings**: changes spanning more than one top-level module. `0` if single module.
|
|
85
|
+
- **New public interfaces**: new exports, endpoints, public methods found in the diff. `0` if none.
|
|
86
|
+
|
|
87
|
+
Omit any metric you cannot compute rather than guessing.
|
|
88
|
+
|
|
89
|
+
### Present
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
[Orientation] → Walkthrough → Detail Pass → Testing
|
|
93
|
+
|
|
94
|
+
> **Intent:** {intent_summary}
|
|
95
|
+
|
|
96
|
+
{stats line}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## FALLBACK TRAIL GENERATION
|
|
100
|
+
|
|
101
|
+
If review mode is not `full-trail`, read fully and follow `./generate-trail.md` to build one from the diff. Then return here and continue to NEXT. If trail generation fails (e.g., git unavailable), the original review mode is preserved — step-02 handles this with its non-trail path.
|
|
102
|
+
|
|
103
|
+
## NEXT
|
|
104
|
+
|
|
105
|
+
Read fully and follow `./step-02-walkthrough.md`
|