Issue #14 — Static results website (Astro)
Task
Build a static website (Astro) under packages/web/ that reads
results/summary.json and renders the per-scenario pass-rate view.
The site is a static export; no server runtime.
Context
- Repo: https://github.com/abapify/adt-bench
- Read first:
packages/report/src/report.ts (the Summary shape)
docs/result-schema.md
docs/project-views.md (the 6 planned project views)
docs/backlog.md
- Background: v1 prints a console report. v2 turns that into a
browsable website so anyone (including non-CLI users) can compare
runs.
Out of scope
- Real-time updates. The site is a static export of the latest
summary.json.
- Authentication or per-user views. Public read-only.
Files to add or modify
packages/web/package.json (new)
packages/web/astro.config.mjs (new)
packages/web/src/pages/index.astro (new) — pass-rate table.
packages/web/src/pages/trials.astro (new) — trial statistics.
packages/web/src/pages/agents.astro (new) — agent leaderboard.
packages/web/src/components/RunCard.astro (new)
packages/web/public/summary.json — copied from results/summary.json
at build time.
packages/web/scripts/build-data.mjs (new) — copies results/summary.json
and any per-run files into packages/web/public/.
- Root
package.json — add web:dev and web:build scripts.
docs/website.md (new) — design notes.
README.md — link to the website.
Steps
pnpm add -D astro at the root.
- Scaffold the
packages/web/ directory per the Astro "Hello World"
template; keep the structure minimal.
- Write
scripts/build-data.mjs:
- Read
results/summary.json.
- For each
runs[], copy result.json to
packages/web/public/runs/<run_id>/result.json and
transcript.jsonl similarly.
- Write
packages/web/public/summary.json.
- Author the 3 Astro pages (Table layout, no interactivity needed for
v1).
- Add
pnpm web:dev and pnpm web:build scripts.
- Add
docs/website.md describing the planned views (mirroring
docs/project-views.md).
- Update the README with a "Website" section.
Deliverables
pnpm web:dev starts a local dev server with the latest summary.json.
pnpm web:build produces a static dist/ in packages/web/dist/.
- 3 pages: index, trials, agents.
docs/website.md design notes.
Test plan
- Manual:
pnpm web:dev and visit http://localhost:4321.
- Visual check: the per-scenario pass-rate table matches the console
output from bench:report.
Acceptance gate
pnpm web:dev starts without errors.
- The 3 pages render with sample data (commit a sample
summary.json).
pnpm verify still exits 0 (the web build is not part of verify in
v1.1).
Definition of done
Dependencies
Blocked by #7 (multi-trial reporting — the website needs aggregates to
be interesting).
Blocks #15 (the connector-comparison dashboard is a superset of this).
Issue #14 — Static results website (Astro)
Task
Build a static website (Astro) under
packages/web/that readsresults/summary.jsonand renders the per-scenario pass-rate view.The site is a static export; no server runtime.
Context
packages/report/src/report.ts(theSummaryshape)docs/result-schema.mddocs/project-views.md(the 6 planned project views)docs/backlog.mdbrowsable website so anyone (including non-CLI users) can compare
runs.
Out of scope
summary.json.Files to add or modify
packages/web/package.json(new)packages/web/astro.config.mjs(new)packages/web/src/pages/index.astro(new) — pass-rate table.packages/web/src/pages/trials.astro(new) — trial statistics.packages/web/src/pages/agents.astro(new) — agent leaderboard.packages/web/src/components/RunCard.astro(new)packages/web/public/summary.json— copied fromresults/summary.jsonat build time.
packages/web/scripts/build-data.mjs(new) — copiesresults/summary.jsonand any per-run files into
packages/web/public/.package.json— addweb:devandweb:buildscripts.docs/website.md(new) — design notes.README.md— link to the website.Steps
pnpm add -D astroat the root.packages/web/directory per the Astro "Hello World"template; keep the structure minimal.
scripts/build-data.mjs:results/summary.json.runs[], copyresult.jsontopackages/web/public/runs/<run_id>/result.jsonandtranscript.jsonlsimilarly.packages/web/public/summary.json.v1).
pnpm web:devandpnpm web:buildscripts.docs/website.mddescribing the planned views (mirroringdocs/project-views.md).Deliverables
pnpm web:devstarts a local dev server with the latestsummary.json.pnpm web:buildproduces a staticdist/inpackages/web/dist/.docs/website.mddesign notes.Test plan
pnpm web:devand visithttp://localhost:4321.output from
bench:report.Acceptance gate
pnpm web:devstarts without errors.summary.json).pnpm verifystill exits 0 (the web build is not part of verify inv1.1).
Definition of done
pnpm web:devandpnpm web:buildwork.docs/website.mdwritten.feat(web): static Astro results website.Dependencies
Blocked by #7 (multi-trial reporting — the website needs aggregates to
be interesting).
Blocks #15 (the connector-comparison dashboard is a superset of this).