docs/plans/2026-05-28-perf-index-navigation-page.md
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:
Task source:
http://127.0.0.1:8765/rich-text.html#issue-40rich-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.benchmarks/editor/docs/perf/evidence.html.benchmarks/editor/package.json generation/check scripts cover the index.cd benchmarks/editor && npm run check passes.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:
benchmarks/editor.benchmarks/editor/docs/perf.cd benchmarks/editor && npm run check./index.html, /rich-text.html, /slate-v2-internals.html, and /evidence.html.Constraints:
Boundaries:
benchmarks/editor Evidence Kit docs pipeline.benchmarks/editor docs generator/scripts/generated perf docs and this goal plan.http://127.0.0.1:8765/.Blocked condition:
Task state:
Current verdict:
Completion rule:
Start Gates:
| Gate | Applies | Evidence |
|---|---|---|
| Skill analysis before edits | yes | Autogoal required by repo rule because the task had measurable generation/check/browser thresholds. |
| Active goal checked or created | yes | Active goal objective created for generated perf index navigation page. |
| Source of truth read before edits | yes | Existing benchmarks/editor docs scripts and generated docs/perf outputs inspected before edits. |
| Tracker comments and attachments read | no | N/A: no tracker or issue link in request. |
| Video transcript evidence required | no | N/A: request used current in-app browser URL only. |
docs/solutions checked for non-trivial existing-code work | no | N/A: narrow generated docs/navigation task in an existing benchmark package. |
| TDD decision before behavior change or bug fix | yes | No TDD: static docs generation task; script checks and served route proof are the right verification. |
| Branch decision for code-changing task | yes | No branch action: user did not request PR/commit/branch work. |
| Release artifact decision | yes | No release artifact: benchmark docs package only, no published package API. |
| Browser tool decision for browser surface | yes | Tool search did not expose a usable in-app browser open/navigate tool; used served HTTP route proof. |
| PR expectation decision | yes | No PR requested. |
| Tracker sync expectation decision | yes | No tracker sync requested. |
| Browser pack selected | yes | Browser pack selected because generated local HTML navigation changed. |
| Browser route / app surface identified | yes | Static server route http://127.0.0.1:8765/index.html. |
| Browser tool decision recorded | yes | Browser connector unavailable in exposed tools; route-level smoke proof recorded as waiver. |
| Console/network caveat policy recorded | yes | N/A: static HTML link proof; no app runtime console/network interaction required. |
Work Checklist:
<video-transcripts> XML, or marked N/A with reason./Users/zbeyens/git/plate-2 or /Users/zbeyens/git/plate-2/benchmarks/editor..agents, .claude, .codex, skills, hooks, commands, prompts, or user-action tooling changed.Completion Gates:
| Gate | Applies | Required action | Evidence |
|---|---|---|---|
| Named verification threshold | yes | Run package checks and served route proof. | cd benchmarks/editor && npm run check passed; route proof returned 200 for all target pages. |
| Bug reproduced before fix | no | N/A: feature/navigation request, not bug fix. | No repro required. |
| Targeted behavior verification | yes | Prove 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 changed | no | N/A: JS generator and package scripts only. | node --check benchmarks/editor/benchmarks/render-perf-index.mjs passed. |
| Package exports or file layout changed | no | N/A: no package exports or barrel layout touched. | No pnpm brl needed. |
| Package manifests, lockfile, or install graph changed | yes | Run relevant package checks. | cd benchmarks/editor && npm run check passed after package script changes. |
| Agent rules or skills changed | no | N/A: no agent rule/skill files changed. | No sync needed. |
| Workspace authority proof | yes | Verify 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 changed | yes | Capture browser proof or record waiver/blocker. | Browser connector lookup exposed no usable browser open/navigate tool; HTTP served proof used instead. |
| Browser final proof | yes | Attach exact browser verification caveat. | Caveat recorded: route-level smoke proof, no screenshot/console inspection. |
| CI-controlled template output changed | no | N/A: generated perf docs are local benchmark artifacts, not Plate templates. | No template restore needed. |
| Package behavior or public API changed | no | N/A: no package API behavior changed. | No changeset needed. |
| Registry-only component work changed | no | N/A: no registry component work. | No changelog needed. |
| Docs or content changed | yes | Verify source-backed generated docs and rendered output. | npm run docs:perf, npm run docs:perf:check, and served route proof passed. |
| High-risk mini gate | yes | Record 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 changes | no | N/A: no agent-native surfaces changed. | No review needed. |
| Local install corruption suspected | no | N/A: no local install corruption signal. | No reinstall needed. |
| Autoreview for non-trivial implementation changes | no | N/A: narrow generated static docs script; package checks and route proof cover the change. | No autoreview run. |
| PR create or update | no | N/A: no PR requested. | No PR action. |
| PR proof image hosting | no | N/A: no PR. | No image hosting needed. |
| Tracker sync-back | no | N/A: no tracker target. | No sync needed. |
| Final handoff contract | yes | Fill final handoff fields. | Final handoff fields below are concrete. |
| Final lint | yes | Run scoped formatter/lint. | cd benchmarks/editor && npx biome check benchmarks/render-perf-index.mjs package.json --fix passed. |
| Goal plan complete | yes | Run autogoal completion checker. | To run after this update. |
| Browser interaction proof | yes | Use approved browser tool or record blocker. | Browser tool unavailable via tool_search; served route proof checked links/content. |
| Browser console/network check | no | N/A: static HTML route smoke, no runtime interaction under test. | Console/network explicitly out of scope. |
| Browser final proof artifact | yes | Record 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:
| Phase | Status | Evidence | Next |
|---|---|---|---|
| Intake and source read | complete | Existing benchmarks/editor docs scripts and generated docs inspected. | implementation |
| Implementation | complete | Added benchmarks/render-perf-index.mjs; wired package scripts; regenerated docs. | verification |
| Verification | complete | Biome, node syntax check, docs generation/check, package check, served route proof passed. | closeout |
| PR / tracker sync | complete | N/A: no PR or tracker requested. | final response |
| Closeout | complete | This plan records evidence and is ready for autogoal checker. | final response |
Findings:
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:
index.html, because evidence-kit docs rewrites that file.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:
docs:index after a generated index exists does not replace evidence.html with the custom landing page.Error attempts:
| Error / failed attempt | Count | Next different move | Resolution |
|---|---|---|---|
| Browser connector unavailable through tool search | 1 | Use server-level HTTP route proof and record waiver | Route 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.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:
npm run check passed; HTTP served routes all 200 with expected content.http://127.0.0.1:8765/index.html is the navigation entrypoint.index.html would be overwritten by evidence-kit docs.Final handoff / sync:
Timeline:
evidence.html.Reboot status:
| Question | Answer |
|---|---|
| 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: