# DGR-005 decomposition — 2026-07-14

## Verified starting point

- The mandated environment is present: project Python 3.14.6, CMake 4.4.0,
  and protobuf 7.35.1.
- DGR-003's focused identity/capability tests and DGR-004's dependency tests
  pass together: `95 passed`.
- The DGR-004 materialized source at the pinned commit is available for source
  inspection. It contains only the DGR-004 CMake-marker patch.

## Why this chain cannot safely claim DGR-005 yet

At the locked llama.cpp revision, `llama_model_base::load_tensors()`:

1. sizes `layers` to `hparams.n_layer_all`;
2. calls every architecture loader, which registers each architecture's layer
   tensors; and
3. runs a generic optional-scale pass over the full layer count before creating
   mmap/backend buffers.

Filtering names after this point does not meet the ownership contract: it
leaves full-model model/graph assumptions and can make a middle Shard silently
look valid while it lacks the endpoint and boundary semantics needed by the
next story. A generic `blk.N.*` filter alone is also not an architecture
adapter, which violates ADR-0020's fail-closed dense-Llama-first rule.

## Required child slices

1. **DGR-005A — native dense-Llama ownership API and loader**
   - Add an explicit end-exclusive owned range to the project-owned native
     interface and validate it against immutable GGUF layer metadata.
   - Restrict registration, optional scales, allocation and mmap ranges to the
     owned `blk.N.*` tensors.
   - Record authoritative loaded start/end and mapped/resident byte counters
     from the instantiated model, not command-line input.
   - Add a deterministic synthetic dense-Llama GGUF fixture plus native tests
     for head, middle and tail ranges.

2. **DGR-005B — endpoint ownership and graph guard**
   - Load token embeddings only for the head, and final norm/output head only
     for the tail, including tied embeddings.
   - Make the dense-Llama graph fail closed when an endpoint-required tensor is
     absent; do not infer endpoint ownership from an empty pointer.
   - Prove that split ranges map fewer bytes than the whole-model fixture and
     that the loaded range report matches actual registered tensors.

3. **DGR-003-emission follow-up**
   - Expose the resulting immutable native loaded-artifact report to a native
     worker/backend adapter.
   - Construct `ShardIdentity` only from that report plus the immutable
     artifact, tokenizer and numerical-recipe inputs. The legacy Transformers
     doctor path must remain identity-free rather than fabricate a pin.
   - Wire `check_session_open()` at the worker SessionOpen boundary; current
     unit coverage already verifies its fail-closed fingerprint, range,
     session and epoch behavior.

## Handoff and non-claims

No DGR-005 source patch, identity-emission code, issue status, or `prd.json`
pass state was changed. No model was loaded, downloaded, benchmarked, or
certified. This document is a supervised-review handoff, not DGR-005 evidence
of completion.
