129 lines
4.9 KiB
JSON
129 lines
4.9 KiB
JSON
{
|
|
"runDate": "2026-04-19",
|
|
"parentFramework": "2026-04-19-scene-skill-102-full-coverage-framework-plan",
|
|
"parentRoute": "Route 6 / promotion and board reconciliation",
|
|
"plan": "2026-04-19-promotion-and-board-reconciliation-policy-plan.md",
|
|
"scope": {
|
|
"policyOnly": true,
|
|
"doesNotUpdateExecutionBoard": true,
|
|
"forbiddenChanges": [
|
|
"src/generated_scene/analyzer.rs",
|
|
"src/generated_scene/generator.rs",
|
|
"tests/fixtures/generated_scene/scene_execution_board_2026-04-18.json"
|
|
]
|
|
},
|
|
"statusInputs": [
|
|
"auto-pass",
|
|
"fail-closed-known",
|
|
"adjudicated-valid-host-bridge",
|
|
"timeout-as-pass-candidate",
|
|
"timeout-as-fail-closed-candidate",
|
|
"timeout-still-unreadable",
|
|
"timeout-rerun-error"
|
|
],
|
|
"promotionThresholds": [
|
|
{
|
|
"inputStatus": "auto-pass",
|
|
"boardCandidateStatus": "framework-auto-pass-candidate",
|
|
"requiredEvidence": [
|
|
"generation-report exists",
|
|
"readiness level A or B",
|
|
"missingPieces is empty",
|
|
"no blocker gates failed",
|
|
"route-local follow-up or full sweep provenance is recorded"
|
|
],
|
|
"canAutoUpdateBoard": false,
|
|
"reason": "Auto-pass from sweep is strong framework evidence but still requires explicit board reconciliation."
|
|
},
|
|
{
|
|
"inputStatus": "fail-closed-known",
|
|
"boardCandidateStatus": "framework-structured-fail-closed",
|
|
"requiredEvidence": [
|
|
"generation-report exists",
|
|
"readiness blocker reason is named",
|
|
"missingPieces or failed gate is recorded",
|
|
"contractSnapshot or equivalent diagnostic evidence is available"
|
|
],
|
|
"canAutoUpdateBoard": false,
|
|
"reason": "Structured fail-closed is recognized coverage, not a pass."
|
|
},
|
|
{
|
|
"inputStatus": "adjudicated-valid-host-bridge",
|
|
"boardCandidateStatus": "framework-valid-host-bridge",
|
|
"requiredEvidence": [
|
|
"route conflict decision exists",
|
|
"host_bridge_workflow is the only closed workflow path",
|
|
"expected G2/G3 contract is not closed"
|
|
],
|
|
"canAutoUpdateBoard": false,
|
|
"reason": "Valid host bridge adjudication is a corrected interpretation, not automatic execution pass."
|
|
},
|
|
{
|
|
"inputStatus": "timeout-as-pass-candidate",
|
|
"boardCandidateStatus": "hygiene-pass-candidate",
|
|
"requiredEvidence": [
|
|
"timeout hygiene rerun record exists",
|
|
"diagnostic rerun completed with readiness A or B",
|
|
"raw sweep timeout is preserved"
|
|
],
|
|
"canAutoUpdateBoard": false,
|
|
"reason": "Timeout rerun success is diagnostic and must not be promoted as official pass without a normal-budget sweep or explicit validation."
|
|
},
|
|
{
|
|
"inputStatus": "timeout-as-fail-closed-candidate",
|
|
"boardCandidateStatus": "hygiene-fail-closed-candidate",
|
|
"requiredEvidence": [
|
|
"timeout hygiene rerun record exists",
|
|
"diagnostic rerun completed as structured fail-closed",
|
|
"raw sweep timeout is preserved"
|
|
],
|
|
"canAutoUpdateBoard": false,
|
|
"reason": "Timeout rerun fail-closed corrects interpretation but does not change official board state by itself."
|
|
}
|
|
],
|
|
"boardUpdateRules": [
|
|
{
|
|
"rule": "no-diagnostic-auto-promotion",
|
|
"description": "Diagnostic reruns, hygiene interpretations, and route-local follow-ups cannot directly update the official execution board."
|
|
},
|
|
{
|
|
"rule": "explicit-reconciliation-required",
|
|
"description": "Board changes require a dedicated reconciliation plan that names the source assets and target statuses."
|
|
},
|
|
{
|
|
"rule": "pass-requires-normalized-evidence",
|
|
"description": "A scene may be promoted to a pass-like board status only when generation evidence is complete under the agreed sweep or validation budget."
|
|
},
|
|
{
|
|
"rule": "fail-closed-is-supported-coverage",
|
|
"description": "Structured fail-closed should be represented as framework-supported but not execution-passed."
|
|
},
|
|
{
|
|
"rule": "host-bridge-adjudication-is-not-g2-g3-pass",
|
|
"description": "Adjudicated host bridge scenes must remain host-bridge classified unless a later implementation closes their original expected contract."
|
|
}
|
|
],
|
|
"timeoutHygieneRepresentation": {
|
|
"preserveRawSourceUnreadable": true,
|
|
"publishHygieneAwareStatusAlongsideRawStatus": true,
|
|
"allowedHygieneStatuses": [
|
|
"timeout-as-pass-candidate",
|
|
"timeout-as-fail-closed-candidate",
|
|
"timeout-still-unreadable",
|
|
"timeout-rerun-error"
|
|
]
|
|
},
|
|
"structuredFailClosedRepresentation": {
|
|
"recognizedAsFrameworkCoverage": true,
|
|
"recognizedAsExecutionPass": false,
|
|
"requiresNamedBlocker": true,
|
|
"requiresDiagnosticPayload": true
|
|
},
|
|
"completionCriteria": {
|
|
"promotionThresholdsExplicit": true,
|
|
"timeoutHygieneRepresentationExplicit": true,
|
|
"boardUpdateRulesExplicit": true
|
|
},
|
|
"stopStatement": "Route 6 policy is published. Do not update the execution board under this plan."
|
|
}
|