todo2code

Ticket 041: Immutable branch semantic evidence assembler

Goal

Add the bounded runtime assembler between ticket-039’s immutable local Git snapshot and ticket-037’s deterministic t2c.branch/v1 projector. The assembler consumes already-produced graph and truth-map bundles for the exact unique tree SHAs in the Git snapshot, validates every binding, derives conservative assertion changes and pair evidence, and invokes the existing projector.

The canonical published value remains t2c.branch/v1. The assembler may return an internal in-memory envelope containing the source snapshot fingerprint, derived t2c.branch-evidence/v1 and portfolio, but it must not create another schema, artifact or public interface.

Input contract

The bundle’s treeSha is an immutable binding supplied by the future exact-tree analysis orchestrator. This ticket validates the envelope and semantic artifacts but does not itself check out or scan trees.

Derivation rules

Delivery boundary

Acceptance criteria

Participants

Approval boundary

The user explicitly approved the assembler contract and instructed autonomous implementation before any source or test edit. The later db368c0 refresh contains only the independently planned ticket-040 governance files and does not change this ticket’s intent, architecture or implementation paths. Chat approval authorized only this bounded interactive edit. Merge authority came from protected exact-head Koru, Validator App and required CI evidence. Hosted advisory review used openrouter/z-ai/glm-5.2, never Gemini 3.1 Pro Preview.

The contract was originally reviewed under the concurrently selected ID ticket-040. PR #47 allocated that ID to a non-overlapping workspace-preflight plan while this work was still validating, so this unchanged assembler scope was moved to the first free ID, ticket-041, on governance-only main@db368c0. No source or test was part of the preceding plan commit.

Validation evidence

Protected completion evidence