Skip to content
Development
Skill

/repo-stats-autoupdate

Keeps README badge + inline counts in sync with the real number of skills, agents, graph nodes/edges, communities, converted pipelines, and test inventory. Runs automatically on every commit via a git pre-commit hook. Use when the README drifts from reality or before publishing

From plugin
stevesolun-ctx
56916 skills3 agents2 hooks
Install
$ npx -y skills add stevesolun/ctx --skill repo-stats-autoupdate --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/repo-stats-autoupdate

Context preview

The summary Claude sees to decide when to auto-load this skill.

Keeps README badge + inline counts in sync with the real number of skills, agents, graph nodes/edges, communities, converted pipelines, and test inventory. Runs automatically on every commit via a git pre-commit hook. Use when the README drifts from reality or before publishing

SKILL.md

repo-stats-autoupdate.SKILL.md
name: repo-stats-autoupdate
description: Keeps README badge + inline counts in sync with the real number of skills, agents, graph nodes/edges, communities, converted pipelines, and test inventory. Runs automatically on every commit via a git pre-commit hook. Use when the README drifts from reality or before publishing a release.
type: maintenance
priority: 30
always_load: false

repo-stats-autoupdate

What this skill does

Reads the **authoritative sources** for the ctx repo's key numbers and patches `README.md` in place so badges and inline counts never drift:

| Number | Source of truth | |---|---| | Skills | `~/.claude/skill-wiki/graphify-out/graph.json` — count nodes where `type == "skill"` | | Agents | same file — count nodes where `type == "agent"` | | Graph nodes | `len(graph["nodes"])` | | Graph edges | `len(graph["edges"])`, formatted as `642K` / `1.2M` | | Communities | `graph/communities.json` → `total_communities` | | Converted pipelines | `~/.claude/skill-wiki/converted/` subdir count | | Tests | checked-in README/docs inventory by default; set `CTX_UPDATE_REPO_STATS_LIVE_TESTS=1` to refresh from `pytest --collect-only -q` |

Fields that can't be resolved (e.g. wiki not deployed) are left untouched — the updater never blocks a commit.

How to use it

**One-time install (per clone):**

git config core.hooksPath .githooks

After that, every `git commit` runs `.githooks/pre-commit` which calls the updater and re-stages `README.md` if any number drifted.

**Manual run:**

python src/update_repo_stats.py          # patch README
python src/update_repo_stats.py --check  # exit 1 if stale (for CI)
CTX_UPDATE_REPO_STATS_LIVE_TESTS=1 python src/update_repo_stats.py  # refresh test inventory

When NOT to use it

  • When you've deliberately phrased a number descriptively (e.g. "over 1,700 skills") — the regex patterns only match exact digits, so prose phrasings are safe, but double-check after big imports.
  • When the wiki isn't deployed locally. The updater degrades gracefully: it prints a warning and skips fields it can't resolve. It does **not** invent numbers.

Known gaps (intentionally out of scope)

  • **Does not rebuild the graph or wiki.** Rebuilding `graph/wiki-graph.tar.gz` takes minutes and churns a large artifact — too heavy for per-commit. Run `ctx-wiki-graphify`, then `python src/validate_graph_artifacts.py --deep`, and repack the tarball manually when the skill catalog changes materially.
  • **Does not verify graph integrity.** If `graphify-out/graph.json` is corrupt, you'll get junk numbers. Run the wiki health check (`python src/wiki_orchestrator.py --check`) separately.

Related files

  • [src/update_repo_stats.py](../../src/update_repo_stats.py) — the worker
  • [.githooks/pre-commit](../../.githooks/pre-commit) — the per-commit trigger
  • `README.md` — the target being kept in sync
Read more
Ships withstevesolun-ctx

ctx is a Python CLI and library that recommends a small, relevant set of skills, agents, and MCP servers for a repository or task. It can use your organization's local/private knowledge or the shipped graph.

Get the whole plugin

Other skills on stevesolun-ctx.