Source for hivecommons.dev (GitHub Pages). Static site: index.html, style.css, and
assets/ — no build step.
Custom domain is pinned via CNAME. llms.txt carries a short machine-readable summary
for LLM crawlers, and sitemap.xml lists the canonical top-level pages (not every
shortcut redirect) for robots.txt's Sitemap: entry — when adding a new top-level
page, add it to sitemap.xml too.
Short paths like /docs, /code, /discord are meta-refresh redirect pages. All of them
are generated by make-redirects.sh: edit the MAP at the top of the script, run
./make-redirects.sh, then commit the regenerated index.html files — don't hand-edit
them, since a future run of the script will silently overwrite any hand edit.
scripts/check-redirects.sh enforces this: it regenerates the pages into a scratch
directory and fails if any committed redirect page is missing from MAP, any MAP
entry has no committed page, or a committed page differs from what the script emits.
scripts/check-links.sh [--external-warn]— resolves every internal link/anchor and probes external URLs (CI runs it with--external-warn).scripts/check-links.test.sh— fixture-based self-test of the link checker; runs offline (fakecurl).node --test scripts/story-dialog.test.mjs— runs the Share-your-story dialog script fromstories/index.htmlagainst a stub DOM and checks the prefilled-issue URL, validation, 1500-char trim, and popup-blocked fallback. Zero dependencies.node --test scripts/acmm-levels.test.mjs— runs the ACMM levels tablist script fromindex.htmlagainst a stub DOM with deterministic timers and checks tab activation, roving tabindex, arrow/Home/End keys, auto-rotation, and every pause condition (hover, focus, hidden tab, reduced motion, out of view). Zero dependencies.node --test scripts/carousels.test.mjs— runs the hero carousel and projects carousel scripts fromindex.htmlagainst a stub DOM with deterministic timers and checks dot generation, slide/aria-currentstate, live-region announcements, keyboard/swipe/hash navigation, auto-rotate and every pause condition, hero height measurement (clones, resize debounce), and projects scroll-sync (debounced scroll,scrollend, IntersectionObserver). Zero dependencies.node --test scripts/page-scripts.test.mjs— static gate over every committed HTML page: each inline<script>parses, each JSON-LD block is valid schema.org JSON, no external<script src>is introduced, andsitemap.xmllists exactly the canonical top-level pages (redirect shortcuts excluded, new pages required). Zero dependencies.scripts/check-redirects.sh— redirect-page drift gate described above.scripts/check-redirects.test.sh— fixture-based self-test of the drift gate; runs offline against throwaway sites with a two-entry generator.
The Link check workflow runs every Monday at 09:17 UTC and can also be run
manually from the Actions tab. On those runs, its separate availability job
requests the live homepage and /stories/ over HTTPS and fails unless both
return HTTP 200. Connection/TLS errors and timeouts also fail the job. Requests
have bounded retries for transient failures. PR runs only check the checkout;
they do not probe the production site.
Review failed runs in Actions and configure GitHub Actions notifications for the
workflow if you operate the site. See the rollback runbook
for investigation and recovery. This weekly probe is a basic availability signal,
not continuous uptime monitoring or a check after every deployment. External link
failures remain warnings in the separate links job.
Traffic analytics and shortcut usage tracking are not configured. Adding them requires an operator to choose a backend/property and settle privacy and consent requirements first (see issue #73).
Hive Commons website contributors are expected to follow the CNCF Code of Conduct.