docs/plans/2026-09-06-pr-5120-feedback.md
Objective: Resolve all three current review threads on PR #5120 with source-backed verdicts, fixes for valid findings, verified replies and resolution.
Goal plan: docs/plans/2026-09-06-pr-5120-feedback.md
First checkpoint:
Feedback ledger:
| Thread / comment | Type and owner | Reviewer claim | Verdict | Proof | Reply | Resolution |
|---|---|---|---|---|---|---|
| PRRT_kwDODW01os6fs7oK / discussion_r3944438711 | review_thread; AI docs EN/CN | Caller-key instructions conflict with server-only credential guidance | fixed | Source route/settings; full www types/parser/parity; four live Chrome doc pages | posted and read back | resolved |
| PRRT_kwDODW01os6fs7oM / discussion_r3944438713 | review_thread; original task plan | Exact PR placeholder remains | replied; already fixed at 4a4a6052c9 | Current plan line 30 names PR #5120; body has one plan line | posted and read back | resolved |
| PRRT_kwDODW01os6fs7oO / discussion_r3944438715 | review_thread; math package/renderers | Primitive values from older HTML imports are erased | fixed | 77 focused tests; math/www types; pnpm check; editable Chrome proof | posted and read back | resolved |
Timed checkpoint:
Completion threshold:
Verification surface:
Constraints:
[$resolve-pr-feedback](/Users/zbeyens/git/plate/.agents/skills/resolve-pr-feedback/SKILL.md) if valid. No explicit target: full mode on current PR #5120.Boundaries:
Output budget strategy:
Blocked condition:
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 the named verification
evidence is recorded below and
node .agents/skills/autogoal/scripts/check-complete.mjs docs/plans/2026-09-06-pr-5120-feedback.md passes.Start Gates:
| Gate | Applies | Evidence |
|---|---|---|
| Timed checkpoint parsed | no | N/A: no requested duration |
| Skill analysis before edits | yes | resolve-pr-feedback, autogoal plan, review-sweep, docs-creator, package changeset, registry-changelog, TDD and final autoreview |
| Active goal checked or created | no | N/A: plan-only one-shot execution; no explicit durable goal request |
| Source of truth read before edits | yes | Current PR feedback, math helper/normalizer, generic HTML parser, current task ownership and AI route/docs |
docs/solutions checked for non-trivial existing-code work | yes | Read 2026-04-27-slate-react-void-renderers-should-not-own-hidden-spacer-children.md; preserve existing renderer children ownership |
| TDD decision before behavior change or bug fix | yes | Add failing legacy primitive preservation cases before changing coercion |
| Browser tool decision for browser surface | yes | Connected Chrome through CUA for local equation/docs and package-facing fixture |
| Output budget strategy recorded | yes | Exact owner reads and capped logs outside git |
| Docs pack selected | yes | Supporting AI credential documentation |
docs-creator loaded | yes | .agents/rules/docs-creator.mdc read |
| Docs lane selected | yes | Plugin setup guidance; clarify two credential ownership models |
| Target docs and nearest sibling docs read | yes | AI EN/CN and Copilot EN/CN credential sections plus their route and settings owners |
| Docs style doctrine read | yes | Current-state source-backed reference; matching English/Chinese guidance |
| Documented source owner identified | yes | Copied AI routes and editor settings request bodies |
| Package/API pack selected | yes | Math value compatibility across normalization and rendering |
| Public surface or package boundary identified | yes | Private math value helper and existing render/normalize APIs; no public exports change |
| Release artifact path selected | yes | Existing math patch changeset plus existing registry event |
changeset skill loaded when .changeset is required | yes | .agents/rules/changeset.mdc already read in this task; preserve existing patch entry |
| Barrel/export impact decision recorded | no | N/A: no public exports or exported file layout changes planned |
| Registry changelog pack selected | yes | Copied equation views preserve primitive content |
| User-visible registry impact classified | yes | Equation content shown consistently before normalization and in static/DOCX output |
| Source entry path selected | yes | apps/www/src/registry/changelog/entries/2026-09-06-editor-content-and-service-defaults.mdx |
| Generator command selected | yes | Update existing source row, then generator --write and --check |
Work Checklist:
.changeset, registry changelog, or explicit no-artifact reason..changeset work loads changeset and follows its package/version/prose rules.registry-changelog pack instead of adding a package changeset.main.apps/www/src/registry/changelog/entries/*.mdx or N/A reason is recorded..agents/skills/registry-changelog/SKILL.md./registry/changelog/*.json, index.json, and components.json are updated by the generator, not by hand.Completion Gates:
| Gate | Applies | Required action | Evidence |
|---|---|---|---|
| Named verification threshold | yes | Run the command, proof, source audit, or artifact check named in this plan | Local proof complete; all three replies verified and resolved; zero unresolved after refetch |
| TypeScript or typed config changed | yes | Run relevant typecheck | Math source-first typecheck and full www typecheck pass |
| Package exports or file layout changed | no | Run pnpm brl before final verification and keep generated barrel updates | N/A: private implementation changes only; no exports or file layout change |
| Package manifests, lockfile, or install graph changed | no | Run pnpm install and relevant package checks | N/A: dependency graph unchanged |
| Agent rules or skills changed | no | Run pnpm install and verify generated skill sync | N/A: feedback plan only; reusable workflows unchanged |
| 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 | All verification from /Users/zbeyens/git/plate; Chrome localhost:3100 serves this checkout |
| Browser surface changed | yes | Capture Browser Use proof | Chrome equation demo saves/reopens 42 and displays empty placeholder; AI/Copilot EN/CN pages render exact credential guidance |
| CI-controlled template output changed | no | Restore generated template output or record why it is intentionally kept | N/A: templates/** unchanged |
| Package behavior or public API changed | yes | Add a changeset or record why no changeset applies | Existing @platejs/math patch changeset updated |
| 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 | Persisted numeric/boolean equation values could be lost during normalization or static/export display; coerce recoverable primitives at existing owners, with behavioral tests and browser proof |
| Autoreview for non-trivial implementation changes | yes | 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/planning-only/trivial/no local patch | autoreview --mode local --prompt feedback-context: gpt-5.5, exit 0, no actionable findings; 1 run, 0 reruns |
| PR create or update | yes | Run check before PR work | pnpm check passes before existing PR update |
| Final lint | yes | Run pnpm lint:fix or scoped equivalent | pnpm lint:fix passes; no product changes after review |
| Output budget discipline | yes | Verify no unbounded high-volume command output was streamed, or record the accidental output and recovery | Scoped source/diff reads and file-backed logs; initial browser creation emitted its large docs AX tree, subsequent reads filtered to credential text |
| Timed checkpoint | no | If duration was requested, keep improving until elapsed, then finish the current loop cleanly; otherwise N/A | N/A: no duration requested |
| Goal plan complete | yes | Run node .agents/skills/autogoal/scripts/check-complete.mjs docs/plans/2026-09-06-pr-5120-feedback.md | Completion checker passes after receipt update |
| Docs source-backed claim audit | yes | Verify docs claims against current source or record N/A | Caller key accepted by copied AI routes and sent by editor settings; shared key guidance explicitly requires application-owned authorization |
| Docs links / routes / previews | yes | Verify leaf links, routes, anchors, and preview names or record N/A | All four existing leaf pages render; no links or preview names added |
| Docs MDX/content parser | yes | Run pnpm --filter www build:source for MDX/content changes, or record N/A | Full www typecheck runs build:source and docs parity successfully |
| Plugin page specifics | yes | For plugin pages, apply docs-creator kit/manual/API rules; otherwise N/A | Existing kit/manual/API structure retained; only credential ownership guidance changes |
| Public API / package boundary proof | yes | Source-audit public API, exports, and package boundary impact | Private helper plus current normalizer/render/input owners; no new exports or public API |
| Release artifact classification | yes | Record whether the change is published package behavior/API/types/config/runtime, registry-only, or no published user-visible delta | Published math runtime behavior and copied equation views; both existing release artifacts updated |
| Published package changeset | yes | 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 | math-preserve-equation-values.md retains @platejs/math patch; no forbidden minor bump |
| Registry changelog | yes | If the change is registry-only under apps/www/src/registry/**, use the registry-changelog pack and do not add a package changeset | Existing equation-node and equation-node-static registry rows updated |
| 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: package changeset and registry event both required and present |
| Package typecheck/build/test | yes | Run owning package checks or record N/A with reason | Math source-first types; pnpm check package build; 56 library, 5 input and 16 static/document tests pass |
| Barrel/export generation | no | Run pnpm brl when exports or exported file layout changed, otherwise N/A | N/A: no export or file-layout changes |
| Registry impact classification | yes | Record user-visible registry delta or N/A reason | Editable, static and document equation views retain legacy primitive content |
| Registry changelog source | yes | Add/update apps/www/src/registry/changelog/entries/*.mdx or record N/A | Existing 2026-09-06-editor-content-and-service-defaults.mdx entry updated; item ids and frontmatter unchanged |
| Registry changelog generation | yes | Run node tooling/scripts/generate-ui-changelog-entries.mjs --write when a source entry is required | Generator --write pass; generated event JSON updated by generator |
| Registry changelog check | yes | Run node tooling/scripts/generate-ui-changelog-entries.mjs --check | Generator --check pass, 24 events |
| Registry generator test | no | If generator/schema/source layout changed, run bun test tooling/scripts/generate-ui-changelog-entries.test.mjs; otherwise N/A | N/A: generator, schema and source layout unchanged |
| Registry package release split | yes | Record .changeset, registry changelog, both, or N/A with reason | Both @platejs/math patch changeset and registry event; docs require no separate artifact |
Phase / pass table:
| Phase | Status | Evidence | Next |
|---|---|---|---|
| Intake and source read | done | Three findings checked against current source; two valid and one already fixed | Complete |
| Implementation | done | Preserve primitive equation content throughout package and registry; clarify credential ownership in four docs | Verify |
| Verification | done | 77 focused tests, math/www types, pnpm check, four docs pages, equation editing and one clean autoreview | Publish fix and replies |
| Closeout | done | Fix commit 39d8367cd9 pushed; PR body updated; three quoted replies read back; three threads resolved; zero unresolved after refetch | Commit and push this receipt-only ledger update |
Findings:
Decisions and tradeoffs:
Error attempts:
| Error / failed attempt | Count | Next different move | Resolution |
|---|---|---|---|
| Cross-file Bun mock contamination in a combined command | 1 | Run package library, input hook and static-view tests separately, matching root file isolation | All pass; not install corruption |
| Bun it.each spread an empty-array case into a done callback | 1 | Use object-shaped parameter rows for unsupported values | Focused tests pass |
| Weak optional-property type and generic mock callback type | 1 | Pass explicit texExpression object and a correctly typed callback | Math and full www typechecks pass |
| Browser navigated while root check rebuilt dist packages | 1 | Reload after package builds finished | Equation route renders and accepts 42 |
External/browser findings:
Timeline:
Verification evidence:
bun test packages/math/src/lib: 56 pass, 0 fail.bun test packages/math/src/react/hooks/useEquationInput.spec.tsx: 5 pass, 0 fail.bun test apps/www/src/registry/ui/equation-node-static.spec.tsx: 16 pass, 0 fail.pnpm turbo typecheck --filter=./packages/math: pass, 8 tasks.pnpm --filter www typecheck: pass, including MDX parser, docs parity, registry source, app types and package-integration types.pnpm check: pass, including package builds, types, isolated tests and speed checks.--write and --check: pass, 24 events. No registry build was run.pnpm lint:fix: pass before review..agents/skills/autoreview/scripts/autoreview --mode local --prompt <feedback context>: gpt-5.5, exit 0, no actionable findings; one run and zero reruns.Reboot status:
| Question | Answer |
|---|---|
| Where am I? | Closeout |
| Where am I going? | Final receipt push and handoff |
| What is the goal? | Resolve three source-backed PR feedback items and verify zero unresolved threads |
| What have I learned? | See Findings |
| What have I done? | See Timeline |
Open risks:
Primary template: docs/plans/templates/goal.md
Applied packs:
GitHub receipts: