docs/plans/2026-05-29-sync-shadcn-editors-shell-parity.md
Objective:
Implement the accepted sync-shadcn /editors shell parity slice: make
/editors follow upstream shadcn /blocks page framing while preserving Plate
editor demos and excluding the category nav, v0 actions, Browse all blocks, and
Browse more editors.
Goal plan: docs/plans/2026-05-29-sync-shadcn-editors-shell-parity.md
Template: docs/plans/templates/task.md
Primary template: docs/plans/templates/task.md
Applied packs:
Task source:
docs/sync/shadcn/runs/2026-05-29-4a4dc8e-to-efdec3c-editors-blocks-style/plan.mdPageHeader, section-soft
content band, upstream block-list spacing, Plate demos retained, rejected
upstream controls absent, partial sync status updated without advancing
lastSyncedCommit, focused lint/typecheck and browser proof complete.Completion threshold:
/editors renders with the approved upstream /blocks shell rhythm.docs/sync/shadcn/status.json records the implementation as a partial sync
and leaves lastSyncedCommit unchanged.pnpm --filter www typecheck, and desktop/mobile browser
proof pass.node .agents/rules/autogoal/scripts/check-complete.mjs docs/plans/2026-05-29-sync-shadcn-editors-shell-parity.md passes.Verification surface:
pnpm --filter www exec eslint 'src/app/(app)/editors/layout.tsx' 'src/app/(app)/editors/editor-description.tsx' 'src/app/(app)/editors/page.tsx' --fixpnpm --filter www typecheckhttp://localhost:3003/editors at
1175x1239 and 390x844, with screenshots saved in the sync run folder.Constraints:
Boundaries:
docs/sync/shadcn/runs/2026-05-29-4a4dc8e-to-efdec3c-editors-blocks-style/plan.md/editors route files, this goal plan, sync run plan,
and docs/sync/shadcn/status.json.http://localhost:3003/editors.PageNav/BlocksNav, no Open in v0, no Browse all blocks,
no Browse more editors, no full sync baseline advancement.Output budget strategy:
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/rules/autogoal/scripts/check-complete.mjs docs/plans/2026-05-29-sync-shadcn-editors-shell-parity.md passes.Start Gates:
| Gate | Applies | Evidence |
|---|---|---|
| Skill analysis before edits | yes | Loaded sync-shadcn, autogoal, and task; accepted plan read before patching. |
| Active goal checked or created | yes | create_goal created the accepted /editors implementation goal. |
| Source of truth read before edits | yes | Read docs/sync/shadcn/runs/2026-05-29-4a4dc8e-to-efdec3c-editors-blocks-style/plan.md. |
| Tracker comments and attachments read | no | N/A: no tracker item. |
| Video transcript evidence required | no | N/A: no video evidence. |
docs/solutions checked for non-trivial existing-code work | no | N/A: source of truth was the fresh sync-shadcn plan and route code. |
| TDD decision before behavior change or bug fix | no | N/A: visual shell sync, verified by lint/typecheck/browser proof. |
| Branch decision for code-changing task | yes | N/A: user did not request branch or PR; edited current checkout only. |
| Release artifact decision | no | N/A: docs app route/status changes only; no package release artifact. |
| Browser tool decision for browser surface | yes | Used Playwright against the local dev server because no direct Browser tool was callable in this session. |
| PR expectation decision | no | N/A: no PR requested. |
| Tracker sync expectation decision | no | N/A: no tracker. |
| Output budget strategy recorded | yes | Targeted reads and compact command/browser outputs only. |
| Docs pack selected | yes | docs pack applied because sync status and plan artifacts changed. |
docs-creator loaded | no | N/A: this is sync bookkeeping, not user-facing MDX content. |
| Docs lane selected | yes | Supporting docs/status artifact update under sync-shadcn. |
| Target docs and nearest sibling docs read | yes | Read accepted sync plan and status JSON before edits. |
| Docs style doctrine read | no | N/A: no user-facing docs prose changed. |
| Documented source owner identified | yes | Source owner is sync-shadcn plan/status under docs/sync/shadcn. |
| Browser pack selected | yes | browser pack applied because /editors UI changed. |
| Browser route / app surface identified | yes | Route is http://localhost:3003/editors. |
| Browser tool decision recorded | yes | Playwright used for desktop/mobile screenshots and assertions. |
| Console/network caveat policy recorded | yes | Known Potion iframe X-Frame-Options/sandbox warnings recorded; no page errors or failed requests. |
Work Checklist:
<video-transcripts> XML, or marked N/A with reason..agents/**, .claude/**,
.codex/**, skills, hooks, commands, prompts, or user-action tooling.Completion Gates:
| Gate | Applies | Required action | Evidence |
|---|---|---|---|
| Named verification threshold | yes | Run the named lint, typecheck, browser proof, and status JSON source audit | Focused eslint passed, pnpm --filter www typecheck passed, browser proof passed, status JSON updated. |
| Bug reproduced before fix | no | Record failing test/repro or N/A with reason | N/A: accepted visual sync slice, not a bug repro. |
| Targeted behavior verification | yes | Run focused proof for changed behavior | Browser proof on /editors desktop/mobile asserted centered header, section-soft, retained demos, and excluded controls absent. |
| TypeScript or typed config changed | yes | Run relevant typecheck | pnpm --filter www typecheck passed. |
| Package exports or file layout changed | no | Run pnpm brl or record N/A | N/A: no package exports or barrels changed. |
| Package manifests, lockfile, or install graph changed | no | Run install checks or record N/A | N/A: no manifest or lockfile changes. |
| Agent rules or skills changed | no | Run generated skill sync or record N/A | N/A: no agent rules or skills changed. |
| Workspace authority proof | yes | Run proof in owning app/repo | Commands ran from /Users/zbeyens/git/plate; browser proof hit apps/www dev route at localhost:3003. |
| Browser surface changed | yes | Capture browser proof | Saved plate-editors-desktop-after.png and plate-editors-mobile-after.png. |
| Browser final proof | yes | Attach screenshot or exact browser caveat | Screenshots saved under the sync run folder; known Potion iframe warnings only. |
| CI-controlled template output changed | no | Restore generated template output or record N/A | N/A: no template output changed. |
| Package behavior or public API changed | no | Add changeset or record N/A | N/A: docs app route only. |
| Registry-only component work changed | no | Update changelog or record N/A | N/A: no registry component change. |
| Docs or content changed | yes | Verify docs/status claims | Sync status and run plan updated with source-backed implementation result. |
| High-risk mini gate | yes | Record realistic failure mode and proof plan | Risk: accidentally adding rejected shadcn controls or losing Plate demos; proof asserts excluded controls absent and demos retained. |
| Agent-native review for agent/tooling changes | no | Run review or record N/A | N/A: no agent/tooling changes. |
| Local install corruption suspected | no | Retry reinstall or record N/A | N/A: checks passed; no install-corruption signal. |
| Autoreview for non-trivial implementation changes | no | Run review or record N/A | N/A: narrow visual shell sync with targeted browser proof and no package/API changes. |
| PR create or update | no | Run check before PR work or record N/A | N/A: no PR requested. |
| Task-style PR body verified | no | Verify PR body or record N/A | N/A: no PR. |
| PR proof image hosting | no | Host images or record N/A | N/A: no PR body. |
| Tracker sync-back | no | Post tracker sync or record N/A | N/A: no tracker. |
| Final handoff contract | yes | Fill final handoff fields | Final handoff fields completed with checks and caveat. |
| Final lint | yes | Run scoped equivalent | pnpm --filter www exec eslint ... --fix passed. |
| Output budget discipline | yes | Verify scoped output | Output stayed targeted; browser evidence saved as screenshots. |
| Goal plan complete | yes | Run node .agents/rules/autogoal/scripts/check-complete.mjs docs/plans/2026-05-29-sync-shadcn-editors-shell-parity.md | To run after this plan fill. |
| Docs source-backed claim audit | yes | Verify docs claims against source | Claims point to accepted sync plan, status JSON, route files, and browser screenshots. |
| Docs links / routes / previews | yes | Verify route/anchors/previews | /editors and #blocks verified in browser proof; no new leaf links. |
| Docs MDX/content parser | no | Run content parser or record N/A | N/A: no MDX content changed. |
| Plugin page specifics | no | Apply plugin page rules or record N/A | N/A: not a plugin page. |
| Browser interaction proof | yes | Exercise target route | Playwright loaded /editors at desktop/mobile and checked layout/exclusions. |
| Browser console/network check | yes | Record console/network state | No page errors or failed requests; known Potion iframe warnings recorded. |
| Browser final proof artifact | yes | Record screenshot/trace/route proof | Screenshots saved in docs/sync/shadcn/runs/2026-05-29-4a4dc8e-to-efdec3c-editors-blocks-style/screenshots/. |
Phase / pass table:
| Phase | Status | Evidence | Next |
|---|---|---|---|
| Intake and source read | complete | Accepted sync plan and target route files read. | implementation |
| Implementation | complete | /editors layout, description, and page patched; sync status/run plan updated. | verification |
| Verification | complete | Focused eslint, typecheck, and browser proof passed. | closeout |
| PR / tracker sync | N/A | No PR or tracker requested. | final response |
| Closeout | complete | Plan filled; final response ready after check-complete and update_goal. | final response |
Findings:
/editors had the old route-local container and left-aligned header rhythm.Decisions and tradeoffs:
Browse Editors hero action because the plan only excluded the
bottom Browse more editors CTA and upstream category/action controls.BlockViewer; toolbar cleanup remains deferred unless the user
wants that second slice.Implementation notes:
layout.tsx now wraps children in container-wrapper flex-1 section-soft md:py-12.editor-description.tsx now renders through shared PageHeader.page.tsx now uses flex flex-col gap-12 md:gap-24.Review fixes:
PageActions styling after confirming the shared component's
default is left-aligned in Plate.Error attempts:
| Error / failed attempt | Count | Next different move | Resolution |
|---|---|---|---|
| Node ESM/require ambiguity in first browser script | 1 | Rerun script as ESM with --input-type=module | Browser proof passed |
Verification evidence:
pnpm --filter www exec eslint 'src/app/(app)/editors/layout.tsx' 'src/app/(app)/editors/editor-description.tsx' 'src/app/(app)/editors/page.tsx' --fix passed.pnpm --filter www typecheck passed.http://localhost:3003/editors passed at 1175x1239 and
390x844.docs/sync/shadcn/runs/2026-05-29-4a4dc8e-to-efdec3c-editors-blocks-style/screenshots/plate-editors-desktop-after.png
and
docs/sync/shadcn/runs/2026-05-29-4a4dc8e-to-efdec3c-editors-blocks-style/screenshots/plate-editors-mobile-after.png.section-soft present,
Plate demos retained, no PageNav/BlocksNav, no category nav labels, no
Browse all blocks, no Open in v0, no Browse more editors, and no horizontal
overflow.Reboot status:
Open risks:
Final handoff contract:
/editors desktop/mobile screenshots saved; rejected controls absent./editors now follows the approved shadcn /blocks shell rhythm.Task-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:
Timeline:
Reboot status:
| Question | Answer |
|---|---|
| Where am I? | Closeout complete after implementation and verification |
| Where am I going? | Final response |
| What is the goal? | Ship the accepted /editors shell parity slice and record partial sync state |
| What have I learned? | Route shell parity was owned by /editors layout/header/list files; BlockViewer cleanup remains separate |
| What have I done? | Patched route shell, updated sync status/run plan, ran lint/typecheck/browser proof |
Open risks: