@hongmaple0820/scale-engine 0.29.0 → 0.33.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 (58) hide show
  1. package/README.en.md +2 -0
  2. package/README.md +2 -0
  3. package/dist/api/cli.js +4 -0
  4. package/dist/api/cli.js.map +1 -1
  5. package/dist/evolution/SessionLearnings.d.ts +70 -0
  6. package/dist/evolution/SessionLearnings.js +217 -0
  7. package/dist/evolution/SessionLearnings.js.map +1 -0
  8. package/dist/runtime/AiOsRuntime.d.ts +99 -1
  9. package/dist/runtime/AiOsRuntime.js +462 -14
  10. package/dist/runtime/AiOsRuntime.js.map +1 -1
  11. package/dist/skills/RoleSkills.d.ts +20 -0
  12. package/dist/skills/RoleSkills.js +154 -0
  13. package/dist/skills/RoleSkills.js.map +1 -0
  14. package/dist/skills/SkillDiscovery.d.ts +5 -0
  15. package/dist/skills/SkillDiscovery.js +15 -0
  16. package/dist/skills/SkillDiscovery.js.map +1 -1
  17. package/dist/skills/SkillFrontmatter.d.ts +28 -0
  18. package/dist/skills/SkillFrontmatter.js +152 -0
  19. package/dist/skills/SkillFrontmatter.js.map +1 -0
  20. package/dist/skills/SkillRegistry.d.ts +11 -0
  21. package/dist/skills/SkillRegistry.js +12 -0
  22. package/dist/skills/SkillRegistry.js.map +1 -1
  23. package/dist/skills/index.d.ts +1 -0
  24. package/dist/skills/index.js +1 -0
  25. package/dist/skills/index.js.map +1 -1
  26. package/dist/testing/DiffTestSelector.d.ts +22 -0
  27. package/dist/testing/DiffTestSelector.js +114 -0
  28. package/dist/testing/DiffTestSelector.js.map +1 -0
  29. package/dist/testing/index.d.ts +1 -0
  30. package/dist/testing/index.js +3 -0
  31. package/dist/testing/index.js.map +1 -0
  32. package/dist/workflow/AdaptiveWorkflowRouter.d.ts +37 -0
  33. package/dist/workflow/AdaptiveWorkflowRouter.js +211 -0
  34. package/dist/workflow/AdaptiveWorkflowRouter.js.map +1 -0
  35. package/dist/workflow/EvolutionShadowPromoter.d.ts +46 -0
  36. package/dist/workflow/EvolutionShadowPromoter.js +73 -0
  37. package/dist/workflow/EvolutionShadowPromoter.js.map +1 -0
  38. package/dist/workflow/ReviewAnalyzer.d.ts +15 -0
  39. package/dist/workflow/ReviewAnalyzer.js +82 -0
  40. package/dist/workflow/ReviewAnalyzer.js.map +1 -1
  41. package/dist/workflow/SecurityAudit.d.ts +27 -0
  42. package/dist/workflow/SecurityAudit.js +294 -0
  43. package/dist/workflow/SecurityAudit.js.map +1 -0
  44. package/dist/workflow/SessionPreamble.d.ts +19 -0
  45. package/dist/workflow/SessionPreamble.js +125 -0
  46. package/dist/workflow/SessionPreamble.js.map +1 -0
  47. package/dist/workflow/ShipPipeline.d.ts +30 -0
  48. package/dist/workflow/ShipPipeline.js +366 -0
  49. package/dist/workflow/ShipPipeline.js.map +1 -0
  50. package/dist/workflow/WorkflowGuidance.d.ts +5 -1
  51. package/dist/workflow/WorkflowGuidance.js +31 -0
  52. package/dist/workflow/WorkflowGuidance.js.map +1 -1
  53. package/dist/workflow/index.d.ts +5 -0
  54. package/dist/workflow/index.js +5 -0
  55. package/dist/workflow/index.js.map +1 -1
  56. package/docs/AI_ENGINEERING_OS_POSITIONING.md +9 -0
  57. package/docs/CONTEXT_BUDGET.md +1 -1
  58. package/package.json +1 -1
@@ -0,0 +1,366 @@
1
+ // SCALE Engine — Ship Pipeline (v0.32.0)
2
+ // Full ship closure: sync-base → test → review-diff → bump-version → changelog → commit → push → create-pr
3
+ // Inspired by gstack's /ship skill, integrated with scale-engine governance.
4
+ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
5
+ import { join } from 'node:path';
6
+ import { execSync } from 'node:child_process';
7
+ import { runSafeCommand } from '../tools/SafeCommandRunner.js';
8
+ import { parseChangedFiles, shouldReviewFile } from './ReviewAnalyzer.js';
9
+ import { resolveVerificationTargets } from './VerificationProfile.js';
10
+ import { collectSessionPreamble } from './SessionPreamble.js';
11
+ // ============================================================================
12
+ // Pipeline
13
+ // ============================================================================
14
+ export async function runShipPipeline(input) {
15
+ const projectDir = input.projectDir ?? process.cwd();
16
+ const scaleDir = input.scaleDir ?? '.scale';
17
+ const baseBranch = input.baseBranch ?? 'master';
18
+ const remote = input.remote ?? 'origin';
19
+ const skipSteps = new Set(input.skipSteps ?? []);
20
+ const dryRun = input.dryRun ?? false;
21
+ const versionBump = input.versionBump ?? 'patch';
22
+ const steps = [];
23
+ const warnings = [];
24
+ const startTime = Date.now();
25
+ let changedFiles = [];
26
+ // Collect preamble
27
+ const preamble = collectSessionPreamble({ projectDir, scaleDir });
28
+ // Execute steps in order
29
+ const allSteps = ['sync-base', 'test', 'review-diff', 'bump-version', 'changelog', 'commit', 'push', 'create-pr'];
30
+ for (const step of allSteps) {
31
+ if (skipSteps.has(step)) {
32
+ steps.push({ step, status: 'skipped', duration: 0 });
33
+ continue;
34
+ }
35
+ const stepStart = Date.now();
36
+ try {
37
+ const result = await executeStep(step, {
38
+ projectDir,
39
+ scaleDir,
40
+ baseBranch,
41
+ remote,
42
+ dryRun,
43
+ versionBump,
44
+ preamble,
45
+ changedFiles,
46
+ prTitle: input.prTitle,
47
+ prBody: input.prBody,
48
+ });
49
+ steps.push({
50
+ step,
51
+ status: result.status,
52
+ duration: Date.now() - stepStart,
53
+ evidence: result.evidence,
54
+ error: result.error,
55
+ });
56
+ if (result.status === 'failed') {
57
+ // Pipeline stops on failure
58
+ break;
59
+ }
60
+ if (result.changedFiles) {
61
+ changedFiles = result.changedFiles;
62
+ }
63
+ }
64
+ catch (err) {
65
+ steps.push({
66
+ step,
67
+ status: 'failed',
68
+ duration: Date.now() - stepStart,
69
+ error: err instanceof Error ? err.message : String(err),
70
+ });
71
+ break;
72
+ }
73
+ }
74
+ const totalDuration = Date.now() - startTime;
75
+ const success = steps.every(s => s.status === 'passed' || s.status === 'skipped');
76
+ const lastStep = steps[steps.length - 1];
77
+ return {
78
+ success,
79
+ steps,
80
+ totalDuration,
81
+ changedFiles,
82
+ warnings,
83
+ commitSha: extractCommitSha(steps),
84
+ prUrl: extractPrUrl(steps),
85
+ };
86
+ }
87
+ async function executeStep(step, ctx) {
88
+ switch (step) {
89
+ case 'sync-base':
90
+ return executeSyncBase(ctx);
91
+ case 'test':
92
+ return executeTest(ctx);
93
+ case 'review-diff':
94
+ return executeReviewDiff(ctx);
95
+ case 'bump-version':
96
+ return executeBumpVersion(ctx);
97
+ case 'changelog':
98
+ return executeChangelog(ctx);
99
+ case 'commit':
100
+ return executeCommit(ctx);
101
+ case 'push':
102
+ return executePush(ctx);
103
+ case 'create-pr':
104
+ return executeCreatePr(ctx);
105
+ }
106
+ }
107
+ // ============================================================================
108
+ // Step Implementations
109
+ // ============================================================================
110
+ async function executeSyncBase(ctx) {
111
+ try {
112
+ // Fetch latest
113
+ execSync(`git fetch ${ctx.remote}`, { cwd: ctx.projectDir, encoding: 'utf-8', timeout: 30000 });
114
+ // Check if base branch exists locally
115
+ try {
116
+ execSync(`git rev-parse --verify ${ctx.baseBranch}`, { cwd: ctx.projectDir, encoding: 'utf-8' });
117
+ }
118
+ catch {
119
+ // Track remote branch
120
+ execSync(`git checkout -b ${ctx.baseBranch} ${ctx.remote}/${ctx.baseBranch}`, { cwd: ctx.projectDir, encoding: 'utf-8' });
121
+ }
122
+ // Get current branch
123
+ const currentBranch = execSync('git branch --show-current', { cwd: ctx.projectDir, encoding: 'utf-8' }).trim();
124
+ if (currentBranch !== ctx.baseBranch) {
125
+ // Merge base into current branch
126
+ try {
127
+ execSync(`git merge ${ctx.remote}/${ctx.baseBranch} --no-edit`, { cwd: ctx.projectDir, encoding: 'utf-8', timeout: 30000 });
128
+ }
129
+ catch (err) {
130
+ return { status: 'failed', error: `Merge conflict with ${ctx.baseBranch}. Resolve conflicts manually.` };
131
+ }
132
+ }
133
+ return { status: 'passed', evidence: `Synced with ${ctx.remote}/${ctx.baseBranch}` };
134
+ }
135
+ catch (err) {
136
+ return { status: 'failed', error: `Sync failed: ${err instanceof Error ? err.message : String(err)}` };
137
+ }
138
+ }
139
+ async function executeTest(ctx) {
140
+ try {
141
+ // Resolve test command from verification profile
142
+ const targets = resolveVerificationTargets({ projectDir: ctx.projectDir, scaleDir: ctx.scaleDir });
143
+ const testCommand = targets.targets[0]?.config.test ?? 'npm test';
144
+ if (ctx.dryRun) {
145
+ return { status: 'passed', evidence: `[dry-run] Would run: ${testCommand}` };
146
+ }
147
+ const result = await runSafeCommand(testCommand, { cwd: ctx.projectDir, timeout: 300000 });
148
+ if (result.exitCode !== 0) {
149
+ return { status: 'failed', error: `Tests failed (exit ${result.exitCode}): ${result.stderr.slice(0, 500)}` };
150
+ }
151
+ return { status: 'passed', evidence: `Tests passed: ${testCommand}` };
152
+ }
153
+ catch (err) {
154
+ return { status: 'failed', error: `Test execution failed: ${err instanceof Error ? err.message : String(err)}` };
155
+ }
156
+ }
157
+ async function executeReviewDiff(ctx) {
158
+ try {
159
+ const diffOutput = execSync(`git diff --name-only ${ctx.remote}/${ctx.baseBranch}`, {
160
+ cwd: ctx.projectDir,
161
+ encoding: 'utf-8',
162
+ });
163
+ const changedFiles = parseChangedFiles(diffOutput)
164
+ .filter(f => shouldReviewFile(f.path))
165
+ .map(f => f.path);
166
+ if (changedFiles.length === 0) {
167
+ return { status: 'passed', evidence: 'No reviewable changes', changedFiles: [] };
168
+ }
169
+ return {
170
+ status: 'passed',
171
+ evidence: `${changedFiles.length} file(s) changed: ${changedFiles.slice(0, 5).join(', ')}${changedFiles.length > 5 ? '...' : ''}`,
172
+ changedFiles,
173
+ };
174
+ }
175
+ catch (err) {
176
+ return { status: 'failed', error: `Diff review failed: ${err instanceof Error ? err.message : String(err)}` };
177
+ }
178
+ }
179
+ async function executeBumpVersion(ctx) {
180
+ const pkgPath = join(ctx.projectDir, 'package.json');
181
+ if (!existsSync(pkgPath)) {
182
+ return { status: 'passed', evidence: 'No package.json found, skipping version bump' };
183
+ }
184
+ try {
185
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
186
+ if (!pkg.version) {
187
+ return { status: 'passed', evidence: 'No version field in package.json' };
188
+ }
189
+ const [major, minor, patch] = pkg.version.split('.').map(Number);
190
+ let newVersion;
191
+ switch (ctx.versionBump) {
192
+ case 'major':
193
+ newVersion = `${major + 1}.0.0`;
194
+ break;
195
+ case 'minor':
196
+ newVersion = `${major}.${minor + 1}.0`;
197
+ break;
198
+ case 'patch':
199
+ newVersion = `${major}.${minor}.${patch + 1}`;
200
+ break;
201
+ }
202
+ if (ctx.dryRun) {
203
+ return { status: 'passed', evidence: `[dry-run] Would bump ${pkg.version} → ${newVersion}` };
204
+ }
205
+ pkg.version = newVersion;
206
+ writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n', 'utf-8');
207
+ // Also update package-lock.json if it exists
208
+ const lockPath = join(ctx.projectDir, 'package-lock.json');
209
+ if (existsSync(lockPath)) {
210
+ const lock = readFileSync(lockPath, 'utf-8');
211
+ writeFileSync(lockPath, lock.replace(`"version": "${pkg.version}"`, `"version": "${newVersion}"`), 'utf-8');
212
+ }
213
+ return { status: 'passed', evidence: `Version bumped: ${pkg.version} → ${newVersion}` };
214
+ }
215
+ catch (err) {
216
+ return { status: 'failed', error: `Version bump failed: ${err instanceof Error ? err.message : String(err)}` };
217
+ }
218
+ }
219
+ async function executeChangelog(ctx) {
220
+ const changelogPath = join(ctx.projectDir, 'CHANGELOG.md');
221
+ if (!existsSync(changelogPath)) {
222
+ return { status: 'passed', evidence: 'No CHANGELOG.md found, skipping' };
223
+ }
224
+ try {
225
+ if (ctx.dryRun) {
226
+ return { status: 'passed', evidence: '[dry-run] Would update CHANGELOG.md' };
227
+ }
228
+ const pkgPath = join(ctx.projectDir, 'package.json');
229
+ let version = '0.0.0';
230
+ if (existsSync(pkgPath)) {
231
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
232
+ version = pkg.version ?? '0.0.0';
233
+ }
234
+ const today = new Date().toISOString().slice(0, 10);
235
+ const changelog = readFileSync(changelogPath, 'utf-8');
236
+ // Get commit messages since last tag
237
+ let commitSummary = '';
238
+ try {
239
+ const lastTag = execSync('git describe --tags --abbrev=0 2>/dev/null || echo ""', { cwd: ctx.projectDir, encoding: 'utf-8' }).trim();
240
+ const range = lastTag ? `${lastTag}..HEAD` : 'HEAD';
241
+ const messages = execSync(`git log ${range} --oneline --no-merges | head -20`, { cwd: ctx.projectDir, encoding: 'utf-8' }).trim();
242
+ if (messages) {
243
+ commitSummary = '\n' + messages.split('\n').map(m => `- ${m.replace(/^[a-f0-9]+ /, '')}`).join('\n');
244
+ }
245
+ }
246
+ catch {
247
+ // Ignore git log errors
248
+ }
249
+ const newEntry = `## ${version} - ${today}\n\n### Changes${commitSummary}\n\n---\n\n`;
250
+ writeFileSync(changelogPath, newEntry + changelog, 'utf-8');
251
+ return { status: 'passed', evidence: `CHANGELOG.md updated for v${version}` };
252
+ }
253
+ catch (err) {
254
+ return { status: 'failed', error: `Changelog update failed: ${err instanceof Error ? err.message : String(err)}` };
255
+ }
256
+ }
257
+ async function executeCommit(ctx) {
258
+ try {
259
+ // Stage all changes
260
+ execSync('git add -A', { cwd: ctx.projectDir, encoding: 'utf-8' });
261
+ // Check if there are changes to commit
262
+ try {
263
+ execSync('git diff --cached --quiet', { cwd: ctx.projectDir, encoding: 'utf-8' });
264
+ return { status: 'passed', evidence: 'No changes to commit' };
265
+ }
266
+ catch {
267
+ // There are changes, continue
268
+ }
269
+ if (ctx.dryRun) {
270
+ return { status: 'passed', evidence: '[dry-run] Would commit staged changes' };
271
+ }
272
+ // Get version for commit message
273
+ let version = '';
274
+ const pkgPath = join(ctx.projectDir, 'package.json');
275
+ if (existsSync(pkgPath)) {
276
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
277
+ version = pkg.version ?? '';
278
+ }
279
+ const commitMsg = version ? `chore: release v${version}` : `chore: ship ${new Date().toISOString().slice(0, 10)}`;
280
+ execSync(`git commit -m "${commitMsg}"`, { cwd: ctx.projectDir, encoding: 'utf-8' });
281
+ // Get commit SHA
282
+ const sha = execSync('git rev-parse HEAD', { cwd: ctx.projectDir, encoding: 'utf-8' }).trim();
283
+ return { status: 'passed', evidence: `Committed: ${sha.slice(0, 8)} — ${commitMsg}` };
284
+ }
285
+ catch (err) {
286
+ return { status: 'failed', error: `Commit failed: ${err instanceof Error ? err.message : String(err)}` };
287
+ }
288
+ }
289
+ async function executePush(ctx) {
290
+ try {
291
+ const currentBranch = execSync('git branch --show-current', { cwd: ctx.projectDir, encoding: 'utf-8' }).trim();
292
+ if (ctx.dryRun) {
293
+ return { status: 'passed', evidence: `[dry-run] Would push to ${ctx.remote}/${currentBranch}` };
294
+ }
295
+ execSync(`git push ${ctx.remote} ${currentBranch}`, { cwd: ctx.projectDir, encoding: 'utf-8', timeout: 60000 });
296
+ return { status: 'passed', evidence: `Pushed to ${ctx.remote}/${currentBranch}` };
297
+ }
298
+ catch (err) {
299
+ return { status: 'failed', error: `Push failed: ${err instanceof Error ? err.message : String(err)}` };
300
+ }
301
+ }
302
+ async function executeCreatePr(ctx) {
303
+ try {
304
+ const currentBranch = execSync('git branch --show-current', { cwd: ctx.projectDir, encoding: 'utf-8' }).trim();
305
+ if (ctx.dryRun) {
306
+ return { status: 'passed', evidence: `[dry-run] Would create PR: ${currentBranch} → ${ctx.baseBranch}` };
307
+ }
308
+ const title = ctx.prTitle ?? `Ship ${currentBranch} → ${ctx.baseBranch}`;
309
+ const body = ctx.prBody ?? `Automated PR created by scale ship pipeline.\n\nBranch: ${currentBranch}\nBase: ${ctx.baseBranch}`;
310
+ // Try gh CLI first
311
+ try {
312
+ const prUrl = execSync(`gh pr create --title "${title}" --body "${body}" --base ${ctx.baseBranch}`, { cwd: ctx.projectDir, encoding: 'utf-8', timeout: 30000 }).trim();
313
+ return { status: 'passed', evidence: `PR created: ${prUrl}` };
314
+ }
315
+ catch {
316
+ // gh not available or failed, output manual instructions
317
+ return {
318
+ status: 'passed',
319
+ evidence: `Push complete. Create PR manually: ${currentBranch} → ${ctx.baseBranch}`,
320
+ };
321
+ }
322
+ }
323
+ catch (err) {
324
+ return { status: 'failed', error: `PR creation failed: ${err instanceof Error ? err.message : String(err)}` };
325
+ }
326
+ }
327
+ // ============================================================================
328
+ // Helpers
329
+ // ============================================================================
330
+ function extractCommitSha(steps) {
331
+ const commitStep = steps.find(s => s.step === 'commit' && s.status === 'passed');
332
+ if (!commitStep?.evidence)
333
+ return undefined;
334
+ const match = commitStep.evidence.match(/Committed: ([a-f0-9]+)/);
335
+ return match?.[1];
336
+ }
337
+ function extractPrUrl(steps) {
338
+ const prStep = steps.find(s => s.step === 'create-pr' && s.status === 'passed');
339
+ if (!prStep?.evidence)
340
+ return undefined;
341
+ const match = prStep.evidence.match(/PR created: (https?:\/\/\S+)/);
342
+ return match?.[1];
343
+ }
344
+ // ============================================================================
345
+ // Summary
346
+ // ============================================================================
347
+ export function summarizeShipPipeline(result) {
348
+ const lines = ['## Ship Pipeline Result\n'];
349
+ for (const step of result.steps) {
350
+ const icon = step.status === 'passed' ? '✅' : step.status === 'skipped' ? '⏭️' : step.status === 'blocked' ? '🚫' : '❌';
351
+ lines.push(`${icon} **${step.step}** (${step.duration}ms)`);
352
+ if (step.evidence)
353
+ lines.push(` ${step.evidence}`);
354
+ if (step.error)
355
+ lines.push(` Error: ${step.error}`);
356
+ }
357
+ lines.push('');
358
+ lines.push(`**Total duration:** ${result.totalDuration}ms`);
359
+ lines.push(`**Changed files:** ${result.changedFiles.length}`);
360
+ if (result.commitSha)
361
+ lines.push(`**Commit:** ${result.commitSha}`);
362
+ if (result.prUrl)
363
+ lines.push(`**PR:** ${result.prUrl}`);
364
+ return lines.join('\n');
365
+ }
366
+ //# sourceMappingURL=ShipPipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShipPipeline.js","sourceRoot":"","sources":["../../src/workflow/ShipPipeline.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import type { WorkflowTaskLevel } from './WorkflowArtifactWriter.js';
2
- export type WorkflowGuidancePhase = 'explore' | 'plan' | 'build' | 'verify';
2
+ import type { SkillRole } from '../skills/RoleSkills.js';
3
+ export type WorkflowGuidancePhase = 'explore' | 'plan' | 'build' | 'verify' | 'review' | 'ship';
3
4
  export interface WorkflowGuidanceItem {
4
5
  id: string;
5
6
  phase: WorkflowGuidancePhase;
6
7
  required: boolean;
7
8
  reason: string;
8
9
  command: string;
10
+ role?: SkillRole;
9
11
  }
10
12
  export interface WorkflowGuidance {
11
13
  taskId: string;
@@ -24,3 +26,5 @@ export interface WorkflowGuidanceInput {
24
26
  }
25
27
  export declare function createWorkflowGuidance(input: WorkflowGuidanceInput): WorkflowGuidance;
26
28
  export declare function renderWorkflowGuidance(guidance: WorkflowGuidance): string;
29
+ export declare function getRoleGuidanceForPhase(phase: WorkflowGuidancePhase): SkillRole[];
30
+ export declare function createRoleGuidanceItem(role: SkillRole, phase: WorkflowGuidancePhase, taskId: string, description: string): WorkflowGuidanceItem;
@@ -170,4 +170,35 @@ function quoteArg(value) {
170
170
  return value;
171
171
  return `"${value.replace(/(["\\$`])/g, '\\$1')}"`;
172
172
  }
173
+ // ============================================================================
174
+ // Role-Based Guidance
175
+ // ============================================================================
176
+ export function getRoleGuidanceForPhase(phase) {
177
+ switch (phase) {
178
+ case 'explore':
179
+ return ['eng-manager'];
180
+ case 'plan':
181
+ return ['ceo-reviewer', 'eng-manager'];
182
+ case 'build':
183
+ return [];
184
+ case 'verify':
185
+ return ['qa-lead', 'security-reviewer'];
186
+ case 'review':
187
+ return ['eng-manager', 'security-reviewer'];
188
+ case 'ship':
189
+ return ['release-engineer'];
190
+ default:
191
+ return [];
192
+ }
193
+ }
194
+ export function createRoleGuidanceItem(role, phase, taskId, description) {
195
+ return {
196
+ id: `role-${role}`,
197
+ phase,
198
+ required: phase === 'review' || phase === 'verify',
199
+ reason: `${role} perspective ensures multi-angle review coverage.`,
200
+ command: `scale review --role ${role} --task-id ${taskId}`,
201
+ role,
202
+ };
203
+ }
173
204
  //# sourceMappingURL=WorkflowGuidance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowGuidance.js","sourceRoot":"","sources":["../../src/workflow/WorkflowGuidance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowGuidance.js","sourceRoot":"","sources":["../../src/workflow/WorkflowGuidance.ts"],"names":[],"mappings":"AA+BA,MAAM,SAAS,GAAG;IAChB,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,SAAS;IACT,KAAK;IACL,KAAK;IACL,OAAO;IACP,YAAY;IACZ,WAAW;IACX,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;CACL,CAAA;AAED,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,OAAO;IACP,UAAU;IACV,oBAAoB;IACpB,KAAK;IACL,WAAW;IACX,QAAQ;CACT,CAAC,CAAA;AAEF,MAAM,UAAU,sBAAsB,CAAC,KAA4B;IACjE,MAAM,KAAK,GAA2B,EAAE,CAAA;IACxC,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAA;IAEnC,IAAI,eAAe,KAAK,GAAG,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,mEAAmE;YAC3E,OAAO,EAAE,WAAW,CAAC;gBACnB,OAAO;gBACP,SAAS;gBACT,OAAO;gBACP,WAAW;gBACX,KAAK,CAAC,MAAM;gBACZ,QAAQ;gBACR,KAAK,CAAC,WAAW;gBACjB,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC;gBAClC,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;gBACzB,SAAS;aACV,CAAC;SACH,CAAC,CAAA;QAEF,IAAI,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,iBAAiB;gBACrB,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,iGAAiG;gBACzG,OAAO,EAAE,WAAW,CAAC;oBACnB,OAAO;oBACP,UAAU;oBACV,MAAM;oBACN,WAAW;oBACX,KAAK,CAAC,MAAM;oBACZ,WAAW;oBACX,KAAK,CAAC,WAAW;oBACjB,SAAS;oBACT,wBAAwB;oBACxB,oBAAoB;oBACpB,oBAAoB;oBACpB,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC;oBAClC,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;oBACzB,SAAS;iBACV,CAAC;aACH,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,mGAAmG;YAC3G,OAAO,EAAE,WAAW,CAAC;gBACnB,OAAO;gBACP,KAAK;gBACL,OAAO;gBACP,WAAW;gBACX,KAAK,CAAC,MAAM;gBACZ,YAAY;gBACZ,KAAK,CAAC,WAAW;gBACjB,oBAAoB;gBACpB,oBAAoB;gBACpB,gBAAgB;gBAChB,wBAAwB;gBACxB,aAAa;gBACb,aAAa;gBACb,cAAc;gBACd,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC3B,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC;gBAClC,SAAS;aACV,CAAC;SACH,CAAC,CAAA;QAEF,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,eAAe;gBACnB,KAAK,EAAE,QAAQ;gBACf,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,CAAC;gBAC1D,MAAM,EAAE,uFAAuF;gBAC/F,OAAO,EAAE,WAAW,CAAC;oBACnB,OAAO;oBACP,MAAM;oBACN,KAAK;oBACL,WAAW;oBACX,KAAK,CAAC,MAAM;oBACZ,QAAQ;oBACR,KAAK,CAAC,WAAW;oBACjB,SAAS;oBACT,KAAK,CAAC,KAAK;oBACX,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC1B,CAAC;aACH,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC;QACT,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,qDAAqD;QAC7D,OAAO,EAAE,gBAAgB,KAAK,CAAC,MAAM,EAAE;KACxC,CAAC,CAAA;IAEF,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,eAAe;QACtB,KAAK;QACL,oBAAoB,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;KACjE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAA0B;IAC/D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,CAAA;IAErC,MAAM,KAAK,GAAG,CAAC,yBAAyB,CAAC,CAAA;IACzC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAA;QACzD,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9C,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,SAAS,SAAS,CAAC,WAAmB;IACpC,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;IACvC,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;AACnE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA4B;IACrD,IAAI,KAAK,CAAC,yBAAyB,EAAE,MAAM;QAAE,OAAO,IAAI,CAAA;IACxD,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;AACrF,CAAC;AAED,SAAS,YAAY,CAAC,WAAoB;IACxC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC3D,CAAC;AAED,SAAS,SAAS,CAAC,KAAgB;IACjC,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAChD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACnE,CAAC;AAED,SAAS,cAAc,CAAC,KAAgB;IACtC,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAChD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAA;AAClE,CAAC;AAED,SAAS,WAAW,CAAC,KAAe;IAClC,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACtC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,IAAI,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACvD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAA;AACnD,CAAC;AAED,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,MAAM,UAAU,uBAAuB,CAAC,KAA4B;IAClE,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,CAAC,aAAa,CAAC,CAAA;QACxB,KAAK,MAAM;YACT,OAAO,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;QACxC,KAAK,OAAO;YACV,OAAO,EAAE,CAAA;QACX,KAAK,QAAQ;YACX,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;QACzC,KAAK,QAAQ;YACX,OAAO,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAA;QAC7C,KAAK,MAAM;YACT,OAAO,CAAC,kBAAkB,CAAC,CAAA;QAC7B;YACE,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAe,EACf,KAA4B,EAC5B,MAAc,EACd,WAAmB;IAEnB,OAAO;QACL,EAAE,EAAE,QAAQ,IAAI,EAAE;QAClB,KAAK;QACL,QAAQ,EAAE,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;QAClD,MAAM,EAAE,GAAG,IAAI,mDAAmD;QAClE,OAAO,EAAE,uBAAuB,IAAI,cAAc,MAAM,EAAE;QAC1D,IAAI;KACL,CAAA;AACH,CAAC"}
@@ -28,4 +28,9 @@ export * from './DiagnosticLoop.js';
28
28
  export * from './TddLoop.js';
29
29
  export * from './WorkflowGuidance.js';
30
30
  export * from './WorkflowOpenTasks.js';
31
+ export * from './SessionPreamble.js';
32
+ export * from './ShipPipeline.js';
33
+ export * from './SecurityAudit.js';
34
+ export * from './AdaptiveWorkflowRouter.js';
35
+ export * from './EvolutionShadowPromoter.js';
31
36
  export * from './autonomous/index.js';
@@ -29,5 +29,10 @@ export * from './DiagnosticLoop.js';
29
29
  export * from './TddLoop.js';
30
30
  export * from './WorkflowGuidance.js';
31
31
  export * from './WorkflowOpenTasks.js';
32
+ export * from './SessionPreamble.js';
33
+ export * from './ShipPipeline.js';
34
+ export * from './SecurityAudit.js';
35
+ export * from './AdaptiveWorkflowRouter.js';
36
+ export * from './EvolutionShadowPromoter.js';
32
37
  export * from './autonomous/index.js';
33
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AAEvC,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,mCAAmC,CAAA;AACjD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AAEvC,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,mCAAmC,CAAA;AACjD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,uBAAuB,CAAA"}
@@ -450,6 +450,15 @@ Core work:
450
450
  | Tool Strategy Planner | cost, retry, fallback, and evidence graph for tools |
451
451
  | Evolution Shadow Promotion | lessons become rules only after validation |
452
452
 
453
+ Current first slice:
454
+
455
+ - `scale ai-os plan` now emits `evaluator` intelligence with strategy `evaluator-intelligence-v1`, required gates, risk level, uncertainty score, drivers, and recommendations.
456
+ - Architecture, root-cause, security, and release-risk tasks can automatically add `architecture-critique`, `root-cause-review`, `security-threat-model`, `release-readiness-review`, and `uncertainty-decision-log` gates to the adaptive workflow.
457
+ - `scale ai-os run` carries evaluator gates into the executable step list and evidence requirements, so reasoning-heavy work cannot be represented as a plain low-friction run.
458
+ - `scale ai-os status` now includes an `evaluator-intelligence` signal plus evaluator gate count and average uncertainty for release and milestone review.
459
+ - `scale ai-os plan` now emits `toolStrategy` with strategy `tool-strategy-v1`, converting skill, artifact, and verification steps into a cost, retry, fallback, side-effect, and evidence graph.
460
+ - `scale ai-os status` now includes a `tool-strategy` signal plus tool step count, estimated cost units, high-risk step count, and fallback coverage.
461
+
453
462
  Exit criteria:
454
463
 
455
464
  - small tasks can stay lightweight with evidence
@@ -43,7 +43,7 @@ scale context pack \
43
43
  --json
44
44
  ```
45
45
 
46
- Build the unified AI OS runtime plan that embeds the context pack with memory, skill routing, adaptive workflow, and ROI:
46
+ Build the unified AI OS runtime plan that embeds the context pack with memory, skill routing, evaluator intelligence, tool strategy, adaptive workflow, and ROI:
47
47
 
48
48
  ```bash
49
49
  scale ai-os plan \
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hongmaple0820/scale-engine",
3
- "version": "0.29.0",
3
+ "version": "0.33.0",
4
4
  "description": "Executable AI agent governance with workflow gates, evidence, skill/tool orchestration, and traceable HTML artifacts",
5
5
  "repository": {
6
6
  "type": "git",