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
ctx
58916 skills3 agents2 hooks

Claude Code

$ npx -y skills add stevesolun/ctx --skill repo-stats-autoupdate --agent claude-code

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
@stevesolun
Ships withctx

Find the cheapest AI coding setup that actually works on your repo. CTX Fit analyzes your repository, tests promising AI coding configurations against real tasks in it, and produces the winning configuration as a reviewable change — in your working tree with

58916 skills3 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
589
Star history of stevesolun/ctx on GitHub, a chart by star-history.com

Other skills on ctx.

ctx-dispatch

ctx-dispatch

Coordinate nontrivial work in the ctx repository when a task has independent investigation, implementation, or test lanes;…

@stevesolun@stevesolunInstall Skill
ctx-verify

ctx-verify

Select proportional validation for changes or reviews in the ctx repository. Use before handing off material code, workflow,…

@stevesolun@stevesolunInstall Skill
agents-md-protocol

agents-md-protocol

Create or review an AGENTS.md file so coding agents get stable repo-local instructions: environment setup, testing, style,…

@stevesolun@stevesolunInstall Skill
cavecrew

cavecrew

Decision guide for delegating to caveman-style subagents. Tells the main thread WHEN to spawn `cavecrew-investigator` (locate…

@stevesolun@stevesolunInstall Skill
caveman-commit

caveman-commit

Ultra-compressed commit message generator. Cuts noise from commit messages while preserving intent and reasoning. Conventional…

@stevesolun@stevesolunInstall Skill
caveman-compress

caveman-compress

Compress natural language memory files (CLAUDE.md, todos, preferences) into caveman format to save input tokens. Preserves all…

@stevesolun@stevesolunInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about repo-stats-autoupdate.

Which coding agents can use repo-stats-autoupdate?
repo-stats-autoupdate installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.