# Project Plan Registry

Audience: AI coding agents first.

- [Manual-translation protection RC handoff](2026-08-21-manual-translation-protection-rc-handoff.md) — LANDED (2026-08-22): PG-14 flipped to WORKS on origin/master via merge `d2f98ca55` (convergence `5183ccfd7`, harness land `93456bb90`). Evidence in GOLIVE.md PG-14: factory gate green incl. live-WP integration (Migration010 30/30, zero-spend mark_stale proof), acceptance E2E `tests/e2e/pg14-manual-protection.spec.js` 14/14 Chromium+Firefox, sol SAFE TO COMMIT ×2; four product bugs found and fixed en route (floating-tooltip `display:none` override, missing `formatTranslationEstimate` import, phantom `renderEditModal` in string- and content-translate, edit-modal input wipe on updateContent).
- [Verification lanes](2026-08-21-verification-lanes.md) — ACTIVE: parallel-safe burn-down of the 27 UNVERIFIED GOLIVE gates in seven Phase-1 lanes (Connect negative paths, ACF+Yoast, routing/SEO, security review, gate-infra repair, PG-21/23 handoffs, compatibility prep); Phase-2 frozen-RC rerun stays owned by `2026-08-19-final-rc-certification.md`.
- [Landing sweep triage ledger](2026-08-21-landing-sweep-ledger.md) — RECORD: read-only classification of all 76 unmerged branches and every IDLE plan claim against origin/master `cee8d2649` (2026-08-21). Source of the LANDED/LIKELY-LANDED reconciliations below; EXECUTED 2026-08-21 (board manual-68c188f79f4335d9): three content-dossier reviews judged every branch against product need; the sole needed content (ACF-caret regression tests from `wt/ui-redesign-land`) landed as `2a1d81fe4`; 156 branches deleted behind recovery bundle `/home/user/Projects/Press.zone/branch-recovery-20260821.bundle` (+13 dirty-worktree tars in `/home/user/Projects/Press.zone/dirty-wip-20260821/`); kept: PG-14 lane + 3 manual-protection archives, `wt/mslayout-complete` and `wt/remaining-release-orchestration` (substantial uncommitted WIP, owner triage), and 50 dirty worktrees left for per-lane triage.
- [Tooltip lifecycle contract](2026-08-15-tooltip-lifecycle.md) — LANDED: `92e853a7b` is a verified ancestor of origin/master (2026-08-21 sweep); the earlier "landing remains explicitly excluded" note is obsolete.
- [TileSelect lifecycle](2026-08-15-tileselect-lifecycle.md) — LIKELY LANDED (unproven): `TileSelect.js` on origin/master already carries the lifecycle hooks, but the plan recorded no commit SHA and no commit references its tag (2026-08-21 sweep). Confirm on master before any re-work; do not treat as pending.
- [Plugin production completion](2026-08-19-plugin-production-completion.md) — ACTIVE: prove Connect-issued site credentials and the current Cloudflare Worker end to end, then reconcile the remaining plugin-only feature lanes and activate Site Content safely.
- [E2E remediation recovery](2026-08-19-e2e-remediation-recovery.md) — COMPLETE: sanctioned Debian2 execution restored; owned settings/account remediation passes Chromium+Firefox 58/58; PG-27 has zero known-failing entries with live WordPress integration routing (AutoPublish 4/4, ContentManager 10/10/95 assertions, BlockSegment 23/23/66 assertions); Worker-E2E-owned files were not changed.
- [Page fidelity current-master delivery](2026-08-19-page-fidelity-current-master.md) — COMPLETE: PG-11..PG-13 implementation landed on canonical master as `01940a992`; focused regressions, remote PHPCS/PHPStan/slopgate, and Chromium+Firefox Pages acceptance are green; stale page-fidelity branch remains reference only.
- [First-customer launch governance readiness](2026-08-19-launch-governance-readiness.md) — COMPLETE: PG-43/45 governance definitions landed; PG-21/23 static audit complete with exact runtime/web handoffs recorded in `docs/launch/LAUNCH-GOVERNANCE-AUDIT.md`.
- [Compatibility qualification preparation](2026-08-19-compatibility-qualification.md) — READY: parallel-safe PG-38..PG-42 matrix/fixture/smoke preparation; final RC rerun is deferred.
- [Final release-candidate certification](2026-08-19-final-rc-certification.md) — WAITING: do not execute until required feature lanes land; owns final PG-26/29/30/32-42/44/46 evidence.
- [Plugin release closure](2026-08-19-plugin-release-closure.md) — ACTIVE: release/product-truth lane; excludes concurrent feature WIP and Stripe clearance.
- [Site entry UX completion](2026-08-15-site-entry-ux-completion.md) — ACTIVE: recovers the owner's 2026-08-09 request. Page-role/layout and Site Content surfacing belong to the concurrent `mslayout-complete` lane; this plan delivers the three unclaimed slices — language-root switching, Yoast robots/sitemap ownership, and site content schema drift/provisioning/bounded cleanup.

- [SortableList lifecycle contract](2026-08-15-sortablelist-lifecycle.md) — LIKELY LANDED (unproven): `SortableList.js` on origin/master carries the lifecycle hooks; no SHA recorded, no commit references the tag (2026-08-21 sweep). Confirm before any re-work.
- [DataRegion lifecycle contract](2026-08-15-dataregion-lifecycle.md) — LIKELY LANDED (unproven): `DataRegion.js` on origin/master carries the lifecycle hooks; no SHA recorded (2026-08-21 sweep). Confirm before any re-work.
- [Delivery 5 Batch D: AssignmentCard, RegionPresets, and Table](2026-08-16-lifecycle-batch-d-assignment-regions.md) — LIKELY LANDED (unproven): `AssignmentCard.js` and `Table.js` on origin/master carry the lifecycle patterns; no SHA recorded (2026-08-21 sweep; Batch D also has a landed harness receipt `a5c58f8b6` dated 2026-08-18 on master). Confirm before any re-work.

- [Select lifecycle contract](2026-08-15-select-lifecycle.md) — LIKELY LANDED (unproven): `Select.js` on origin/master carries the lifecycle hooks; no SHA recorded (2026-08-21 sweep). Confirm before any re-work.
- [Badge lifecycle contract](2026-08-15-badge-lifecycle.md) — LIKELY LANDED (unproven): `Badge.js` on origin/master carries the lifecycle hooks; no SHA recorded (2026-08-21 sweep). Confirm before any re-work.
- [ProgressBar lifecycle contract](2026-08-15-progressbar-lifecycle.md) — LANDED: duplicate registry entries consolidated (this plan appeared twice with contradictory IDLE/DONE status). Baseline `3d7a3350b` is recorded as complete and `ProgressBar.js` on origin/master carries the lifecycle hooks (2026-08-21 sweep).
- [Checkbox lifecycle contract](2026-08-15-checkbox-lifecycle.md) — LANDED: `0144af55e` and `478e92904` are verified ancestors of origin/master (2026-08-21 sweep). Historical detail: D5-CHECKBOX-01 was committed after the upstream pre-commit gate fix; focused tests, full admin suite, lint, production build, inventory/ui-gate, and factory gate all pass on the committed state; landing is explicitly excluded.
- [Disclosure lifecycle contract](2026-08-15-disclosure-lifecycle.md) — LANDED: `1df2ec685`, `f9166d743`, and `6372b4620` are verified ancestors of origin/master (2026-08-21 sweep). Historical detail: independent-review fixes (disabled-flip freezes live open state, update({children}) actually replaces rendered content, update({summaryAttrs}) applies to the summary node); fixes the pre-existing both-handlers-fire click bug and adds mount/update/destroy; focused tests (verified to genuinely fail against unmodified `origin/master` and against the pre-fix commit), full admin suite, lint, production build (byte-identical second build), inventory/ui-gate, and full factory gate all pass; landing is explicitly excluded.
- [Pagination lifecycle contract](2026-08-15-pagination-lifecycle.md) — LIKELY LANDED (unproven; `Pagination.js` on origin/master carries the lifecycle hooks, no SHA recorded — 2026-08-21 sweep; confirm before any re-work). Historical detail: adds idempotent mount/update/destroy to `admin/src/components/Pagination.js` with every update() key demonstrably re-rendering live state (page/window clamp parity, callback swap, total/summary re-render, showTotal/showPageSize no-throw across all six caller shapes); no both-handlers-fire class applies (Pagination has no attrs/handler-override surface of its own); focused tests (verified to genuinely fail against unmodified `origin/master`), full admin suite, lint, production build (byte-identical second build), inventory/ui-gate, and full factory gate all pass; landing is explicitly excluded.
- [TagInput lifecycle contract](2026-08-15-taginput-lifecycle.md) — LANDED: `75642ec38` is a verified ancestor of origin/master and master's `TagInput.js` is byte-identical to that commit's version (2026-08-21 sweep). Historical detail: repaired after review. Adds idempotent mount/update/destroy to `admin/src/components/TagInput.js` with no new public parameter (an initial unrequested `options.attrs` surface and its 4 tests were fully removed per review); every update() key (label/help/onUpdate/state) has construct-vs-update parity tests; destroy silences both built-in handlers via a plain bind/unbind pair (verified via manual mutant-kill of `unbind()` and the destroyed-flag reset); focused tests (16, verified to genuinely fail 11/16 against unmodified `origin/master`), full admin suite (739/745, same 6 pre-existing failures across three files: admin-stores 1, settings-loading 2, translations-route-loading 3), lint, production build (byte-identical; TagInput confirmed absent from the bundled entry), inventory/ui-gate, and full factory gate all pass; landing is explicitly excluded.
- [FilterBar lifecycle contract](2026-08-15-filterbar-lifecycle.md) — LANDED: `47671e633`, `eedee940d`, and `ce994debd` are verified ancestors of origin/master (2026-08-21 sweep). Historical detail: review-round-3 cleanup (removed dead `afterEach`/`beforeEach` test imports; corrected the receipt's lint claim — `eslint.config.mjs` scopes to `src/**/*.js`, so the test file is unlinted, not clean; corrected the suite figure to the exact reproducible `Tests: 6 failed | 761 passed (767)`, no skips observed across 3 runs; documented the deep-scan teardown's double-destroy-safe-only-by-convention invariant). Adds idempotent mount/update/destroy to `admin/src/components/FilterBar.js`, no new public surface; `FilterGroup` (stateless, no listeners) intentionally left unconverged. `destroy()`/`update({groups})` teardown deep-scans discarded groups (`querySelectorAll('*')`) so a `SearchControl` nested inside a plain `FilterGroup` has its pending debounce genuinely cancelled. `update({groups})` diffs by identity: a re-passed still-current group is neither destroyed nor recreated. `update({groups: null})` no longer clears (only `hasOwn` + non-null); `update({groups: []})` still clears. Focused tests (22/22, verified to genuinely fail 20/22 against unmodified `origin/master`), all 8 required mutants individually applied and killed, full admin suite (761 passed/6 failed/767 total, same 6 pre-existing failures across three files), src lint clean (test file out of lint scope), production build (byte-identical second build), inventory/ui-gate, and full factory gate (phpstan 170/170, phpunit 63 discovered/4 known-failing) all pass; landing is explicitly excluded.
- [ColorField lifecycle contract](2026-08-16-colorfield-lifecycle.md) — LANDED: `7d8a43467`/`d5716924f`/`7bc0a8183` are verified ancestors of origin/master, and master's `ColorField.js` has since been further refined by `6bcd7906d` and `eaddd8dde` (2026-08-21 sweep). Historical detail: review-round-2 repaired 3 confirmed defects (stale receipt figures, a stale-preview-on-invalid-`update(state)` behavior bug, 2 surviving mutants) and merged `origin/master` (8 commits, rebase blocked by the repo's reference-transaction trust hook, resolved via `git merge` finished through the normal hook-instrumented `git commit` path) after which the previously-drifted `ui-inventory.report.*` was regenerated and a pre-existing, unrelated `site-content.js` `ui-layers.json` classification gap (present on `origin/master` itself) was closed to unblock `ui-gate`. Adds idempotent mount/update/destroy to `admin/src/components/ColorField.js`, no new public surface; the positional `(key, label, state, onUpdate, defaultValue)` constructor is unchanged (mirrors TagInput's precedent). Caller audit found zero call sites anywhere in the tree beyond the `components/index.js` barrel re-export. `update()` accepts `label`/`onUpdate`/`defaultValue`/`state`, each independently verified to re-render (not chained-`else if`), preserving input-node identity via construct-vs-update `innerHTML` parity, including at invalid resolved colors (preview is genuinely cleared, not left stale). `destroy()` reaches the composed `Pick` `Button`'s own lifecycle (`pickButton.destroy()`) and the input's `change` listener, verified via `removeEventListener` spies; a Pick-selection callback already in flight when `destroy()` runs is silenced by the same flag. `mount()` after `destroy()` reattaches the Pick button into its original row and rebinds the input, proven via genuine subsequent input-change/Pick-selection events. Focused tests (25/25 on the final file; verified to genuinely fail 20/25 against unmodified `origin/master`, true passing set is exactly {markup shape, defaultValue fallback, valid hex, invalid hex, Pick opens picker}), all 10 required mutants (8 original + 2 from review-round-2: stale `aria-invalid` on `update(state)`, dirty-input `.value` property on `update(state)`) individually applied and killed. Full admin suite run with `--maxWorkers=2` (`Tests: 809 passed (809)`, `Test Files: 62 passed (62)` — zero failures post-merge, the 3 previously-failing files were fixed by upstream commits brought in by the merge). Src lint clean (test file out of lint scope), production build (no generated-asset churn, byte-identical second build), inventory/ui-gate (`lifecycleCapable` 53→55; regenerated post-merge), and full factory gate (phpstan no errors, phpunit 67 discovered/4 known-failing, all pre-declared, none touching ColorField/site-content) all pass; landing is explicitly excluded.

- [IPZ E2E always-remote contract](2026-08-14-ipz-e2e-always-remote.md) — DONE: Task #91 makes every `/ipz-e2e` dependency, build, stack, browser, retry, smoke, visual, screenshot, and diagnostic workload fail closed through registry-selected `debian1`/`debian2`/`debian3`; commit `391a1c8b1` is published on `origin/master`.

- [Dormant targeted raw-size-bounded Site Content source lookup](2026-08-14-site-content-bounded-source-lookup.md) — LANDED: `cb41e7eba` ("Add bounded Site Content source lookup") is a verified ancestor of origin/master (2026-08-21 sweep); the "awaits independent re-review" claim is obsolete.

- [Site Content catalog test normalization](2026-08-14-site-content-catalog-test-normalization.md) — ACTIVE: Task #90 passed both independent reviews and is publishing through the repository controller.

- [Block-template adapter attempt fixture repair](2026-08-14-block-template-adapter-attempt-fixture.md) — LANDED: `a47abcb47` and `66e4d2fb5` are verified ancestors of origin/master (2026-08-21 sweep); publication already happened.

- [Dormant persisted Site Content attempt authority](2026-08-14-site-content-attempt-authority.md) — LANDED: `9385c62b3` ("Persist Site Content attempt authority") is a verified ancestor of origin/master (2026-08-21 sweep); publication already happened.

- [Translation attempt correlation contract](2026-08-14-translation-attempt-correlation-contract.md) — LANDED: `1610bbf04` ("Add translation attempt correlation contract") is a verified ancestor of origin/master (2026-08-21 sweep); no runtime wiring was added.

- [Multilingual site entry and layout](2026-08-09-multilingual-site-entry-and-layout.md) — ACTIVE: Slice 1 plus dormant navigation and synced-pattern resolution are DONE; owner requested every remaining Release 2/3 slice, continuing from current master.
- [ACF Fields Page Redesign](2026-08-12-acf-fields-page-redesign.md) — SUPERSEDED by implementation request below.
- [ACF Master–Detail Redesign](2026-08-12-acf-master-detail-redesign.md) — ACTIVE; approved implementation contract, executed through claudex workflow.
- [Admin snappy](2026-08-04-admin-snappy.jsonl) — IDLE: release 0.9.36 was rolled back after regression; further deployment verification is superseded pending diagnosis.
- [Emergency plugin rollback](2026-08-10-emergency-plugin-rollback.md) — DONE: verified release 0.9.34 is active on dev1; PHP/release gates and final installed-state verification passed.
- [Localhost-only testing](2026-08-10-localhost-only-testing.md) — SUPERSEDED: owner revoked accidental remote-deployment prohibition on 2026-08-12; localhost verification remains mandatory and secure dev1 deployment is restored.
- [Worktree triage and consolidation](2026-08-10-worktree-triage-consolidation.md) — DONE: ACF Task 11 and UJ-020 landed; no RECOVER carrier remains; 66 verified preservation refs remain the recovery boundary; no carrier deletion was authorized or performed.
- [Release integrity regression](2026-08-11-release-integrity-regression.md) — DONE: recovered artifact selectively ported, fully verified, and landed on GitHub master as `a012c6f9f`.
- [ask-gpt offload batch](2026-08-11-ask-gpt-offload-batch.md) — ACTIVE: localhost verifier same-thread correction `b5elewa1g` generating real ZIP/script/instructions after zero-artifact first answer; other WIP triage lanes continue independently.
- [Licensing hardening](2026-08-11-licensing-hardening.md) — SUPERSEDED: the license-key architecture is retired. Connect `CredentialStore` now owns encrypted per-site API credentials; update/package verification remains tracked by its dedicated current plan.
- [ACF field policy keys](2026-08-11-acf-field-policy-keys.md) — DONE: reviewed database-sync, explicit-inherit, and server-side rejection regressions corrected; focused acceptance and applicable pre-commit checks passed in amended implementation commit.
- [ACF field table accordions](2026-08-11-acf-table-accordions.md) — LANDED: the full Design→Build→Route→Record→Restore lineage (`1b3849f31`→`9792a9137`→`ea8bfee37`→`f3739082c`→`b2f76cb3f`) consists of verified ancestors of origin/master (2026-08-21 sweep); built, routed, and delivered.
- [ACF page cache](2026-08-12-acf-page-cache.md) — DONE: canonical cache implementation landed and verified release 0.9.43 is active on dev1 with matching packaged admin assets.
- [Instant admin routes](2026-08-12-instant-admin-routes.md) — ACTIVE: duplicate Fields route removal and route/cache contract verification are executing; publication and dev1 deployment remain.
- [Generate All real character counts](2026-08-12-generate-all-real-character-counts.md) — DONE: release 0.9.42 landed and securely deployed; dev1 confirms active version and byte-matching distribution assets.
- [Translation tab pagination and cache](2026-08-12-translation-tab-pagination-cache.md) — DONE: fixed 20-item source pagination and cache-first loading shipped in 0.9.47; dev1 confirms active version and matching packaged admin assets.
- [Universal admin component redesign](2026-08-12-universal-admin-component-redesign.md) — SUPERSEDED-LANDED: content review of `wt/ui-component-redesign` (2026-08-21 dossier) confirmed its verification apparatus and SCSS tokens already exist on origin/master in successor form via the D5 lifecycle/redesign work; the branch was retired to the recovery bundle. No landing remains.
- [Modal lifecycle contract](2026-08-15-modal-lifecycle.md) — DONE: correction `d4230ba17` fixes content-only focus and repeated-open focus-frame lifecycle defects; focused tests, lint, and build pass.
- [Plugin-wide search architecture](2026-08-14-plugin-search-architecture.md) — UNVERIFIABLE: no commit anywhere in the repository (any ref, either direction) references D5-INPUT-01 or the asset-manifest repair (2026-08-21 sweep). The described commit could not be located; owner decision needed (board manual-48195f31c37a5d02) on whether this work exists outside this repo or was never committed.
- [Real production onboarding](2026-08-13-real-onboarding.md) — SUPERSEDED: the PayPal/license-key design was replaced by Connect + social auth + Stripe checkout + backend-issued per-site API credentials.
- [Site Content request contexts](2026-08-14-site-content-request-contexts.md) — DONE: commit `442c836eed6a594e56adbd1d2a48deafc7db22e1` is verified published on `origin/master`; established gates and independent review passed. This dormant slice has no runtime deployment.
- [Site Content catalog](2026-08-14-site-content-catalog.md) — DONE: commit `555047b3558ff526c5df772526a20d47b4224cf9` is verified published on `origin/master`; independent review and all required gates are clean. The catalog remains dormant with no runtime deployment.
- [Site Content repository](2026-08-14-site-content-repository.md) — DONE: implementation commit `52e8a59c4` and controller receipt `f420ee736` are published on `origin/master`; the repository remains dormant.
- [Block template translation adapter](2026-08-14-block-template-translation-adapter.md) — ACTIVE: stronger dormant candidate is resolving concurrent implementation conflicts and rerunning invalidated gates before publication.
- [Navigation translation adapter](2026-08-14-navigation-translation-adapter.md) — DONE: dormant resolver `45ee7ef347747ab0ac1cd5e3ba18387f0edec2b0` is published with warning-free remote enforcement and verified runtime dormancy.
- [Synced pattern translation adapter](2026-08-15-synced-pattern-translation-adapter.md) — DONE: dormant resolver `2079fefa27fa80fb7e7a00ed01d5680b7538bdec` is published with clean remote focused/static gates, exact master parity, and verified runtime dormancy.
- [Site Content translation resource handler](2026-08-14-site-content-translation-resource-handler.md) — DONE: implementation `097a5f64b` is published in merge `aa56fce30`; final remote testing, exact origin ancestry, and remote dormancy proof are clean.
- [Post translation resource handler](2026-08-15-post-translation-resource-handler.md) — IDLE: standalone recovery is rejected because it would duplicate or weaken authoritative dispatch/finalization; coordinated recovery is ACTIVE below.
- [Segmented Site Content backend](2026-08-15-segmented-site-content-backend.md) — BLOCKED: implementation and package typecheck seam are published in `a6febe270`; exact origin ancestry/tree are proven. Production deployment and public capability proof wait for a sanctioned non-SSH controller; WordPress activation remains forbidden.
- [Two-resource translation dispatch and controller](2026-08-15-two-resource-dispatch-controller.md) — DONE: dormant source `dd2bd00f9` is published in merge `a5e2f9de6`; remote gates, direct security review, ancestry, and exact fetched origin tree proof are clean. Runtime activation remains blocked by the separately tracked backend deployment.
- [Site Content admin UX](2026-08-15-site-content-admin-ux.md) — DONE: coordinator replacement, 17 focused and 746 broad admin tests, lint, production build, dormancy proof, publication, ancestry, and exact fetched origin tree proof are complete. Module remains inactive.
- [Update package verification response hardening](2026-08-14-update-package-verification-response-hardening.md) — DONE: implementation `be0eb2c57` and controller receipt `5552b08b5` are published on `origin/master`.
- [Site Content context language validation](2026-08-14-site-content-context-language-validation.md) — DONE: Task #83 canonical validation and independent security review are published on `origin/master`; no runtime wiring exists.
- [TranslationResult PHPCS normalization](2026-08-14-translation-result-phpcs-normalization.md) — ACTIVE: Task #86 is normalizing only formatting and required API documentation without semantic changes, suppressions, or baseline edits.
- [Exceptions tab mockup fidelity](2026-08-14-exceptions-mockup-fidelity.md) — DONE: the Exceptions settings tab matches the owner-supplied mockup; the shared select chevron and control primitives are repaired; both browsers pass and a baseline comparison shows zero regressions.
- [E2E failure remediation](2026-08-15-e2e-failure-remediation.md) — BLOCKED: two real product bugs fixed (settings validation bypass, account spinner) and the stale-test cleanup largely done and green; verification and landing wait on outbound SSH recovering from the owning session.
