This repository is best advanced in a two-prompt loop:
- Prompt A: create one feature branch, implement exactly one feature, commit, and push.
- Prompt B: QA that same branch in the browser or with an explicit non-UI check, update docs, commit, push, and merge.
- One feature equals one branch equals one PR.
- Each branch must be independently mergeable.
- Each feature must have a single verification path:
- Browser verification for UI-facing work.
- An explicit non-UI command for infrastructure, docs, or render-only work.
- The next agent must be able to continue from repository files alone.
- Every feature branch must update the handoff notes in
CURRENT_STATE.md. - Every PR must include:
- What changed.
- How it was verified.
- What docs were updated.
- What the next feature is.
Use this structure for every branch:
- Branch name:
feat/<short-slug> - Scope: one feature only
- Verification: one command or one browser session
- Docs: update the relevant source-of-truth docs
- Handoff: add a short "Next" note to
CURRENT_STATE.md - PR body: include verification evidence and the next feature pointer
The baseline reproducibility work is already in place:
- Pinned Jekyll/Ruby toolchain
- Source PDF and heatmap regeneration script
- Public-site exclusions for repo-only files
- CI validation plus local repo validation
Start the remaining buildout here:
- Status: merged to main.
- Goal: add a browser-driven verification path that opens the local site, checks the title, the main heatmap image, the download link, and the image alt text.
- Merge boundary: the test harness and its docs only.
- Verification: browser screenshot or a scripted browser run against the local preview.
- Why first: it gives every later feature a stable visual baseline.
- Status: merged to main.
- Goal: harden the layout for mobile and small laptop widths without changing content.
- Merge boundary: CSS and minimal markup only.
- Verification: browser screenshots at desktop and mobile breakpoints.
- Why second: it keeps later content changes from conflating with layout regressions.
- Status: merged to main.
- Goal: decide the final treatment of
README.CRAWL.mdand any other historical artifacts. - Merge boundary: docs and navigation only.
- Verification: non-UI validation plus live site check that the artifact is not surfaced publicly.
- Why third: it resolves repo hygiene after the public experience is stable.
- Status: next.
- Goal: tighten the provenance story around the source PDF, the published PNG, and any constraints on regeneration.
- Merge boundary: documentation only.
- Verification: non-UI link/file validation.
- Why fourth: it depends on the regeneration path already being committed.
- Goal: add a lightweight live-deploy indicator or a Pages verification step if the repo still needs one.
- Merge boundary: CI/docs only.
- Verification: explicit non-UI command or GitHub Actions status.
- Why last: deployment checks are most useful after the content and verification paths are stable.
These are known missing or non-working items discovered during repo audit. Keep them as separate branches unless one is clearly part of the current feature.
- Problem:
python scripts/check_homepage.pyfails on a fresh checkout until_site/index.htmlexists. - Fix: document that the command requires
bundle exec jekyll buildfirst, or pass an explicit rendered HTML path or live URL. - Verification: run
python scripts/check_homepage.py <rendered-html-or-url>.
- Problem:
python scripts/render_heatmap.pyfails in this Windows environment because MiKTeXpdftoppmcannot write its log/temp output underAppData\Local. - Fix: make the render script use a repo-local writable temp/output path or document the required MiKTeX environment variables.
- Verification: run
python scripts/render_heatmap.pyand confirmgit diff -- oral-health-heatmap.pngis empty or expected.
- Problem: local Jekyll builds remain unavailable in this environment because Ruby and Bundler are not installed.
- Fix: add a Windows-friendly bootstrap note or setup script that installs/validates Ruby 3.3.4 and Bundler without changing the pinned CI build.
- Verification: run
ruby -v,bundle -v, andbundle exec jekyll build.
- Problem: live GitHub Pages verification is currently ad hoc.
- Fix: add a repeatable command or workflow step that checks the deployed URL after merge.
- Verification: HTTP 200 plus expected title, heatmap image, and no
README.CRAWL.htmllink.
- Problem: the source dataset behind the original heatmap is not published in this repository.
- Addition: document whether the source dataset can be shared, cannot be shared, or lives in a controlled-access location.
- Verification: non-UI documentation/link check.
- Problem: the maturity score in
docs/agentic-overhaul/2026-05-audit.mdis stale after the build, CI, validation, and provenance improvements. - Fix: update scores and backlog so the audit reflects the current repo.
- Verification:
python scripts/validate_repo.py.
- Keep the plan discoverable by updating
CURRENT_STATE.mdwhen the next feature changes. - Avoid mixing two features into one PR, even if they are related.
- If a feature needs both browser and non-UI verification, split it until each PR has one primary verification mode.
- If a later branch depends on an earlier branch, merge the earlier branch first and update the plan doc.