Contract — R93 B5 session_id Binding Docs
Round: R93 debug-sweep · XS scope
Audit: docs/audits/r93-b5-session-id-binding-docs-audit.md
β task: c4aba667-892c-4c99-94fb-1ae25050331d
§1. Invariants
| ID | Invariant |
|---|---|
| I-1 | .agents/skills/colibri-audit-proof/SKILL.md calls out session_id propagation as a load-bearing rule (not just an ordering rule). |
| I-2 | The thought_record example(s) in the skill use the correct schema: type (not thought_type), task_id, agent_id, content, session_id. |
| I-3 | docs/agents/writeback-protocol.md §3.1 audit_session_start example uses real fields (intent, task_id?, not name/scope). |
| I-4 | docs/agents/writeback-protocol.md §3.3 audit_verify_chain example uses task_id? (not session_id). |
| I-5 | docs/agents/writeback-protocol.md adds an anti-pattern entry calling out thought_record-without-session_id between audit_session_start and merkle_finalize. |
| I-6 | .claude/skills/colibri-audit-proof/SKILL.md mirrors .agents/skills/colibri-audit-proof/SKILL.md byte-clean (R77.C convention). |
| I-7 | No source code or handler behaviour modified. git diff origin/main..HEAD -- src/ is empty. |
| I-8 | Build / lint / test gates remain green. Doc-only change → baseline test count preserved (3492). |
§2. Acceptance criteria
- AC-1. Three doc files modified; one mirror file synced; zero source files.
- AC-2.
npm run build && npm run lint && npm testexit 0 (modulo documented flakes). - AC-3. PR body cites the R89 parked investigation task as closed by this slice’s documentation.
Proceeding directly to implement (packet is implicit — three doc edits + one mirror sync per §3.4 of the audit).