@hongmaple0820/scale-engine 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/adapters/AiderAdapter.js +53 -53
  2. package/dist/adapters/AiderAdapter.js.map +1 -1
  3. package/dist/adapters/ClaudeCodeAdapter.js +2 -0
  4. package/dist/adapters/ClaudeCodeAdapter.js.map +1 -1
  5. package/dist/adapters/CodexAdapter.js +1 -1
  6. package/dist/adapters/CodexAdapter.js.map +1 -1
  7. package/dist/adapters/CursorAdapter.js +1 -1
  8. package/dist/adapters/CursorAdapter.js.map +1 -1
  9. package/dist/adapters/DeepSeekTuiAdapter.js +2 -0
  10. package/dist/adapters/DeepSeekTuiAdapter.js.map +1 -1
  11. package/dist/adapters/DoubaoAdapter.js +34 -34
  12. package/dist/adapters/DoubaoAdapter.js.map +1 -1
  13. package/dist/adapters/GeminiAdapter.js +1 -1
  14. package/dist/adapters/GeminiAdapter.js.map +1 -1
  15. package/dist/adapters/HermesAdapter.js +1 -1
  16. package/dist/adapters/HermesAdapter.js.map +1 -1
  17. package/dist/adapters/KimiAdapter.js +33 -33
  18. package/dist/adapters/KimiAdapter.js.map +1 -1
  19. package/dist/adapters/KiroAdapter.js +27 -27
  20. package/dist/adapters/KiroAdapter.js.map +1 -1
  21. package/dist/adapters/OpenClawAdapter.js +1 -1
  22. package/dist/adapters/OpenClawAdapter.js.map +1 -1
  23. package/dist/adapters/OpenCodeAdapter.js +1 -1
  24. package/dist/adapters/OpenCodeAdapter.js.map +1 -1
  25. package/dist/adapters/QCoderAdapter.js +1 -1
  26. package/dist/adapters/QCoderAdapter.js.map +1 -1
  27. package/dist/adapters/TraeAdapter.js +1 -1
  28. package/dist/adapters/TraeAdapter.js.map +1 -1
  29. package/dist/adapters/VSCAdapter.js +1 -1
  30. package/dist/adapters/VSCAdapter.js.map +1 -1
  31. package/dist/adapters/WindsurfAdapter.js +33 -33
  32. package/dist/adapters/WindsurfAdapter.js.map +1 -1
  33. package/dist/adapters/WorkBuddyAdapter.js +1 -1
  34. package/dist/adapters/WorkBuddyAdapter.js.map +1 -1
  35. package/dist/api/cli.js +365 -13
  36. package/dist/api/cli.js.map +1 -1
  37. package/dist/api/doctor.d.ts +1 -0
  38. package/dist/api/doctor.js +29 -0
  39. package/dist/api/doctor.js.map +1 -1
  40. package/dist/api/quickstart.d.ts +1 -0
  41. package/dist/api/quickstart.js +2 -2
  42. package/dist/api/quickstart.js.map +1 -1
  43. package/dist/cli/phaseCommands.d.ts +5 -0
  44. package/dist/cli/phaseCommands.js +149 -25
  45. package/dist/cli/phaseCommands.js.map +1 -1
  46. package/dist/skills/ExternalSkills.js +2 -0
  47. package/dist/skills/ExternalSkills.js.map +1 -1
  48. package/dist/skills/SkillCatalog.d.ts +13 -0
  49. package/dist/skills/SkillCatalog.js +184 -0
  50. package/dist/skills/SkillCatalog.js.map +1 -0
  51. package/dist/skills/SkillDoctor.d.ts +37 -0
  52. package/dist/skills/SkillDoctor.js +90 -0
  53. package/dist/skills/SkillDoctor.js.map +1 -0
  54. package/dist/skills/index.d.ts +1 -0
  55. package/dist/skills/index.js +1 -0
  56. package/dist/skills/index.js.map +1 -1
  57. package/dist/skills/routing/SkillGate.d.ts +2 -1
  58. package/dist/skills/routing/SkillGate.js +19 -2
  59. package/dist/skills/routing/SkillGate.js.map +1 -1
  60. package/dist/skills/routing/SkillPlanner.js +40 -40
  61. package/dist/skills/routing/SkillPolicy.js +39 -12
  62. package/dist/skills/routing/SkillPolicy.js.map +1 -1
  63. package/dist/workflow/GovernanceLock.d.ts +35 -0
  64. package/dist/workflow/GovernanceLock.js +58 -0
  65. package/dist/workflow/GovernanceLock.js.map +1 -0
  66. package/dist/workflow/GovernanceTemplatePacks.d.ts +24 -0
  67. package/dist/workflow/GovernanceTemplatePacks.js +128 -0
  68. package/dist/workflow/GovernanceTemplatePacks.js.map +1 -0
  69. package/dist/workflow/GovernanceTemplates.d.ts +6 -1
  70. package/dist/workflow/GovernanceTemplates.js +585 -414
  71. package/dist/workflow/GovernanceTemplates.js.map +1 -1
  72. package/dist/workflow/TaskArtifactScaffolder.js +17 -17
  73. package/dist/workflow/TaskArtifactScaffolder.js.map +1 -1
  74. package/dist/workflow/VerificationCommands.js +1 -8
  75. package/dist/workflow/VerificationCommands.js.map +1 -1
  76. package/dist/workflow/VerificationProfile.d.ts +1 -0
  77. package/dist/workflow/VerificationProfile.js +42 -5
  78. package/dist/workflow/VerificationProfile.js.map +1 -1
  79. package/dist/workflow/WorkflowEngine.d.ts +6 -3
  80. package/dist/workflow/WorkflowEngine.js +1 -1
  81. package/dist/workflow/WorkflowEngine.js.map +1 -1
  82. package/dist/workflow/WorkspaceLifecycle.d.ts +53 -0
  83. package/dist/workflow/WorkspaceLifecycle.js +285 -0
  84. package/dist/workflow/WorkspaceLifecycle.js.map +1 -0
  85. package/dist/workflow/WorkspaceTopology.d.ts +49 -0
  86. package/dist/workflow/WorkspaceTopology.js +125 -0
  87. package/dist/workflow/WorkspaceTopology.js.map +1 -0
  88. package/dist/workflow/index.d.ts +4 -0
  89. package/dist/workflow/index.js +4 -0
  90. package/dist/workflow/index.js.map +1 -1
  91. package/package.json +2 -2
@@ -15,17 +15,18 @@ export const DEFAULT_SKILL_ROUTING_POLICY = {
15
15
  files: ['src/**/*.tsx', 'src/**/*.jsx', 'app/**/*.tsx', 'pages/**/*.tsx', 'components/**/*.tsx', '**/*.css', '**/*.scss'],
16
16
  keywords: ['ui', 'ux', 'frontend', 'component', 'page', 'layout', 'responsive', 'visual', '界面', '页面', '交互', '视觉', '前端'],
17
17
  },
18
- recommendedSkills: ['ui-ux-pro-max', 'frontend-design', 'design-review'],
19
- requiredArtifacts: ['skill-plan.md', 'ui-spec.md', 'visual-review.md'],
20
- requiredVerification: ['screenshot', 'responsive-check'],
18
+ requiredSkills: ['frontend-design'],
19
+ recommendedSkills: ['ui-ux-pro-max', 'webapp-testing', 'design-review'],
20
+ requiredArtifacts: ['skill-plan.md', 'skill-evidence.md', 'mini-prd.md', 'ui-spec.md', 'visual-review.md'],
21
+ requiredVerification: ['screenshot', 'responsive-check', 'browser-run'],
21
22
  },
22
23
  e2e: {
23
24
  detect: {
24
25
  files: ['tests/e2e/**', 'e2e/**', 'playwright.config.*'],
25
26
  keywords: ['e2e', 'browser', 'playwright', 'end-to-end', '端到端', '浏览器'],
26
27
  },
27
- recommendedSkills: ['playwright', 'playwright-interactive'],
28
- requiredArtifacts: ['skill-plan.md', 'e2e-plan.md'],
28
+ recommendedSkills: ['webapp-testing', 'playwright', 'playwright-interactive'],
29
+ requiredArtifacts: ['skill-plan.md', 'skill-evidence.md', 'e2e-plan.md'],
29
30
  requiredVerification: ['browser-run'],
30
31
  },
31
32
  api: {
@@ -34,7 +35,7 @@ export const DEFAULT_SKILL_ROUTING_POLICY = {
34
35
  keywords: ['api', 'endpoint', 'route', 'handler', '接口', '路由'],
35
36
  },
36
37
  recommendedSkills: ['tdd-guide', 'code-review'],
37
- requiredArtifacts: ['skill-plan.md', 'api-contract.md'],
38
+ requiredArtifacts: ['skill-plan.md', 'mini-prd.md', 'api-contract.md'],
38
39
  requiredVerification: ['contract-check'],
39
40
  },
40
41
  db: {
@@ -61,18 +62,44 @@ export const DEFAULT_SKILL_ROUTING_POLICY = {
61
62
  docs: {
62
63
  detect: {
63
64
  files: ['docs/**', '**/*.md'],
64
- keywords: ['docs', 'documentation', 'readme', '文档'],
65
+ keywords: ['docs', 'documentation', 'document', 'readme', '文档'],
65
66
  },
66
- recommendedSkills: ['workflow-guide'],
67
- requiredArtifacts: ['skill-plan.md'],
67
+ recommendedSkills: ['update-docs', 'workflow-guide'],
68
+ requiredArtifacts: ['skill-plan.md', 'skill-evidence.md', 'docs-impact.md'],
69
+ },
70
+ review: {
71
+ detect: {
72
+ files: ['.github/PULL_REQUEST_TEMPLATE.md', '.github/pull_request_template.md'],
73
+ keywords: ['review', 'code review', 'pull request', 'pr', 'merge request', 'changes reviewed', '审查', '评审'],
74
+ },
75
+ requiredSkills: ['code-reviewer'],
76
+ recommendedSkills: ['pr-creator'],
77
+ requiredArtifacts: ['skill-plan.md', 'skill-evidence.md', 'review.md'],
78
+ requiredVerification: ['review-evidence'],
68
79
  },
69
80
  release: {
70
81
  detect: {
71
82
  files: ['CHANGELOG.md', 'package.json', '.github/workflows/**'],
72
- keywords: ['release', 'ship', 'publish', 'deploy', '发版', '发布', '部署'],
83
+ keywords: ['release', 'ship', 'publish', 'deploy', 'pull request', 'pr', '发版', '发布', '部署'],
84
+ },
85
+ requiredSkills: ['code-reviewer'],
86
+ recommendedSkills: ['pr-creator', 'fix', 'verification', 'code-review'],
87
+ requiredArtifacts: ['skill-plan.md', 'skill-evidence.md', 'review.md', 'summary.md'],
88
+ requiredVerification: ['preflight'],
89
+ },
90
+ skillDiscovery: {
91
+ detect: {
92
+ keywords: ['skill', 'capability', 'missing capability', 'install skill', 'find skill'],
93
+ },
94
+ recommendedSkills: ['find-skills'],
95
+ requiredArtifacts: ['skill-plan.md', 'skill-evidence.md'],
96
+ },
97
+ fullstackPrototype: {
98
+ detect: {
99
+ keywords: ['fullstack', 'full-stack', 'mvp', 'prototype', 'next.js', 'react api', 'node api'],
73
100
  },
74
- recommendedSkills: ['verification', 'code-review'],
75
- requiredArtifacts: ['skill-plan.md', 'review.md', 'summary.md'],
101
+ recommendedSkills: ['fullstack-developer'],
102
+ requiredArtifacts: ['skill-plan.md', 'skill-evidence.md', 'mini-prd.md', 'api-contract.md'],
76
103
  requiredVerification: ['preflight'],
77
104
  },
78
105
  },
@@ -1 +1 @@
1
- {"version":3,"file":"SkillPolicy.js","sourceRoot":"","sources":["../../../src/skills/routing/SkillPolicy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SkillPolicy.js","sourceRoot":"","sources":["../../../src/skills/routing/SkillPolicy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { GovernancePackId } from './GovernanceTemplatePacks.js';
2
+ export interface GovernanceLockFile {
3
+ version: 1;
4
+ scalePackage: '@hongmaple0820/scale-engine';
5
+ scaleVersion: string;
6
+ pack: GovernancePackId;
7
+ packVersion: number;
8
+ generatedAt: string;
9
+ files: GovernanceLockEntry[];
10
+ }
11
+ export interface GovernanceLockEntry {
12
+ path: string;
13
+ sha256: string;
14
+ owned: boolean;
15
+ }
16
+ export interface GovernanceLockInput {
17
+ pack: GovernancePackId;
18
+ packVersion: number;
19
+ scaleVersion: string;
20
+ files: Array<{
21
+ path: string;
22
+ owned: boolean;
23
+ sha256?: string;
24
+ }>;
25
+ }
26
+ export interface GovernanceDriftReport {
27
+ lockExists: boolean;
28
+ missing: GovernanceLockEntry[];
29
+ changed: GovernanceLockEntry[];
30
+ clean: GovernanceLockEntry[];
31
+ }
32
+ export declare function writeGovernanceLock(projectDir: string, input: GovernanceLockInput): GovernanceLockFile;
33
+ export declare function readGovernanceLock(projectDir: string): GovernanceLockFile | null;
34
+ export declare function computeGovernanceDrift(projectDir: string): GovernanceDriftReport;
35
+ export declare function governanceLockPath(projectDir: string): string;
@@ -0,0 +1,58 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
3
+ import { dirname, join } from 'node:path';
4
+ export function writeGovernanceLock(projectDir, input) {
5
+ const lock = {
6
+ version: 1,
7
+ scalePackage: '@hongmaple0820/scale-engine',
8
+ scaleVersion: input.scaleVersion,
9
+ pack: input.pack,
10
+ packVersion: input.packVersion,
11
+ generatedAt: new Date().toISOString(),
12
+ files: input.files
13
+ .filter(file => file.sha256 || existsSync(join(projectDir, file.path)))
14
+ .map(file => ({
15
+ path: file.path,
16
+ sha256: file.sha256 ?? hashFile(join(projectDir, file.path)),
17
+ owned: file.owned,
18
+ })),
19
+ };
20
+ const target = governanceLockPath(projectDir);
21
+ mkdirSync(dirname(target), { recursive: true });
22
+ writeFileSync(target, JSON.stringify(lock, null, 2) + '\n', 'utf-8');
23
+ return lock;
24
+ }
25
+ export function readGovernanceLock(projectDir) {
26
+ const target = governanceLockPath(projectDir);
27
+ if (!existsSync(target))
28
+ return null;
29
+ return JSON.parse(readFileSync(target, 'utf-8'));
30
+ }
31
+ export function computeGovernanceDrift(projectDir) {
32
+ const lock = readGovernanceLock(projectDir);
33
+ if (!lock)
34
+ return { lockExists: false, missing: [], changed: [], clean: [] };
35
+ const missing = [];
36
+ const changed = [];
37
+ const clean = [];
38
+ for (const entry of lock.files.filter(file => file.owned)) {
39
+ const target = join(projectDir, entry.path);
40
+ if (!existsSync(target)) {
41
+ missing.push(entry);
42
+ continue;
43
+ }
44
+ const current = hashFile(target);
45
+ if (current !== entry.sha256)
46
+ changed.push(entry);
47
+ else
48
+ clean.push(entry);
49
+ }
50
+ return { lockExists: true, missing, changed, clean };
51
+ }
52
+ export function governanceLockPath(projectDir) {
53
+ return join(projectDir, '.scale', 'governance.lock.json');
54
+ }
55
+ function hashFile(path) {
56
+ return createHash('sha256').update(readFileSync(path)).digest('hex');
57
+ }
58
+ //# sourceMappingURL=GovernanceLock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GovernanceLock.js","sourceRoot":"","sources":["../../src/workflow/GovernanceLock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { GovernanceMode } from './GovernanceTemplates.js';
2
+ import type { VerificationService } from './VerificationProfile.js';
3
+ export type GovernancePackId = 'standard' | 'project-scaffold' | 'moe-workspace' | 'go-service-matrix' | 'node-library' | 'frontend-app';
4
+ export interface GovernanceGeneratedFile {
5
+ path: string;
6
+ kind: 'doc' | 'template' | 'script' | 'config';
7
+ owned: boolean;
8
+ content: string;
9
+ }
10
+ export interface GovernancePackModeConfig {
11
+ artifactGate: 'off' | 'warn' | 'block';
12
+ skillRoutingMode: 'off' | 'warn' | 'block';
13
+ }
14
+ export interface GovernanceTemplatePack {
15
+ id: GovernancePackId;
16
+ version: number;
17
+ description: string;
18
+ modeDefaults: Record<GovernanceMode, GovernancePackModeConfig>;
19
+ defaultServices?: VerificationService[];
20
+ exclude?: string[];
21
+ generatedFiles: GovernanceGeneratedFile[];
22
+ }
23
+ export declare function listGovernanceTemplatePacks(): GovernanceTemplatePack[];
24
+ export declare function resolveGovernanceTemplatePack(id: string | undefined): GovernanceTemplatePack;
@@ -0,0 +1,128 @@
1
+ import { workspaceTopologyTemplate } from './WorkspaceTopology.js';
2
+ export function listGovernanceTemplatePacks() {
3
+ return PACKS;
4
+ }
5
+ export function resolveGovernanceTemplatePack(id) {
6
+ const normalized = (id || 'standard');
7
+ const pack = PACKS.find(candidate => candidate.id === normalized);
8
+ if (!pack) {
9
+ const supported = PACKS.map(candidate => candidate.id).join(', ');
10
+ throw new Error(`Unknown governance pack "${id}". Supported packs: ${supported}`);
11
+ }
12
+ return pack;
13
+ }
14
+ const modeDefaults = {
15
+ minimal: { artifactGate: 'off', skillRoutingMode: 'warn' },
16
+ standard: { artifactGate: 'warn', skillRoutingMode: 'warn' },
17
+ critical: { artifactGate: 'block', skillRoutingMode: 'block' },
18
+ };
19
+ const PACKS = [
20
+ {
21
+ id: 'standard',
22
+ version: 1,
23
+ description: 'Generic SCALE governance output.',
24
+ modeDefaults,
25
+ generatedFiles: [],
26
+ },
27
+ {
28
+ id: 'project-scaffold',
29
+ version: 1,
30
+ description: 'Reference project governance scaffold with workflow wrappers.',
31
+ modeDefaults,
32
+ generatedFiles: [
33
+ { path: 'scripts/workflow/new-task.sh', kind: 'script', owned: true, content: workflowWrapper('new-task', 'create-prd') },
34
+ { path: 'scripts/workflow/explore.sh', kind: 'script', owned: true, content: workflowWrapper('explore', 'skill scan') },
35
+ { path: 'scripts/workflow/resume.sh', kind: 'script', owned: true, content: workflowWrapper('resume', 'status') },
36
+ { path: 'scripts/workflow/verify.sh', kind: 'script', owned: true, content: workflowWrapper('verify', 'preflight') },
37
+ { path: 'scripts/gates/all.sh', kind: 'script', owned: true, content: workflowWrapper('gates/all', 'preflight --service all') },
38
+ ],
39
+ },
40
+ {
41
+ id: 'moe-workspace',
42
+ version: 1,
43
+ description: 'MOE multi-repository workspace governance with explicit topology and finish policy.',
44
+ modeDefaults,
45
+ generatedFiles: [
46
+ { path: '.scale/workspace.json', kind: 'config', owned: true, content: workspaceTopologyTemplate({ topology: 'moe' }) },
47
+ { path: 'docs/workflow/moe-workspace.md', kind: 'doc', owned: true, content: moeWorkspaceGuide() },
48
+ ],
49
+ },
50
+ {
51
+ id: 'go-service-matrix',
52
+ version: 1,
53
+ description: 'Go multi-service repository governance.',
54
+ modeDefaults,
55
+ defaultServices: [
56
+ { name: 'netdisk', path: 'amdox-go-netdisk', type: 'go', required: true },
57
+ { name: 'auth', path: 'amdox-go-auth', type: 'go', required: true },
58
+ { name: 'gateway', path: 'amdox-go-gateway', type: 'go', required: true },
59
+ ],
60
+ exclude: ['OpenList', 'gfast', 'mcp-zero'],
61
+ generatedFiles: [],
62
+ },
63
+ {
64
+ id: 'node-library',
65
+ version: 1,
66
+ description: 'Node/npm library governance with build, test, diff, and pack checks.',
67
+ modeDefaults,
68
+ generatedFiles: [],
69
+ },
70
+ {
71
+ id: 'frontend-app',
72
+ version: 1,
73
+ description: 'Frontend app governance with UI and visual evidence requirements.',
74
+ modeDefaults,
75
+ generatedFiles: [],
76
+ },
77
+ ];
78
+ function workflowWrapper(label, scaleCommand) {
79
+ return `#!/usr/bin/env bash
80
+ set -euo pipefail
81
+
82
+ run_scale() {
83
+ if command -v scale >/dev/null 2>&1; then
84
+ scale "$@"
85
+ else
86
+ npx @hongmaple0820/scale-engine@latest "$@"
87
+ fi
88
+ }
89
+
90
+ echo "[scale-engine] compatibility wrapper: scripts/${label}.sh -> scale ${scaleCommand}" >&2
91
+ run_scale ${scaleCommand} "$@"
92
+ `;
93
+ }
94
+ function moeWorkspaceGuide() {
95
+ return `# MOE Workspace Governance
96
+
97
+ MOE workspaces are multi-repository engineering environments where the root checkout, nested repositories, submodules, and temporary agent worktrees must be finished as one coordinated unit.
98
+
99
+ ## Source Of Truth
100
+
101
+ - \`.scale/workspace.json\`: repository topology, branch policy, and finish policy.
102
+ - \`.scale/verification.json\`: service matrix and verification commands.
103
+ - \`docs/worklog/tasks/<task>/\`: task artifacts, verification evidence, and cross-repository impact.
104
+
105
+ ## Required Finish Checks
106
+
107
+ Before deleting an agent worktree or reporting a task complete:
108
+
109
+ 1. Run \`scale workspace map --json\` to confirm the expected repositories are known.
110
+ 2. Run \`scale workspace finish --json\` to check root and child repository state.
111
+ 3. Commit and push child repository work in each repository's own remote.
112
+ 4. Review whether the root repository needs a submodule pointer, lock file, integration metadata, or documentation update.
113
+ 5. Run service-aware verification for every touched service.
114
+
115
+ ## Branch Naming
116
+
117
+ Use readable branches with author/platform/scope/date context, for example:
118
+
119
+ \`\`\`text
120
+ feature/maple-codex-storage-policy-0515
121
+ fix/zpei-claude-upload-retry-0515
122
+ codex/moe-workspace-governance-0515
123
+ \`\`\`
124
+
125
+ Protected branches such as \`main\` and \`master\` require explicit human authorization before direct pushes.
126
+ `;
127
+ }
128
+ //# sourceMappingURL=GovernanceTemplatePacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GovernanceTemplatePacks.js","sourceRoot":"","sources":["../../src/workflow/GovernanceTemplatePacks.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,13 @@
1
+ import { type GovernancePackId } from './GovernanceTemplatePacks.js';
2
+ import type { VerificationService } from './VerificationProfile.js';
1
3
  export type GovernanceMode = 'minimal' | 'standard' | 'critical';
2
- export type GovernanceArtifactTemplateName = 'explore.md' | 'mini-prd.md' | 'skill-plan.md' | 'ui-spec.md' | 'visual-review.md' | 'api-contract.md' | 'security-review.md' | 'db-change-plan.md' | 'e2e-plan.md' | 'plan.md' | 'verification.md' | 'review.md' | 'summary.md';
4
+ export type GovernanceArtifactTemplateName = 'explore.md' | 'mini-prd.md' | 'skill-plan.md' | 'skill-evidence.md' | 'ui-spec.md' | 'visual-review.md' | 'api-contract.md' | 'docs-impact.md' | 'security-review.md' | 'db-change-plan.md' | 'e2e-plan.md' | 'plan.md' | 'verification.md' | 'review.md' | 'summary.md';
3
5
  export interface GovernanceTemplateOptions {
4
6
  mode?: GovernanceMode;
5
7
  projectName?: string;
8
+ pack?: GovernancePackId | string;
9
+ services?: VerificationService[];
10
+ exclude?: string[];
6
11
  }
7
12
  export interface GovernanceTemplateResult {
8
13
  created: string[];