forge-contract: raw_state presence is not a signal, and §2.2 does not say so #357

Open
opened 2026-08-26 15:46:22 +00:00 by jbr870 · 0 comments
Owner

Spawned from finding F-PO-47-3-3 on issue #47 during decision D-PO-47-3-3.

Original scope note: Nothing in the contract states it out loud, so a future adapter author or a future test could reasonably read presence as meaningful.

Disposition rationale: Recommended disposition. local-fs emits raw_state only when the record declares one; glab-cli emits it on every answer. Both satisfy §2.2, whose rule (present whenever state is unknown) is a floor rather than a ceiling — so a caller must read its VALUE, and only when state is unknown, never its presence. This surfaced as a real test bug during #47's hardening pass: an assertion requiring absence passed on one adapter and failed on the other, with neither adapter at fault. A one-line contract clarification, which is meta-lane work rather than feature work. Resolved autonomously under the operator's standing instruction to resolve PO-47-3 as recommended.

This issue was deferred out of the parent feature's scope; it carries no PREQ yet. Run /dev:requirements --issue={new-number} to flesh it out before planning.

Spawned from finding `F-PO-47-3-3` on issue #47 during decision D-PO-47-3-3. **Original scope note:** Nothing in the contract states it out loud, so a future adapter author or a future test could reasonably read presence as meaningful. **Disposition rationale:** Recommended disposition. local-fs emits raw_state only when the record declares one; glab-cli emits it on every answer. Both satisfy §2.2, whose rule (present whenever state is unknown) is a floor rather than a ceiling — so a caller must read its VALUE, and only when state is unknown, never its presence. This surfaced as a real test bug during #47's hardening pass: an assertion requiring absence passed on one adapter and failed on the other, with neither adapter at fault. A one-line contract clarification, which is meta-lane work rather than feature work. Resolved autonomously under the operator's standing instruction to resolve PO-47-3 as recommended. This issue was deferred out of the parent feature's scope; it carries no PREQ yet. Run `/dev:requirements --issue={new-number}` to flesh it out before planning.
Sign in to join this conversation.
No description provided.