docs/plans/2026-06-02-sync-shadcn-4-10-package-contract.md
Objective:
Implement the accepted sync-shadcn [email protected] package/registry contract audit slice: update Plate only if the upstream package bump validates against Plate registry source checks, record the slice in sync-shadcn artifacts/status, and verify with install, registry checks, typecheck, package tests, and Browser/API proof.
Flow mode: accepted implementation slice.
Goal plan: docs/plans/2026-06-02-sync-shadcn-4-10-package-contract.md
Primary template: docs/plans/templates/sync-shadcn.md
Applied packs:
apps/www package-facing registry routes verifiedshadcn/schema package contract changedSync source:
shadcn-ui/ui../shadcn../shadcn/apps/v4cd54e0927f3853a777f700a0bbf34507cf697b9capps/wwwdocs/sync/shadcn/status.jsondocs/sync/shadcn/runs/2026-06-02-4a4dc8e-to-cd54e09/Completion threshold:
Complete when apps/www depends on [email protected], the lockfile resolves [email protected], Plate registry source checks and focused package tests pass, pnpm --filter www typecheck passes, Browser/API proof confirms /r/registries.json and /init, sync-shadcn artifacts record the package slice, the range baseline advances to cd54e0927f3853a777f700a0bbf34507cf697b9c, and node .agents/skills/autogoal/scripts/check-complete.mjs docs/plans/2026-06-02-sync-shadcn-4-10-package-contract.md passes.
Verification surface:
apps/v4/package.json.apps/www/package.json and pnpm-lock.yaml.pnpm --filter www exec shadcn --version.pnpm --filter www exec tsx --tsconfig ./scripts/tsconfig.scripts.json scripts/check-registry-source.mts.pnpm --filter www typecheck./r/registries.json and /init on a fresh dev server.Constraints:
build:registry.Boundaries:
Allowed edits: apps/www/package.json, pnpm-lock.yaml, docs/sync/shadcn/runs/2026-06-02-4a4dc8e-to-cd54e09/plan.md, docs/sync/shadcn/runs/2026-06-02-4a4dc8e-to-cd54e09/inventory.md, docs/sync/shadcn/runs/2026-06-02-4a4dc8e-to-cd54e09/classification-summary.json, docs/sync/shadcn/status.json, and this goal plan.
Output budget strategy: Use focused source reads and endpoint proof only. No broad patch artifacts.
Blocked condition: No blocker.
Sync state:
4a4dc8eb0fc793d8e9225e780183ad605f15d2c2cd54e0927f3853a777f700a0bbf34507cf697b9cdocs/sync/shadcn/runs/2026-06-02-4a4dc8e-to-cd54e09lastSyncedCommit advanced to targetCurrent verdict:
cd54e09Completion rule: Close after status parse and autogoal check pass.
Start Gates:
| Gate | Applies | Evidence |
|---|---|---|
autogoal loaded and active goal checked/created | yes | Active goal created for [email protected] package contract slice. |
sync-shadcn skill/rule read | yes | Accepted implementation slice follows latest run plan. |
| Output budget strategy recorded before broad upstream commands | yes | Focused package/registry source only. |
docs/sync/shadcn/status.json read | yes | Existing baseline and partial syncs inspected. |
| Base and target refs resolved to exact SHAs | yes | Base 4a4dc8eb0fc793d8e9225e780183ad605f15d2c2; target cd54e0927f3853a777f700a0bbf34507cf697b9c. |
| Planning-only vs implementation mode decided | yes | User accepted the package/registry contract audit with "ok go". |
| User-review boundary recorded | yes | No non-accounted rows remain after this slice. |
Work Checklist:
pnpm --filter www add [email protected].[email protected].pnpm --filter www typecheck passed.http://localhost:3003./r/registries.json and /init.Completion Gates:
| Gate | Applies | Required action | Evidence |
|---|---|---|---|
| Named verification threshold | yes | Prove package, lockfile, registry checks, tests, typecheck, Browser/API, artifacts | All passed. |
| Upstream range artifacts exist | yes | Verify existing run artifacts remain present | Existing latest run artifacts remain present. |
| Inventory completeness | yes | Reconcile decision counts with upstream row count | Counts total 790. |
| Decision accounting | yes | Verify no question rows remain | needs-question is 0. |
| Status JSON parse and semantics | yes | Parse status and verify synced baseline advanced to target | Final parse command verifies baseline target and latest entry baselineAdvanced: true. |
| Source-backed Plate mapping | yes | Record upstream package row and Plate owner paths | apps/v4/package.json -> apps/www/package.json, pnpm-lock.yaml. |
| Visual comparison screenshots | no | Package/API route proof has no visual parity surface | N/A. |
| Accepted implementation verification | yes | Run focused checks for touched Plate surface | Registry source, focused tests, CLI version, typecheck, Browser/API passed. |
| Browser surface changed | yes | Capture Browser proof on package-facing routes | Browser proof on /r/registries.json and /init: valid registry JSON, no console warnings/errors. |
| Package manifests, lockfile, or install graph changed | yes | Verify package and lockfile resolve expected version | apps/www/package.json and pnpm-lock.yaml use [email protected]. |
| CI-controlled generated output | yes | Verify generated registry output was not manually edited | No generated registry output touched. |
| Baseline advancement | yes | Advance synced baseline only after all rows are accounted | lastSyncedCommit advanced to cd54e0927f3853a777f700a0bbf34507cf697b9c. |
| User review boundary | yes | Keep future upstream changes out of this run | Next sync waits for upstream beyond cd54e09. |
| Output budget discipline | yes | Broad output artifacted/capped | Focused reads and proof only. |
| Goal plan complete | yes | Run completion checker | node .agents/skills/autogoal/scripts/check-complete.mjs docs/plans/2026-06-02-sync-shadcn-4-10-package-contract.md passed. |
Phase / pass table:
| Phase | Status | Evidence | Next |
|---|---|---|---|
| Intake and baseline read | done | latest plan/status read | complete |
| Upstream package evidence | done | target package diff inspected | complete |
| Implementation | done | package and lockfile updated | complete |
| Artifact and status update | done | plan/inventory/summary/status updated | complete |
| Verification and baseline decision | done | registry checks, tests, typecheck, Browser/API passed; baseline advanced | complete |
| Closeout | done | final response after checker | complete |
Decision counts:
| Decision | Count | Notes |
|---|---|---|
adopt-upstream | 1 | [email protected] adopted. |
smart-merge | 33 | Button rows plus registry route/directory concept rows. |
plate-fork | 14 | Plate-owned docs/home/sidebar surfaces, including GitHub registry prose. |
exclude-upstream | 616 | Rhea/create/theme/home cards/generated adds/shadcn release content. |
delete-plate-residue | 0 | No deletion slice. |
no-op | 126 | Generated/upstream-only style output not manually synced. |
needs-question | 0 | No open product questions in the range. |
Recommended merge slices:
| Order | Slice | Class | Files | Why | Verification |
|---|---|---|---|---|---|
| 1 | None for this range | N/A | N/A | Tracked range is accounted and baseline advanced. | Future sync-shadcn run after upstream moves. |
Questions:
Findings:
[email protected] even though the current ../shadcn checkout is older.@base-ui/react for this slice.[email protected] keeps Plate registry schema/import checks green.Decisions and tradeoffs:
shadcn package bump and lockfile resolution.Error attempts:
| Error / failed attempt | Count | Next different move | Resolution |
|---|---|---|---|
| Browser proof variable collision from previous session | 1 | Retry with fresh variable names | Browser proof passed. |
Verification evidence:
pnpm --filter www add [email protected] passed.pnpm --filter www exec shadcn --version returned 4.10.0.pnpm --filter www exec tsx --tsconfig ./scripts/tsconfig.scripts.json scripts/check-registry-source.mts passed.pnpm --filter www exec bun test src/lib/plate-init.test.ts src/lib/registry-install.test.ts src/app/r/registries.json/route.test.ts scripts/registry-dependencies.test.mts passed: 11 tests, 31 assertions.pnpm exec biome check apps/www/package.json pnpm-lock.yaml passed with package JSON checked; lockfile version was verified by pnpm install output and semantic assertions.pnpm --filter www typecheck passed, including docs source parity and registry source checks.http://localhost:3003/r/registries.json returned one @plate entry and no console warnings/errors.http://localhost:3003/init returned registry:base, @plate/editor-basic, and https://platejs.org/r/{name}.json with no console warnings/errors.Final handoff:
4a4dc8e..cd54e09docs/sync/shadcn/runs/2026-06-02-4a4dc8e-to-cd54e09/plan.mddocs/sync/shadcn/runs/2026-06-02-4a4dc8e-to-cd54e09/inventory.mdneeds-question 0[email protected] package/registry contractcd54e0927f3853a777f700a0bbf34507cf697b9cTimeline:
[email protected] and closed the tracked range.Reboot status:
| Question | Answer |
|---|---|
| Where am I? | Package contract slice implemented and verified. |
| Where am I going? | Closeout. |
| What is the goal? | Adopt [email protected] safely and advance the shadcn sync baseline after full range accounting. |
Open risks: None for this range.