docs: close RC-039 and record Code-First v4

This commit is contained in:
OpenAI Codex
2026-09-21 09:28:08 +08:00
parent 1dbe1fde07
commit 3af6858ce0
5 changed files with 31509 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,112 @@
{
"schema": "cm95.s52.rc039-depcnt-control-flow-fix/v1",
"date": "2026-09-21",
"status": "PASS",
"branch_id": "DC-DEC-DEP-LOW",
"commit": "1dbe1fde07ed64b39893de7d7e6ec5ce77cab871",
"opencpn_behavior": "For LINE DEPARE, when DRVAL1<=safety_contour, only DRVAL2>=safety_contour can set safe=true. The chart next-safe-contour fallback belongs exclusively to the outer else branch where DRVAL1>safety_contour.",
"previous_incorrect_audit_explanation": "DRVAL2<=DRVAL1 must be normalized to DRVAL1+0.01 before DEPCNT02 safety selection.",
"correct_root_cause": "Nested OpenCPN if/else was flattened into CM95 if/elif, making the next-safe fallback reachable in a branch where OpenCPN never evaluates it.",
"python_witness": [
{
"case": "low-no-cross",
"instruction": "LS(SOLD,1,DEPCN)",
"safe": false
},
{
"case": "cross-safety",
"instruction": "LS(SOLD,2,DEPSC)",
"safe": true
},
{
"case": "deep-next-safe",
"instruction": "LS(SOLD,2,DEPSC)",
"safe": true
}
],
"js_runtime_witness": [
{
"case": "low-no-cross",
"operations": [
{
"opcode": "LS",
"args": [
"SOLD",
"1",
"DEPCN"
]
}
]
},
{
"case": "cross-safety",
"operations": [
{
"opcode": "SE",
"args": []
},
{
"opcode": "LS",
"args": [
"SOLD",
"2",
"DEPSC"
]
}
]
},
{
"case": "deep-next-safe",
"operations": [
{
"opcode": "SE",
"args": []
},
{
"opcode": "LS",
"args": [
"SOLD",
"2",
"DEPSC"
]
}
]
},
{
"case": "depcnt-mariner-exact",
"operations": [
{
"opcode": "SE",
"args": []
},
{
"opcode": "LS",
"args": [
"SOLD",
"2",
"DEPSC"
]
}
]
}
],
"kyushu_v5_release_affected_feature_count": 0,
"rebuild_required": false,
"code_first_v4_counts": {
"PASS": 121,
"FAIL": 0,
"NOT_PROVEN": 85
},
"gates": {
"A": "FAIL",
"B": "PASS",
"C": "PASS",
"D": "PASS",
"E": "PASS",
"F": "NOT_PROVEN",
"G": "NOT_PROVEN",
"H": "PASS",
"I": "NOT_PROVEN"
},
"target_portrayal": "FAIL"
}