# Pre8 Responsibility-Alignment Baseline

## Repository Identity

The following identities were read directly from Git objects at execution-start
commit `475b62437f89a8a98e0e3a1d1628481768525cb2`:

```text
execution-start commit: 475b62437f89a8a98e0e3a1d1628481768525cb2
execution-start tree:   3f0bc6be8324446440ce578f03d892c95f73591c
repo-pre-7 tree:        b8f9af2cd55225c4348b79ff5910ae6fc83cd517
repo-pre-8 tree:        b8f9af2cd55225c4348b79ff5910ae6fc83cd517
```

The equal `repo-pre-7` and `repo-pre-8` tree identities establish that
`repo-pre-8` is an exact tracked snapshot of `repo-pre-7` at the execution
start. This relationship is based on Git object identities, not a live
worktree comparison.

Relevant source identities at the same commit are:

```text
mode    blob                                      path
100644  e06822e363d9122a39256494bde7d12cfea1f7c9  repo-pre-8/src/decompressor.c
100644  ff595fe009679a4e950eb3743b2f152fac4aad31  repo-pre-8/src/decompressor_lzma.c
100644  f3e48cd2016608aaf84ed5e80151782a6c5513f7  repo-pre-8/src/decompressor_deflate.c
100644  23756af263ceb148ca50fbb8cd1ae80ba3fac4cd  repo-pre-8/src/decompressor_zstd.c
100644  cac9ee15f81a1607a03fbab3466cf89c588872c8  repo-pre-8/src/internal.h
100644  2257a2299b3bcf3ab15978d723843f26d0b4b346  repo-pre-8/src/xattr.c
```

These values define the immutable comparison baseline for Pre8. Concurrent
or later worktree changes are not assessed by this document.

## Execution Scope

Pre8 is limited to the following private responsibility-alignment tasks:

1. Move `z_erofs_load_lzma_config()` from the core decompressor file to the
   LZMA backend without changing its name, signature, validation order,
   state updates, or error behavior.
2. Move `z_erofs_load_deflate_config()` to the DEFLATE backend with its
   existing format checks, window-bit limits, state updates, and errors
   preserved.
3. Move `z_erofs_load_zstd_config()` to the ZSTD backend while preserving the
   availability check, configuration checks, window-log limit, diagnostics,
   and `WITH_ZSTDIO` behavior.
4. Replace the duplicated inline and shared xattr traversal paths with shared
   private iterator helpers while preserving lookup priority, list order,
   namespace and errno timing, validation differences, output accounting, and
   buffer ownership.

The source allowlist is restricted to the six files identified above. This
baseline file is the only documentation path used by the baseline step.

Pre8 does not include superblock extraction, a new `compress.h` contract,
descriptor tables, decode callback ABI changes, codec primitive renaming,
typed errno conversion, Linux page or folio abstractions, broad function
reordering, or any item already recorded under `planning/reject/`.

## Initial Validation Status

This document records the execution baseline only. No implementation,
correctness, build, or runtime conclusion is made here.

| Validation item | Initial status |
|---|---|
| Pre8 source implementation | NOT RUN |
| Source allowlist and protected-path audit | NOT RUN |
| `git diff --check` | NOT RUN |
| Loader definition, declaration, reference, and body-equivalence checks | NOT RUN |
| Xattr iterator invariant and behavior review | NOT RUN |
| Direct-parent restoration checks for source commits | NOT RUN |
| Final-HEAD inverse-patch compatibility checks | NOT RUN |
| `WITH_ZSTDIO=0` build | NOT RUN |
| `WITH_ZSTDIO=1` build | NOT RUN |
| Basic plain/LZ4 QEMU mount, read, readdir, and unmount smoke | NOT RUN |
| Pre7 deferred QEMU coverage | NOT RUN |
| Pre8 xattr QEMU coverage | NOT RUN |
| Pre8 codec QEMU coverage | NOT RUN |
| QEMU cleanup and zero-residual-state checks | NOT RUN |
| Completion and evidence-honesty review | NOT RUN |

Historical evidence from an earlier snapshot is not a Pre8 result. Every
status above remains `NOT RUN` until supported by fresh evidence from the
final Pre8 DUT. This file must not be interpreted as a completion report.
