@hongmaple0820/scale-engine 0.28.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 +3 -0
  2. package/README.md +2 -0
  3. package/dist/api/cli.js +12 -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 +138 -0
  9. package/dist/runtime/AiOsRuntime.js +671 -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 +15 -0
  57. package/docs/CONTEXT_BUDGET.md +1 -1
  58. package/package.json +2 -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":"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"}
@@ -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"}
@@ -422,6 +422,12 @@ Core work:
422
422
  | Skill Strategy Learning | learn preferred tools from successful evidence, failures, and user overrides |
423
423
  | Workflow Eval Integration | turn benchmark results into release-gate evidence |
424
424
 
425
+ Current first slice:
426
+
427
+ - `scale ai-os status --json` now includes an `intelligence` report with `memory-recall`, `context-savings`, `skill-routing`, and `benchmark-intelligence` signals; memory recall includes a quality score based on confidence, relevance, and evidence-backed items.
428
+ - Context intelligence now reports `contextQuality` with omitted sections, total omitted tokens, compression risk, and evidence-loss warnings when runtime evidence is dropped by budget constraints.
429
+ - Human `scale ai-os status --lang zh|en` output surfaces the same intelligence readiness summary so release reviewers can see whether 0.29.0 memory/context/skill gains are backed by run and benchmark evidence.
430
+
425
431
  Exit criteria:
426
432
 
427
433
  - memory recall has acceptance/rejection feedback
@@ -444,6 +450,15 @@ Core work:
444
450
  | Tool Strategy Planner | cost, retry, fallback, and evidence graph for tools |
445
451
  | Evolution Shadow Promotion | lessons become rules only after validation |
446
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
+
447
462
  Exit criteria:
448
463
 
449
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.28.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",
@@ -58,6 +58,7 @@
58
58
  "test": "vitest run --reporter dot --pool=forks --poolOptions.forks.maxForks=1 --poolOptions.forks.minForks=1",
59
59
  "typecheck": "tsc --noEmit",
60
60
  "lint": "eslint src/**/*.ts",
61
+ "release:check": "npm run typecheck && npm run lint && npm test && npm run build && npm audit --omit=dev && npm pack --dry-run",
61
62
  "mcp": "node dist/api/mcp.js",
62
63
  "serve": "node dist/api/http.js"
63
64
  },