@hongmaple0820/scale-engine 0.20.0 → 0.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,36 +5,36 @@ import { dirname, isAbsolute, join, relative, resolve } from 'node:path';
5
5
  import { WorkflowEvalStore } from '../eval/WorkflowEval.js';
6
6
  import { RuntimeEvidenceLedger } from '../runtime/RuntimeEvidenceLedger.js';
7
7
  import { redactEvidenceText, redactEvidenceValue } from '../tools/ToolEvidenceStore.js';
8
- const SCHEMA = `
9
- CREATE TABLE IF NOT EXISTS memory_nodes (
10
- id TEXT PRIMARY KEY,
11
- type TEXT NOT NULL,
12
- title TEXT NOT NULL,
13
- summary TEXT NOT NULL,
14
- entities TEXT NOT NULL DEFAULT '[]',
15
- source TEXT NOT NULL,
16
- evidence_paths TEXT NOT NULL DEFAULT '[]',
17
- confidence REAL NOT NULL,
18
- scope TEXT NOT NULL,
19
- status TEXT NOT NULL,
20
- created_at TEXT NOT NULL,
21
- updated_at TEXT NOT NULL,
22
- last_verified_at TEXT,
23
- metadata TEXT NOT NULL DEFAULT '{}',
24
- fingerprint TEXT NOT NULL
25
- );
26
-
27
- CREATE INDEX IF NOT EXISTS idx_memory_nodes_type ON memory_nodes(type);
28
- CREATE INDEX IF NOT EXISTS idx_memory_nodes_status ON memory_nodes(status);
29
- CREATE INDEX IF NOT EXISTS idx_memory_nodes_scope ON memory_nodes(scope);
30
- CREATE INDEX IF NOT EXISTS idx_memory_nodes_fingerprint ON memory_nodes(fingerprint);
31
-
32
- CREATE TABLE IF NOT EXISTS memory_meta (
33
- key TEXT PRIMARY KEY,
34
- value TEXT NOT NULL
35
- );
36
-
37
- INSERT OR IGNORE INTO memory_meta (key, value) VALUES ('schema_version', '1');
8
+ const SCHEMA = `
9
+ CREATE TABLE IF NOT EXISTS memory_nodes (
10
+ id TEXT PRIMARY KEY,
11
+ type TEXT NOT NULL,
12
+ title TEXT NOT NULL,
13
+ summary TEXT NOT NULL,
14
+ entities TEXT NOT NULL DEFAULT '[]',
15
+ source TEXT NOT NULL,
16
+ evidence_paths TEXT NOT NULL DEFAULT '[]',
17
+ confidence REAL NOT NULL,
18
+ scope TEXT NOT NULL,
19
+ status TEXT NOT NULL,
20
+ created_at TEXT NOT NULL,
21
+ updated_at TEXT NOT NULL,
22
+ last_verified_at TEXT,
23
+ metadata TEXT NOT NULL DEFAULT '{}',
24
+ fingerprint TEXT NOT NULL
25
+ );
26
+
27
+ CREATE INDEX IF NOT EXISTS idx_memory_nodes_type ON memory_nodes(type);
28
+ CREATE INDEX IF NOT EXISTS idx_memory_nodes_status ON memory_nodes(status);
29
+ CREATE INDEX IF NOT EXISTS idx_memory_nodes_scope ON memory_nodes(scope);
30
+ CREATE INDEX IF NOT EXISTS idx_memory_nodes_fingerprint ON memory_nodes(fingerprint);
31
+
32
+ CREATE TABLE IF NOT EXISTS memory_meta (
33
+ key TEXT PRIMARY KEY,
34
+ value TEXT NOT NULL
35
+ );
36
+
37
+ INSERT OR IGNORE INTO memory_meta (key, value) VALUES ('schema_version', '1');
38
38
  `;
39
39
  export class MemoryBrain {
40
40
  constructor(options = {}) {
@@ -320,28 +320,28 @@ export class MemoryBrain {
320
320
  }
321
321
  upsert(node) {
322
322
  const fingerprint = fingerprintFor(node);
323
- this.db.prepare(`
324
- INSERT INTO memory_nodes (
325
- id, type, title, summary, entities, source, evidence_paths, confidence, scope, status,
326
- created_at, updated_at, last_verified_at, metadata, fingerprint
327
- ) VALUES (
328
- @id, @type, @title, @summary, @entities, @source, @evidencePaths, @confidence, @scope, @status,
329
- @createdAt, @updatedAt, @lastVerifiedAt, @metadata, @fingerprint
330
- )
331
- ON CONFLICT(id) DO UPDATE SET
332
- type = excluded.type,
333
- title = excluded.title,
334
- summary = excluded.summary,
335
- entities = excluded.entities,
336
- source = excluded.source,
337
- evidence_paths = excluded.evidence_paths,
338
- confidence = excluded.confidence,
339
- scope = excluded.scope,
340
- status = excluded.status,
341
- updated_at = excluded.updated_at,
342
- last_verified_at = excluded.last_verified_at,
343
- metadata = excluded.metadata,
344
- fingerprint = excluded.fingerprint
323
+ this.db.prepare(`
324
+ INSERT INTO memory_nodes (
325
+ id, type, title, summary, entities, source, evidence_paths, confidence, scope, status,
326
+ created_at, updated_at, last_verified_at, metadata, fingerprint
327
+ ) VALUES (
328
+ @id, @type, @title, @summary, @entities, @source, @evidencePaths, @confidence, @scope, @status,
329
+ @createdAt, @updatedAt, @lastVerifiedAt, @metadata, @fingerprint
330
+ )
331
+ ON CONFLICT(id) DO UPDATE SET
332
+ type = excluded.type,
333
+ title = excluded.title,
334
+ summary = excluded.summary,
335
+ entities = excluded.entities,
336
+ source = excluded.source,
337
+ evidence_paths = excluded.evidence_paths,
338
+ confidence = excluded.confidence,
339
+ scope = excluded.scope,
340
+ status = excluded.status,
341
+ updated_at = excluded.updated_at,
342
+ last_verified_at = excluded.last_verified_at,
343
+ metadata = excluded.metadata,
344
+ fingerprint = excluded.fingerprint
345
345
  `).run({
346
346
  id: node.id,
347
347
  type: node.type,
@@ -131,65 +131,65 @@ function dashboardFindings(summary) {
131
131
  return findings;
132
132
  }
133
133
  function runtimeSection(summary) {
134
- return `<table>
135
- <thead><tr><th>Status</th><th>Total</th><th>Passed</th><th>Failed</th><th>Skipped</th></tr></thead>
136
- <tbody><tr><td>${summary.runtime.ok ? 'OK' : 'FAILED'}</td><td>${summary.runtime.total}</td><td>${summary.runtime.passed}</td><td>${summary.runtime.failed}</td><td>${summary.runtime.skipped}</td></tr></tbody>
134
+ return `<table>
135
+ <thead><tr><th>Status</th><th>Total</th><th>Passed</th><th>Failed</th><th>Skipped</th></tr></thead>
136
+ <tbody><tr><td>${summary.runtime.ok ? 'OK' : 'FAILED'}</td><td>${summary.runtime.total}</td><td>${summary.runtime.passed}</td><td>${summary.runtime.failed}</td><td>${summary.runtime.skipped}</td></tr></tbody>
137
137
  </table>`;
138
138
  }
139
139
  function evalSection(runs, failures) {
140
- const latestRows = runs.slice(0, 5).map(run => `<tr>
141
- <td><code>${escapeHtml(run.id)}</code></td>
142
- <td>${escapeHtml(run.suiteId)}</td>
143
- <td>${run.ok ? 'pass' : 'fail'}</td>
144
- <td>${(run.metrics.passAt1Rate * 100).toFixed(1)}%</td>
145
- <td>${run.metrics.failureReplayCount}</td>
140
+ const latestRows = runs.slice(0, 5).map(run => `<tr>
141
+ <td><code>${escapeHtml(run.id)}</code></td>
142
+ <td>${escapeHtml(run.suiteId)}</td>
143
+ <td>${run.ok ? 'pass' : 'fail'}</td>
144
+ <td>${(run.metrics.passAt1Rate * 100).toFixed(1)}%</td>
145
+ <td>${run.metrics.failureReplayCount}</td>
146
146
  </tr>`).join('');
147
- const failureRows = failures.slice(0, 8).map(failure => `<tr>
148
- <td><code>${escapeHtml(failure.id)}</code></td>
149
- <td>${escapeHtml(failure.category)}</td>
150
- <td>${escapeHtml(failure.status)}</td>
151
- <td>${escapeHtml(failure.phase)}</td>
147
+ const failureRows = failures.slice(0, 8).map(failure => `<tr>
148
+ <td><code>${escapeHtml(failure.id)}</code></td>
149
+ <td>${escapeHtml(failure.category)}</td>
150
+ <td>${escapeHtml(failure.status)}</td>
151
+ <td>${escapeHtml(failure.phase)}</td>
152
152
  </tr>`).join('');
153
- return `
154
- <h3>Latest Runs</h3>
155
- <table><thead><tr><th>Run</th><th>Suite</th><th>Status</th><th>Pass@1</th><th>Failures</th></tr></thead><tbody>${latestRows || '<tr><td colspan="5">No eval runs found.</td></tr>'}</tbody></table>
156
- <h3>Recent Failures</h3>
157
- <table><thead><tr><th>Failure</th><th>Category</th><th>Status</th><th>Phase</th></tr></thead><tbody>${failureRows || '<tr><td colspan="4">No recent failure replays found.</td></tr>'}</tbody></table>
153
+ return `
154
+ <h3>Latest Runs</h3>
155
+ <table><thead><tr><th>Run</th><th>Suite</th><th>Status</th><th>Pass@1</th><th>Failures</th></tr></thead><tbody>${latestRows || '<tr><td colspan="5">No eval runs found.</td></tr>'}</tbody></table>
156
+ <h3>Recent Failures</h3>
157
+ <table><thead><tr><th>Failure</th><th>Category</th><th>Status</th><th>Phase</th></tr></thead><tbody>${failureRows || '<tr><td colspan="4">No recent failure replays found.</td></tr>'}</tbody></table>
158
158
  `;
159
159
  }
160
160
  function memorySection(memoryDream) {
161
- const contradictionRows = memoryDream.contradictions.slice(0, 8).map(item => `<tr>
162
- <td><code>${escapeHtml(item.id)}</code></td>
163
- <td>${escapeHtml(item.title)}</td>
164
- <td>${item.nodeIds.map(id => `<code>${escapeHtml(id)}</code>`).join(', ')}</td>
161
+ const contradictionRows = memoryDream.contradictions.slice(0, 8).map(item => `<tr>
162
+ <td><code>${escapeHtml(item.id)}</code></td>
163
+ <td>${escapeHtml(item.title)}</td>
164
+ <td>${item.nodeIds.map(id => `<code>${escapeHtml(id)}</code>`).join(', ')}</td>
165
165
  </tr>`).join('');
166
- const promoteRows = memoryDream.promotionCandidates.slice(0, 8).map(item => `<tr>
167
- <td><code>${escapeHtml(item.id)}</code></td>
168
- <td>${escapeHtml(item.title)}</td>
169
- <td>${item.confidence.toFixed(2)}</td>
166
+ const promoteRows = memoryDream.promotionCandidates.slice(0, 8).map(item => `<tr>
167
+ <td><code>${escapeHtml(item.id)}</code></td>
168
+ <td>${escapeHtml(item.title)}</td>
169
+ <td>${item.confidence.toFixed(2)}</td>
170
170
  </tr>`).join('');
171
- return `
172
- <table><thead><tr><th>Total</th><th>Active</th><th>Candidate</th><th>Stale</th><th>Contradictions</th></tr></thead>
173
- <tbody><tr><td>${memoryDream.summary.total}</td><td>${memoryDream.summary.active}</td><td>${memoryDream.summary.candidate}</td><td>${memoryDream.summary.stale}</td><td>${memoryDream.summary.contradictions}</td></tr></tbody></table>
174
- <h3>Contradictions</h3>
175
- <table><thead><tr><th>ID</th><th>Title</th><th>Nodes</th></tr></thead><tbody>${contradictionRows || '<tr><td colspan="3">No contradictions found.</td></tr>'}</tbody></table>
176
- <h3>Promotion Candidates</h3>
177
- <table><thead><tr><th>ID</th><th>Title</th><th>Confidence</th></tr></thead><tbody>${promoteRows || '<tr><td colspan="3">No promotion candidates found.</td></tr>'}</tbody></table>
171
+ return `
172
+ <table><thead><tr><th>Total</th><th>Active</th><th>Candidate</th><th>Stale</th><th>Contradictions</th></tr></thead>
173
+ <tbody><tr><td>${memoryDream.summary.total}</td><td>${memoryDream.summary.active}</td><td>${memoryDream.summary.candidate}</td><td>${memoryDream.summary.stale}</td><td>${memoryDream.summary.contradictions}</td></tr></tbody></table>
174
+ <h3>Contradictions</h3>
175
+ <table><thead><tr><th>ID</th><th>Title</th><th>Nodes</th></tr></thead><tbody>${contradictionRows || '<tr><td colspan="3">No contradictions found.</td></tr>'}</tbody></table>
176
+ <h3>Promotion Candidates</h3>
177
+ <table><thead><tr><th>ID</th><th>Title</th><th>Confidence</th></tr></thead><tbody>${promoteRows || '<tr><td colspan="3">No promotion candidates found.</td></tr>'}</tbody></table>
178
178
  `;
179
179
  }
180
180
  function resourceSection(resourceDoctor) {
181
- const findingRows = resourceDoctor.findings.slice(0, 12).map(finding => `<tr>
182
- <td>${escapeHtml(finding.severity)}</td>
183
- <td>${escapeHtml(finding.code)}</td>
184
- <td>${escapeHtml(finding.path ?? '')}</td>
185
- <td>${escapeHtml(finding.message)}</td>
181
+ const findingRows = resourceDoctor.findings.slice(0, 12).map(finding => `<tr>
182
+ <td>${escapeHtml(finding.severity)}</td>
183
+ <td>${escapeHtml(finding.code)}</td>
184
+ <td>${escapeHtml(finding.path ?? '')}</td>
185
+ <td>${escapeHtml(finding.message)}</td>
186
186
  </tr>`).join('');
187
187
  const summary = resourceDoctor.scan.summary;
188
- return `
189
- <table><thead><tr><th>Status</th><th>Total Assets</th><th>Tracked Forbidden</th><th>Expired</th><th>Large Tracked</th></tr></thead>
190
- <tbody><tr><td>${resourceDoctor.ok ? 'OK' : 'FAILED'}</td><td>${summary.total}</td><td>${summary.trackedForbidden}</td><td>${summary.expired}</td><td>${summary.largeTracked}</td></tr></tbody></table>
191
- <h3>Findings</h3>
192
- <table><thead><tr><th>Severity</th><th>Code</th><th>Path</th><th>Message</th></tr></thead><tbody>${findingRows || '<tr><td colspan="4">No resource findings.</td></tr>'}</tbody></table>
188
+ return `
189
+ <table><thead><tr><th>Status</th><th>Total Assets</th><th>Tracked Forbidden</th><th>Expired</th><th>Large Tracked</th></tr></thead>
190
+ <tbody><tr><td>${resourceDoctor.ok ? 'OK' : 'FAILED'}</td><td>${summary.total}</td><td>${summary.trackedForbidden}</td><td>${summary.expired}</td><td>${summary.largeTracked}</td></tr></tbody></table>
191
+ <h3>Findings</h3>
192
+ <table><thead><tr><th>Severity</th><th>Code</th><th>Path</th><th>Message</th></tr></thead><tbody>${findingRows || '<tr><td colspan="4">No resource findings.</td></tr>'}</tbody></table>
193
193
  `;
194
194
  }
195
195
  function htmlArtifactSection(paths) {
@@ -1,7 +1,7 @@
1
1
  import { type GovernancePackId } from './GovernanceTemplatePacks.js';
2
2
  import type { VerificationService } from './VerificationProfile.js';
3
3
  export type GovernanceMode = 'minimal' | 'standard' | 'critical';
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' | 'resource-impact.md' | 'standards-impact.md' | 'architecture-review.md' | 'security-review.md' | 'db-change-plan.md' | 'e2e-plan.md' | 'product-smoke.md' | 'plan.md' | 'verification.md' | 'review.md' | 'summary.md';
4
+ export type GovernanceArtifactTemplateName = 'explore.md' | 'mini-prd.md' | 'skill-plan.md' | 'skill-evidence.md' | 'runtime.md' | 'reality-check.md' | 'resource-cleanup.md' | 'ui-spec.md' | 'visual-review.md' | 'api-contract.md' | 'docs-impact.md' | 'resource-impact.md' | 'standards-impact.md' | 'architecture-review.md' | 'security-review.md' | 'db-change-plan.md' | 'e2e-plan.md' | 'product-smoke.md' | 'plan.md' | 'verification.md' | 'review.md' | 'summary.md';
5
5
  export interface GovernanceTemplateOptions {
6
6
  mode?: GovernanceMode;
7
7
  projectName?: string;
@@ -24,6 +24,9 @@ export function writeGovernanceTemplates(projectDir = process.cwd(), options = {
24
24
  writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/mini-prd.md', governanceTemplateContent('mini-prd.md'));
25
25
  writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/skill-plan.md', governanceTemplateContent('skill-plan.md'));
26
26
  writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/skill-evidence.md', governanceTemplateContent('skill-evidence.md'));
27
+ writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/runtime.md', governanceTemplateContent('runtime.md'));
28
+ writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/reality-check.md', governanceTemplateContent('reality-check.md'));
29
+ writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/resource-cleanup.md', governanceTemplateContent('resource-cleanup.md'));
27
30
  writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/ui-spec.md', governanceTemplateContent('ui-spec.md'));
28
31
  writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/visual-review.md', governanceTemplateContent('visual-review.md'));
29
32
  writeTracked(result, lockFiles, projectDir, 'docs/workflow/templates/api-contract.md', governanceTemplateContent('api-contract.md'));
@@ -77,6 +80,9 @@ export function governanceTemplateContent(name) {
77
80
  case 'mini-prd.md': return miniPrdTemplate();
78
81
  case 'skill-plan.md': return skillPlanTemplate();
79
82
  case 'skill-evidence.md': return skillEvidenceTemplate();
83
+ case 'runtime.md': return runtimeTemplate();
84
+ case 'reality-check.md': return realityCheckTemplate();
85
+ case 'resource-cleanup.md': return resourceCleanupTemplate();
80
86
  case 'ui-spec.md': return uiSpecTemplate();
81
87
  case 'visual-review.md': return visualReviewTemplate();
82
88
  case 'api-contract.md': return apiContractTemplate();
@@ -178,11 +184,14 @@ Governance pack: ${packId}
178
184
  ## Standard Task Directory
179
185
 
180
186
  \`\`\`text
181
- docs/worklog/tasks/<yyyy-mm-dd>-<task-slug>/
182
- ├── explore.md
183
- ├── mini-prd.md
184
- ├── plan.md
185
- ├── verification.md
187
+ .planning/tasks/<yyyy-mm-dd>-<task-slug>/
188
+ ├── explore.md
189
+ ├── mini-prd.md
190
+ ├── plan.md
191
+ ├── runtime.md
192
+ ├── reality-check.md
193
+ ├── resource-cleanup.md
194
+ ├── verification.md
186
195
  ├── review.md
187
196
  ├── summary.md
188
197
  ├── artifact-manifest.json
@@ -204,7 +213,7 @@ scale verify <task-id> --artifact-gate warn
204
213
  scale verify <task-id> --artifact-gate block
205
214
  scale verify <task-id> --require-installed-skills
206
215
  scale verify <task-id> --profile productSmoke
207
- scale task-artifacts check --dir docs/worklog/tasks/<task-dir> --level L
216
+ scale task-artifacts check --dir .planning/tasks/<task-dir> --level L
208
217
  scale artifact render --task-id <task-dir> --type release-report
209
218
  scale artifact doctor --task-id <task-dir>
210
219
  \`\`\`
@@ -217,6 +226,32 @@ Keep \`.scale/engineering-standards.json\` and \`.scale/frameworks.json\` as the
217
226
  Keep \`.scale/engineering-standards-baseline.json\` as the temporary exception list for known legacy standards findings; it must not be used to hide new or changed-file problems.
218
227
  Use \`artifactGate: "warn"\` while introducing the workflow, then move M/L/CRITICAL work to \`"block"\` once templates and local gates are stable.
219
228
 
229
+ ## Workflow Upgrade
230
+
231
+ Do not rerun \`scale init\` as a blind upgrade command. Generated governance files may contain local project adaptations.
232
+
233
+ Use the guarded upgrade flow:
234
+
235
+ \`\`\`bash
236
+ scale upgrade check --dir .
237
+ scale upgrade plan --dir . --html
238
+ scale upgrade apply --dir . --confirm
239
+ scale upgrade rollback --dir .
240
+ scale tools outdated --dir .
241
+ scale skill outdated --dir .
242
+ scale preflight --preflight-profile quick
243
+ \`\`\`
244
+
245
+ Rules:
246
+
247
+ - \`.scale/governance.lock.json\` records generated file hashes and pack versions.
248
+ - Clean or missing generated files can be planned safely.
249
+ - Locally changed generated files require manual review before replacement or merge.
250
+ - \`scale upgrade apply --confirm\` only restores missing generated files and refreshes the lock after writing \`.scale/backups/upgrade-*/manifest.json\`.
251
+ - \`scale upgrade rollback\` only rolls back the latest SCALE-managed safe apply.
252
+ - Third-party skills, MCP servers, browser tools, desktop automation, and external CLI tools are never auto-installed by the upgrade flow.
253
+ - Community sources require source, install script, permission, and changelog review. Desktop automation is treated as high risk.
254
+
220
255
  ## HTML Artifacts
221
256
 
222
257
  Markdown remains the editable source of truth for task artifacts. HTML artifacts are derived human-review surfaces for plan comparison, implementation plans, code reviews, status reports, incident reports, and release reports.
@@ -267,13 +302,13 @@ Use asset scanning before committing generated reports, media, temporary scripts
267
302
  \`\`\`bash
268
303
  scale assets scan --json
269
304
  scale assets doctor --json
270
- scale assets settle --task-id <task-id> --artifact-dir docs/worklog/tasks/<task-dir>
305
+ scale assets settle --task-id <task-id> --artifact-dir .planning/tasks/<task-dir>
271
306
  \`\`\`
272
307
 
273
308
  Default policy:
274
309
 
275
310
  - maintained module docs, standards, contracts, ADRs, reusable scripts: commit and keep current.
276
- - task worklog artifacts: review before commit; promote final truth to maintained docs when useful.
311
+ - task planning, verification, runtime-contract, reality-check, and cleanup artifacts: keep in \`.planning/tasks\`; promote final truth to maintained docs when useful.
277
312
  - screenshots, videos, E2E reports, coverage, temporary scripts, and runtime logs: keep out of Git unless explicitly promoted.
278
313
  - large media: use Git LFS or external artifact storage instead of normal Git history.
279
314
 
@@ -286,8 +321,8 @@ scale standards scan --json
286
321
  scale standards doctor --json
287
322
  scale standards doctor --changed --json
288
323
  scale standards doctor --changed-files src/example.ts,src/example.test.ts --json
289
- scale standards baseline --write --artifact-dir docs/worklog/tasks/<task-dir> --task-id <task-id> --json
290
- scale standards settle --task-id <task-id> --artifact-dir docs/worklog/tasks/<task-dir>
324
+ scale standards baseline --write --artifact-dir .planning/tasks/<task-dir> --task-id <task-id> --json
325
+ scale standards settle --task-id <task-id> --artifact-dir .planning/tasks/<task-dir>
291
326
  scale preflight --preflight-profile full --json
292
327
  scale verify <task-id> --json
293
328
  \`\`\`
@@ -432,7 +467,7 @@ function skillPlanTemplate() {
432
467
  `;
433
468
  }
434
469
  function skillEvidenceTemplate() {
435
- return `# Skill Evidence
470
+ return `# Skill Evidence
436
471
 
437
472
  ## Planned Skills
438
473
 
@@ -467,8 +502,77 @@ TBD
467
502
  | skill-id | why it could not run | manual review, alternate command, or explicit risk |
468
503
  `;
469
504
  }
505
+ function runtimeTemplate() {
506
+ return `# Runtime Contract
507
+
508
+ ## Configuration Source
509
+
510
+ - Source: TBD
511
+ - Environment/profile: TBD
512
+ - Runtime overrides: TBD
513
+ - Secrets boundary: TBD
514
+
515
+ ## Service Topology
516
+
517
+ | Service | URL Or Command | Config Source | Auth Mode | Status |
518
+ | --- | --- | --- | --- | --- |
519
+ | TBD | TBD | TBD | TBD | Not checked |
520
+
521
+ ## Verification Boundary
522
+
523
+ - Confirmed:
524
+ - Not covered:
525
+ - Credential-gated:
526
+ - Environment-gated:
527
+ `;
528
+ }
529
+ function realityCheckTemplate() {
530
+ return `# Reality Check
531
+
532
+ ## Confirmed
533
+
534
+ - TBD
535
+
536
+ ## Not Verified
537
+
538
+ - TBD
539
+
540
+ ## Stub / Fake / Partial
541
+
542
+ - TBD
543
+
544
+ ## Credential-Gated
545
+
546
+ - TBD
547
+
548
+ ## Environment-Gated
549
+
550
+ - TBD
551
+
552
+ ## User-Visible Risk
553
+
554
+ - TBD
555
+ `;
556
+ }
557
+ function resourceCleanupTemplate() {
558
+ return `# Resource Cleanup
559
+
560
+ ## New Resources
561
+
562
+ | Resource | Location | Keep / Move / Delete | Reason |
563
+ | --- | --- | --- | --- |
564
+ | TBD | TBD | TBD | TBD |
565
+
566
+ ## Docs Promotion
567
+
568
+ - Promote to docs:
569
+ - Keep in planning:
570
+ - Keep local/runtime only:
571
+ - Delete before handoff:
572
+ `;
573
+ }
470
574
  function uiSpecTemplate() {
471
- return `# UI Spec
575
+ return `# UI Spec
472
576
 
473
577
  ## User Goal
474
578
 
@@ -822,12 +926,18 @@ TBD
822
926
  2. TBD
823
927
  3. TBD
824
928
 
825
- ## Rollback Plan
826
-
827
- TBD
828
-
829
- ## Test Strategy
830
- TBD
929
+ ## Rollback Plan
930
+
931
+ TBD
932
+
933
+ ## Human Confirmation
934
+
935
+ - Required for L/CRITICAL tasks:
936
+ - Confirmation source:
937
+ - Execution boundary approved:
938
+
939
+ ## Test Strategy
940
+ TBD
831
941
  `;
832
942
  }
833
943
  function verificationTemplate() {
@@ -1 +1 @@
1
- {"version":3,"file":"GovernanceTemplates.js","sourceRoot":"","sources":["../../src/workflow/GovernanceTemplates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GovernanceTemplates.js","sourceRoot":"","sources":["../../src/workflow/GovernanceTemplates.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ const DEFAULT_OWNERS = {
27
27
  'docs/workflow': 'engineering',
28
28
  'docs/decisions': 'architecture',
29
29
  'docs/modules': 'module-owner',
30
+ '.planning': 'engineering',
30
31
  '.scale': 'engineering',
31
32
  };
32
33
  const MEDIA_EXTENSIONS = new Set([
@@ -349,9 +350,17 @@ function classifyPath(path, policy) {
349
350
  if (path.startsWith('docs/decisions/') || /(^|\/)ADR-\d+/i.test(path)) {
350
351
  return { type: 'decision-record', lifecycle: 'immutable', gitPolicy: 'commit', reason: 'architecture decision record', sourceOfTruth: true };
351
352
  }
353
+ if (path.startsWith('.planning/tasks/') &&
354
+ (path.endsWith('.md') || path.endsWith('.html') || path.endsWith('/artifact-manifest.json'))) {
355
+ return { type: 'task-artifact', lifecycle: 'task-scoped', gitPolicy: 'review', reason: 'task planning or evidence artifact', retentionDays: 180 };
356
+ }
357
+ if (path.startsWith('.planning/archive/') &&
358
+ (path.endsWith('.md') || path.endsWith('.html') || path.endsWith('/artifact-manifest.json'))) {
359
+ return { type: 'task-artifact', lifecycle: 'task-scoped', gitPolicy: 'review', reason: 'archived legacy task artifact', retentionDays: 365 };
360
+ }
352
361
  if (path.startsWith('docs/worklog/tasks/') &&
353
362
  (path.endsWith('.md') || path.endsWith('.html') || path.endsWith('/artifact-manifest.json'))) {
354
- return { type: 'task-artifact', lifecycle: 'task-scoped', gitPolicy: 'review', reason: 'task evidence artifact', retentionDays: 180 };
363
+ return { type: 'task-artifact', lifecycle: 'task-scoped', gitPolicy: 'review', reason: 'legacy task evidence artifact; prefer .planning/tasks for new work', retentionDays: 180 };
355
364
  }
356
365
  if (path.startsWith('docs/modules/') || path.startsWith('docs/standards/') || path.startsWith('docs/architecture/') || path.startsWith('docs/workflow/') || /^docs\/[^/]+\.md$/i.test(path) || path === 'README.md' || path === 'CHANGELOG.md') {
357
366
  return { type: 'canonical-doc', lifecycle: 'maintained', gitPolicy: 'commit', reason: 'maintained project documentation', sourceOfTruth: true };