Skip to content

feat(ci): single-source public counts - #95

Merged
deblasis merged 2 commits into
mainfrom
feat/count-single-source
Aug 23, 2026
Merged

feat(ci): single-source public counts#95
deblasis merged 2 commits into
mainfrom
feat/count-single-source

Conversation

@deblasis

Copy link
Copy Markdown
Contributor

Every public count now traces to one generator, or screams when it drifts.

Why

The adapter count has gone stale before in places a human had to remember:
the GitHub repo description sat at 91 while 95 shipped, and the website's
catalog.json was last regenerated by a one-off script whose route counting
disagreed with the engine's manifest loader (discord 27 vs 26, echo 1 vs 0 —
catalog total 1361 vs the real 1359).

What

  • matrix.json now carries the manifest identity (display_name,
    adapter_version, real_hosts per adapter) — the fields the website catalog
    needs. stunt-www's upcoming sync-catalog.mjs reads only matrix.json (the
    CI-fresh generated file) instead of re-parsing 98 adapter.yaml files with
    a second parser. CONFORMANCE.md output is unchanged.
  • just readme-counts re-templates the README adapter count from the
    adapters/ dir; the ci-full and CI freshness gates regenerate-and-diff it
    exactly like CONFORMANCE.md/matrix.json. Verified in both directions:
    a wrong number is repaired silently, a reworded anchor fails loudly.
  • Repo-description drift job (push to main): compares the count quoted
    in the GitHub description against adapters/. Repo metadata is not writable
    by GITHUB_TOKEN, so CI can only fail loudly; just repo-description
    is the one-command fix with an admin token.

Follow-up PR lands on stunt-www: sync-catalog.mjs + a nightly auto-sync
workflow so the site's data regenerates itself from stunt main.

matrix.json now carries the manifest identity (display_name,
adapter_version, real_hosts) so stunt-www's catalog derives from the
CI-gated generator instead of a second adapter.yaml parser — that parser
had drifted (discord 27 vs 26 routes, echo 1 vs 0; catalog total 1361
vs the real 1359).

README's adapter count is re-templated by 'just readme-counts' and the
ci-full/CI freshness gate diffs it like CONFORMANCE.md, so the number
can never silently go stale. The GitHub repo description (repo metadata
GITHUB_TOKEN cannot write) gets a drift check on main pushes instead;
'just repo-description' is the one-command fix.
Review nit on #95: the shell derivation matched dir names ending in
-style, genmatrix matches dirs holding an adapter.yaml — a future
non-*-style directory would have made README and the repo description
lag the matrix with every gate green. Also fail explicitly on a zero
count instead of set -e masking it.
@deblasis
deblasis merged commit 71f360d into main Aug 23, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant