Worker w-vtrest-a2; task vtrest (retry, attempt 3 of 3 - the previous two attempts ended when their host session died, not on technical grounds).
Read .agent-cache/WORKER.md. Bus: python "%USERPROFILE%/.claude/skills/agent-cache-orchestrator/scripts/acbus.py"
Four other workers run on the TNC custom-map front. Your lane is Virtual Textures and touches none of theirs.
Objective
Finish the virtual-texture page decoder for Wolfenstein: The New Order. Two things are open, and they are the last ones:
- Block 0 (
INTERNAL_CLR_FMT = YUV_444, 3 channels) is not solved - already macroblock 1 decodes wrong. - Block 1, second channel (
NCOMPONENT) - channel 0 butts up correctly at the seam, channel 1 does not. Solving these turns the megatexture into readable pixels, which is what stands between this project and real surface-texture modding for part 1.
Sources / starting points
READ Virtual-Texture-Planes.md FIRST, in particular section 8 ("What Remains Open, and the Next Meaningful Step") and section 9 (9.4 "The Seam", 9.5 "The Shape").
It is a careful document: it records which hypotheses died and on what numbers, so you do not repeat them. Section 7 narrows the remaining search space; section 6 lists the hypotheses already killed arithmetically (alpha plane - no room; tiling - 0 hits over 80 pages; wrong colour format - no reading above noise for block 0). Do not resurrect those without new evidence.
Per 9.1 a compiled jxrlib is already available locally and per 9.2 it is calibrated against WIC - use it as the oracle instead of reimplementing.
Existing tools, yours to use: tools/vtplanes.py (has a seam mode - the seam statistic is the honest quality measure here, not eyeballing), tools/vtdecode.py, tools/vtpixel.py (yours to edit), docs/virtualtextures.md.
Game data, READ ONLY:
<Steam library>/steamapps/common/Wolfenstein.The.New.Order
Ownership
tools/vtpixel.py and docs/vt-planes.md (both pre-existing - extend them, keep what is already established, do not rewrite the document's history of failed hypotheses away). Scratch artifacts under re_probes/vtrest/ if you need them.
Forbidden / do not touch
No writes to the game install. Do not touch files owned by others:
tools/probe_cmdtable.py, tools/probe_idclhash.py, tools/probe_saveverify.py,
re_probes/cmdtable/, re_probes/idclhash/, re_probes/saveverify/,
re_probes/map_alias_v3/, re_probes/custom_save_candidates/,
tools/build_*.py, tools/verify_*.py, wolfsdk/*, config.json, any other docs/* file than Virtual-Texture-Planes.md. No pip install, no new dependency.
Hard constraints
Python 3.11, stdlib plus what the repository already uses. Keep the existing self-test working. Corpus runs must stay reproducible from the command line.
Acceptance criteria
- Measurable improvement stated in the document's own terms: block 0 currently lands 1x over 4256 pages, block 1 channel 0 lands but channel 1 does not. Any claim of progress must be a number over the same corpus, not one good page.
- The seam check (
tools/vtplanes.pyseam) must corroborate it. Section 9.4 shows the seam catching a wrong channel that otherwise looked fine - so a decode that improves a landing count but not the seam is not a solution. docs/vt-planes.mdupdated with what changed, including the numbers that support it and any hypothesis that died on the way.
Verification expectations
Every important assurance needs a counterexample check. The document's own standard is high - keep it. A decoder that produces a plausible image is not evidence; matching the jxrlib/WIC oracle bit-for-bit, or a seam statistic that cannot be explained by chance, is. State sample sizes.
Failure honesty
Two attempts already ended without result. If block 0 does not yield, the most valuable deliverable is a sharpened statement of WHY, with the numbers, so the next attempt does not start from zero. Say which hypotheses you killed and how. Do not claim a partial decode as a solution.
Coordination / deliverable
Checkpoint at milestones. A bus fact only if you establish something another worker would need - this lane is largely self-contained, so expect few. Report in the document itself; a short summary at finish is enough.