Lenovo ThinkPad X250 report from issue #1 (submitted via the site form).
Reconstructed cpu/archy_version from the issue body by hand — the
submitted YAML had them glued together with no newline between
("...2.60GHz"1.8.10-alpha), which buildYaml() does not reproduce on these
same field values in isolation (tested directly), so this looks like a
Gitea draft-restore or browser-autofill artifact during actual submission
rather than a bug in the form itself. Values used here are unambiguous
either way. Left the ThinkPad T430 example in place; only removing the Pi
one was requested.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Modeled on three researched precedents (see README): OpenWrt's Table of
Hardware for the browsable sortable/filterable table UX, postmarketOS's
working/community/testing tiers for the status field (collapsed to
working/partial/broken here), and RaspiBlitz's scattered GitHub-issues
approach as a negative example to avoid — hence structured YAML report
files validated against a JSON Schema instead of free-text issue threads.
- data/reports/*.yml + data/schema.json: one file per report, schema
requires `issues` whenever status is partial/broken
- scripts/build.py: validates every report and builds site/data.json,
fails loudly on bad data (same idea as archy's own
validate-app-manifest.sh)
- site/: plain HTML/CSS/JS, no framework or build step, fetches data.json
client-side — search, filter by status/form-factor, sortable columns,
click a row for issues/notes detail
- .github/ISSUE_TEMPLATE/hardware-report.yml: structured submission path
for contributors who don't want to touch git directly
- .gitea/workflows/ci.yml: runs the build/validate step on push and PRs
Not yet deployed anywhere — see README's Deployment section.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>