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 agentmods add skills/blakecyze/kanso/kanso-commitnpx skills add blakecyze/kanso --skill kanso-commitgit clone --depth 1 https://github.com/blakecyze/kansoWrote 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/blakecyze/kanso/kanso-commit)<a href="https://agentmods.dev/skills/blakecyze/kanso/kanso-commit"><img src="https://agentmods.dev/badge/skills/blakecyze/kanso/kanso-commit.svg" alt="Measured on agentmods" 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 | $0.00031 | $0.01889 |
| Opus 5 | $0.00015 | $0.00945 |
| Sonnet 5 | $0.00006 | $0.00378 |
| Haiku 4.5 | $0.00003 | $0.00189 |
Grade A, and why
kanso-commit 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 3d 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 — 177 lines — stays where its author put it; the contents beside it link to each section on GitHub.
kanso-commit
Splits the working tree into logically atomic commits and writes messages that answer why rather than what. Detects and matches the repo's existing convention.
The principles from kanso-principles apply. Messages earn their place the same way code does.
The atomic unit
An atomic commit is one logical change. Not one line, not one file — one thought. The test: can the commit be described in a single short imperative sentence without using "and"?
Each atomic commit must be:
- Independently revertable. Reverting it doesn't cause collateral damage.
- Independently cherry-pickable. It can move to another branch cleanly.
- Stable. Tests pass (or at least don't newly fail) at this commit.
- Single-concern. Refactor and feature are separate commits, always. Formatting and logic are separate commits.
Over-atomising is a real failure mode. A three-line bug fix does not need three commits.
Before doing anything
- Check the status.
!git status --shortand!git diff --statto see what's staged and unstaged. - Detect the convention.
!git log -n 30 --onelineand read 3-5 recent commits in full. The repo's existing style wins over any default. - Detect the tooling. Look for
commitlint.config.*,.commitlintrc*,cz-config*,package.jsonscripts mentioningcommit. These hard-constrain the format.
Convention detection
The repo's commit history dictates the format. In priority order:
- commitlint config present → use whatever it enforces. No exceptions.
- Conventional Commits pattern in recent history (
feat:,fix:,chore:) → match it. - Custom scoped pattern (
[Component] subject,subsystem: subject,Fixed #NNNNN --) → match it exactly. Don't modernise. - Plain imperative subjects with no prefix → match that. Don't introduce prefixes.
- No clear pattern, fewer than 10 commits in history → use Conventional Commits as a sensible default and tell the user.
Don't impose a new convention onto an existing repo. If the history is messy, match the least-bad recent pattern rather than inventing a new one.
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.
- 3d ago First seen · 177 lines · 31 tokens per session scan A 2557f948fefa
kanso-commit is a skill published in the GitHub repository blakecyze/kanso (3 stars, last pushed 1mo ago), licensed MIT. It adds 31 tokens to every session and 1,889 once invoked, about $0.0002 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
smart-commit
Create clean Conventional Commits: inspect the diff, group related changes, run quality checks, and write type(scope) messages. Use when committing work, or when the user runs /smart-commit or asks to commit changes.
workflow
Run the complete 5-step development workflow: focus problem → prevent over-development → test-first (TDD) → document → smart commit. Use when starting a new feature, or when the user runs /workflow or asks for the full development flow.
commit
Create a user-requested Conventional Commit from the staged changes.
git-commit
Creates git commits following Conventional Commits format with type/scope/subject. Use when user wants to commit changes, create commit, save work, or stage and commit. Enforces project-specific conventions from CLAUDE.md.
auto-loop
TDD-based autonomous development loop with checkpoint recovery and observability changelog.
hook-template
Generate hook script from template. Use when adding a new hook, wiring a PreToolUse/PostToolUse/Stop/Notification hook, or scaffolding hook config for settings.json.