GloriousFlywheel Ci Templates Capability Matrix 2026-04-18
Snapshot date: 2026-04-18
Purpose
Publish the simple reusable-workflow matrix that Queue B called for.
The goal is to stop talking about ci-templates as if it were one capability
surface.
The live repo actually exposes a very small reusable-workflow surface, and the
two workflows do not mean the same thing.
Live Reusable Workflow Surface
On tinyland-inc/ci-templates:main, the current reusable workflows are:
.github/workflows/js-bazel-package.yml.github/workflows/npm-publish.yml
There are no other reusable workflows on the default branch today.
Capability Matrix
| Workflow | Hosted only | Shared ARC capable | Repo-owned capable | Publish authority modes | Current interpretation |
|---|---|---|---|---|---|
js-bazel-package.yml |
yes | yes | yes | same_runner, hosted_exception |
active mixed-capability package workflow |
npm-publish.yml |
yes | no | no | hosted only | hosted archive/package workflow |
Workflow Notes
js-bazel-package.yml
Live contract evidence:
runner_modesupports:compathostedsharedrepo_owned
workspace_modesupports:isolatedpersistent_compat
publish_modesupports:same_runnerhosted_exception
- validation and publish jobs resolve
runs-onfrom:- shared labels
- repo-owned labels
- or
["ubuntu-latest"]
- the workflow uses:
tinyland-inc/ci-templates/.github/actions/nix-setup@main
Interpretation:
- this is the only reusable workflow in
ci-templatesthat currently spans hosted, shared, and repo-owned execution modes - it is the real active template contract for current GloriousFlywheel runner adoption
npm-publish.yml
Live contract evidence:
- the workflow is reusable through
workflow_call - all inspected jobs run on
ubuntu-latestbuild-and-testpublish-gprpublish-npm
Interpretation:
- this workflow is hosted-only today
- it should not be described as shared-capable or repo-owned-capable
- it belongs in hosted template consumer reporting, not runner adoption
Current Consumer Read
js-bazel-package.yml
Current known consumers on the active surface:
Jesssullivan/scheduling-kit- repo-owned template consumer
Jesssullivan/acuity-middleware- repo-owned template consumer
tinyland-inc/tinyvectors- hosted template consumer
npm-publish.yml
Current known consumers on the recent scanned surface:
tinyland-inc/vite-plugin-a11ytinyland-inc/tinyland-rate-limittinyland-inc/tinyland-physicstinyland-inc/tinyland-color-utilstinyland-inc/tinyland-a11y-engine
Those repos are all archived and should be treated as hosted template consumers outside the active migration queue.
Important Operational Consequence
The current template surface is not:
- one mixed bundle of unknown capability
- or a broad reusable-workflow platform that still needs major discovery
It is a very small surface with one real active contract and one hosted-only package publication contract.
That means the next template decisions are narrower than they looked:
- maintain accurate mode reporting around
js-bazel-package.yml - decide whether
npm-publish.ymlshould remain permanently hosted-only - do not inflate runner-adoption claims from raw
ci-templatesusage
Documentation Gap
The current ci-templates README.md describes js-bazel-package, but does
not document npm-publish.yml in the reusable workflow section.
That is a docs gap, not a capability ambiguity.
The workflow itself is still clearly hosted-only from live source.
Recommendation
Use this matrix directly in:
- Queue B planning
- orgwide enrollment reporting
- template consumer mode reporting
And use this wording:
ci-templatescurrently exposes two reusable workflows onmain- only
js-bazel-package.ymlis runner-flexible npm-publish.ymlis hosted-only and currently associated with archived package consumers
Exit Condition
This note can retire once:
- the capability matrix is reflected directly in public or canonical docs
npm-publish.ymleither gains explicit self-hosted modes or is declared permanently hosted-onlyci-templatesusage is no longer treated as a proxy for runner enrollment