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.
- package/CHANGELOG.md +20 -0
- package/README.md +28 -1
- package/README.zh.md +28 -1
- package/docs/command-reference.md +37 -7
- package/docs/images/wechat-qr.png +0 -0
- package/lib/adoption/adoption-strategy.js +1 -0
- package/lib/adoption/detection-engine.js +1 -0
- package/lib/adoption/file-classifier.js +2 -1
- package/lib/adoption/smart-orchestrator.js +1 -0
- package/lib/commands/errorbook.js +142 -2
- package/lib/commands/studio.js +301 -8
- package/lib/problem/problem-evaluator.js +431 -16
- package/lib/spec/domain-modeling.js +49 -4
- package/lib/workspace/takeover-baseline.js +72 -4
- package/package.json +1 -1
- package/template/.sce/config/problem-closure-policy.json +18 -0
- package/template/.sce/config/problem-eval-policy.json +43 -1
- package/template/.sce/config/spec-domain-policy.json +9 -1
- package/template/.sce/steering/CORE_PRINCIPLES.md +4 -2
|
@@ -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
|
@@ -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)
|
|
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
|
|