docs: complete S-52 root cause fix audit

This commit is contained in:
OpenAI Codex
2026-09-21 09:10:14 +08:00
parent e1e3a9e00c
commit c1a9fa7a42
6 changed files with 32367 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,32 @@
{
"schema": "cm95.s52.residual-fail-evidence/v1",
"date": "2026-09-21",
"source_audit": "build/audits/cm95_s52_opencpn_code_first_equivalence_v3.json",
"fail_count": 1,
"failures": [
{
"branch_id": "DC-DEC-DEP-LOW",
"procedure": "DEPCNT02",
"condition": "LINE DEPARE; d1<=SC and d2<SC",
"expected": "DRVAL2 is normalized to DRVAL1+0.01; with DRVAL1=2 and safety contour=3 the result is LS(SOLD,1,DEPCN).",
"observed_current": "resolve_depcnt02_instruction('DEPARE', DRVAL1=2, DRVAL2=2, next_safe_contour_m=2) returns LS(SOLD,2,DEPSC).",
"affected_gates": [
"B CSP_BRANCH_EQUIVALENCE",
"H MARINER_DEPENDENCY_EQUIVALENCE"
],
"cm95_paths_or_functions": [
"src/cm95pbf/csp.py:resolve_depcnt02_instruction",
"web/s52_runtime_executor.js:dynamicRules(DEPCNT02)"
],
"opencpn_paths_or_functions": [
"docs/外部参考/OpenCPN源码基线_f7211b4e/上游源码/libs/s52plib/src/s52cnsy.cpp:DEPCNT02"
],
"witness_evidence": [
"/tmp/cm95-v2-probes.json:depcnt-depare-invalid-range",
"expected LS(SOLD,1,DEPCN)",
"observed LS(SOLD,2,DEPSC)"
],
"possible_shared_mechanism": "Adjacent to RC-015: DEPARE01 normalizes DRVAL2<=DRVAL1, while the DEPCNT02 DEPARE interval decision does not share that normalization."
}
]
}

View File

@@ -0,0 +1,336 @@
{
"schema": "cm95.s52.remaining-26-root-cause-fix-audit/v1",
"date": "2026-09-21",
"status": "FAIL",
"target_portrayal": "FAIL",
"opencpn_commit": "f7211b4e1874c453e37a7f190aa191c55a25c32e",
"task_commits": [
"f3047a3f06d2eac3f603dcb54646a60fdead2354",
"e5be7c1",
"043b022",
"bea74dd",
"89653ea",
"e1e3a9e"
],
"production": {
"status": "PASS",
"plan_sha256": "d6772d47e43c37d8789588f8a83c90bea0efbad0bf1ffa1ce8d690b99535ad02",
"summary_sha256": "7e411b7f01e0e6f7b13e3202c8105980d7b549cf518dd7892d56c5eef756f32f",
"jobs": 5065,
"states": {
"PASS": 5065
},
"pbf_files": 5064,
"features": 476120,
"rebuild_performed_by_this_audit": false
},
"branch_status_counts": {
"PASS": 120,
"FAIL": 1,
"NOT_PROVEN": 85
},
"gates": [
{
"gate": "A",
"name": "OPENCPN_FLOW_EQUIVALENCE",
"status": "FAIL",
"reason": "$AREAS II25→BACKGROUND normalization remains absent; lookup '?' scoring/numeric/fallback semantics are not fully identical to the fixed parser."
},
{
"gate": "B",
"name": "CSP_BRANCH_EQUIVALENCE",
"status": "FAIL",
"reason": "All 206 rows were re-adjudicated; DC-DEC-DEP-LOW is now a branch-specific confirmed mismatch."
},
{
"gate": "C",
"name": "NESTED_CSP_CALL_GRAPH",
"status": "PASS",
"reason": "Phase A/C witnesses prove ordered OBSTRN/WRECKS quality, name and sounding suffix expansion."
},
{
"gate": "D",
"name": "INSTRUCTION_SEQUENCE_EQUIVALENCE",
"status": "PASS",
"reason": "Versioned mixed-opcode rule IR preserves lookup+CSP order and structured TX operands."
},
{
"gate": "E",
"name": "RUNTIME_OPCODE_COVERAGE",
"status": "PASS",
"reason": "Generic executor and specialized SOUNDG/LIGHTS/CA paths execute the required ordered opcodes; missing DANGER53 does not discard the suffix."
},
{
"gate": "F",
"name": "REAL_DATA_BRANCH_COVERAGE",
"status": "NOT_PROVEN",
"reason": "The v5 release is complete, but delivery fields do not uniquely reconstruct every source predicate/association/view state."
},
{
"gate": "G",
"name": "RESOURCE_DEPENDENCY_EQUIVALENCE",
"status": "NOT_PROVEN",
"reason": "The local resource contract passes, but the fixed OpenCPN snapshot contains no independent chartsymbols.xml; DANGER53/LOWACC03 equivalence remains unprovable."
},
{
"gate": "H",
"name": "MARINER_DEPENDENCY_EQUIVALENCE",
"status": "FAIL",
"reason": "The DEPCNT DEPARE interval path does not normalize DRVAL2<=DRVAL1 before safe-contour selection."
},
{
"gate": "I",
"name": "RENDER_ORDER_EQUIVALENCE",
"status": "NOT_PROVEN",
"reason": "OP no-op and multi-LS execution are corrected; cross-object/global pass interleaving is still outside the available snapshot and witnesses."
}
],
"root_causes": [
{
"root_cause_id": "RC-001",
"phase": "phase_a",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-002",
"phase": "phase_a",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-003",
"phase": "phase_c",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-004",
"phase": "phase_c",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-005",
"phase": "phase_c",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-006",
"phase": "phase_c",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-007",
"phase": "phase_d",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-008",
"phase": "phase_b",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-009",
"phase": "phase_c",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-010",
"phase": "phase_b",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-011",
"phase": "phase_b",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-012",
"phase": "batch_1",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-013",
"phase": "phase_a",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-014",
"phase": "phase_c",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-015",
"phase": "phase_b",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-016",
"phase": "phase_c",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-017",
"phase": "phase_b",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-018",
"phase": "phase_b",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-019",
"phase": "phase_b",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-020",
"phase": "phase_b",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-021",
"phase": "phase_b",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-022",
"phase": "batch_1",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-023",
"phase": "batch_1",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-024",
"phase": "batch_1",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-025",
"phase": "batch_1",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-026",
"phase": "batch_1",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-027",
"phase": "phase_a",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-028",
"phase": "phase_b",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-029",
"phase": "batch_1",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-030",
"phase": "batch_1",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-031",
"phase": "batch_1",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-032",
"phase": "batch_1",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-033",
"phase": "phase_d",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-034",
"phase": "batch_1",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-035",
"phase": "batch_1",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-036",
"phase": "phase_b",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-037",
"phase": "phase_d",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
},
{
"root_cause_id": "RC-038",
"phase": "phase_a",
"status": "PASS",
"evidence": "current source + re-executed phase witness + 206-row v3 adjudication"
}
],
"remaining_26_closed_count": 26,
"rc_021": {
"status": "PASS",
"branch_id": "DC-OUT-ZERO-NORMAL",
"conclusion": "current implementation equivalent; v2 FAIL was shared-evidence misattribution",
"instruction": "LS(SOLD,1,DEPCN)"
},
"new_residual": {
"id": "RC-039",
"status": "FAIL",
"branch_id": "DC-DEC-DEP-LOW",
"evidence_package": "build/audits/cm95_s52_remaining_26_residual_fail_evidence_v1.json"
},
"artifacts": {
"code_first_json": "build/audits/cm95_s52_opencpn_code_first_equivalence_v3.json",
"code_first_report": "docs/报告/CM95_S52_OpenCPN渲染流程对照审计报告_v3.md",
"residual_fail_evidence": "build/audits/cm95_s52_remaining_26_residual_fail_evidence_v1.json"
}
}