Macro-5 B2 Candidate Input Contract Refinement — R2-B2 (2026-06-19)
Macro-5 B2 Candidate Input Contract Refinement — R2-B2 (2026-06-19)
Date: 2026-06-19 · Workstream: R2-B2-MACRO-5-STAGING-BUILD-AUTHORIZATION-PACKAGE-2026-06-19 (Deliverable 33 of 110) · Editorial revision: rev1
Class: B2 input contract refinement · READ-ONLY · NON-ENACTING · NON-AUTHORIZING · B2-ONLY · NO write performed.
Metadata convention. Editorial revision (rev1) only. AgentData storage revision/
content_lengthauthoritative at read time.
0. Status and non-authorization
STATUS: PASS — engineering / design-only. Refines the Macro-4 B2 input contract for the staging-build context — no scope widening. Engineering PASS ≠ authority PASS. Default: HOLD.
1. Purpose
Carry Macro-4's B2 input contract (D29) forward, adding only the workbench-input clarifications a build would need.
2. Sources / evidence read
Macro-4 B2 input contract (D29); input candidate (24); Điều 0-G §2.4. Main process, no reader-agents.
3. Accepted baseline (carried)
B2 reads uncertified/governed rows + Điều 0-G rule-set + B3 contract; never B4 internals/channel/KG/canonical/identity/certified-precondition.
4. Evidence / analysis — refinement (build-context only)
| Clarification | For the workbench build |
|---|---|
| input is a disposable projection | the build seeds a copy, never reads live rows as authority |
| shape is frozen (F-1) | the projection mirrors the FRESH shape (inspect_*/certified/metadata) |
| scope narrowed | uncertified + PEN governed only |
| fail-closed | malformed projection row → reject, never fabricate |
5. Candidate / requirement / gate / result
The refinement adds no new read surface — it only clarifies the workbench reads a copy. No widening; no binding to live rows. G-2 (runtime B3/B4 re-confirm) remains Partial.
6. Owner-gated future work
Binding input to a built workbench is Owner-gated; forbidden now.
7. What remains unresolved
observed-role scope remains BAD_INPUT_BEHAVIOR_UNCLEAR.
8. Ready for GPT/Codex review
Yes — Codex should confirm the refinement adds no new dependency and no live-row read.