scene-capability-engine 3.4.5 → 3.4.6

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.
@@ -23,7 +23,9 @@ const SPEC_DOMAIN_POLICY_DEFAULTS = Object.freeze({
23
23
  schema_version: '1.0',
24
24
  closed_loop_research_required: true,
25
25
  coverage_validation_required: true,
26
- fail_on_gap_default: true
26
+ fail_on_gap_default: true,
27
+ problem_contract_required: true,
28
+ ontology_axes_required: ['entity', 'relation', 'business_rule', 'decision_policy', 'execution_flow']
27
29
  });
28
30
 
29
31
  const PROBLEM_EVAL_POLICY_DEFAULTS = Object.freeze({
@@ -51,7 +53,38 @@ const PROBLEM_EVAL_POLICY_DEFAULTS = Object.freeze({
51
53
  'compliance',
52
54
  'data-loss'
53
55
  ],
54
- recommendation_limit: 6
56
+ recommendation_limit: 6,
57
+ max_failed_rounds_before_debug: 2,
58
+ problem_contract_required_stages: ['plan', 'generate', 'apply', 'verify', 'release'],
59
+ problem_contract_block_stages: ['plan', 'apply', 'release'],
60
+ ontology_alignment_required_stages: ['plan', 'generate', 'apply', 'verify', 'release'],
61
+ ontology_alignment_block_stages: ['apply', 'release'],
62
+ ontology_required_axes: ['entity', 'relation', 'business_rule', 'decision_policy', 'execution_flow'],
63
+ require_ontology_evidence_binding: true,
64
+ ontology_evidence_min_bindings: 1,
65
+ convergence_required_stages: ['verify', 'release'],
66
+ convergence_block_stages: ['release'],
67
+ release_block_on_high_alerts: true,
68
+ release_require_governance_report: false
69
+ });
70
+
71
+ const PROBLEM_CLOSURE_POLICY_DEFAULTS = Object.freeze({
72
+ schema_version: '1.0',
73
+ enabled: true,
74
+ governance_report_path: '.sce/reports/interactive-governance-report.json',
75
+ verify: {
76
+ require_problem_contract: true,
77
+ require_domain_validation: true,
78
+ require_domain_coverage: true
79
+ },
80
+ release: {
81
+ require_problem_contract: true,
82
+ require_domain_validation: true,
83
+ require_domain_coverage: true,
84
+ require_verify_report: true,
85
+ require_governance_report: false,
86
+ block_on_high_governance_alerts: true
87
+ }
55
88
  });
56
89
 
57
90
  const TAKEOVER_DEFAULTS = Object.freeze({
@@ -70,13 +103,39 @@ const TAKEOVER_DEFAULTS = Object.freeze({
70
103
  spec_domain_policy: {
71
104
  closed_loop_research_required: true,
72
105
  coverage_validation_required: true,
73
- fail_on_gap_default: true
106
+ fail_on_gap_default: true,
107
+ problem_contract_required: true,
108
+ ontology_axes_required: ['entity', 'relation', 'business_rule', 'decision_policy', 'execution_flow']
74
109
  },
75
110
  problem_evaluation: {
76
111
  enabled: true,
77
112
  mode: 'required',
78
113
  enforce_on_stages: ['plan', 'generate', 'apply', 'verify', 'release'],
79
- block_on_stages: ['apply', 'release']
114
+ block_on_stages: ['apply', 'release'],
115
+ problem_contract_required_stages: ['plan', 'generate', 'apply', 'verify', 'release'],
116
+ problem_contract_block_stages: ['plan', 'apply', 'release'],
117
+ ontology_alignment_required_stages: ['plan', 'generate', 'apply', 'verify', 'release'],
118
+ ontology_alignment_block_stages: ['apply', 'release'],
119
+ convergence_required_stages: ['verify', 'release'],
120
+ convergence_block_stages: ['release'],
121
+ max_failed_rounds_before_debug: 2
122
+ },
123
+ problem_closure: {
124
+ enabled: true,
125
+ governance_report_path: '.sce/reports/interactive-governance-report.json',
126
+ verify: {
127
+ require_problem_contract: true,
128
+ require_domain_validation: true,
129
+ require_domain_coverage: true
130
+ },
131
+ release: {
132
+ require_problem_contract: true,
133
+ require_domain_validation: true,
134
+ require_domain_coverage: true,
135
+ require_verify_report: true,
136
+ require_governance_report: false,
137
+ block_on_high_governance_alerts: true
138
+ }
80
139
  },
81
140
  debug_policy: {
82
141
  prioritize_root_cause_fix: true,
@@ -346,6 +405,7 @@ async function applyTakeoverBaseline(projectPath = process.cwd(), options = {})
346
405
  const sessionGovernancePath = path.join(sceRoot, 'config', 'session-governance.json');
347
406
  const specDomainPolicyPath = path.join(sceRoot, 'config', 'spec-domain-policy.json');
348
407
  const problemEvalPolicyPath = path.join(sceRoot, 'config', 'problem-eval-policy.json');
408
+ const problemClosurePolicyPath = path.join(sceRoot, 'config', 'problem-closure-policy.json');
349
409
  const reportPath = path.join(sceRoot, 'reports', 'takeover-baseline-latest.json');
350
410
 
351
411
  const existingAdoption = await _readJsonSafe(adoptionPath, fileSystem);
@@ -354,6 +414,7 @@ async function applyTakeoverBaseline(projectPath = process.cwd(), options = {})
354
414
  const existingSessionGovernance = await _readJsonSafe(sessionGovernancePath, fileSystem);
355
415
  const existingSpecDomainPolicy = await _readJsonSafe(specDomainPolicyPath, fileSystem);
356
416
  const existingProblemEvalPolicy = await _readJsonSafe(problemEvalPolicyPath, fileSystem);
417
+ const existingProblemClosurePolicy = await _readJsonSafe(problemClosurePolicyPath, fileSystem);
357
418
 
358
419
  const desiredAdoption = _buildAdoptionConfig(existingAdoption, nowIso, sceVersion);
359
420
  const desiredAutoConfig = _buildAutoConfig(existingAuto);
@@ -361,6 +422,7 @@ async function applyTakeoverBaseline(projectPath = process.cwd(), options = {})
361
422
  const desiredSessionGovernance = _deepMerge(existingSessionGovernance || {}, SESSION_GOVERNANCE_DEFAULTS);
362
423
  const desiredSpecDomainPolicy = _deepMerge(existingSpecDomainPolicy || {}, SPEC_DOMAIN_POLICY_DEFAULTS);
363
424
  const desiredProblemEvalPolicy = _deepMerge(existingProblemEvalPolicy || {}, PROBLEM_EVAL_POLICY_DEFAULTS);
425
+ const desiredProblemClosurePolicy = _deepMerge(existingProblemClosurePolicy || {}, PROBLEM_CLOSURE_POLICY_DEFAULTS);
364
426
 
365
427
  const fileResults = [];
366
428
  fileResults.push(await _reconcileJsonFile(adoptionPath, desiredAdoption, {
@@ -393,6 +455,11 @@ async function applyTakeoverBaseline(projectPath = process.cwd(), options = {})
393
455
  apply,
394
456
  fileSystem
395
457
  }));
458
+ fileResults.push(await _reconcileJsonFile(problemClosurePolicyPath, desiredProblemClosurePolicy, {
459
+ projectPath,
460
+ apply,
461
+ fileSystem
462
+ }));
396
463
  fileResults.push(await _reconcileSteeringContract(projectPath, {
397
464
  apply,
398
465
  fileSystem
@@ -441,6 +508,7 @@ module.exports = {
441
508
  TAKEOVER_DEFAULTS,
442
509
  SESSION_GOVERNANCE_DEFAULTS,
443
510
  SPEC_DOMAIN_POLICY_DEFAULTS,
511
+ PROBLEM_CLOSURE_POLICY_DEFAULTS,
444
512
  PROBLEM_EVAL_POLICY_DEFAULTS,
445
513
  applyTakeoverBaseline
446
514
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scene-capability-engine",
3
- "version": "3.4.5",
3
+ "version": "3.4.6",
4
4
  "description": "SCE (Scene Capability Engine) - A CLI tool and npm package for spec-driven development with AI coding assistants.",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -0,0 +1,18 @@
1
+ {
2
+ "schema_version": "1.0",
3
+ "enabled": true,
4
+ "governance_report_path": ".sce/reports/interactive-governance-report.json",
5
+ "verify": {
6
+ "require_problem_contract": true,
7
+ "require_domain_validation": true,
8
+ "require_domain_coverage": true
9
+ },
10
+ "release": {
11
+ "require_problem_contract": true,
12
+ "require_domain_validation": true,
13
+ "require_domain_coverage": true,
14
+ "require_verify_report": true,
15
+ "require_governance_report": false,
16
+ "block_on_high_governance_alerts": true
17
+ }
18
+ }
@@ -32,5 +32,47 @@
32
32
  "compliance",
33
33
  "data-loss"
34
34
  ],
35
- "recommendation_limit": 6
35
+ "recommendation_limit": 6,
36
+ "max_failed_rounds_before_debug": 2,
37
+ "problem_contract_required_stages": [
38
+ "plan",
39
+ "generate",
40
+ "apply",
41
+ "verify",
42
+ "release"
43
+ ],
44
+ "problem_contract_block_stages": [
45
+ "plan",
46
+ "apply",
47
+ "release"
48
+ ],
49
+ "ontology_alignment_required_stages": [
50
+ "plan",
51
+ "generate",
52
+ "apply",
53
+ "verify",
54
+ "release"
55
+ ],
56
+ "ontology_alignment_block_stages": [
57
+ "apply",
58
+ "release"
59
+ ],
60
+ "ontology_required_axes": [
61
+ "entity",
62
+ "relation",
63
+ "business_rule",
64
+ "decision_policy",
65
+ "execution_flow"
66
+ ],
67
+ "require_ontology_evidence_binding": true,
68
+ "ontology_evidence_min_bindings": 1,
69
+ "convergence_required_stages": [
70
+ "verify",
71
+ "release"
72
+ ],
73
+ "convergence_block_stages": [
74
+ "release"
75
+ ],
76
+ "release_block_on_high_alerts": true,
77
+ "release_require_governance_report": false
36
78
  }
@@ -2,5 +2,13 @@
2
2
  "schema_version": "1.0",
3
3
  "closed_loop_research_required": true,
4
4
  "coverage_validation_required": true,
5
- "fail_on_gap_default": true
5
+ "fail_on_gap_default": true,
6
+ "problem_contract_required": true,
7
+ "ontology_axes_required": [
8
+ "entity",
9
+ "relation",
10
+ "business_rule",
11
+ "decision_policy",
12
+ "execution_flow"
13
+ ]
6
14
  }
@@ -211,10 +211,12 @@
211
211
  - `.sce/specs/<spec>/custom/problem-domain-map.md`
212
212
  - `.sce/specs/<spec>/custom/scene-spec.md`
213
213
  - `.sce/specs/<spec>/custom/problem-domain-chain.json`
214
+ - `.sce/specs/<spec>/custom/problem-contract.json`
214
215
  2) `problem-domain-map` 必须包含:Root Problem、Mind Map、Layered Exploration Chain、Correction Loop
215
216
  3) `scene-spec` 必须包含:Scene Definition、Ontology Coverage、Decision & Execution Path、Acceptance & Gate
216
- 4) `problem-domain-chain.json` 必须包含可机读思维链:problem/ontology/hypotheses/risks/decision_execution_path/correction_loop/verification
217
- 5) 默认门禁强制校验上述结构,缺失即 `no-go`
217
+ 4) `problem-domain-chain.json` 必须包含可机读思维链:problem/ontology/hypotheses/risks/decision_execution_path/correction_loop/verification/problem_contract/ontology_evidence
218
+ 5) `problem-contract.json` 必须包含:issue_statement、expected_outcome、reproduction_steps、impact_scope、forbidden_workarounds
219
+ 6) 默认门禁强制校验上述结构,缺失即 `no-go`(`problem-closure-gate` 在 verify/release 默认启用)
218
220
 
219
221
  **目标**: 用全局问题域视角 + 场景契约约束,减少方向性错误与盲改,提升纠偏效率
220
222