Driver
PR #492 fixed the symptom — the marketing site (site/index.html) advertised 1.3.0/v1.1 while the framework was at 2.2.0. The root cause is that the /release skill bumps the git tag + CHANGELOG but does NOT touch the site's hard-coded version strings, so they drifted across ~5 release cycles before anyone noticed. Close the loop so it can't recur.
Scope
Extend /release (.claude/skills/release/SKILL.md + any helper it calls) to update site/index.html as part of the release cut, in the same commit that bumps CHANGELOG/version:
- JSON-LD
softwareVersion → new version
- JSON-LD
dateModified → release date
- Hero pill
apexyard vX.Y
- Hero version link text +
releases/tag/vX.Y.Z href
- Releases metric: count = number of CHANGELOG release entries; range
(v0.1 → vX.Y)
- Leave historical strings (CHANGELOG entries, migration-script names, AgDR examples) untouched.
Consider driving these from a single computed value (the version being cut) rather than hand-editing, so future cuts stay in sync automatically. The site-counts-check test already guards skills/hooks/roles counts; consider extending it (or a sibling check) to assert the site's advertised version equals the latest CHANGELOG entry, so drift fails CI.
Acceptance Criteria
Risks / Dependencies
Depends on the release-cut flow staying the source of truth for the version. Low blast radius (content only). Follow-up to #491 / PR #492.
Glossary
| Term |
Definition |
| Release-cut drift |
Version labels going stale because the release flow updates the tag but not hard-coded site strings |
site-counts-check |
Existing CI test (test_site_counts.sh) that fails when site-quoted framework counts drift from disk |
Driver
PR #492 fixed the symptom — the marketing site (
site/index.html) advertised1.3.0/v1.1while the framework was at2.2.0. The root cause is that the/releaseskill bumps the git tag + CHANGELOG but does NOT touch the site's hard-coded version strings, so they drifted across ~5 release cycles before anyone noticed. Close the loop so it can't recur.Scope
Extend
/release(.claude/skills/release/SKILL.md+ any helper it calls) to updatesite/index.htmlas part of the release cut, in the same commit that bumps CHANGELOG/version:softwareVersion→ new versiondateModified→ release dateapexyard vX.Yreleases/tag/vX.Y.Zhref(v0.1 → vX.Y)Consider driving these from a single computed value (the version being cut) rather than hand-editing, so future cuts stay in sync automatically. The
site-counts-checktest already guards skills/hooks/roles counts; consider extending it (or a sibling check) to assert the site's advertised version equals the latest CHANGELOG entry, so drift fails CI.Acceptance Criteria
/releaseupdates all five site version locations in the release commitsite/index.html's advertised version != latest CHANGELOG release entryRisks / Dependencies
Depends on the release-cut flow staying the source of truth for the version. Low blast radius (content only). Follow-up to #491 / PR #492.
Glossary
site-counts-checktest_site_counts.sh) that fails when site-quoted framework counts drift from disk