@hongmaple0820/scale-engine 0.12.3 → 0.14.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.
- package/dist/adapters/AiderAdapter.js +1 -1
- package/dist/adapters/AiderAdapter.js.map +1 -1
- package/dist/adapters/ClaudeCodeAdapter.d.ts +1 -0
- package/dist/adapters/ClaudeCodeAdapter.js +5 -3
- package/dist/adapters/ClaudeCodeAdapter.js.map +1 -1
- package/dist/adapters/CodexAdapter.js +1 -1
- package/dist/adapters/CodexAdapter.js.map +1 -1
- package/dist/adapters/CursorAdapter.js +1 -1
- package/dist/adapters/CursorAdapter.js.map +1 -1
- package/dist/adapters/DeepSeekTuiAdapter.js +5 -3
- package/dist/adapters/DeepSeekTuiAdapter.js.map +1 -1
- package/dist/adapters/DoubaoAdapter.js +1 -1
- package/dist/adapters/DoubaoAdapter.js.map +1 -1
- package/dist/adapters/GeminiAdapter.js +1 -1
- package/dist/adapters/GeminiAdapter.js.map +1 -1
- package/dist/adapters/HermesAdapter.js +1 -1
- package/dist/adapters/HermesAdapter.js.map +1 -1
- package/dist/adapters/KimiAdapter.js +1 -1
- package/dist/adapters/KimiAdapter.js.map +1 -1
- package/dist/adapters/KiroAdapter.d.ts +14 -0
- package/dist/adapters/KiroAdapter.js +180 -0
- package/dist/adapters/KiroAdapter.js.map +1 -0
- package/dist/adapters/OpenClawAdapter.js +1 -1
- package/dist/adapters/OpenClawAdapter.js.map +1 -1
- package/dist/adapters/OpenCodeAdapter.js +1 -1
- package/dist/adapters/OpenCodeAdapter.js.map +1 -1
- package/dist/adapters/QCoderAdapter.js +1 -1
- package/dist/adapters/QCoderAdapter.js.map +1 -1
- package/dist/adapters/TraeAdapter.js +1 -1
- package/dist/adapters/TraeAdapter.js.map +1 -1
- package/dist/adapters/VSCAdapter.js +1 -1
- package/dist/adapters/VSCAdapter.js.map +1 -1
- package/dist/adapters/WindsurfAdapter.js +1 -1
- package/dist/adapters/WindsurfAdapter.js.map +1 -1
- package/dist/adapters/WorkBuddyAdapter.js +1 -1
- package/dist/adapters/WorkBuddyAdapter.js.map +1 -1
- package/dist/adapters/index.d.ts +1 -0
- package/dist/adapters/index.js +3 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/api/cli.js +690 -9
- package/dist/api/cli.js.map +1 -1
- package/dist/api/doctor.d.ts +13 -0
- package/dist/api/doctor.js +261 -5
- package/dist/api/doctor.js.map +1 -1
- package/dist/api/quickstart.d.ts +20 -1
- package/dist/api/quickstart.js +104 -3
- package/dist/api/quickstart.js.map +1 -1
- package/dist/artifact/types.d.ts +16 -2
- package/dist/artifact/types.js.map +1 -1
- package/dist/cli/phaseCommands.d.ts +66 -0
- package/dist/cli/phaseCommands.js +695 -51
- package/dist/cli/phaseCommands.js.map +1 -1
- package/dist/guardrails/detectors.d.ts +9 -0
- package/dist/guardrails/detectors.js +102 -0
- package/dist/guardrails/detectors.js.map +1 -1
- package/dist/hooks/HookGeneratorEnhanced.js +29 -0
- package/dist/hooks/HookGeneratorEnhanced.js.map +1 -1
- package/dist/hooks/WorkflowHooksManager.js +20 -1
- package/dist/hooks/WorkflowHooksManager.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/output/BrandThemeLoader.d.ts +54 -0
- package/dist/output/BrandThemeLoader.js +340 -0
- package/dist/output/BrandThemeLoader.js.map +1 -0
- package/dist/output/HTMLDocumentRenderer.d.ts +83 -0
- package/dist/output/HTMLDocumentRenderer.js +717 -0
- package/dist/output/HTMLDocumentRenderer.js.map +1 -0
- package/dist/output/UIPrototypeRenderer.d.ts +61 -0
- package/dist/output/UIPrototypeRenderer.js +500 -0
- package/dist/output/UIPrototypeRenderer.js.map +1 -0
- package/dist/output/index.d.ts +6 -0
- package/dist/output/index.js +6 -0
- package/dist/output/index.js.map +1 -0
- package/dist/skills/ExternalSkills.js +2 -0
- package/dist/skills/ExternalSkills.js.map +1 -1
- package/dist/skills/SkillCatalog.d.ts +13 -0
- package/dist/skills/SkillCatalog.js +184 -0
- package/dist/skills/SkillCatalog.js.map +1 -0
- package/dist/skills/SkillDiscovery.js +2 -1
- package/dist/skills/SkillDiscovery.js.map +1 -1
- package/dist/skills/SkillDoctor.d.ts +37 -0
- package/dist/skills/SkillDoctor.js +90 -0
- package/dist/skills/SkillDoctor.js.map +1 -0
- package/dist/skills/index.d.ts +2 -0
- package/dist/skills/index.js +2 -0
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/routing/SkillGate.d.ts +12 -0
- package/dist/skills/routing/SkillGate.js +93 -0
- package/dist/skills/routing/SkillGate.js.map +1 -0
- package/dist/skills/routing/SkillPlanner.d.ts +8 -0
- package/dist/skills/routing/SkillPlanner.js +91 -0
- package/dist/skills/routing/SkillPlanner.js.map +1 -0
- package/dist/skills/routing/SkillPolicy.d.ts +6 -0
- package/dist/skills/routing/SkillPolicy.js +173 -0
- package/dist/skills/routing/SkillPolicy.js.map +1 -0
- package/dist/skills/routing/SkillRoutingTypes.d.ts +72 -0
- package/dist/skills/routing/SkillRoutingTypes.js +2 -0
- package/dist/skills/routing/SkillRoutingTypes.js.map +1 -0
- package/dist/skills/routing/TaskIntentClassifier.d.ts +6 -0
- package/dist/skills/routing/TaskIntentClassifier.js +79 -0
- package/dist/skills/routing/TaskIntentClassifier.js.map +1 -0
- package/dist/skills/routing/index.d.ts +5 -0
- package/dist/skills/routing/index.js +6 -0
- package/dist/skills/routing/index.js.map +1 -0
- package/dist/workflow/GovernanceLock.d.ts +35 -0
- package/dist/workflow/GovernanceLock.js +58 -0
- package/dist/workflow/GovernanceLock.js.map +1 -0
- package/dist/workflow/GovernanceTemplatePacks.d.ts +24 -0
- package/dist/workflow/GovernanceTemplatePacks.js +83 -0
- package/dist/workflow/GovernanceTemplatePacks.js.map +1 -0
- package/dist/workflow/GovernanceTemplates.d.ts +17 -0
- package/dist/workflow/GovernanceTemplates.js +686 -0
- package/dist/workflow/GovernanceTemplates.js.map +1 -0
- package/dist/workflow/PhaseMarkerTracker.d.ts +63 -0
- package/dist/workflow/PhaseMarkerTracker.js +291 -0
- package/dist/workflow/PhaseMarkerTracker.js.map +1 -0
- package/dist/workflow/SessionStateTracker.d.ts +74 -0
- package/dist/workflow/SessionStateTracker.js +270 -0
- package/dist/workflow/SessionStateTracker.js.map +1 -0
- package/dist/workflow/TaskArtifactScaffolder.d.ts +47 -0
- package/dist/workflow/TaskArtifactScaffolder.js +237 -0
- package/dist/workflow/TaskArtifactScaffolder.js.map +1 -0
- package/dist/workflow/TaskMetricsStore.d.ts +49 -0
- package/dist/workflow/TaskMetricsStore.js +149 -0
- package/dist/workflow/TaskMetricsStore.js.map +1 -0
- package/dist/workflow/VerificationCommands.d.ts +2 -0
- package/dist/workflow/VerificationCommands.js +8 -12
- package/dist/workflow/VerificationCommands.js.map +1 -1
- package/dist/workflow/VerificationProfile.d.ts +56 -0
- package/dist/workflow/VerificationProfile.js +170 -0
- package/dist/workflow/VerificationProfile.js.map +1 -0
- package/dist/workflow/WorkflowArtifactWriter.d.ts +113 -0
- package/dist/workflow/WorkflowArtifactWriter.js +241 -0
- package/dist/workflow/WorkflowArtifactWriter.js.map +1 -0
- package/dist/workflow/WorkflowEngine.d.ts +26 -5
- package/dist/workflow/WorkflowEngine.js +38 -9
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/dist/workflow/WorkspaceLifecycle.d.ts +51 -0
- package/dist/workflow/WorkspaceLifecycle.js +259 -0
- package/dist/workflow/WorkspaceLifecycle.js.map +1 -0
- package/dist/workflow/autonomous/AutonomousDevLoop.d.ts +88 -0
- package/dist/workflow/autonomous/AutonomousDevLoop.js +381 -0
- package/dist/workflow/autonomous/AutonomousDevLoop.js.map +1 -0
- package/dist/workflow/autonomous/WorklogManager.d.ts +50 -0
- package/dist/workflow/autonomous/WorklogManager.js +264 -0
- package/dist/workflow/autonomous/WorklogManager.js.map +1 -0
- package/dist/workflow/autonomous/index.d.ts +2 -0
- package/dist/workflow/autonomous/index.js +4 -0
- package/dist/workflow/autonomous/index.js.map +1 -0
- package/dist/workflow/gates/GateSystem.d.ts +12 -3
- package/dist/workflow/gates/GateSystem.js +185 -41
- package/dist/workflow/gates/GateSystem.js.map +1 -1
- package/dist/workflow/index.d.ts +10 -0
- package/dist/workflow/index.js +10 -0
- package/dist/workflow/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,686 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { skillRoutingPolicyTemplate } from '../skills/routing/SkillPolicy.js';
|
|
4
|
+
import { readGovernanceLock, writeGovernanceLock } from './GovernanceLock.js';
|
|
5
|
+
import { resolveGovernanceTemplatePack, } from './GovernanceTemplatePacks.js';
|
|
6
|
+
export function writeGovernanceTemplates(projectDir = process.cwd(), options = {}) {
|
|
7
|
+
const mode = options.mode ?? 'standard';
|
|
8
|
+
const projectName = options.projectName ?? 'Project';
|
|
9
|
+
const pack = resolveGovernanceTemplatePack(options.pack);
|
|
10
|
+
const packMode = pack.modeDefaults[mode];
|
|
11
|
+
const services = options.services ?? pack.defaultServices ?? [];
|
|
12
|
+
const exclude = options.exclude ?? pack.exclude ?? ['node_modules', 'dist', 'tmp', 'vendor'];
|
|
13
|
+
const result = { created: [], skipped: [] };
|
|
14
|
+
const lockFiles = new Map();
|
|
15
|
+
for (const file of readGovernanceLock(projectDir)?.files ?? []) {
|
|
16
|
+
lockFiles.set(file.path, file);
|
|
17
|
+
}
|
|
18
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/README.md', workflowReadme(projectName, mode, pack.id));
|
|
19
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/explore.md', governanceTemplateContent('explore.md'));
|
|
20
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/mini-prd.md', governanceTemplateContent('mini-prd.md'));
|
|
21
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/skill-plan.md', governanceTemplateContent('skill-plan.md'));
|
|
22
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/skill-evidence.md', governanceTemplateContent('skill-evidence.md'));
|
|
23
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/ui-spec.md', governanceTemplateContent('ui-spec.md'));
|
|
24
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/visual-review.md', governanceTemplateContent('visual-review.md'));
|
|
25
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/api-contract.md', governanceTemplateContent('api-contract.md'));
|
|
26
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/docs-impact.md', governanceTemplateContent('docs-impact.md'));
|
|
27
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/security-review.md', governanceTemplateContent('security-review.md'));
|
|
28
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/db-change-plan.md', governanceTemplateContent('db-change-plan.md'));
|
|
29
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/e2e-plan.md', governanceTemplateContent('e2e-plan.md'));
|
|
30
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/plan.md', governanceTemplateContent('plan.md'));
|
|
31
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/verification.md', governanceTemplateContent('verification.md'));
|
|
32
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/review.md', governanceTemplateContent('review.md'));
|
|
33
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/summary.md', governanceTemplateContent('summary.md'));
|
|
34
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/github-actions-scale-preflight.yml', githubActionsPreflightTemplate());
|
|
35
|
+
writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/pre-push-scale-preflight.sh', prePushPreflightTemplate());
|
|
36
|
+
writeTracked(result, lockFiles, projectDir, 'docs/worklog/metrics.md', metricsTemplate());
|
|
37
|
+
writeTracked(result, lockFiles, projectDir, '.scale/verification.json', verificationMatrixTemplate(mode, {
|
|
38
|
+
services,
|
|
39
|
+
exclude,
|
|
40
|
+
artifactGate: packMode.artifactGate,
|
|
41
|
+
}));
|
|
42
|
+
writeTracked(result, lockFiles, projectDir, '.scale/skills.json', skillRoutingPolicyTemplate(mode));
|
|
43
|
+
for (const file of pack.generatedFiles) {
|
|
44
|
+
writePackGeneratedFile(result, lockFiles, projectDir, pack.id, pack.version, file);
|
|
45
|
+
}
|
|
46
|
+
const lockPath = join(projectDir, '.scale', 'governance.lock.json');
|
|
47
|
+
writeGovernanceLock(projectDir, {
|
|
48
|
+
pack: pack.id,
|
|
49
|
+
packVersion: pack.version,
|
|
50
|
+
scaleVersion: packageVersion(),
|
|
51
|
+
files: [...lockFiles.values()],
|
|
52
|
+
});
|
|
53
|
+
result.created.push(lockPath);
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
export function governanceTemplateContent(name) {
|
|
57
|
+
switch (name) {
|
|
58
|
+
case 'explore.md': return exploreTemplate();
|
|
59
|
+
case 'mini-prd.md': return miniPrdTemplate();
|
|
60
|
+
case 'skill-plan.md': return skillPlanTemplate();
|
|
61
|
+
case 'skill-evidence.md': return skillEvidenceTemplate();
|
|
62
|
+
case 'ui-spec.md': return uiSpecTemplate();
|
|
63
|
+
case 'visual-review.md': return visualReviewTemplate();
|
|
64
|
+
case 'api-contract.md': return apiContractTemplate();
|
|
65
|
+
case 'docs-impact.md': return docsImpactTemplate();
|
|
66
|
+
case 'security-review.md': return securityReviewTemplate();
|
|
67
|
+
case 'db-change-plan.md': return dbChangePlanTemplate();
|
|
68
|
+
case 'e2e-plan.md': return e2ePlanTemplate();
|
|
69
|
+
case 'plan.md': return planTemplate();
|
|
70
|
+
case 'verification.md': return verificationTemplate();
|
|
71
|
+
case 'review.md': return reviewTemplate();
|
|
72
|
+
case 'summary.md': return summaryTemplate();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function writeIfMissing(result, path, content) {
|
|
76
|
+
if (existsSync(path)) {
|
|
77
|
+
result.skipped.push(path);
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
const dir = path.split(/[\\/]/).slice(0, -1).join('/');
|
|
81
|
+
if (dir && !existsSync(dir))
|
|
82
|
+
mkdirSync(dir, { recursive: true });
|
|
83
|
+
writeFileSync(path, content, 'utf-8');
|
|
84
|
+
result.created.push(path);
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
function writeTracked(result, lockFiles, projectDir, relativePath, content) {
|
|
88
|
+
const created = writeIfMissing(result, join(projectDir, relativePath), content);
|
|
89
|
+
if (created)
|
|
90
|
+
lockFiles.set(relativePath, { path: relativePath, owned: true });
|
|
91
|
+
}
|
|
92
|
+
function writePackGeneratedFile(result, lockFiles, projectDir, packId, packVersion, file) {
|
|
93
|
+
const content = shouldUseGeneratedHeader(file)
|
|
94
|
+
? generatedHeader(packId, packVersion) + file.content
|
|
95
|
+
: file.content;
|
|
96
|
+
const created = writeIfMissing(result, join(projectDir, file.path), content);
|
|
97
|
+
if (created)
|
|
98
|
+
lockFiles.set(file.path, { path: file.path, owned: file.owned });
|
|
99
|
+
}
|
|
100
|
+
function shouldUseGeneratedHeader(file) {
|
|
101
|
+
return file.kind === 'doc' || file.kind === 'template' || file.kind === 'script';
|
|
102
|
+
}
|
|
103
|
+
function generatedHeader(packId, packVersion) {
|
|
104
|
+
return `# Generated by scale-engine governance pack: ${packId}@${packVersion}
|
|
105
|
+
# Edit policy: prefer editing the pack in scale-engine; local overrides should be documented.
|
|
106
|
+
|
|
107
|
+
`;
|
|
108
|
+
}
|
|
109
|
+
function workflowReadme(projectName, mode, packId = 'standard') {
|
|
110
|
+
return `# ${projectName} Workflow
|
|
111
|
+
|
|
112
|
+
Governance mode: ${mode}
|
|
113
|
+
Governance pack: ${packId}
|
|
114
|
+
|
|
115
|
+
## Task Levels
|
|
116
|
+
|
|
117
|
+
| Level | Use for | Required artifacts |
|
|
118
|
+
| --- | --- | --- |
|
|
119
|
+
| S | typo, comments, small local edits | relevant validation only |
|
|
120
|
+
| M | bug fixes, new APIs, 2-5 files | explore, skill plan, plan, verification, review, summary |
|
|
121
|
+
| L | cross-module or architecture changes | full artifacts plus human confirmation |
|
|
122
|
+
| CRITICAL | auth, permissions, migrations, production config | rollback plan, security review, full verification |
|
|
123
|
+
|
|
124
|
+
## Standard Task Directory
|
|
125
|
+
|
|
126
|
+
\`\`\`text
|
|
127
|
+
docs/worklog/tasks/<yyyy-mm-dd>-<task-slug>/
|
|
128
|
+
├── explore.md
|
|
129
|
+
├── mini-prd.md
|
|
130
|
+
├── plan.md
|
|
131
|
+
├── verification.md
|
|
132
|
+
├── review.md
|
|
133
|
+
└── summary.md
|
|
134
|
+
\`\`\`
|
|
135
|
+
|
|
136
|
+
## Verification
|
|
137
|
+
|
|
138
|
+
Use service-aware verification when configured:
|
|
139
|
+
|
|
140
|
+
\`\`\`bash
|
|
141
|
+
scale preflight --service all
|
|
142
|
+
scale preflight --service all --preflight-profile full
|
|
143
|
+
scale verify <task-id> --profile default
|
|
144
|
+
scale verify <task-id> --service <service-name>
|
|
145
|
+
scale verify <task-id> --artifact-gate warn
|
|
146
|
+
scale verify <task-id> --artifact-gate block
|
|
147
|
+
scale verify <task-id> --require-installed-skills
|
|
148
|
+
scale task-artifacts check --dir docs/worklog/tasks/<task-dir> --level L
|
|
149
|
+
\`\`\`
|
|
150
|
+
|
|
151
|
+
Keep \`.scale/verification.json\` as the source of truth for profiles and service commands.
|
|
152
|
+
Keep \`.scale/skills.json\` as the source of truth for active skill routing policy.
|
|
153
|
+
Use \`artifactGate: "warn"\` while introducing the workflow, then move M/L/CRITICAL work to \`"block"\` once templates and local gates are stable.
|
|
154
|
+
|
|
155
|
+
## Active Skill Routing
|
|
156
|
+
|
|
157
|
+
SCALE plans required skills from task description, service selection, and changed files. UI/API work requires a Mini-PRD plus domain evidence such as \`ui-spec.md\`, \`visual-review.md\`, or \`api-contract.md\`. Security and database work require explicit review or rollback artifacts.
|
|
158
|
+
|
|
159
|
+
When a task records \`servicesTouched\`, \`scale verify <task-id>\` uses those services automatically. You can still override selection with \`--service all\`, \`--service api\`, or \`--service api,gateway\`.
|
|
160
|
+
|
|
161
|
+
Before M/L work, check whether required workflow skills are physically installed:
|
|
162
|
+
|
|
163
|
+
\`\`\`bash
|
|
164
|
+
scale skill doctor --json
|
|
165
|
+
scale skill check --require-installed --json
|
|
166
|
+
\`\`\`
|
|
167
|
+
|
|
168
|
+
## Workspace Lifecycle
|
|
169
|
+
|
|
170
|
+
Before finishing an agent-created branch or deleting a temporary worktree, inspect root and child repository state:
|
|
171
|
+
|
|
172
|
+
\`\`\`bash
|
|
173
|
+
scale workspace status --json
|
|
174
|
+
scale workspace finish --json
|
|
175
|
+
scale workspace cleanup --dir <temporary-worktree> --dry-run --json
|
|
176
|
+
scale workspace cleanup --dir <temporary-worktree> --apply --confirm <branch-or-head> --json
|
|
177
|
+
\`\`\`
|
|
178
|
+
|
|
179
|
+
Do not remove a temporary worktree while any submodule or nested repository has uncommitted or unpushed work. Child repositories must be committed and reviewed in their own remotes, then the root repository can record any required pointer or governance updates. Cleanup defaults to dry-run. Applying cleanup requires the reported confirmation token, normally the temporary branch name.
|
|
180
|
+
|
|
181
|
+
## Automation Templates
|
|
182
|
+
|
|
183
|
+
Optional automation templates are generated under \`docs/workflow/templates/\`:
|
|
184
|
+
|
|
185
|
+
- \`github-actions-scale-preflight.yml\`: CI workflow that runs \`scale preflight --service all --preflight-profile ci\`.
|
|
186
|
+
- \`pre-push-scale-preflight.sh\`: local pre-push hook template that runs the default quick preflight.
|
|
187
|
+
|
|
188
|
+
Keep these templates advisory until \`scale preflight --service all --preflight-profile full\` is reliable locally for the project.
|
|
189
|
+
`;
|
|
190
|
+
}
|
|
191
|
+
function exploreTemplate() {
|
|
192
|
+
return `# Explore
|
|
193
|
+
|
|
194
|
+
## Files Read
|
|
195
|
+
|
|
196
|
+
- TBD
|
|
197
|
+
|
|
198
|
+
## Current Behavior
|
|
199
|
+
|
|
200
|
+
TBD
|
|
201
|
+
|
|
202
|
+
## Main Conflict
|
|
203
|
+
|
|
204
|
+
TBD
|
|
205
|
+
|
|
206
|
+
## Affected Modules
|
|
207
|
+
|
|
208
|
+
TBD
|
|
209
|
+
|
|
210
|
+
## Evidence
|
|
211
|
+
TBD
|
|
212
|
+
`;
|
|
213
|
+
}
|
|
214
|
+
function miniPrdTemplate() {
|
|
215
|
+
return `# Mini-PRD
|
|
216
|
+
|
|
217
|
+
## Background
|
|
218
|
+
|
|
219
|
+
TBD
|
|
220
|
+
|
|
221
|
+
## Target Users
|
|
222
|
+
|
|
223
|
+
TBD
|
|
224
|
+
|
|
225
|
+
## Core Scenario
|
|
226
|
+
|
|
227
|
+
TBD
|
|
228
|
+
|
|
229
|
+
## Non-Goals
|
|
230
|
+
|
|
231
|
+
TBD
|
|
232
|
+
|
|
233
|
+
## User Path
|
|
234
|
+
|
|
235
|
+
TBD
|
|
236
|
+
|
|
237
|
+
## Permission Rules
|
|
238
|
+
|
|
239
|
+
TBD
|
|
240
|
+
|
|
241
|
+
## Data Impact
|
|
242
|
+
|
|
243
|
+
TBD
|
|
244
|
+
|
|
245
|
+
## Exception Scenarios
|
|
246
|
+
|
|
247
|
+
1. TBD
|
|
248
|
+
2. TBD
|
|
249
|
+
3. TBD
|
|
250
|
+
|
|
251
|
+
## Acceptance Criteria
|
|
252
|
+
|
|
253
|
+
- [ ] TBD
|
|
254
|
+
|
|
255
|
+
## Rollback Or Disable Strategy
|
|
256
|
+
TBD
|
|
257
|
+
`;
|
|
258
|
+
}
|
|
259
|
+
function skillPlanTemplate() {
|
|
260
|
+
return `# Skill Plan
|
|
261
|
+
|
|
262
|
+
## Detected Intents
|
|
263
|
+
|
|
264
|
+
| Domain | Score | Evidence |
|
|
265
|
+
| --- | ---: | --- |
|
|
266
|
+
| | | |
|
|
267
|
+
|
|
268
|
+
## Required Skills
|
|
269
|
+
|
|
270
|
+
- TBD
|
|
271
|
+
|
|
272
|
+
## Recommended Skills
|
|
273
|
+
|
|
274
|
+
- TBD
|
|
275
|
+
|
|
276
|
+
## Required Artifacts
|
|
277
|
+
|
|
278
|
+
- TBD
|
|
279
|
+
|
|
280
|
+
## Required Verification Evidence
|
|
281
|
+
|
|
282
|
+
- TBD
|
|
283
|
+
|
|
284
|
+
## Skipped Skills
|
|
285
|
+
|
|
286
|
+
| Skill | Reason | Fallback Evidence |
|
|
287
|
+
| --- | --- | --- |
|
|
288
|
+
| | | |
|
|
289
|
+
`;
|
|
290
|
+
}
|
|
291
|
+
function skillEvidenceTemplate() {
|
|
292
|
+
return `# Skill Evidence
|
|
293
|
+
|
|
294
|
+
## Planned Skills
|
|
295
|
+
|
|
296
|
+
- TBD
|
|
297
|
+
|
|
298
|
+
## Used Skills
|
|
299
|
+
|
|
300
|
+
| Skill | Phase | Trigger | Evidence | Status |
|
|
301
|
+
| --- | --- | --- | --- | --- |
|
|
302
|
+
| skill-id | plan/build/verify/review | why it was selected | command, screenshot, report, or artifact path | executed/skipped/fallback |
|
|
303
|
+
|
|
304
|
+
## Skipped Skills
|
|
305
|
+
|
|
306
|
+
| Skill | Reason | Fallback Evidence |
|
|
307
|
+
| --- | --- | --- |
|
|
308
|
+
| skill-id | why it could not run | manual review, alternate command, or explicit risk |
|
|
309
|
+
`;
|
|
310
|
+
}
|
|
311
|
+
function uiSpecTemplate() {
|
|
312
|
+
return `# UI Spec
|
|
313
|
+
|
|
314
|
+
## User Goal
|
|
315
|
+
|
|
316
|
+
TBD
|
|
317
|
+
|
|
318
|
+
## Primary Flow
|
|
319
|
+
|
|
320
|
+
TBD
|
|
321
|
+
|
|
322
|
+
## Interaction States
|
|
323
|
+
|
|
324
|
+
- Default:
|
|
325
|
+
- Loading:
|
|
326
|
+
- Empty:
|
|
327
|
+
- Error:
|
|
328
|
+
- Success:
|
|
329
|
+
|
|
330
|
+
## Responsive Behavior
|
|
331
|
+
|
|
332
|
+
TBD
|
|
333
|
+
|
|
334
|
+
## Accessibility Requirements
|
|
335
|
+
|
|
336
|
+
TBD
|
|
337
|
+
|
|
338
|
+
## Acceptance Criteria
|
|
339
|
+
|
|
340
|
+
- [ ] TBD
|
|
341
|
+
`;
|
|
342
|
+
}
|
|
343
|
+
function visualReviewTemplate() {
|
|
344
|
+
return `# Visual Review
|
|
345
|
+
|
|
346
|
+
## Screenshots Or Evidence
|
|
347
|
+
|
|
348
|
+
TBD
|
|
349
|
+
|
|
350
|
+
## Layout And Responsiveness
|
|
351
|
+
|
|
352
|
+
TBD
|
|
353
|
+
|
|
354
|
+
## Text Fit And Overlap
|
|
355
|
+
|
|
356
|
+
TBD
|
|
357
|
+
|
|
358
|
+
## Accessibility Notes
|
|
359
|
+
|
|
360
|
+
TBD
|
|
361
|
+
|
|
362
|
+
## Final Verdict
|
|
363
|
+
TBD
|
|
364
|
+
`;
|
|
365
|
+
}
|
|
366
|
+
function apiContractTemplate() {
|
|
367
|
+
return `# API Contract
|
|
368
|
+
|
|
369
|
+
## Endpoint Or Interface
|
|
370
|
+
|
|
371
|
+
TBD
|
|
372
|
+
|
|
373
|
+
## Request
|
|
374
|
+
|
|
375
|
+
TBD
|
|
376
|
+
|
|
377
|
+
## Response
|
|
378
|
+
|
|
379
|
+
TBD
|
|
380
|
+
|
|
381
|
+
## Errors
|
|
382
|
+
|
|
383
|
+
TBD
|
|
384
|
+
|
|
385
|
+
## Permission Rules
|
|
386
|
+
|
|
387
|
+
TBD
|
|
388
|
+
|
|
389
|
+
## Compatibility Notes
|
|
390
|
+
|
|
391
|
+
TBD
|
|
392
|
+
|
|
393
|
+
## Acceptance Criteria
|
|
394
|
+
|
|
395
|
+
- [ ] TBD
|
|
396
|
+
`;
|
|
397
|
+
}
|
|
398
|
+
function docsImpactTemplate() {
|
|
399
|
+
return `# Docs Impact
|
|
400
|
+
|
|
401
|
+
## Code Changes Requiring Docs
|
|
402
|
+
|
|
403
|
+
- TBD
|
|
404
|
+
|
|
405
|
+
## Documentation Updated
|
|
406
|
+
|
|
407
|
+
- TBD
|
|
408
|
+
|
|
409
|
+
## No-Docs-Needed Rationale
|
|
410
|
+
|
|
411
|
+
TBD
|
|
412
|
+
|
|
413
|
+
## Links Checked
|
|
414
|
+
|
|
415
|
+
- TBD
|
|
416
|
+
`;
|
|
417
|
+
}
|
|
418
|
+
function securityReviewTemplate() {
|
|
419
|
+
return `# Security Review
|
|
420
|
+
|
|
421
|
+
## Assets And Trust Boundaries
|
|
422
|
+
|
|
423
|
+
TBD
|
|
424
|
+
|
|
425
|
+
## Authorization Rules
|
|
426
|
+
|
|
427
|
+
TBD
|
|
428
|
+
|
|
429
|
+
## Abuse Cases
|
|
430
|
+
|
|
431
|
+
1. TBD
|
|
432
|
+
2. TBD
|
|
433
|
+
3. TBD
|
|
434
|
+
|
|
435
|
+
## Sensitive Data Impact
|
|
436
|
+
|
|
437
|
+
TBD
|
|
438
|
+
|
|
439
|
+
## Rollback Or Disable Strategy
|
|
440
|
+
|
|
441
|
+
TBD
|
|
442
|
+
|
|
443
|
+
## Final Verdict
|
|
444
|
+
TBD
|
|
445
|
+
`;
|
|
446
|
+
}
|
|
447
|
+
function dbChangePlanTemplate() {
|
|
448
|
+
return `# DB Change Plan
|
|
449
|
+
|
|
450
|
+
## Schema Or Data Change
|
|
451
|
+
|
|
452
|
+
TBD
|
|
453
|
+
|
|
454
|
+
## Backward Compatibility
|
|
455
|
+
|
|
456
|
+
TBD
|
|
457
|
+
|
|
458
|
+
## Migration Steps
|
|
459
|
+
|
|
460
|
+
TBD
|
|
461
|
+
|
|
462
|
+
## Rollback Plan
|
|
463
|
+
|
|
464
|
+
TBD
|
|
465
|
+
|
|
466
|
+
## Verification
|
|
467
|
+
TBD
|
|
468
|
+
`;
|
|
469
|
+
}
|
|
470
|
+
function e2ePlanTemplate() {
|
|
471
|
+
return `# E2E Plan
|
|
472
|
+
|
|
473
|
+
## User Paths
|
|
474
|
+
|
|
475
|
+
TBD
|
|
476
|
+
|
|
477
|
+
## Browser Coverage
|
|
478
|
+
|
|
479
|
+
TBD
|
|
480
|
+
|
|
481
|
+
## Test Data
|
|
482
|
+
|
|
483
|
+
TBD
|
|
484
|
+
|
|
485
|
+
## Assertions
|
|
486
|
+
|
|
487
|
+
TBD
|
|
488
|
+
|
|
489
|
+
## Evidence
|
|
490
|
+
TBD
|
|
491
|
+
`;
|
|
492
|
+
}
|
|
493
|
+
function planTemplate() {
|
|
494
|
+
return `# Plan
|
|
495
|
+
|
|
496
|
+
## Approach
|
|
497
|
+
|
|
498
|
+
TBD
|
|
499
|
+
|
|
500
|
+
## Boundaries
|
|
501
|
+
|
|
502
|
+
TBD
|
|
503
|
+
|
|
504
|
+
## Exception Contract
|
|
505
|
+
|
|
506
|
+
1. TBD
|
|
507
|
+
2. TBD
|
|
508
|
+
3. TBD
|
|
509
|
+
|
|
510
|
+
## Rollback Plan
|
|
511
|
+
|
|
512
|
+
TBD
|
|
513
|
+
|
|
514
|
+
## Test Strategy
|
|
515
|
+
TBD
|
|
516
|
+
`;
|
|
517
|
+
}
|
|
518
|
+
function verificationTemplate() {
|
|
519
|
+
return `# Verification
|
|
520
|
+
|
|
521
|
+
## Commands Run
|
|
522
|
+
|
|
523
|
+
| Command | Result | Notes |
|
|
524
|
+
| --- | --- | --- |
|
|
525
|
+
| | | |
|
|
526
|
+
|
|
527
|
+
## Output Summary
|
|
528
|
+
|
|
529
|
+
TBD
|
|
530
|
+
|
|
531
|
+
## Failures And Fixes
|
|
532
|
+
|
|
533
|
+
TBD
|
|
534
|
+
|
|
535
|
+
## Final Status
|
|
536
|
+
TBD
|
|
537
|
+
`;
|
|
538
|
+
}
|
|
539
|
+
function reviewTemplate() {
|
|
540
|
+
return `# Review
|
|
541
|
+
|
|
542
|
+
## Code Review
|
|
543
|
+
|
|
544
|
+
TBD
|
|
545
|
+
|
|
546
|
+
## Security Review
|
|
547
|
+
|
|
548
|
+
TBD
|
|
549
|
+
|
|
550
|
+
## Same-Pattern Scan
|
|
551
|
+
|
|
552
|
+
TBD
|
|
553
|
+
|
|
554
|
+
## Residual Risks
|
|
555
|
+
TBD
|
|
556
|
+
`;
|
|
557
|
+
}
|
|
558
|
+
function summaryTemplate() {
|
|
559
|
+
return `# Summary
|
|
560
|
+
|
|
561
|
+
## Delivered Changes
|
|
562
|
+
|
|
563
|
+
TBD
|
|
564
|
+
|
|
565
|
+
## Remaining Risks
|
|
566
|
+
|
|
567
|
+
TBD
|
|
568
|
+
|
|
569
|
+
## Follow-Ups
|
|
570
|
+
|
|
571
|
+
TBD
|
|
572
|
+
|
|
573
|
+
## Metric Row
|
|
574
|
+
|
|
575
|
+
| Date | Task | Level | Services | Files Changed | First Verification Pass | Fix Iterations | Artifact Complete | Residual Risk | Final Gate |
|
|
576
|
+
| --- | --- | --- | --- | ---: | --- | ---: | --- | --- | --- |
|
|
577
|
+
| | | | | | | | | | |
|
|
578
|
+
`;
|
|
579
|
+
}
|
|
580
|
+
function metricsTemplate() {
|
|
581
|
+
return `# Workflow Metrics
|
|
582
|
+
|
|
583
|
+
<!-- SCALE_METRICS:START -->
|
|
584
|
+
| Date | Task | Level | Services | Files Changed | First Verification Pass | Fix Iterations | Rework Needed | Artifact Complete | Residual Risk | Final Gate |
|
|
585
|
+
| --- | --- | --- | --- | ---: | --- | ---: | --- | --- | --- | --- |
|
|
586
|
+
| | | | | | | | | | | |
|
|
587
|
+
<!-- SCALE_METRICS:END -->
|
|
588
|
+
|
|
589
|
+
## Monthly Review
|
|
590
|
+
|
|
591
|
+
### Repeated Failure Patterns
|
|
592
|
+
|
|
593
|
+
TBD
|
|
594
|
+
|
|
595
|
+
### Slowest Gates
|
|
596
|
+
|
|
597
|
+
TBD
|
|
598
|
+
|
|
599
|
+
### Documentation Gaps
|
|
600
|
+
|
|
601
|
+
TBD
|
|
602
|
+
|
|
603
|
+
### Product Design Misses
|
|
604
|
+
|
|
605
|
+
TBD
|
|
606
|
+
|
|
607
|
+
### Proposed Workflow Changes
|
|
608
|
+
TBD
|
|
609
|
+
`;
|
|
610
|
+
}
|
|
611
|
+
function verificationMatrixTemplate(mode, options = {}) {
|
|
612
|
+
return JSON.stringify({
|
|
613
|
+
version: 1,
|
|
614
|
+
defaultProfile: 'default',
|
|
615
|
+
profiles: {
|
|
616
|
+
default: {
|
|
617
|
+
commands: {},
|
|
618
|
+
services: options.services?.filter(service => service.required !== false).map(service => service.name) ?? [],
|
|
619
|
+
},
|
|
620
|
+
},
|
|
621
|
+
services: options.services ?? [],
|
|
622
|
+
exclude: options.exclude ?? ['node_modules', 'dist', 'tmp', 'vendor'],
|
|
623
|
+
policy: {
|
|
624
|
+
mode,
|
|
625
|
+
optionalToolsWarnOnly: true,
|
|
626
|
+
artifactGate: options.artifactGate ?? (mode === 'critical' ? 'block' : 'warn'),
|
|
627
|
+
artifactGateLevels: ['M', 'L', 'CRITICAL'],
|
|
628
|
+
},
|
|
629
|
+
}, null, 2) + '\n';
|
|
630
|
+
}
|
|
631
|
+
function packageVersion() {
|
|
632
|
+
try {
|
|
633
|
+
const pkg = JSON.parse(readFileSync(join(process.cwd(), 'package.json'), 'utf-8'));
|
|
634
|
+
return pkg.version ?? '0.0.0-dev';
|
|
635
|
+
}
|
|
636
|
+
catch {
|
|
637
|
+
return '0.0.0-dev';
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
function githubActionsPreflightTemplate() {
|
|
641
|
+
return `name: SCALE Preflight
|
|
642
|
+
|
|
643
|
+
on:
|
|
644
|
+
pull_request:
|
|
645
|
+
push:
|
|
646
|
+
branches:
|
|
647
|
+
- main
|
|
648
|
+
- master
|
|
649
|
+
|
|
650
|
+
jobs:
|
|
651
|
+
preflight:
|
|
652
|
+
runs-on: ubuntu-latest
|
|
653
|
+
steps:
|
|
654
|
+
- name: Checkout
|
|
655
|
+
uses: actions/checkout@v4
|
|
656
|
+
|
|
657
|
+
- name: Setup Node.js
|
|
658
|
+
uses: actions/setup-node@v4
|
|
659
|
+
with:
|
|
660
|
+
node-version: '20'
|
|
661
|
+
|
|
662
|
+
- name: Install project dependencies when present
|
|
663
|
+
shell: bash
|
|
664
|
+
run: |
|
|
665
|
+
if [ -f package-lock.json ]; then
|
|
666
|
+
npm ci
|
|
667
|
+
elif [ -f package.json ]; then
|
|
668
|
+
npm install
|
|
669
|
+
fi
|
|
670
|
+
|
|
671
|
+
- name: Run SCALE preflight
|
|
672
|
+
run: npx @hongmaple0820/scale-engine@latest preflight --service all --preflight-profile ci
|
|
673
|
+
`;
|
|
674
|
+
}
|
|
675
|
+
function prePushPreflightTemplate() {
|
|
676
|
+
return `#!/usr/bin/env sh
|
|
677
|
+
set -eu
|
|
678
|
+
|
|
679
|
+
if command -v scale >/dev/null 2>&1; then
|
|
680
|
+
scale preflight --service all
|
|
681
|
+
else
|
|
682
|
+
npx @hongmaple0820/scale-engine@latest preflight --service all
|
|
683
|
+
fi
|
|
684
|
+
`;
|
|
685
|
+
}
|
|
686
|
+
//# sourceMappingURL=GovernanceTemplates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GovernanceTemplates.js","sourceRoot":"","sources":["../../src/workflow/GovernanceTemplates.ts"],"names":[],"mappings":"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"}
|