# Block-template adapter attempt fixture repair

Audience: AI coding agents first.

- **Plan ID:** `IPZ-BLOCK-TEMPLATE-ADAPTER-ATTEMPT-FIXTURE-2026-08-14`
- **Task:** `#89 / SC-ADAPTER-FIXTURE-01`
- **Status:** IDLE
- **Outcome:** Repair the canonical ready-row test fixture after published Site Content attempt authority so the dormant block-template adapter tests exercise the intended ready state again, without changing production behavior.
- **Source request:** On a clean branch based on current `origin/master`, add the newly required nullable attempt authority field to the adapter test's canonical ready-row builder and verify the frozen scope without contacting WordPress or application targets.
- **Clean-origin reproduction:** The focused adapter suite on clean `origin/master` reports `14 tests, 41 assertions, 5 failures` because `ready_row()` omits required nullable `attempt_hash`; the production adapter correctly fails closed with `translation_unavailable`.
- **Preserved WIP/ref/path:** Preserve all unrelated existing worktree changes unchanged. Work only in `/home/user/Projects/Press.zone/wordpress/wp-content/.claude/worktrees/agent-abcff92004c60d945`; the frozen task paths are clean and HEAD exactly matches fetched `origin/master` at `ea5dff2a2`.
- **Allowed paths:**
  - `plugins/international-press-zone/tests/Unit/SiteContent/BlockTemplateTranslationAdapterTest.php`
  - `plugins/international-press-zone/docs/plans/2026-08-14-block-template-adapter-attempt-fixture.md`
  - `plugins/international-press-zone/docs/plans/INDEX.md`
  - `docs/plans/INDEX.md`
- **Acceptance criteria:**
  1. Add exactly `'attempt_hash' => null` adjacent to `translation_revision` in the canonical `ready_row()` builder.
  2. Change no assertions, production code, other fixtures, configuration, baselines, tooling, dependencies, or unrelated files.
  3. Focused adapter PHPUnit passes with all 14 tests and the restored assertion count.
  4. PHP syntax, direct PHPCS using `phpcs.xml.dist`, candidate-aware PHPCS, and `git diff --check` pass cleanly for the test candidate.
  5. Final diff inspection proves only the row field and this plan plus both index records changed.
- **Constraints:** One-file test scope plus this plan and both indexes; no production behavior change; no delegation, skills, external models, commits, publication, or WordPress/application target contact; address every verification signal.
- **Execution steps:** Register this ACTIVE plan in both indexes; apply the single ready-row field repair; run the focused PHPUnit, syntax, direct PHPCS, candidate-aware PHPCS, and diff gates from the plugin root; inspect the complete bounded diff; update the receipt and next action.
- **Rollback:** Revert only the single test fixture field and remove this plan's two index entries and plan file; production behavior remains untouched.
- **Blocker limit:** Stop after 20 minutes if a genuine blocker remains, record the exact blocker, evidence, and next executable action, and do not broaden scope.
- **Current receipt:** Fetched `origin/master`; current HEAD and `origin/master` are both `ea5dff2a2`, and all frozen task paths were clean before edits. Failure-first evidence is recorded from the supplied clean-origin reproduction (`14 tests, 41 assertions, 5 failures`, caused by absent nullable `attempt_hash` and the production adapter's correct `translation_unavailable` fail-closed result). Added exactly `'attempt_hash' => null` adjacent to `translation_revision` in the canonical `ready_row()` builder. Focused PHPUnit passes `14 tests, 53 assertions`; PHP syntax is clean; direct PHPCS with `phpcs.xml.dist` is clean; candidate-aware PHPCS is clean; and `git diff --check` is clean. Both independent reviews are APPROVED. Local locked development tools were installed only into the ignored worktree `vendor/` directory after a shared-vendor symlink produced invalid autoload paths; no dependency, lockfile, configuration, baseline, tooling, production, assertion, or other fixture change was made. No WordPress or application target was contacted.
- **Next executable action:** Immediate controller publication of the verified local Task #89 commit.
