@zigrivers/scaffold 3.1.0 → 3.4.1
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 +366 -40
- package/content/knowledge/core/test-skeleton-generation.md +313 -0
- package/{knowledge → content/knowledge}/execution/enhancement-workflow.md +1 -1
- package/content/knowledge/product/vision-innovation.md +273 -0
- package/{knowledge → content/knowledge}/tools/post-implementation-review-methodology.md +1 -1
- package/{pipeline → content/pipeline}/consolidation/workflow-audit.md +1 -1
- package/{pipeline → content/pipeline}/decisions/review-adrs.md +1 -1
- package/{pipeline → content/pipeline}/environment/design-system.md +1 -1
- package/{pipeline → content/pipeline}/finalization/implementation-playbook.md +2 -2
- package/{pipeline → content/pipeline}/foundation/tech-stack.md +1 -1
- package/{pipeline → content/pipeline}/modeling/review-domain-modeling.md +1 -1
- package/{pipeline → content/pipeline}/planning/implementation-plan-review.md +2 -1
- package/{pipeline → content/pipeline}/quality/review-testing.md +1 -1
- package/{pipeline → content/pipeline}/quality/story-tests.md +2 -2
- package/{pipeline → content/pipeline}/vision/innovate-vision.md +1 -1
- package/content/skills/mmr/SKILL.md +65 -0
- package/content/skills/multi-model-dispatch/SKILL.md +327 -0
- package/{agent-skills → content/skills}/scaffold-pipeline/SKILL.md +14 -8
- package/{agent-skills → content/skills}/scaffold-runner/SKILL.md +64 -19
- package/{tools → content/tools}/post-implementation-review.md +2 -2
- package/{tools → content/tools}/prompt-pipeline.md +7 -0
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +17 -1
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/build.test.js +6 -5
- package/dist/cli/commands/build.test.js.map +1 -1
- package/dist/cli/commands/info.test.js +2 -2
- package/dist/cli/commands/info.test.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +9 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/init.test.js +6 -0
- package/dist/cli/commands/init.test.js.map +1 -1
- package/dist/cli/commands/list.test.js +8 -8
- package/dist/cli/commands/list.test.js.map +1 -1
- package/dist/cli/commands/run.test.js +4 -4
- package/dist/cli/commands/run.test.js.map +1 -1
- package/dist/cli/commands/skill.d.ts.map +1 -1
- package/dist/cli/commands/skill.js +16 -86
- package/dist/cli/commands/skill.js.map +1 -1
- package/dist/cli/commands/skill.test.js +27 -46
- package/dist/cli/commands/skill.test.js.map +1 -1
- package/dist/cli/middleware/project-root.d.ts.map +1 -1
- package/dist/cli/middleware/project-root.js +16 -0
- package/dist/cli/middleware/project-root.js.map +1 -1
- package/dist/cli/middleware/project-root.test.js +20 -0
- package/dist/cli/middleware/project-root.test.js.map +1 -1
- package/dist/core/adapters/gemini.js +2 -2
- package/dist/core/adapters/gemini.js.map +1 -1
- package/dist/core/adapters/gemini.test.js +1 -1
- package/dist/core/adapters/gemini.test.js.map +1 -1
- package/dist/core/skills/sync.d.ts +36 -0
- package/dist/core/skills/sync.d.ts.map +1 -0
- package/dist/core/skills/sync.js +119 -0
- package/dist/core/skills/sync.js.map +1 -0
- package/dist/core/skills/sync.test.d.ts +2 -0
- package/dist/core/skills/sync.test.d.ts.map +1 -0
- package/dist/core/skills/sync.test.js +166 -0
- package/dist/core/skills/sync.test.js.map +1 -0
- package/dist/e2e/commands.test.js +10 -10
- package/dist/e2e/commands.test.js.map +1 -1
- package/dist/e2e/knowledge.test.js +5 -4
- package/dist/e2e/knowledge.test.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/project/adopt.test.js +8 -8
- package/dist/project/adopt.test.js.map +1 -1
- package/dist/utils/fs.d.ts +5 -5
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +15 -15
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/fs.test.js +9 -9
- package/dist/utils/fs.test.js.map +1 -1
- package/dist/validation/index.test.js +2 -2
- package/dist/validation/index.test.js.map +1 -1
- package/package.json +3 -6
- package/skills/mmr/SKILL.md +65 -0
- package/skills/scaffold-pipeline/SKILL.md +3 -3
- /package/{knowledge → content/knowledge}/core/adr-craft.md +0 -0
- /package/{knowledge → content/knowledge}/core/ai-memory-management.md +0 -0
- /package/{knowledge → content/knowledge}/core/api-design.md +0 -0
- /package/{knowledge → content/knowledge}/core/automated-review-tooling.md +0 -0
- /package/{knowledge → content/knowledge}/core/claude-md-patterns.md +0 -0
- /package/{knowledge → content/knowledge}/core/coding-conventions.md +0 -0
- /package/{knowledge → content/knowledge}/core/database-design.md +0 -0
- /package/{knowledge → content/knowledge}/core/design-system-tokens.md +0 -0
- /package/{knowledge → content/knowledge}/core/dev-environment.md +0 -0
- /package/{knowledge → content/knowledge}/core/domain-modeling.md +0 -0
- /package/{knowledge → content/knowledge}/core/eval-craft.md +0 -0
- /package/{knowledge → content/knowledge}/core/git-workflow-patterns.md +0 -0
- /package/{knowledge → content/knowledge}/core/multi-model-review-dispatch.md +0 -0
- /package/{knowledge → content/knowledge}/core/operations-runbook.md +0 -0
- /package/{knowledge → content/knowledge}/core/project-structure-patterns.md +0 -0
- /package/{knowledge → content/knowledge}/core/review-step-template.md +0 -0
- /package/{knowledge → content/knowledge}/core/security-best-practices.md +0 -0
- /package/{knowledge → content/knowledge}/core/system-architecture.md +0 -0
- /package/{knowledge → content/knowledge}/core/task-decomposition.md +0 -0
- /package/{knowledge → content/knowledge}/core/task-tracking.md +0 -0
- /package/{knowledge → content/knowledge}/core/tech-stack-selection.md +0 -0
- /package/{knowledge → content/knowledge}/core/testing-strategy.md +0 -0
- /package/{knowledge → content/knowledge}/core/user-stories.md +0 -0
- /package/{knowledge → content/knowledge}/core/user-story-innovation.md +0 -0
- /package/{knowledge → content/knowledge}/core/ux-specification.md +0 -0
- /package/{knowledge → content/knowledge}/execution/task-claiming-strategy.md +0 -0
- /package/{knowledge → content/knowledge}/execution/tdd-execution-loop.md +0 -0
- /package/{knowledge → content/knowledge}/execution/worktree-management.md +0 -0
- /package/{knowledge → content/knowledge}/finalization/apply-fixes-and-freeze.md +0 -0
- /package/{knowledge → content/knowledge}/finalization/developer-onboarding.md +0 -0
- /package/{knowledge → content/knowledge}/finalization/implementation-playbook.md +0 -0
- /package/{knowledge → content/knowledge}/product/gap-analysis.md +0 -0
- /package/{knowledge → content/knowledge}/product/prd-craft.md +0 -0
- /package/{knowledge → content/knowledge}/product/prd-innovation.md +0 -0
- /package/{knowledge → content/knowledge}/product/vision-craft.md +0 -0
- /package/{knowledge → content/knowledge}/review/review-adr.md +0 -0
- /package/{knowledge → content/knowledge}/review/review-api-design.md +0 -0
- /package/{knowledge → content/knowledge}/review/review-database-design.md +0 -0
- /package/{knowledge → content/knowledge}/review/review-domain-modeling.md +0 -0
- /package/{knowledge → content/knowledge}/review/review-implementation-tasks.md +0 -0
- /package/{knowledge → content/knowledge}/review/review-methodology.md +0 -0
- /package/{knowledge → content/knowledge}/review/review-operations.md +0 -0
- /package/{knowledge → content/knowledge}/review/review-prd.md +0 -0
- /package/{knowledge → content/knowledge}/review/review-security.md +0 -0
- /package/{knowledge → content/knowledge}/review/review-system-architecture.md +0 -0
- /package/{knowledge → content/knowledge}/review/review-testing-strategy.md +0 -0
- /package/{knowledge → content/knowledge}/review/review-user-stories.md +0 -0
- /package/{knowledge → content/knowledge}/review/review-ux-specification.md +0 -0
- /package/{knowledge → content/knowledge}/review/review-vision.md +0 -0
- /package/{knowledge → content/knowledge}/tools/release-management.md +0 -0
- /package/{knowledge → content/knowledge}/tools/session-analysis.md +0 -0
- /package/{knowledge → content/knowledge}/tools/version-strategy.md +0 -0
- /package/{knowledge → content/knowledge}/validation/critical-path-analysis.md +0 -0
- /package/{knowledge → content/knowledge}/validation/cross-phase-consistency.md +0 -0
- /package/{knowledge → content/knowledge}/validation/decision-completeness.md +0 -0
- /package/{knowledge → content/knowledge}/validation/dependency-validation.md +0 -0
- /package/{knowledge → content/knowledge}/validation/implementability-review.md +0 -0
- /package/{knowledge → content/knowledge}/validation/scope-management.md +0 -0
- /package/{knowledge → content/knowledge}/validation/traceability.md +0 -0
- /package/{methodology → content/methodology}/README.md +0 -0
- /package/{methodology → content/methodology}/custom-defaults.yml +0 -0
- /package/{methodology → content/methodology}/deep.yml +0 -0
- /package/{methodology → content/methodology}/mvp.yml +0 -0
- /package/{pipeline → content/pipeline}/architecture/review-architecture.md +0 -0
- /package/{pipeline → content/pipeline}/architecture/system-architecture.md +0 -0
- /package/{pipeline → content/pipeline}/build/multi-agent-resume.md +0 -0
- /package/{pipeline → content/pipeline}/build/multi-agent-start.md +0 -0
- /package/{pipeline → content/pipeline}/build/new-enhancement.md +0 -0
- /package/{pipeline → content/pipeline}/build/quick-task.md +0 -0
- /package/{pipeline → content/pipeline}/build/single-agent-resume.md +0 -0
- /package/{pipeline → content/pipeline}/build/single-agent-start.md +0 -0
- /package/{pipeline → content/pipeline}/consolidation/claude-md-optimization.md +0 -0
- /package/{pipeline → content/pipeline}/decisions/adrs.md +0 -0
- /package/{pipeline → content/pipeline}/environment/ai-memory-setup.md +0 -0
- /package/{pipeline → content/pipeline}/environment/automated-pr-review.md +0 -0
- /package/{pipeline → content/pipeline}/environment/dev-env-setup.md +0 -0
- /package/{pipeline → content/pipeline}/environment/git-workflow.md +0 -0
- /package/{pipeline → content/pipeline}/finalization/apply-fixes-and-freeze.md +0 -0
- /package/{pipeline → content/pipeline}/finalization/developer-onboarding-guide.md +0 -0
- /package/{pipeline → content/pipeline}/foundation/beads.md +0 -0
- /package/{pipeline → content/pipeline}/foundation/coding-standards.md +0 -0
- /package/{pipeline → content/pipeline}/foundation/project-structure.md +0 -0
- /package/{pipeline → content/pipeline}/foundation/tdd.md +0 -0
- /package/{pipeline → content/pipeline}/integration/add-e2e-testing.md +0 -0
- /package/{pipeline → content/pipeline}/modeling/domain-modeling.md +0 -0
- /package/{pipeline → content/pipeline}/parity/platform-parity-review.md +0 -0
- /package/{pipeline → content/pipeline}/planning/implementation-plan.md +0 -0
- /package/{pipeline → content/pipeline}/pre/create-prd.md +0 -0
- /package/{pipeline → content/pipeline}/pre/innovate-prd.md +0 -0
- /package/{pipeline → content/pipeline}/pre/innovate-user-stories.md +0 -0
- /package/{pipeline → content/pipeline}/pre/review-prd.md +0 -0
- /package/{pipeline → content/pipeline}/pre/review-user-stories.md +0 -0
- /package/{pipeline → content/pipeline}/pre/user-stories.md +0 -0
- /package/{pipeline → content/pipeline}/quality/create-evals.md +0 -0
- /package/{pipeline → content/pipeline}/quality/operations.md +0 -0
- /package/{pipeline → content/pipeline}/quality/review-operations.md +0 -0
- /package/{pipeline → content/pipeline}/quality/review-security.md +0 -0
- /package/{pipeline → content/pipeline}/quality/security.md +0 -0
- /package/{pipeline → content/pipeline}/specification/api-contracts.md +0 -0
- /package/{pipeline → content/pipeline}/specification/database-schema.md +0 -0
- /package/{pipeline → content/pipeline}/specification/review-api.md +0 -0
- /package/{pipeline → content/pipeline}/specification/review-database.md +0 -0
- /package/{pipeline → content/pipeline}/specification/review-ux.md +0 -0
- /package/{pipeline → content/pipeline}/specification/ux-spec.md +0 -0
- /package/{pipeline → content/pipeline}/validation/critical-path-walkthrough.md +0 -0
- /package/{pipeline → content/pipeline}/validation/cross-phase-consistency.md +0 -0
- /package/{pipeline → content/pipeline}/validation/decision-completeness.md +0 -0
- /package/{pipeline → content/pipeline}/validation/dependency-graph-validation.md +0 -0
- /package/{pipeline → content/pipeline}/validation/implementability-dry-run.md +0 -0
- /package/{pipeline → content/pipeline}/validation/scope-creep-check.md +0 -0
- /package/{pipeline → content/pipeline}/validation/traceability-matrix.md +0 -0
- /package/{pipeline → content/pipeline}/vision/create-vision.md +0 -0
- /package/{pipeline → content/pipeline}/vision/review-vision.md +0 -0
- /package/{tools → content/tools}/dashboard.md +0 -0
- /package/{tools → content/tools}/release.md +0 -0
- /package/{tools → content/tools}/review-code.md +0 -0
- /package/{tools → content/tools}/review-pr.md +0 -0
- /package/{tools → content/tools}/session-analyzer.md +0 -0
- /package/{tools → content/tools}/update.md +0 -0
- /package/{tools → content/tools}/version-bump.md +0 -0
- /package/{tools → content/tools}/version.md +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.test.js","sourceRoot":"","sources":["../../../src/cli/commands/skill.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill.test.js","sourceRoot":"","sources":["../../../src/cli/commands/skill.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-root.d.ts","sourceRoot":"","sources":["../../../src/cli/middleware/project-root.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"project-root.d.ts","sourceRoot":"","sources":["../../../src/cli/middleware/project-root.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW/D;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,wCAAyC,CAAA;AAE5E;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAqCrF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import fs from 'node:fs';
|
|
3
|
+
import { syncSkillsIfNeeded } from '../../core/skills/sync.js';
|
|
3
4
|
/**
|
|
4
5
|
* Walk up from startDir looking for a directory containing .scaffold/.
|
|
5
6
|
* Returns absolute path to the directory containing .scaffold/, or null if not found.
|
|
@@ -35,10 +36,25 @@ export function createProjectRootMiddleware() {
|
|
|
35
36
|
return (argv) => {
|
|
36
37
|
if (typeof argv['root'] === 'string') {
|
|
37
38
|
argv['detectedRoot'] = argv['root'];
|
|
39
|
+
try {
|
|
40
|
+
syncSkillsIfNeeded(argv['root']);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// best-effort
|
|
44
|
+
}
|
|
38
45
|
return;
|
|
39
46
|
}
|
|
40
47
|
const found = findProjectRoot(process.cwd());
|
|
41
48
|
argv['detectedRoot'] = found ?? undefined;
|
|
49
|
+
// Auto-sync project-local skills when version changes
|
|
50
|
+
if (argv['detectedRoot']) {
|
|
51
|
+
try {
|
|
52
|
+
syncSkillsIfNeeded(argv['detectedRoot']);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// Skill sync is best-effort — never block CLI commands
|
|
56
|
+
}
|
|
57
|
+
}
|
|
42
58
|
if (argv['detectedRoot'] === undefined) {
|
|
43
59
|
const commands = argv['_'];
|
|
44
60
|
const command = commands[0] ?? '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-root.js","sourceRoot":"","sources":["../../../src/cli/middleware/project-root.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"project-root.js","sourceRoot":"","sources":["../../../src/cli/middleware/project-root.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACpC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACnD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACzE,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,IAAI,CAAA,CAAE,0BAA0B;QAC/D,OAAO,GAAG,MAAM,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAE5E;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO,CAAC,IAA6B,EAAE,EAAE;QACvC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;YACnC,IAAI,CAAC;gBACH,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc;YAChB,CAAC;YACD,OAAM;QACR,CAAC;QAED,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QAC5C,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,IAAI,SAAS,CAAA;QAEzC,sDAAsD;QACtD,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAW,CAAC,CAAA;YACpD,CAAC;YAAC,MAAM,CAAC;gBACP,uDAAuD;YACzD,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAa,CAAA;YACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACjC,MAAM,gBAAgB,GAAsB,sBAAsB,CAAA;YAClE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oEAAoE;oBACpE,sDAAsD,CACvD,CAAA;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
vi.mock('../../core/skills/sync.js', () => ({
|
|
2
|
+
syncSkillsIfNeeded: vi.fn(),
|
|
3
|
+
}));
|
|
1
4
|
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
5
|
import fs from 'node:fs';
|
|
3
6
|
import path from 'node:path';
|
|
4
7
|
import { findProjectRoot, createProjectRootMiddleware, ROOT_OPTIONAL_COMMANDS } from './project-root.js';
|
|
8
|
+
import { syncSkillsIfNeeded } from '../../core/skills/sync.js';
|
|
5
9
|
describe('findProjectRoot', () => {
|
|
6
10
|
let tmpDir;
|
|
7
11
|
beforeEach(() => {
|
|
@@ -39,6 +43,7 @@ describe('createProjectRootMiddleware', () => {
|
|
|
39
43
|
let stderrSpy;
|
|
40
44
|
beforeEach(() => {
|
|
41
45
|
tmpDir = fs.mkdtempSync(path.join(process.env['TMPDIR'] ?? '/tmp', 'scaffold-test-'));
|
|
46
|
+
vi.mocked(syncSkillsIfNeeded).mockReset();
|
|
42
47
|
exitSpy = vi.spyOn(process, 'exit').mockImplementation((() => {
|
|
43
48
|
throw new Error('process.exit called');
|
|
44
49
|
}));
|
|
@@ -101,6 +106,21 @@ describe('createProjectRootMiddleware', () => {
|
|
|
101
106
|
expect(allStderr).toContain('PROJECT_NOT_INITIALIZED');
|
|
102
107
|
expect(allStderr).toContain('scaffold init');
|
|
103
108
|
});
|
|
109
|
+
it('calls syncSkillsIfNeeded when project root is found', () => {
|
|
110
|
+
fs.mkdirSync(path.join(tmpDir, '.scaffold'));
|
|
111
|
+
vi.spyOn(process, 'cwd').mockReturnValue(tmpDir);
|
|
112
|
+
const middleware = createProjectRootMiddleware();
|
|
113
|
+
const argv = { _: ['run'] };
|
|
114
|
+
middleware(argv);
|
|
115
|
+
expect(syncSkillsIfNeeded).toHaveBeenCalledWith(tmpDir);
|
|
116
|
+
});
|
|
117
|
+
it('does not call syncSkillsIfNeeded when no project root found', () => {
|
|
118
|
+
vi.spyOn(fs, 'existsSync').mockReturnValue(false);
|
|
119
|
+
const middleware = createProjectRootMiddleware();
|
|
120
|
+
const argv = { _: ['init'] };
|
|
121
|
+
expect(() => middleware(argv)).not.toThrow();
|
|
122
|
+
expect(syncSkillsIfNeeded).not.toHaveBeenCalled();
|
|
123
|
+
});
|
|
104
124
|
});
|
|
105
125
|
describe('ROOT_OPTIONAL_COMMANDS', () => {
|
|
106
126
|
it('contains init, version, and update', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-root.test.js","sourceRoot":"","sources":["../../../src/cli/middleware/project-root.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAExE,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"project-root.test.js","sourceRoot":"","sources":["../../../src/cli/middleware/project-root.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { renderManagedContent } from '../../project/gemini-md.js';
|
|
4
|
-
import {
|
|
4
|
+
import { getPackageSkillsDir } from '../../utils/fs.js';
|
|
5
5
|
const SKILL_FILES = [
|
|
6
6
|
'scaffold-runner',
|
|
7
7
|
'scaffold-pipeline',
|
|
@@ -33,7 +33,7 @@ export class GeminiAdapter {
|
|
|
33
33
|
if (!projectRoot) {
|
|
34
34
|
return { files: [], errors: [] };
|
|
35
35
|
}
|
|
36
|
-
const skillDir =
|
|
36
|
+
const skillDir = getPackageSkillsDir(projectRoot);
|
|
37
37
|
const skillFiles = readAgentSkillFiles(skillDir);
|
|
38
38
|
if ('error' in skillFiles) {
|
|
39
39
|
return { files: [], errors: [skillFiles.error] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/core/adapters/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAW5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/core/adapters/gemini.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,7 +81,7 @@ describe('GeminiAdapter', () => {
|
|
|
81
81
|
const context = makeContext();
|
|
82
82
|
adapter.initialize(context);
|
|
83
83
|
const missingSkillDir = path.join(makeTmpDir(), 'missing-agent-skills');
|
|
84
|
-
vi.spyOn(fsUtils, '
|
|
84
|
+
vi.spyOn(fsUtils, 'getPackageSkillsDir').mockReturnValue(missingSkillDir);
|
|
85
85
|
const result = adapter.finalize({ results: [] });
|
|
86
86
|
expect(result.files).toEqual([]);
|
|
87
87
|
expect(result.errors).toHaveLength(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.test.js","sourceRoot":"","sources":["../../../src/core/adapters/gemini.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gemini.test.js","sourceRoot":"","sources":["../../../src/core/adapters/gemini.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface SkillTarget {
|
|
2
|
+
installDir: '.claude/skills' | '.agents/skills';
|
|
3
|
+
label: string;
|
|
4
|
+
templateVars: Record<string, string>;
|
|
5
|
+
}
|
|
6
|
+
export interface SkillDefinition {
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
}
|
|
10
|
+
export interface InstallResult {
|
|
11
|
+
installed: number;
|
|
12
|
+
errors: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface InstallOptions {
|
|
15
|
+
force?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const SKILL_TARGETS: SkillTarget[];
|
|
18
|
+
export declare const INSTALLABLE_SKILLS: SkillDefinition[];
|
|
19
|
+
/** Replace `{{KEY}}` template markers with values from `vars`. */
|
|
20
|
+
export declare function resolveSkillTemplate(content: string, vars: Record<string, string>): string;
|
|
21
|
+
/** Read the package version from package.json. */
|
|
22
|
+
export declare function getPackageVersion(): string;
|
|
23
|
+
/** Return the directory containing skill template sources. */
|
|
24
|
+
export declare function getSkillTemplateDir(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Check `.scaffold-skill-version` markers in each target directory.
|
|
27
|
+
* If any marker is missing or stale, reinstall all skills.
|
|
28
|
+
* Skips silently if template source files are missing.
|
|
29
|
+
*/
|
|
30
|
+
export declare function syncSkillsIfNeeded(projectRoot: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* Install all skill templates to both target directories, resolving
|
|
33
|
+
* template variables per target. Writes version markers on success.
|
|
34
|
+
*/
|
|
35
|
+
export declare function installAllSkills(projectRoot: string, options?: InstallOptions): InstallResult;
|
|
36
|
+
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/core/skills/sync.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,gBAAgB,GAAG,gBAAgB,CAAA;IAC/C,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAMD,eAAO,MAAM,aAAa,EAAE,WAAW,EAWtC,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAS/C,CAAA;AAQD,kEAAkE;AAClE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAE1F;AAED,kDAAkD;AAClD,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAMD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAe5D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,aAAa,CA8C7F"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { getPackageRoot } from '../../utils/fs.js';
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Constants
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
export const SKILL_TARGETS = [
|
|
9
|
+
{
|
|
10
|
+
installDir: '.claude/skills',
|
|
11
|
+
label: 'Claude Code',
|
|
12
|
+
templateVars: { INSTRUCTIONS_FILE: 'CLAUDE.md' },
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
installDir: '.agents/skills',
|
|
16
|
+
label: 'shared agents',
|
|
17
|
+
templateVars: { INSTRUCTIONS_FILE: 'AGENTS.md' },
|
|
18
|
+
},
|
|
19
|
+
];
|
|
20
|
+
export const INSTALLABLE_SKILLS = [
|
|
21
|
+
{
|
|
22
|
+
name: 'scaffold-runner',
|
|
23
|
+
description: 'Interactive CLI wrapper that surfaces decision points before execution',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: 'scaffold-pipeline',
|
|
27
|
+
description: 'Static reference for pipeline ordering, dependencies, and phase structure',
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
const VERSION_MARKER_FILE = '.scaffold-skill-version';
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// Helpers
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
/** Replace `{{KEY}}` template markers with values from `vars`. */
|
|
35
|
+
export function resolveSkillTemplate(content, vars) {
|
|
36
|
+
return content.replace(/\{\{(\w+)\}\}/g, (match, key) => vars[key] ?? match);
|
|
37
|
+
}
|
|
38
|
+
/** Read the package version from package.json. */
|
|
39
|
+
export function getPackageVersion() {
|
|
40
|
+
// Both src/core/skills/ and dist/core/skills/ are 3 levels deep from the package root
|
|
41
|
+
const thisDir = path.dirname(fileURLToPath(import.meta.url));
|
|
42
|
+
const pkgPath = path.resolve(thisDir, '..', '..', '..', 'package.json');
|
|
43
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
|
|
44
|
+
return pkg.version;
|
|
45
|
+
}
|
|
46
|
+
/** Return the directory containing skill template sources. */
|
|
47
|
+
export function getSkillTemplateDir() {
|
|
48
|
+
return path.join(getPackageRoot(), 'content', 'skills');
|
|
49
|
+
}
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
// Core functions
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
/**
|
|
54
|
+
* Check `.scaffold-skill-version` markers in each target directory.
|
|
55
|
+
* If any marker is missing or stale, reinstall all skills.
|
|
56
|
+
* Skips silently if template source files are missing.
|
|
57
|
+
*/
|
|
58
|
+
export function syncSkillsIfNeeded(projectRoot) {
|
|
59
|
+
const currentVersion = getPackageVersion();
|
|
60
|
+
// Fast path: check if all markers match the current version
|
|
61
|
+
const allCurrent = SKILL_TARGETS.every(target => {
|
|
62
|
+
const markerPath = path.join(projectRoot, target.installDir, VERSION_MARKER_FILE);
|
|
63
|
+
if (!fs.existsSync(markerPath))
|
|
64
|
+
return false;
|
|
65
|
+
const markerVersion = fs.readFileSync(markerPath, 'utf8').trim();
|
|
66
|
+
return markerVersion === currentVersion;
|
|
67
|
+
});
|
|
68
|
+
if (allCurrent)
|
|
69
|
+
return;
|
|
70
|
+
// At least one target is stale or missing — reinstall
|
|
71
|
+
installAllSkills(projectRoot);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Install all skill templates to both target directories, resolving
|
|
75
|
+
* template variables per target. Writes version markers on success.
|
|
76
|
+
*/
|
|
77
|
+
export function installAllSkills(projectRoot, options) {
|
|
78
|
+
const force = options?.force ?? false;
|
|
79
|
+
const templateDir = getSkillTemplateDir();
|
|
80
|
+
const currentVersion = getPackageVersion();
|
|
81
|
+
let installed = 0;
|
|
82
|
+
const errors = [];
|
|
83
|
+
for (const target of SKILL_TARGETS) {
|
|
84
|
+
for (const skill of INSTALLABLE_SKILLS) {
|
|
85
|
+
const sourcePath = path.join(templateDir, skill.name, 'SKILL.md');
|
|
86
|
+
if (!fs.existsSync(sourcePath)) {
|
|
87
|
+
// Skip silently — template source not bundled
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
const destDir = path.join(projectRoot, target.installDir, skill.name);
|
|
91
|
+
const destPath = path.join(destDir, 'SKILL.md');
|
|
92
|
+
if (fs.existsSync(destPath) && !force) {
|
|
93
|
+
// Already present and not forcing — still count it if it exists
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
fs.mkdirSync(destDir, { recursive: true });
|
|
98
|
+
const template = fs.readFileSync(sourcePath, 'utf8');
|
|
99
|
+
const resolved = resolveSkillTemplate(template, target.templateVars);
|
|
100
|
+
fs.writeFileSync(destPath, resolved, 'utf8');
|
|
101
|
+
installed++;
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
errors.push(`Failed to install ${skill.name} to ${target.installDir}: ${err}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// Write version marker for this target
|
|
108
|
+
const targetDir = path.join(projectRoot, target.installDir);
|
|
109
|
+
try {
|
|
110
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
111
|
+
fs.writeFileSync(path.join(targetDir, VERSION_MARKER_FILE), currentVersion, 'utf8');
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
errors.push(`Failed to write version marker to ${target.installDir}: ${err}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return { installed, errors };
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/core/skills/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.test.d.ts","sourceRoot":"","sources":["../../../src/core/skills/sync.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import os from 'node:os';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import crypto from 'node:crypto';
|
|
6
|
+
// Mock getPackageRoot so we can control where source skills are found
|
|
7
|
+
vi.mock('../../utils/fs.js', () => ({
|
|
8
|
+
getPackageRoot: vi.fn(() => '/mock-package-root'),
|
|
9
|
+
}));
|
|
10
|
+
import { syncSkillsIfNeeded, installAllSkills, SKILL_TARGETS, INSTALLABLE_SKILLS } from './sync.js';
|
|
11
|
+
import { getPackageRoot } from '../../utils/fs.js';
|
|
12
|
+
function makeTmpDir() {
|
|
13
|
+
const dir = path.join(os.tmpdir(), `scaffold-sync-test-${crypto.randomUUID()}`);
|
|
14
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
15
|
+
return dir;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Seed skill template source files in a fake package root.
|
|
19
|
+
* Uses the template format with {{INSTRUCTIONS_FILE}} markers.
|
|
20
|
+
*/
|
|
21
|
+
function seedSkillTemplates(packageRoot) {
|
|
22
|
+
for (const skill of INSTALLABLE_SKILLS) {
|
|
23
|
+
const skillDir = path.join(packageRoot, 'content', 'skills', skill.name);
|
|
24
|
+
fs.mkdirSync(skillDir, { recursive: true });
|
|
25
|
+
fs.writeFileSync(path.join(skillDir, 'SKILL.md'), `# ${skill.name}\nInstructions file: {{INSTRUCTIONS_FILE}}\n`, 'utf8');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Write a version marker file in the given target directory.
|
|
30
|
+
*/
|
|
31
|
+
function seedVersionMarker(projectRoot, installDir, version) {
|
|
32
|
+
const dir = path.join(projectRoot, installDir);
|
|
33
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
34
|
+
fs.writeFileSync(path.join(dir, '.scaffold-skill-version'), version, 'utf8');
|
|
35
|
+
}
|
|
36
|
+
describe('syncSkillsIfNeeded', () => {
|
|
37
|
+
let tmpDir;
|
|
38
|
+
let packageRoot;
|
|
39
|
+
beforeEach(() => {
|
|
40
|
+
tmpDir = makeTmpDir();
|
|
41
|
+
packageRoot = makeTmpDir();
|
|
42
|
+
vi.mocked(getPackageRoot).mockReturnValue(packageRoot);
|
|
43
|
+
});
|
|
44
|
+
afterEach(() => {
|
|
45
|
+
vi.restoreAllMocks();
|
|
46
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
47
|
+
fs.rmSync(packageRoot, { recursive: true, force: true });
|
|
48
|
+
});
|
|
49
|
+
it('installs skills when no version marker exists', () => {
|
|
50
|
+
seedSkillTemplates(packageRoot);
|
|
51
|
+
syncSkillsIfNeeded(tmpDir);
|
|
52
|
+
// Skills should be installed in both targets
|
|
53
|
+
for (const target of SKILL_TARGETS) {
|
|
54
|
+
for (const skill of INSTALLABLE_SKILLS) {
|
|
55
|
+
const skillPath = path.join(tmpDir, target.installDir, skill.name, 'SKILL.md');
|
|
56
|
+
expect(fs.existsSync(skillPath)).toBe(true);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
it('resolves {{INSTRUCTIONS_FILE}} to CLAUDE.md for .claude/skills/', () => {
|
|
61
|
+
seedSkillTemplates(packageRoot);
|
|
62
|
+
syncSkillsIfNeeded(tmpDir);
|
|
63
|
+
const content = fs.readFileSync(path.join(tmpDir, '.claude', 'skills', INSTALLABLE_SKILLS[0].name, 'SKILL.md'), 'utf8');
|
|
64
|
+
expect(content).toContain('Instructions file: CLAUDE.md');
|
|
65
|
+
expect(content).not.toContain('{{INSTRUCTIONS_FILE}}');
|
|
66
|
+
});
|
|
67
|
+
it('resolves {{INSTRUCTIONS_FILE}} to AGENTS.md for .agents/skills/', () => {
|
|
68
|
+
seedSkillTemplates(packageRoot);
|
|
69
|
+
syncSkillsIfNeeded(tmpDir);
|
|
70
|
+
const content = fs.readFileSync(path.join(tmpDir, '.agents', 'skills', INSTALLABLE_SKILLS[0].name, 'SKILL.md'), 'utf8');
|
|
71
|
+
expect(content).toContain('Instructions file: AGENTS.md');
|
|
72
|
+
expect(content).not.toContain('{{INSTRUCTIONS_FILE}}');
|
|
73
|
+
});
|
|
74
|
+
it('skips sync when version marker matches package version', () => {
|
|
75
|
+
seedSkillTemplates(packageRoot);
|
|
76
|
+
// First install to create the skills and markers
|
|
77
|
+
installAllSkills(tmpDir);
|
|
78
|
+
// Spy on writeFileSync after initial install
|
|
79
|
+
const writeSpy = vi.spyOn(fs, 'writeFileSync');
|
|
80
|
+
// syncSkillsIfNeeded should detect markers match and skip
|
|
81
|
+
syncSkillsIfNeeded(tmpDir);
|
|
82
|
+
expect(writeSpy).not.toHaveBeenCalled();
|
|
83
|
+
writeSpy.mockRestore();
|
|
84
|
+
});
|
|
85
|
+
it('re-syncs when version marker is stale', () => {
|
|
86
|
+
seedSkillTemplates(packageRoot);
|
|
87
|
+
// Seed stale version markers
|
|
88
|
+
for (const target of SKILL_TARGETS) {
|
|
89
|
+
seedVersionMarker(tmpDir, target.installDir, '0.0.0-old');
|
|
90
|
+
}
|
|
91
|
+
syncSkillsIfNeeded(tmpDir);
|
|
92
|
+
// Skills should have been installed
|
|
93
|
+
for (const target of SKILL_TARGETS) {
|
|
94
|
+
for (const skill of INSTALLABLE_SKILLS) {
|
|
95
|
+
const skillPath = path.join(tmpDir, target.installDir, skill.name, 'SKILL.md');
|
|
96
|
+
expect(fs.existsSync(skillPath)).toBe(true);
|
|
97
|
+
}
|
|
98
|
+
// Version marker should be updated
|
|
99
|
+
const marker = fs.readFileSync(path.join(tmpDir, target.installDir, '.scaffold-skill-version'), 'utf8');
|
|
100
|
+
expect(marker).not.toBe('0.0.0-old');
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
it('skips silently when template source is missing', () => {
|
|
104
|
+
// Don't seed any templates — packageRoot has no content/skills/
|
|
105
|
+
// Should not throw
|
|
106
|
+
syncSkillsIfNeeded(tmpDir);
|
|
107
|
+
// No skills should be installed
|
|
108
|
+
for (const target of SKILL_TARGETS) {
|
|
109
|
+
for (const skill of INSTALLABLE_SKILLS) {
|
|
110
|
+
const skillPath = path.join(tmpDir, target.installDir, skill.name, 'SKILL.md');
|
|
111
|
+
expect(fs.existsSync(skillPath)).toBe(false);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
describe('installAllSkills', () => {
|
|
117
|
+
let tmpDir;
|
|
118
|
+
let packageRoot;
|
|
119
|
+
beforeEach(() => {
|
|
120
|
+
tmpDir = makeTmpDir();
|
|
121
|
+
packageRoot = makeTmpDir();
|
|
122
|
+
vi.mocked(getPackageRoot).mockReturnValue(packageRoot);
|
|
123
|
+
});
|
|
124
|
+
afterEach(() => {
|
|
125
|
+
vi.restoreAllMocks();
|
|
126
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
127
|
+
fs.rmSync(packageRoot, { recursive: true, force: true });
|
|
128
|
+
});
|
|
129
|
+
it('installs all skills to both target directories', () => {
|
|
130
|
+
seedSkillTemplates(packageRoot);
|
|
131
|
+
const result = installAllSkills(tmpDir);
|
|
132
|
+
expect(result.installed).toBe(INSTALLABLE_SKILLS.length * SKILL_TARGETS.length);
|
|
133
|
+
expect(result.errors).toEqual([]);
|
|
134
|
+
for (const target of SKILL_TARGETS) {
|
|
135
|
+
for (const skill of INSTALLABLE_SKILLS) {
|
|
136
|
+
const skillPath = path.join(tmpDir, target.installDir, skill.name, 'SKILL.md');
|
|
137
|
+
expect(fs.existsSync(skillPath)).toBe(true);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
it('writes version markers', () => {
|
|
142
|
+
seedSkillTemplates(packageRoot);
|
|
143
|
+
installAllSkills(tmpDir);
|
|
144
|
+
for (const target of SKILL_TARGETS) {
|
|
145
|
+
const markerPath = path.join(tmpDir, target.installDir, '.scaffold-skill-version');
|
|
146
|
+
expect(fs.existsSync(markerPath)).toBe(true);
|
|
147
|
+
const version = fs.readFileSync(markerPath, 'utf8');
|
|
148
|
+
expect(version.length).toBeGreaterThan(0);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
it('overwrites existing skills when force is true', () => {
|
|
152
|
+
seedSkillTemplates(packageRoot);
|
|
153
|
+
// First install
|
|
154
|
+
installAllSkills(tmpDir);
|
|
155
|
+
// Write custom content to a skill file
|
|
156
|
+
const skillPath = path.join(tmpDir, '.claude', 'skills', INSTALLABLE_SKILLS[0].name, 'SKILL.md');
|
|
157
|
+
fs.writeFileSync(skillPath, '# custom content that should be overwritten', 'utf8');
|
|
158
|
+
// Reinstall with force
|
|
159
|
+
const result = installAllSkills(tmpDir, { force: true });
|
|
160
|
+
expect(result.installed).toBe(INSTALLABLE_SKILLS.length * SKILL_TARGETS.length);
|
|
161
|
+
const content = fs.readFileSync(skillPath, 'utf8');
|
|
162
|
+
expect(content).toContain('Instructions file: CLAUDE.md');
|
|
163
|
+
expect(content).not.toContain('custom content');
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
//# sourceMappingURL=sync.test.js.map
|