Adoption Metrics¶
Live weekly snapshot of BaseCoat adoption across consumer repositories — asset coverage, version currency, and onboarding trends.
Open Dashboard :material-open-in-new:
What the dashboard tracks¶
| Metric | Description |
|---|---|
| Consumer count | Repositories that have adopted the BaseCoat overlay |
| Version currency | % of consumers on the latest release vs. drifted |
| Asset coverage | Which asset types (agents / skills / instructions / prompts) each consumer has synced |
| Onboarding rate | New consumers added per sprint |
| Drift alerts | Consumers more than one minor version behind |
How metrics are collected¶
The adoption-metrics.yml workflow runs weekly and inspects the gh-pages branch
for consumer-reported sync state. It does not access private repositories —
consumers report adoption by triggering the report-adoption-callable.yml workflow
in their own repos, which writes an anonymised record to BaseCoat's metrics store.
flowchart LR
CR["Consumer Repo"] -->|"report-adoption-callable.yml\n(weekly)"| WF["GitHub Actions"]
WF -->|"Writes adoption record"| BC["BaseCoat\nadoption-metrics.yml"]
BC -->|"Publishes summary"| GHP["GH Pages\ndashboard/metrics/"]
Data retention¶
Metrics snapshots are stored in the gh-pages branch under dashboard/metrics/.
Each weekly run appends a JSON record. The dashboard retains 52 weeks of history.
Weekly output also includes CI reliability signals per repository in both
latest.json and SUMMARY.md:
success_rate(backward-compatible, based on last 100 measurable runs)pass_rate(alias ofsuccess_rate)ci_pass_rate_last_20_runs(retrospective-focused pass rate window)
Enabling adoption reporting in your repo¶
Add the following workflow call to your consumer repository to participate in adoption metrics. This is opt-in and anonymous — no private code or data is shared.
# .github/workflows/report-adoption.yml
name: Report BaseCoat Adoption
on:
schedule:
- cron: '0 6 * * 1' # Monday 06:00 UTC
workflow_dispatch:
jobs:
report:
uses: IBuySpy-Shared/basecoat/.github/workflows/report-adoption-callable.yml@main
with:
basecoat_version: ${{ vars.BASECOAT_VERSION }}
Version variable
Set the BASECOAT_VERSION repository variable to the BaseCoat version you have
installed (found in .github/base-coat/version.json). The sync workflow updates
this automatically when you run sync.ps1.