Skip to content

Commit 4a4cb89

Browse files
Copilotckenst
andauthored
docs: update ROADMAP.md with Lighthouse Tracking implementation details
Co-authored-by: ckenst <6896787+ckenst@users.noreply.github.com>
1 parent a50306b commit 4a4cb89

2 files changed

Lines changed: 24 additions & 1 deletion

File tree

ROADMAP.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ The July 2026 readiness assessment found the repository ready for supervised con
2222
## Phase 2: Quality Ledger & Metrics
2323
*Goal: Associate every site version with a specific quality snapshot.*
2424

25-
- [ ] **Lighthouse Tracking**: Automate Lighthouse audits during CI and record Performance, Accessibility, and SEO scores per version.
25+
- [x] **Lighthouse Tracking**: Automate Lighthouse audits during CI and record Performance, Accessibility, and SEO scores per version.
2626
- [ ] **Link Integrity**: Implement a broken link checker (e.g., `linkinator`) to log broken link counts against the current version.
2727
- [ ] **Build Analytics**: Track and log build times to monitor the impact of site growth on CI/CD performance.
2828
- [x] **Bug Attribution**: Update Issue Templates to include a "Site Version" field to track bug counts relative to specific releases.
@@ -38,6 +38,29 @@ The July 2026 readiness assessment found the repository ready for supervised con
3838
- Treat the issue form's Site Version field as the collection mechanism for bug attribution; aggregate reporting belongs in Phase 4.
3939
- Update the README when the ledger exists and validate the workflow manually before relying on tag-triggered collection.
4040

41+
### Implementation: Lighthouse Tracking (Completed)
42+
43+
**Files added/modified:**
44+
- `.github/workflows/lighthouse-audit.yml`: Workflow triggered on release tags (`v*`) or manual dispatch. Builds Jekyll site, serves locally, runs Lighthouse CLI, and commits results to `_data/quality_log.yml` with `[skip-version]` flag.
45+
- `tools/lighthouse_audit.rb`: Ruby script that runs Lighthouse, parses JSON output, extracts Performance/Accessibility/SEO scores, and appends to quality log in YAML format.
46+
- `_data/quality_log.yml`: Append-only quality metrics log with stable YAML format.
47+
- `.github/workflows/deploy.yml`: Updated to check for `[skip-version]` commit flag and skip version bump when metrics-only commit is detected.
48+
49+
**How it works:**
50+
1. Lighthouse audit workflow is triggered by release tag creation (via `deploy.yml`) or manual workflow dispatch.
51+
2. Workflow checks out code, builds Jekyll site, and starts a local HTTP server.
52+
3. `tools/lighthouse_audit.rb` runs Lighthouse CLI against localhost and parses results.
53+
4. Scores are appended to `_data/quality_log.yml` with version, release date, commit SHA, and workflow run URL.
54+
5. Changes are committed with `[skip-version]` flag to prevent cascading version bumps.
55+
6. `deploy.yml` detects the flag and skips version increment, preventing CI/CD loop.
56+
57+
**Design decisions:**
58+
- Local server instead of production: Ensures repeatable, controlled audits without external dependencies.
59+
- Append-only format: Preserves historical data for trend analysis (Phase 4).
60+
- `[skip-version]` commit flag: Prevents metrics collection from disrupting versioning workflow.
61+
- Python HTTP server: Lightweight, included in standard CI runners, no additional dependencies.
62+
- YAML format: Consistent with existing site configuration, human-readable for inspection.
63+
4164
Changes to `.github/workflows/deploy.yml`, release tags, Pages deployment, or versioning require maintainer approval before implementation.
4265

4366
## Phase 3: Developer Experience (DX) & AI Workflows

tools/lighthouse_audit.rb

100644100755
File mode changed.

0 commit comments

Comments
 (0)