Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Sassy-Dog/sassydog-skills --skill tidy-repogit clone --depth 1 https://github.com/Sassy-Dog/sassydog-skillsWrote 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/tidy-repo)<a href="https://agentmods.dev/skills/sassy-dog/sassydog-skills/tidy-repo"><img src="https://agentmods.dev/badge/skills/sassy-dog/sassydog-skills/tidy-repo/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/tidy-repo"><img src="https://agentmods.dev/badge/skills/sassy-dog/sassydog-skills/tidy-repo.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.00133 | $0.01820 |
| Opus 5 | $0.00067 | $0.00910 |
| Sonnet 5 | $0.00027 | $0.00364 |
| Haiku 4.5 | $0.00013 | $0.00182 |
Grade B, and why
tidy-repo scanned grade B with 1 finding 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 11d 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.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
!`root="$(git rev-parse --show-toplevel 2>/dev/null)"; echo "CONFIG_SOURCE: ${root:-<not a git repo>}"; cat "$root/.claude/sassy-dog/tidy-repo.md" 2>/dev/null || echo "NO_CONFIG"` How it starts
The opening of the file, as written. The whole thing — 140 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Tidy-Repo
Post-shipping git reconciliation for the current repo.
Formerly
clean-it. The "clean it" and "clean up" triggers still resolve here.
This skill is thin: it reads the repo's facts from config and delegates the actual mechanics —
the [gone] grep trap, squash-merge -D, stash triage by closedByPullRequestsReferences,
agent-worktree teardown — to sassy-dog:repo-cleanup, so the plumbing lives in one place
across every repo.
Acting principle: assess first, act on what's confident, escalate only on mixed signal — substantive WIP, dep-file touches, abandoned-but-non-trivial work. Never auto-drop a stash on an OPEN issue; never auto-discard outside the allowlist.
1. Derive the repo facts
These are never configured — read them live so they cannot drift:
gh repo view --json nameWithOwner,defaultBranchRef,deleteBranchOnMerge \
--jq '"repo=\(.nameWithOwner) branch=\(.defaultBranchRef.name) dbom=\(.deleteBranchOnMerge)"'
2. Repo config
!root="$(git rev-parse --show-toplevel 2>/dev/null)"; echo "CONFIG_SOURCE: ${root:-<not a git repo>}"; cat "$root/.claude/sassy-dog/tidy-repo.md" 2>/dev/null || echo "NO_CONFIG"
Check CONFIG_SOURCE before using any of this. It is the repo root resolved from the
session's working directory at skill-load time — not necessarily the repo you are about to act
on — and cwd resets between Bash calls, so you cannot influence it. If it names a repo other than
the one you are working in, discard the block above, read that repo's own
.claude/sassy-dog/tidy-repo.md by absolute path, and use that instead. Config is meant to be applied
exactly as written, so the wrong one silently applies another repo's rules: on 2026-08-18 two agents
shipping in sassydog-routines and sassydog-skills were each handed platform's Terraform gates,
and caught it only by noticing the mismatch themselves.
The block above is this repo's .claude/sassy-dog/tidy-repo.md, inlined at load time. Its
frontmatter carries the sweep policy — dep_version_globs, noise_allowlist, never_discard,
optional claim_label — and its ## sections carry repo-specific prose. The contract is
sassy-dog:setup-config → references/config-contract.md.
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.
- 11d ago First seen · 140 lines · 133 tokens per session scan B 53367f1639bd
tidy-repo is a skill published in the GitHub repository Sassy-Dog/sassydog-skills (0 stars, last pushed 3d ago), licensed Apache-2.0. It adds 133 tokens to every session and 1,820 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
commit
Git commit workflow with precommit hook handling, lint/type checking, README updates, and API reference updates. Use when the user wants to commit changes. Handles precommit hooks that modify files (formatting, linting) by re-staging and retrying. Runs ruff lint and pyright type checks on staged Python files, and…
update-pr
Update an existing pull request with new changes. Use when the user wants to update a PR, push follow-up changes to a PR, refresh a PR description, or sync a PR with latest commits. Triggers on: update pr, update-pr, update the pr, push to pr, refresh pr, sync pr, update pull request.
codex-setup
Initialize sd0x-dev-flow infrastructure for Codex CLI and other non-Claude agents. Generates AGENTS.md, installs the commit-msg hook, copies runner scripts. The pre-push gate is opt-in via --with-push-gate. Use when setting up a new project or after updating skills.
smart-rebase
Smart partial rebase for squash-merge repositories. Auto-detect which commits to keep/drop when base branch was squash-merged into target. Use when: user says 'rebase', 'partial rebase', 'base already merged', 'smart rebase', or /smart-rebase. Not for: simple git rebase (the developer runs it — Claude never executes…
next-step
Change-aware next step advisor. Use when: user asks what to do next, workflow progression is unclear, session just started with dirty worktree. Not for: executing the suggested command (user decides), auto-loop decisions (hooks handle that). Output: findings-based suggestions or session summary with commit seed.
resolving-merge-conflicts
Use when a git merge or rebase reports conflicts and the operation is in progress.