docs/plans/2026-06-13-add-plate-ui-changelogs-v51.md
Objective:
Add missing Plate UI changelog entries for v51; done when every detected v51 registry-changing PR is in source MDX/generated JSON and /docs/releases renders.
Flow mode: one-shot execution
Goal plan: docs/plans/2026-06-13-add-plate-ui-changelogs-v51.md
Template: docs/plans/templates/task.md
Primary template: docs/plans/templates/task.md
Applied packs:
Task source:
tooling/data/plate-ui-changelog.mdx from the old changelog source style,
regenerate /registry/changelog/* JSON, and verify /docs/releases.Completion threshold:
apps/www/src/registry/**.tooling/data/plate-ui-changelog.mdx contains one source section per detected
v51 change unit with explicit commit provenance.node tooling/scripts/generate-ui-changelog-entries.mjs --write refreshes
apps/www/src/registry/changelog/*./docs/releases serves and includes the generated Plate UI entries.node .agents/skills/autogoal/scripts/check-complete.mjs docs/plans/2026-06-13-add-plate-ui-changelogs-v51.md passes.Verification surface:
node tooling/scripts/generate-ui-changelog-entries.mjs --write.apps/www/src/registry/changelog/index.json and
components.json inspection.node --test tooling/scripts/generate-ui-changelog-entries.test.mjs.pnpm lint:fix.http://localhost:3000/docs/releases.Constraints:
Boundaries:
tooling/data/plate-ui-changelog.mdx,
apps/www/src/generated/release-index.json, local git history, GitHub PR
metadata, and generated apps/www/src/registry/changelog/*./docs/releases..changeset, no registry component source changes, no
release UI redesign.Output budget strategy:
tmp/ only if needed. Avoid streaming
full diffs; inspect focused git show --name-only and short diff slices.Blocked condition:
Task state:
Current verdict:
Completion rule:
update_goal(status: complete) while any required checklist item
remains unchecked. If an item does not apply, check it and add N/A: <reason>.update_goal(status: complete) until every completion threshold
above is satisfied, final handoff evidence is recorded, and
node .agents/skills/autogoal/scripts/check-complete.mjs docs/plans/2026-06-13-add-plate-ui-changelogs-v51.md passes.Start Gates:
| Gate | Applies | Evidence |
|---|---|---|
| Skill analysis before edits | yes | User provided autogoal; workflow read in prompt and applied |
| Active goal checked or created | yes | get_goal returned none; create_goal created this goal |
| Source of truth read before edits | yes | Read current plan and will audit changelog/release-index before source edits |
| Tracker comments and attachments read | no | N/A: no tracker attached |
| Video transcript evidence required | no | N/A: no video evidence |
docs/solutions checked for non-trivial existing-code work | no | N/A: registry changelog data backfill, no behavior fix |
| TDD decision before behavior change or bug fix | no | N/A: no runtime behavior change planned |
| Branch decision for code-changing task | no | N/A: user did not request commit/PR branch |
| Release artifact decision | yes | Registry changelog only; no package .changeset |
| Browser tool decision for browser surface | yes | Use available browser tool if exposed; otherwise HTTP proof against running local server |
| PR expectation decision | no | N/A: user did not request PR |
| Tracker sync expectation decision | no | N/A: no tracker attached |
| Output budget strategy recorded | yes | See Output budget strategy |
| Package/API pack selected | yes | Registry changelog rows are release-artifact data |
| Public surface or package boundary identified | yes | Public surface is Plate UI registry changelog JSON and /docs/releases |
| Release artifact path selected | yes | Registry changelog |
changeset skill loaded when .changeset is required | no | N/A: no package changeset applies |
| Barrel/export impact decision recorded | no | N/A: no exports or file layout changes planned |
| Browser pack selected | yes | /docs/releases must render generated entries |
| Browser route / app surface identified | yes | http://localhost:3000/docs/releases |
| Browser tool decision recorded | yes | Prefer in-app Browser if callable; use HTTP route proof if not exposed |
| Console/network caveat policy recorded | yes | Console/network proof only if browser tool is available; otherwise record HTTP caveat |
Work Checklist:
<video-transcripts> XML, or marked N/A: no video evidence./docs/releases/51 route proof..agents/**, .claude/**,
.codex/**, skills, hooks, commands, prompts, or user-action tooling..changeset work loads changeset and follows its package/version/prose rules: N/A, no package changeset.tooling/data/plate-ui-changelog.mdx and generated /registry/changelog/* JSON instead of adding a package changeset.main: N/A, registry artifact applies.Completion Gates:
| Gate | Applies | Required action | Evidence |
|---|---|---|---|
| Named verification threshold | yes | Run the command, proof, source audit, or artifact check named in this plan | v51 PR audit found registry-changing PRs 4732, 4697, 4695 and non-registry v51 PRs 4735, 4729, 4714 |
| Bug reproduced before fix | no | Record failing test/repro or N/A with reason | N/A: data backfill plus archive rendering omission |
| Targeted behavior verification | yes | Run focused test/proof for changed behavior or record N/A | focused registry route tests pass |
| TypeScript or typed config changed | yes | Run relevant typecheck | pnpm --filter www typecheck passed |
| Package exports or file layout changed | no | Run pnpm brl before final verification and keep generated barrel updates | N/A: no exports or barrels |
| Package manifests, lockfile, or install graph changed | no | Run pnpm install and relevant package checks | N/A: no package/install graph changes |
| Agent rules or skills changed | no | Run pnpm install and verify generated skill sync | N/A: this task did not edit agent files |
| Workspace authority proof | yes | Run verification in the owning repo/package/app/route/tool and record cwd; do not count the wrong workspace as proof | commands ran in /Users/zbeyens/git/plate |
| Browser surface changed | yes | Capture Browser Use proof or record explicit waiver/blocker | HTTP route proof used for /docs/releases/51; Browser tool unavailable in resumed tool set |
| Browser final proof | yes | Attach screenshot or exact browser verification caveat when browser proof applies | curl http://localhost:3000/docs/releases/51 returned 200 and HTML includes v51 Plate UI entries |
| CI-controlled template output changed | no | Restore generated template output or record why it is intentionally kept | N/A: no template output touched by this task |
| Package behavior or public API changed | no | Add a changeset or record why no changeset applies | N/A: registry changelog docs artifact, no package behavior/API change |
| Registry-only component work changed | yes | Update tooling/data/plate-ui-changelog.mdx, run node tooling/scripts/generate-ui-changelog-entries.mjs --write, or record N/A | source MDX updated and generator wrote 18 registry changelog events |
| Docs or content changed | yes | For docs-heavy work, use --template docs; for incidental docs, verify source-backed claims, links, examples, and rendered output or record N/A | source-backed claims from release-index/PR file audits; /docs/releases/51 rendered |
| High-risk mini gate | yes | For public API/runtime/package-boundary/browser/agent-action/command-contract changes, record realistic failure mode, proof plan, and why the chosen boundary is right; otherwise N/A | failure mode was stale/generated registry JSON or archive page omitting Plate UI data; fixed at source MDX/generator and shared release renderer input |
| Agent-native review for agent/tooling changes | no | For .agents/**, .claude/**, .codex/**, skills, hooks, commands, prompts, or user-action tooling, load .agents/skills/agent-native-reviewer/SKILL.md and close accepted/actionable findings, or record N/A | N/A: no agent/tooling files edited by this task |
| Local install corruption suspected | no | Run pnpm run reinstall once, rerun the exact failing command, or record N/A | N/A: no install corruption signal |
| Autoreview for non-trivial implementation changes | no | Load .agents/skills/autoreview/SKILL.md; use dirty local --mode local, branch/PR --mode branch --base <base>, or committed slice --mode commit --commit <ref> until no accepted/actionable findings, or record N/A for docs-only/trivial/no local patch | N/A: scoped registry data/rendering patch with focused tests/typecheck/lint; user had stopped autoreview earlier |
| PR create or update | no | Run check before PR work and sync PR body to the task-style final handoff | N/A: user did not request PR |
| Task-style PR body verified | no | Verify the PR body with gh pr view --json body; it must preserve auto-release blocks when applicable, must not include a current-PR self-link, and must use the kitcn PR #270 emoji format: ๐ Fixes ..., ๐ข 95-100% confidence, Phase / ๐งช Tests / ๐ Browser table, and bold emoji Outcome/Caveat/Design/Verified sections | N/A: no PR |
| PR proof image hosting | no | If PR body needs browser proof, replace local image paths with hosted GitHub URLs or record N/A | N/A: no PR body |
| Tracker sync-back | no | Post concise issue/Linear sync after PR exists, or record N/A/blocker | N/A: no tracker |
| Final handoff contract | yes | Fill the final handoff fields below with exact PR/issue/confidence/tests/browser/outcome/caveats/design/verification content or N/A reason | filled below |
| Final lint | yes | Run pnpm lint:fix or scoped equivalent | pnpm lint:fix passed; fixed 1 file after final patch |
| Output budget discipline | yes | Verify no unbounded high-volume command output was streamed, or record the accidental output and recovery | one accidental full JSON pipe printed; recovered with temp-file JSON audit |
| Goal plan complete | yes | Run node .agents/skills/autogoal/scripts/check-complete.mjs docs/plans/2026-06-13-add-plate-ui-changelogs-v51.md | ready to run |
| Public API / package boundary proof | yes | Source-audit public API, exports, and package boundary impact | no exports/package APIs changed; public registry JSON/docs route verified |
| Release artifact classification | yes | Record whether the change is published package behavior/API/types/config/runtime, registry-only, or no published user-visible delta | registry-only changelog artifact plus release docs rendering |
| Published package changeset | no | If published package users see a delta, load changeset, add/update one .changeset/*.md per package, and prove no forbidden minor on @platejs/slate, @platejs/core, or platejs | N/A: no package changeset |
| Registry changelog | yes | If the change is registry-only under apps/www/src/registry/**, update tooling/data/plate-ui-changelog.mdx, run node tooling/scripts/generate-ui-changelog-entries.mjs --write, and do not add a package changeset | done |
| No release artifact | no | If no artifact is needed, record the exact reason: internal-only, docs-only, agent-only, test-only, or no user-visible delta from main | N/A: registry artifact applies |
| Package typecheck/build/test | yes | Run owning package checks or record N/A with reason | pnpm --filter www typecheck passed |
| Barrel/export generation | no | Run pnpm brl when exports or exported file layout changed, otherwise N/A | N/A: no barrels/exports |
| Browser interaction proof | yes | Exercise the target route/interaction with the approved browser tool or record blocker | HTTP proof for static route due Browser tool unavailable |
| Browser console/network check | no | Record console/network state or why it is not applicable | N/A: static HTML/JSON route proof only |
| Browser final proof artifact | yes | Record screenshot/trace/route proof or exact caveat | local HTML proof recorded in Verification evidence |
Phase / pass table:
| Phase | Status | Evidence | Next |
|---|---|---|---|
| Intake and source read | complete | audited release-index and v51 PR files | implementation complete |
| Implementation | complete | added v51 MDX rows, generated JSON, patched archived release page data wiring | verification complete |
| Verification | complete | tests/typecheck/lint/HTTP proof passed | closeout |
| PR / tracker sync | complete | N/A: no PR/tracker requested | final response |
| Closeout | complete | plan ready for autogoal completion check | final response |
Findings:
apps/www/src/registry/** files and are intentionally absent from Plate UI changelog JSON.content/components/changelog.mdx covered the October 2025 v51 rows; PR 4732 needed source reconstruction from PR metadata and registry file audit./docs/releases/[major] did not pass plateUiChangesByTag, so v51 JSON existed but archived release pages could not render Plate UI cards.Decisions and tradeoffs:
getPlateUiReleaseChangesByTag() helper instead of duplicating PR/file-diff link mapping between current and archived releases pages.Implementation notes:
tooling/data/plate-ui-changelog.mdx for PR 4732, PR 4697, and PR 4695 with commit provenance.apps/www/src/registry/changelog/2025-11-20-biome-ultracite.jsonapps/www/src/registry/changelog/2025-10-21-add-rejectaisuggestions.jsonapps/www/src/registry/changelog/2025-10-17-fix-react-decouple.jsonapps/www/src/registry/changelog/index.json and components.json./docs/releases/[major] to pass Plate UI changelog data into the shared release renderer.Review fixes:
apps/www/src/app/registry/changelog/index.json/route.test.ts by typing parsed JSON as RegistryChangelogIndex.Error attempts:
| Error / failed attempt | Count | Next different move | Resolution |
|---|---|---|---|
| Shell read of route files with unquoted parentheses failed | 1 | quote App Router paths | resolved |
| `curl | node <<'NODE'` consumed the heredoc as Node stdin and printed full JSON before failing | 1 | write curl output to temp file, then read it from Node |
/docs/releases/51 rendered package release content but no Plate UI cards | 1 | inspect current vs archived releases pages and pass Plate UI data to [major] route | resolved |
Verification evidence:
node tooling/scripts/generate-ui-changelog-entries.mjs --write: wrote 18 registry changelog events from 37 source rows.v51.1.2, 4 entries, 68 targets), PR 4697 (v51.0.1, 2 entries, 4 targets), and PR 4695 (v51.0.0, 1 entry, 29 targets), all with empty diagnostics.node --test tooling/scripts/generate-ui-changelog-entries.test.mjs: 7 pass.pnpm --filter www exec bun test src/app/registry/changelog/index.json/route.test.ts src/app/registry/changelog/components.json/route.test.ts 'src/app/registry/changelog/[event]/route.test.ts': 5 pass, 16 expect calls.pnpm --filter www typecheck: passed.pnpm lint:fix: passed, checked 3270 files, fixed 1 file.curl -sS -o /tmp/plate-releases-51.html -w '%{http_code} %{content_type}\n' http://localhost:3000/docs/releases/51: 200 text/html; charset=utf-8./tmp/plate-releases-51.html includes v51 Releases, Plate UI, Biome ultracite, Add rejectAISuggestions, Fix react decouple, SuggestionLineBreak, and platejs/static.curl http://localhost:3000/registry/changelog/index.json: v51 JSON contains PRs 4732, 4697, 4695 and no other v51 Plate UI events.Final handoff contract:
/docs/releases/51Task-style PR body contract:
<!-- auto-release:start --> block. If a changeset is
part of the diff and repo policy expects auto release, include that block.๐ Fixes #123 or ๐ Fixes โ N/A, then
an emoji confidence line like ๐ข 95-100% confidence.| Phase | ๐งช Tests | ๐ Browser |.Reproduced and Verified rows. Mark passing proof with ๐ข, repro or
failing proof with ๐ด, and non-applicable cells with โ N/A.**โ
Outcome**, **โ ๏ธ Caveat**,
**๐๏ธ Design**, and **๐งช Verified**.Summary / Verification PR body, an
adaptive prose body from a git helper skill, plain ## Outcome sections, or
an unrelated generated badge footer unless the caller or repo template
explicitly asks for it.gh pr view --json body output or a concise source-backed summary
of that output.Final handoff / sync:
/docs/releases/51 returned 200 and rendered v51 Plate UI text via HTTP HTML checkTimeline:
tooling/data/plate-ui-changelog.mdx.www typecheck, lint, and HTTP proof.Reboot status:
| Question | Answer |
|---|---|
| Where am I? | Closeout |
| Where am I going? | Completion checker and final response |
| What is the goal? | Add v51 Plate UI changelog entries and render them on release docs |
| What have I learned? | See Findings |
| What have I done? | See Timeline |
Open risks: