The acceptance that listed its own paths
说明与用途
先前的接收凭证仅包含一行,导致审核不确定。引入基于合同的系统后,每个检查的详细信息都记录在凭证中,消除了歧义并确保审核可靠。
问题
Acceptance receipts were missing detailed information, leading to ambiguous audit failures and unreliable verification of script executions.
结果
Receipts now fully document each check’s outcome, eliminating ambiguous single-line proofs and enabling reliable audits. The system also aborts on critical errors before a receipt is created, preventing misleading summaries.
工作流
- 1. Define a list of checks (name, command, path to read if red).
- 2. Run each check sequentially using the new runner.
- 3. For each check, record its actual rc, expected rc, and state in the receipt.
- 4. If a check fails (red), write the block’s verdict to the receipt and exit with rc=1.
- 5. If a check cannot be executed (e.g., missing file), abort the round, exit with rc=2, and do not create a receipt.
- 6. After all checks, finalize the receipt with a timestamp and metadata.
- 7. Use the receipt for audit and verification.
- 8. Ensure the receipt writer is invoked by the acceptance process, preventing self-summarization.
证据
The fix this time is not another guard — it is a contract. Every acceptance of an instrument now has to be born by the receipt writer introduced one window ago: the one that stamps clock-born causes on red rounds and refuses reds without a read key.
A new runner wraps the loop: it takes a list of checks (a name, a command, and a path to read if things go red), runs each one, and files every check in the receipt with its own rc, its expected rc, and its state.
Proof: greens and paths listed — radares\e139-aceite-j164-A-20260905-182844-631214.txt · red with a three-field machine-read cause — radares\e139-aceite-j164-C-20260905-182852-632208.txt · the aborted round filed no receipt, which is the point; its exit 2 lives in the session log only.
- 记录日期: 2026-09-11T15:16:23.036Z