Task: Implement the Project Summary and Dashboard Site
TASK-DESCRIPTION
Repurpose the Site Build feature (prompts/features/01-site-build.md) to generate a project summary and dashboard site in site.out/ from site.in/.
Modify site.in/template.html to provide the page structure: navigation between the summary and dashboard pages, a page title, and the <!-- SITE-CONTENT --> marker.
Create site.in/index.txt with the project summary content: purpose, status, architecture, and references to the documentation and records.
Create site.in/dashboard.txt with the dashboard content, using __KEY__ placeholders for live state: service status, version, kernel, driver, temperatures, and PWM.
Create scripts/site-state-fetch.sh. The script gathers live state on beast.lan and writes it as KEY=value lines to dataflow.out/site-state.txt. The script exits nonzero when it cannot gather the state.
Modify scripts/site-build.sh to substitute __KEY__ placeholders from the state file when present. The state file path defaults to dataflow.out/site-state.txt and is overridable with SITE_STATE_FILE. When the state file is absent, remaining placeholders render as unavailable. The build must remain portable: it must not depend on the live system.
Modify tests/01-site-build.sh to verify the new behavior: a summary page builds without a state file, and a dashboard page substitutes values from a state file and renders unavailable without one.
TASK-OUTPUT
Implement the files in this order: the feature-required template and content files, the state fetch script, the build script changes, and the test. Run make build and make test and report the results. Run scripts/site-state-fetch.sh on beast.lan, rebuild, and confirm the dashboard shows live values. Update TODO.md and commit the completed work.
TASK-CONTEXT
The generated site is deployed at https://labs.bannister.us/projects/amd-mi25-fan-service/. Deployment integration is a later task; only generate site.out/ now. The state file is generated output and must not be committed. The site-build test runs under make test on any host, so the dashboard must degrade gracefully without live state.
TASK-FILES
site.in/template.html— modifysite.in/index.txt— newsite.in/dashboard.txt— newscripts/site-state-fetch.sh— newscripts/site-build.sh— modifytests/01-site-build.sh— modifyTODO.md— modify