Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add Sassy-Dog/sassydog-skills/plugin install sassy-dogWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/sassy-dog/sassydog-skills/repo-health)<a href="https://agentmods.dev/skills/sassy-dog/sassydog-skills/repo-health"><img src="https://agentmods.dev/badge/skills/sassy-dog/sassydog-skills/repo-health/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/sassy-dog/sassydog-skills/repo-health"><img src="https://agentmods.dev/badge/skills/sassy-dog/sassydog-skills/repo-health.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00154 | $0.03199 |
| Opus 5 | $0.00077 | $0.01599 |
| Sonnet 5 | $0.00031 | $0.00640 |
| Haiku 4.5 | $0.00015 | $0.00320 |
Grade A, and why
repo-health scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 201 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Repo Health
Fast, scripted, read-only signal scans: tech-debt markers, skipped tests, CI duration/flake, mobile release lag. Each scan is one bundled script emitting parseable output. This is the cheap input layer for prioritization (e.g. a project survey-work); it makes no writes and files no issues.
Scans
Tech debt markers + skipped tests
SCAN_PATHS="apps/ packages/" \
EXCLUDE_PATHSPECS="packages/db/src/migrations/** src/generated/**" \
bash ${CLAUDE_PLUGIN_ROOT}/skills/repo-health/scripts/pull-tech-debt.sh
SCAN_PATHSdefaults to the whole tracked tree; pass source dirs to cut noise.EXCLUDE_PATHSPECSfor generated/migration dirs the caller knows about. Pass bare paths — the script adds the:(exclude)magic itself. A leading:(exclude)is stripped for back-compat with configs written against the old contract, but only one: doubling it produces a pathspec git accepts and silently ignores. Values reach git literally (the loop is fenced withset -f), so a**here is a git pathspec, not a shell glob. An element that is unusable after the strip — a lone:(exclude), or a remainder still starting with:— is dropped with a warning on stderr rather than passed through, because a bare:(exclude)is an empty pattern git reads as "exclude everything".- Output sections:
todo-markers(capped 200),skipped-tests(capped 100),todo-by-dir(top 20 directories by marker count).
CI duration + flake
WORKFLOW=ci.yml bash ${CLAUDE_PLUGIN_ROOT}/skills/repo-health/scripts/pull-ci-health.sh
Emits JSON: {sample, median_min, p90_min, flake_runs, flake_shas}. REPO defaults to cwd; LIMIT defaults to 50 runs. A "flake" is the same (headSha, event) failing then passing — the event key deliberately excludes merge-queue false positives (explained in the script header; don't simplify it away).
Dependency exposure + remediation
bash ${CLAUDE_PLUGIN_ROOT}/skills/repo-health/scripts/pull-dependency-exposure.sh
What ships with it
8 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/scoring.md 2.4 KB
- scripts/pull-ci-health.sh 3.2 KB runs code
- scripts/pull-code-scanning.sh 7.0 KB runs code
- scripts/pull-dependency-exposure.sh 5.4 KB runs code
- scripts/pull-mobile-release-lag.sh 3.9 KB runs code
- scripts/pull-plugin-drift.sh 6.6 KB runs code
- scripts/pull-secret-scanning.sh 3.8 KB runs code
- scripts/pull-tech-debt.sh 5.7 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago Changed efb27b7bb34c
- 5d ago Changed · +71 lines 561f2a31484f
- 12d ago First seen · 130 lines · 154 tokens per session scan A 85928d6fdd49
repo-health is a skill published in the GitHub repository Sassy-Dog/sassydog-skills (0 stars, last pushed 3d ago), licensed Apache-2.0. It adds 154 tokens to every session and 3,199 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
live-preview
Mid-build visual verification loop. Takes screenshots of components during construction, not just after. Catches visual regressions and invisible features before they compound. Requires Playwright or similar screenshot tool.
validate-album
Validates album directory structure, file locations, and content integrity. Use before release or whenever the user wants to check an album's structural health.
brooks-sweep
Full-sweep mode: runs a unified analysis across all quality dimensions — code decay, architecture, tech debt, and test quality — then applies fixes directly to the codebase. Safe changes are auto-applied; risky changes are confirmed before execution. Drawing on twelve classic engineering books. Triggers when: user…
api-testing
HTTP API testing for TypeScript (Supertest) and Python (httpx, pytest). Test REST APIs, GraphQL, request/response validation, authentication, and error handling.
bun-jest-migration
Use when migrating from Jest to Bun's test runner, import compatibility, mocks, and config.
bun-test-mocking
Use for mock functions in Bun tests, spyOn, mock.module, implementations, and test doubles.