iter1 phase8: memory update + iter1 close
Memory entry filed at the cross-campaign location ~/.claude/projects/-home-mfritsche-src/memory/feedback_characterize_before_change.md and registered in that MEMORY.md index. The lesson: when starting a campaign on a new substrate with a known-good system, iter1 = characterize-and-baseline ONLY. Don't bundle blockers into iter1; each blocker spawns its own iteration (iter2/3/4) so each has its own Phase 1 success metric and outside- team dependency. ampere-fourier iter1 is the worked example — zero code change in Phase 6, 3 follow-up issues filed, 3 codecs baseline-validated, ka#6 umbrella closed. phase8_close.md is the campaign-level close artifact: phase-by-phase summary table with file links + 3 iteration hand-offs + reference- history FPS numbers for iter2/3/4 to anchor against. The 8-phase loop terminates. iter1 closed. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# Phase 8 — Memory update + iter1 close
|
||||
|
||||
iter1 of the ampere-fourier campaign closes 2026-05-16. All 9 phases ran; no loopbacks fired.
|
||||
|
||||
## Iteration outcome (one line)
|
||||
|
||||
**3 codecs (H.264 + VP8 + MPEG-2) baseline-validated end-to-end via libva-v4l2-request-fourier on RK3588; 3 codec blockers (HEVC kernel OOPS, VP9 kernel gap, AV1 backend hard-cap) split into three discrete follow-up issues that become iter2/3/4 entry points.**
|
||||
|
||||
## Memory entry distilled from iter1
|
||||
|
||||
Filed as [`feedback_characterize_before_change.md`](../../.claude/projects/-home-mfritsche-src/memory/feedback_characterize_before_change.md) at the cross-campaign memory location: **"iter1 = characterize-and-baseline, not change-the-system."**
|
||||
|
||||
The lesson: when starting a campaign on a new host / substrate / SoC with a system that's already known-good elsewhere, iter1 establishes the floor — it doesn't fix blockers. Phase 0 always surfaces blockers; each blocker is its own debugging chain with its own contract, its own outside-team dependency. Bundling 3 blockers into iter1 conflates 3 unrelated investigations and breaks Phase 6's "scope strictly to plan" guarantee. ampere-fourier iter1 IS the worked example.
|
||||
|
||||
## Phase-by-phase summary (with the artefacts)
|
||||
|
||||
| Phase | File | Outcome |
|
||||
|-------|------|---------|
|
||||
| 0 | [phase0_findings.md](phase0_findings.md) | Substrate: RK3588 board, clean v7.0-rc3 kernel, 3 decoder nodes, 3 codecs viable / 3 blocked. Baseline anchor N=1 captured. |
|
||||
| 1 | [phase1_goal.md](phase1_goal.md) | Locked scope to 3 codecs. 7 success criteria (C1-C7) each anchored to a specific instrument. Hypothesis falsifiable in 3 named ways. |
|
||||
| 2 | [phase2_situation.md](phase2_situation.md) | Re-verified Phase 0 against live system. 7 constraints + 7 known failure modes catalogued. 2 missing tools (strace, firefox-fourier) flagged for Phase 4 plan. |
|
||||
| 3 | [phase3_baseline.md](phase3_baseline.md) | C1-C6 measured. C1 PASS, C2 PASS (ioctl trace canonical), C3 PASS (frame-0 byte-identical, same sha across codecs), C4 split (VP8 1.000 perfect / MPEG-2 0.9997 IEEE-1180 / H.264 0.6676 cumulative drift), C5 PASS (FPS at N=3 tight σ), C6 PASS (empty dmesg diff). C7 deferred. |
|
||||
| 4 | [phase4_plan.md](phase4_plan.md) | iter1 is characterize-and-baseline; no code change to backend / kernel / firefox / mpv. 5 work items: refine C4 per-codec floors, file 3 follow-up issues, update + close ka#6, write close artifact, Phase 7 verification. Risk register sized to that scope. |
|
||||
| 5 | [phase5_review.md](phase5_review.md) | Plan subagent (model:sonnet) reviewed Phase 0-4 raw artifacts. Two framing findings — H.264 SSIM precedent should be flagged as "independent observation, not cross-verified anchor"; C7 deferral is a scope boundary not a rig blocker. Both adopted (framing-only, no test-verify gate). |
|
||||
| 6 | [iter1_close.md](iter1_close.md) + 3 issues filed | Filed `marfrit/kernel-agent#11 [ka:experiment]` (HEVC OOPS), `marfrit/kernel-agent#12 [ka:experiment]` (VP9 enablement), `marfrit/libva-v4l2-request-fourier#2` (AV1 iter39). Closed `marfrit/kernel-agent#6` with cross-refs. Wrote close artifact with Phase 5 amendments applied. |
|
||||
| 7 | [phase7_verification.md](phase7_verification.md) | Re-ran C1-C6 at N=1. C1+C3+C4+C6 bit-perfect reproduction. C5 within ±1.5 % of Phase 3 N=3 mean (well within Phase 4's ±2σ). C2 ioctl counts ~2× — analyzed as a script-cleanup bug in p3_engage.sh (rm doesn't catch `.strace.<tid>` suffix), NOT a system regression. No loopback. |
|
||||
| 8 | this file | Memory entry written, iter1 closed. |
|
||||
|
||||
## Hand-offs
|
||||
|
||||
- **iter2** (HEVC kernel OOPS fix): [kernel-agent#11](https://git.reauktion.de/marfrit/kernel-agent/issues/11)
|
||||
- **iter3** (VP9 kernel enablement on RK3588): [kernel-agent#12](https://git.reauktion.de/marfrit/kernel-agent/issues/12)
|
||||
- **iter4** (AV1 backend iter39): [libva-v4l2-request-fourier#2](https://git.reauktion.de/marfrit/libva-v4l2-request-fourier/issues/2)
|
||||
- **C7 sub-iteration** (firefox-fourier vendor-default engagement check): pending a graphical session on ampere — not a separate ticket, lands inside whichever iteration first runs a compositor.
|
||||
|
||||
Each iter2/3/4 anchors to the iter1 baseline:
|
||||
- VP8 SSIM Y 1.000 floor (raised from default ≥0.99 on Phase 4 refinement)
|
||||
- MPEG-2 SSIM Y ≥0.9997 floor (IEEE 1180)
|
||||
- H.264 documented at SSIM Y ~0.667 (no PASS threshold — accepted decoder drift)
|
||||
- N=3 FPS reference history: H.264 461 fps, VP8 217 fps, MPEG-2 200 fps
|
||||
|
||||
## Minor follow-up (not blocking)
|
||||
|
||||
- `phase3_scripts/p3_engage.sh`: fix `rm -f $log.strace` → `rm -f $log.strace.*` so Phase 7 re-runs don't accumulate strace files. Filed mentally; not iter1-blocking.
|
||||
|
||||
## Iter1 close
|
||||
|
||||
The 8-phase loop terminates here. ampere-fourier iter1 closed.
|
||||
Reference in New Issue
Block a user