Plan subagent with model:sonnet reviewed Phase 0-4 with raw artifacts
(no curation per dev process). Two findings:
1. H.264 SSIM precedent framing — "mirrors fresnel iter1 exactly"
overstates the cross-host link. Two independent empirical data
points on two different rkvdec generations (RK3399 0.6431 vs
RK3588 0.6676) that converge, not a cross-verified anchor.
Reframe in iter1_close.md.
2. C7 deferral framing — "rig blocker" misframes a deliberate
scope boundary (headless-ssh by design) as a rig deficit.
Reframe in iter1_close.md.
Both findings are pure framing changes (no code/data/struct claim),
so no test-verify gate. Per empirical-over-theoretical guardrail,
adoption is direct.
Reviewer also confirmed the codec fragmentation rationale and
kernel-agent-vs-backend issue assignment as correct (no cross-codec
coupling problem).
Plan sound, proceed to Phase 6 with the two amendments applied.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
iter1 is a characterize-and-baseline iteration. Backend code is
unchanged; what Phase 6 executes is criterion refinement +
follow-up-issue filing + iteration close artifact.
5 work items for Phase 6:
1. Refine C4 to per-codec SSIM Y floors (VP8 >=1.000 byte-identical,
MPEG-2 >=0.9997 IEEE-1180, H.264 documented at ~0.667 no PASS
threshold — accepted decoder drift per fresnel iter1 precedent).
2. File kernel-agent [ka:experiment] for HEVC kernel OOPS fix.
3. File kernel-agent [ka:experiment] for VP9 enablement on RK3588
rkvdec (VDPU381/383 path, not RK3399 legacy).
4. File marfrit/libva-v4l2-request-fourier issue for iter39 (3rd-fd
probe for AV1).
5. Update + close kernel-agent #6, write iter1_close.md.
Phase 7 verification: re-run p3_*.sh at N=1; predict within ±2σ of
Phase 3 anchors. Loopback if deviation.
Risk register: gitea API filing low risk (claude-noether proven
today), other risks small. Documented in plan.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Re-verifies Phase 0 substrate against live system (post-reboot ampere
2 min uptime, backend md5 still matches hand-build, source clips
intact, memory list unchanged). Two missing tools flagged for Phase 4
to install (strace, firefox-fourier).
Catalogues 7 constraints (backend file pacman-owned but content-
unmanaged; kernel hand-managed; HEVC OOPS cascade; mpv --hwdec=vaapi
needs GL surface; mpv MPEG-2 not on default hwdec allow-list; reboot
authorization in scope; fresnel offline-able and not depended-on)
and 7 known failure modes (HEVC oops, broken CI backend silent fail,
hwdec SW fallback, MPEG-2 hwdec gate, firefox prefs version
sensitivity, RK3399 vaDeriveImage zero-page issue as open Q for
RK3588, pacman-Qo lying about file content).
Explicit non-deps section (HEVC/VP9/AV1, kdirect-on-RK3588, cross-host
byte-compare, DokuWiki) preempts scope creep doubts in Phase 3-7.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Locks iter1 scope to the 3 currently-kernel-supported codecs (H.264,
VP8, MPEG-2). The other 3 (HEVC, VP9, AV1) are deferred to dedicated
iter2/3/4 loops — bundling them would conflate three different
external dependencies into one un-closable iteration.
Resolves Phase 0 open questions Q1 (scope = 3 codecs), Q2 (bit-exact
anchor = libva-HW vs SW byte-compare; kdirect-on-RK3588 is its own
piece of work), Q4 (firefox-fourier in scope as consumer test).
Defers Q3 (HEVC OOPS sandboxing) and Q5 (AV1 source clip) to the
relevant iterations.
Success criteria are six per-codec instruments (C1-C6: frame count,
HW engagement via lsof+strace, byte-identical at frame 0, SSIM>=0.99
at frame 30s, N=3 FPS, clean dmesg) plus one campaign-level
firefox-fourier vendor-default test (C7).
Hypothesis is falsifiable in three named ways (codec crash/hang,
first-frame byte deviation indicating kernel ABI drift, MPEG-2 IDCT
tolerance refinement) — each maps to a specific phase loopback.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>