Back to Plate

perf-index-navigation-page

docs/plans/2026-05-28-perf-index-navigation-page.md

53.0.815.2 KB
Original Source

perf-index-navigation-page

Objective: Add a generated benchmarks/editor/docs/perf/index.html landing page that links to the comparison viewer, Slate v2 internals viewer, and preserved Evidence Kit wiki, then prove the generated docs and served routes work.

Goal plan: docs/plans/2026-05-28-perf-index-navigation-page.md

Template: docs/plans/templates/task.md

Primary template: docs/plans/templates/task.md

Applied packs:

  • browser (docs/plans/templates/packs/browser.md)

Task source:

  • type: user request
  • id / link: in-app browser request at http://127.0.0.1:8765/rich-text.html#issue-40
  • title: add navigable perf docs index
  • acceptance criteria: index page links to rich-text.html, slate-v2-internals.html, and evidence.html; Evidence Kit wiki remains available; package checks pass; served routes return expected content.

Completion threshold:

  • benchmarks/editor/docs/perf/index.html is generated by repo script, not hand-maintained.
  • Evidence Kit's original wiki output is preserved at benchmarks/editor/docs/perf/evidence.html.
  • benchmarks/editor/package.json generation/check scripts cover the index.
  • cd benchmarks/editor && npm run check passes.
  • Served checks against http://127.0.0.1:8765/ prove all linked pages return 200 and contain expected titles/cross-links.
  • node .agents/rules/autogoal/scripts/check-complete.mjs docs/plans/2026-05-28-perf-index-navigation-page.md passes.

Verification surface:

  • Static generation scripts in benchmarks/editor.
  • Generated docs under benchmarks/editor/docs/perf.
  • Package check: cd benchmarks/editor && npm run check.
  • Served HTTP smoke proof for /index.html, /rich-text.html, /slate-v2-internals.html, and /evidence.html.

Constraints:

  • Preserve existing benchmark pages and data files.
  • Preserve raw Evidence Kit wiki access.
  • No PR, commit, or push requested.
  • Browser connector should be used if exposed; otherwise record a route-level waiver.

Boundaries:

  • Source of truth: user request plus existing benchmarks/editor Evidence Kit docs pipeline.
  • Allowed edit scope: benchmarks/editor docs generator/scripts/generated perf docs and this goal plan.
  • Browser surface: local static server at http://127.0.0.1:8765/.
  • Tracker sync: N/A, no issue tracker target.
  • Non-goals: no new benchmark rows, no Slate or Slate v2 runtime changes, no editor comparison expansion.

Blocked condition:

  • Block only if local docs generation/checks fail after targeted repair, the static server is unavailable, or the browser connector is required and unavailable. None remained.

Task state:

  • task_type: generated docs navigation
  • task_complexity: normal
  • current_phase: closeout
  • current_phase_status: complete
  • next_phase: final response
  • goal_status: ready to close

Current verdict:

  • verdict: complete
  • confidence: high
  • next owner: user
  • reason: generated index exists, Evidence Kit wiki is preserved, package checks passed, and served routes verify the navigation target.

Completion rule:

  • Close the active goal only after this plan passes the autogoal completion checker.

Start Gates:

GateAppliesEvidence
Skill analysis before editsyesAutogoal required by repo rule because the task had measurable generation/check/browser thresholds.
Active goal checked or createdyesActive goal objective created for generated perf index navigation page.
Source of truth read before editsyesExisting benchmarks/editor docs scripts and generated docs/perf outputs inspected before edits.
Tracker comments and attachments readnoN/A: no tracker or issue link in request.
Video transcript evidence requirednoN/A: request used current in-app browser URL only.
docs/solutions checked for non-trivial existing-code worknoN/A: narrow generated docs/navigation task in an existing benchmark package.
TDD decision before behavior change or bug fixyesNo TDD: static docs generation task; script checks and served route proof are the right verification.
Branch decision for code-changing taskyesNo branch action: user did not request PR/commit/branch work.
Release artifact decisionyesNo release artifact: benchmark docs package only, no published package API.
Browser tool decision for browser surfaceyesTool search did not expose a usable in-app browser open/navigate tool; used served HTTP route proof.
PR expectation decisionyesNo PR requested.
Tracker sync expectation decisionyesNo tracker sync requested.
Browser pack selectedyesBrowser pack selected because generated local HTML navigation changed.
Browser route / app surface identifiedyesStatic server route http://127.0.0.1:8765/index.html.
Browser tool decision recordedyesBrowser connector unavailable in exposed tools; route-level smoke proof recorded as waiver.
Console/network caveat policy recordedyesN/A: static HTML link proof; no app runtime console/network interaction required.

Work Checklist:

  • Objective includes outcome, completion threshold, verification surface, constraints, boundaries, and blocked condition.
  • Task source classified with source type, id/link, title, task type, acceptance criteria, caveats, likely files/routes/packages, browser surface, and root-cause layer.
  • Required video or screen-recording evidence is cached/read as normalized <video-transcripts> XML, or marked N/A with reason.
  • Nearby repo instructions and implementation patterns read before edits.
  • Implementation fixes the right ownership boundary, or the narrower choice is recorded with reason.
  • Release artifact requirement recorded: changeset, registry changelog, or N/A with reason.
  • Final handoff shape decided: concise final response with URL, changed files, checks, and caveat.
  • Branch handling recorded for code-changing work: N/A, no branch requested.
  • Local-env-rot retry policy recorded: N/A, no install corruption signal appeared.
  • Workspace authority recorded: proof commands ran from /Users/zbeyens/git/plate-2 or /Users/zbeyens/git/plate-2/benchmarks/editor.
  • High-risk note recorded: low risk; static docs pipeline change only.
  • Review/autoreview target selected: N/A, narrow docs generator change with package check coverage.
  • Agent-native review decision recorded: N/A, no .agents, .claude, .codex, skills, hooks, commands, prompts, or user-action tooling changed.
  • Browser pack: route, interaction path, and expected visible outcome are recorded before proof.
  • Browser pack: browser proof uses the repo-approved browser tool or records a blocker/waiver.
  • Browser pack: console and network errors are checked or explicitly out of scope.
  • Browser pack: screenshot, trace, or exact verification caveat is ready for final handoff.

Completion Gates:

GateAppliesRequired actionEvidence
Named verification thresholdyesRun package checks and served route proof.cd benchmarks/editor && npm run check passed; route proof returned 200 for all target pages.
Bug reproduced before fixnoN/A: feature/navigation request, not bug fix.No repro required.
Targeted behavior verificationyesProve generated index and links.Served /index.html contains Editor Benchmark Index, rich-text.html, slate-v2-internals.html, and evidence.html.
TypeScript or typed config changednoN/A: JS generator and package scripts only.node --check benchmarks/editor/benchmarks/render-perf-index.mjs passed.
Package exports or file layout changednoN/A: no package exports or barrel layout touched.No pnpm brl needed.
Package manifests, lockfile, or install graph changedyesRun relevant package checks.cd benchmarks/editor && npm run check passed after package script changes.
Agent rules or skills changednoN/A: no agent rule/skill files changed.No sync needed.
Workspace authority proofyesVerify in owning benchmark package.All npm checks ran in /Users/zbeyens/git/plate-2/benchmarks/editor; served proof ran against the same generated docs server.
Browser surface changedyesCapture browser proof or record waiver/blocker.Browser connector lookup exposed no usable browser open/navigate tool; HTTP served proof used instead.
Browser final proofyesAttach exact browser verification caveat.Caveat recorded: route-level smoke proof, no screenshot/console inspection.
CI-controlled template output changednoN/A: generated perf docs are local benchmark artifacts, not Plate templates.No template restore needed.
Package behavior or public API changednoN/A: no package API behavior changed.No changeset needed.
Registry-only component work changednoN/A: no registry component work.No changelog needed.
Docs or content changedyesVerify source-backed generated docs and rendered output.npm run docs:perf, npm run docs:perf:check, and served route proof passed.
High-risk mini gateyesRecord failure mode and proof plan.Failure mode: Evidence Kit docs overwriting custom index or losing raw wiki; generator preserves evidence.html and check asserts both files.
Agent-native review for agent/tooling changesnoN/A: no agent-native surfaces changed.No review needed.
Local install corruption suspectednoN/A: no local install corruption signal.No reinstall needed.
Autoreview for non-trivial implementation changesnoN/A: narrow generated static docs script; package checks and route proof cover the change.No autoreview run.
PR create or updatenoN/A: no PR requested.No PR action.
PR proof image hostingnoN/A: no PR.No image hosting needed.
Tracker sync-backnoN/A: no tracker target.No sync needed.
Final handoff contractyesFill final handoff fields.Final handoff fields below are concrete.
Final lintyesRun scoped formatter/lint.cd benchmarks/editor && npx biome check benchmarks/render-perf-index.mjs package.json --fix passed.
Goal plan completeyesRun autogoal completion checker.To run after this update.
Browser interaction proofyesUse approved browser tool or record blocker.Browser tool unavailable via tool_search; served route proof checked links/content.
Browser console/network checknoN/A: static HTML route smoke, no runtime interaction under test.Console/network explicitly out of scope.
Browser final proof artifactyesRecord route proof or caveat.Node fetch proof: /index.html, /rich-text.html, /slate-v2-internals.html, /evidence.html all 200 and expected content present.

Phase / pass table:

PhaseStatusEvidenceNext
Intake and source readcompleteExisting benchmarks/editor docs scripts and generated docs inspected.implementation
ImplementationcompleteAdded benchmarks/render-perf-index.mjs; wired package scripts; regenerated docs.verification
VerificationcompleteBiome, node syntax check, docs generation/check, package check, served route proof passed.closeout
PR / tracker synccompleteN/A: no PR or tracker requested.final response
CloseoutcompleteThis plan records evidence and is ready for autogoal checker.final response

Findings:

  • Evidence Kit owns docs/perf/index.html by default, so a durable custom index must preserve the generated wiki somewhere else.
  • evidence.html is the right landing-preservation target because it keeps the raw Evidence Kit wiki reachable while freeing index.html for navigation.

Decisions and tradeoffs:

  • Added a small generator instead of hand-editing index.html, because evidence-kit docs rewrites that file.
  • Kept the viewer pages separate: rich-text.html for comparable editor results, slate-v2-internals.html for Slate v2-only proof, and evidence.html for raw Evidence Kit wiki.

Implementation notes:

  • benchmarks/editor/benchmarks/render-perf-index.mjs builds the index from existing JSON outputs and guards against copying the generated landing page over evidence.html on reruns.
  • benchmarks/editor/package.json now runs docs:index from docs:perf, checks it from docs:perf:check, and syntax-checks the generator from check.

Review fixes:

  • Added an idempotence guard so rerunning docs:index after a generated index exists does not replace evidence.html with the custom landing page.

Error attempts:

Error / failed attemptCountNext different moveResolution
Browser connector unavailable through tool search1Use server-level HTTP route proof and record waiverRoute proof passed for all target pages.

Verification evidence:

  • cd benchmarks/editor && npx biome check benchmarks/render-perf-index.mjs package.json --fix passed.
  • node --check benchmarks/editor/benchmarks/render-perf-index.mjs passed.
  • cd benchmarks/editor && npm run docs:perf passed.
  • cd benchmarks/editor && npm run docs:perf:check passed.
  • cd benchmarks/editor && npm run check passed.
  • Served proof against http://127.0.0.1:8765: /index.html, /rich-text.html, /slate-v2-internals.html, and /evidence.html returned 200 with expected titles/links.

Final handoff contract:

  • PR line: N/A, no PR requested.
  • Issue / tracker line: N/A, no tracker target.
  • Confidence line: High: package checks and served route proof passed.
  • Flow table:
    • Reproduced: N/A, not a bug repro.
    • Verified: npm run check passed; HTTP served routes all 200 with expected content.
  • Browser check: Browser connector unavailable; route-level proof recorded instead.
  • Outcome: http://127.0.0.1:8765/index.html is the navigation entrypoint.
  • Caveat: No in-app browser screenshot/console proof because no usable browser open/navigate tool was exposed this turn.
  • Design:
    • Chosen boundary: generated benchmark docs pipeline.
    • Why not quick patch: hand-editing index.html would be overwritten by evidence-kit docs.
    • Why not broader change: no benchmark schema or editor runtime change was needed.
  • Verified: see verification evidence above.

Final handoff / sync:

  • PR: N/A, no PR requested.
  • Issue / tracker: N/A, no tracker target.
  • Browser proof: route-level HTTP proof passed; no screenshot available.
  • Caveats: static HTML proof only, no console/network capture.

Timeline:

  • 2026-05-28T15:38:36.705Z Task goal plan created.
  • 2026-05-28T15:40Z Added generated perf index script and package scripts.
  • 2026-05-28T15:42Z Regenerated perf docs and preserved Evidence Kit wiki at evidence.html.
  • 2026-05-28T15:43Z Package checks and served route proof passed.

Reboot status:

QuestionAnswer
Where am I?Closeout
Where am I going?Final response
What is the goal?Generated perf docs index with links to comparison, internals, and Evidence Kit wiki.
What have I learned?Evidence Kit rewrites index.html; preservation must happen after evidence-kit docs.
What have I done?Added generator, wired checks, regenerated docs, verified package and served routes.

Open risks:

  • None for the requested navigation page. Browser connector proof was unavailable, so the final handoff should state the route-level proof caveat.