# P15-005 Stage0 Decision

Status: `GO` for B06.

The authoritative baseline replay used commit
`edf098905a34de764185e72fc7e92d7b8f4e7285`.  The gate extracts and compiles
the current FreeBSD `data.c` and `zmap.c` producer bodies instead of replaying
an arithmetic model.  Fourteen frozen cases cover plain, inline, hole, chunk,
48-bit multidevice, compressed explicit extents, fragment, partial-reference,
post-EOF, bounds, overflow, short-read, and post-acquire error behavior.  Every
field in `(m_la,m_pa,m_llen,m_plen,m_deviceid,m_flags,errno,acquire_count,
release_count)` matched the independently frozen record oracle.

The ownership oracle freezes 27 audited function bodies and 22 success,
validation-error, provider-error/short-read, transfer, and release paths across
plain data, compressed data/config, xattr, inode, superblock, and map consumers.
It also pins the corresponding Linux source hashes and `erofs_buf` acquire/put
semantic anchors.  Candidate replay must satisfy the predeclared per-function
object/put/raw-buffer contract and execute the actual FreeBSD helper through
primary-image, metabox, error, overflow, idempotent-put, and null-callback paths.

The supplied prep remains correctly classified `BLOCKED`: its static scan uses
obsolete `erofs_mount`/`erofs_node` text anchors and its Python map model does
not execute DUT code.  `P15-005.sh` and `P15-005-input.json` close those gaps on
the current BASE.  Evidence is in
`planning/pre15/evidence/20260814T145546Z-G02-P15-005/`.

QEMU and the full feature suite were not run.  G02 for P15-005 is a host/source
gate, and its candidate contract does not require either.  This GO authorizes
B06 only; it does not authorize P15-006 or any B07 map-object change.

## B06 completion

B06 commit `1b1f904a674c21eed3ee29ca7df93c44429ac8d5` replayed the same
corpus and oracle with `object_mode=true`, `oracle_equal=true`, 14/14 tuples,
22/22 ownership paths, and five actual helper lifecycle paths.  D, the B06 host
case, and both FreeBSD KLD configurations pass.  Seven frozen FreeBSD raw I/O
and GEOM lifecycle functions are unchanged, and the pre-B07 map object hash is
unchanged.  This completes the B06 dependency and unlocks B07a for its own
separate gated batch; it does not pre-approve a B07 implementation.
