--- id: architecture/n5-unborn-head-rider name: Verify ls-refs=unborn serving (unborn-HEAD fixture, both substrates) status: pending depends_on: [] scope: narrow risk: low impact: wire-claim level: implementation tags: [verification-rider, advertisement-honesty] --- ## Description Review 001 N-5: `ls-refs=unborn` is advertised (transport.md §advertisement, ADR-003), and POC-1 validated real git accepting the capability *token* — but serving an unborn HEAD's symref line was never exercised against a real client (every POC fixture had refs). This is the only advertised promise in the corpus without capture evidence. The rider is the verification that closes it. ## Work Implementation-phase test (lands with the ls-refs workstream): 1. Fixture: an unborn repo — registry record exists, `git init`-equivalent storage with no refs (the POC set's unborn repo has refs; a new one without any is needed). 2. V2 ls-refs against it over the duplex substrate with a real git client (`git -c protocol.version=2 ls-remote`), asserting the unborn HEAD symref line appears per the ls-refs grammar (` HEAD symref-target:refs/heads/` unpeeled). 3. Same over the stateless (smart-http-shape) substrate. 4. Backend seam: the refs listing must expose the unborn symref for an empty repo — verify the `GitRefs` trait shape carries it (a `symref-target` with no oid); adjust the trait surface if the gix listing cannot produce it. If it cannot be served correctly: drop the `ls-refs=unborn` token from the advertisement (the honest move per ADR-003 — decline by omission) and record the drop in transport.md §advertisement. ## Verification - Real `git ls-remote` (V2) against an unborn repo lists the unborn HEAD symref line, both substrates. - The full advertisement suite still passes against repos with refs (the token must not change the served behavior there). ## Out of scope - Unborn-HEAD push (an unborn repo's first push is ordinary ref creation — ADR-013; not this rider). - Any capability beyond the token's existing grammar. ## Summary > Filled on completion.