Borrowing it
Nothing to install: this file belongs to romshark/datapages. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/romshark/datapages/main/.claude/skills/git-commits/SKILL.mdgit clone --depth 1 https://github.com/romshark/datapagesWrote 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/romshark/datapages/git-commits)<a href="https://agentmods.dev/skills/romshark/datapages/git-commits"><img src="https://agentmods.dev/badge/skills/romshark/datapages/git-commits/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/romshark/datapages/git-commits"><img src="https://agentmods.dev/badge/skills/romshark/datapages/git-commits.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.00035 | $0.00919 |
| Opus 5.5 | $0.00014 | $0.00368 |
| Sonnet 5.5 | $0.00007 | $0.00184 |
| Haiku 4.5 | $0.00003 | $0.00092 |
Grade A, and why
git-commits 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 25d 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.
What it actually says
-
Respect writing.
-
Title:
type: Summary, imperative, capitalized after the prefix, 50 characters or less, no trailing period. -
Types:
feat,fix,perf,refactor,test,chore,ci,docs. Suffix the type with!for a breaking change. -
Mark a change as breaking when it incompatibly changes an application-facing API. Changes to
runtime/APIs are not breaking: they are generator-facing, anddatapages genupdates generated callers. Treat the root package,modules/and generated APIs such ashrefandactionas public APIs. -
Wrap the description at 72 characters.
-
Imperative mood in the title, never past tense:
Add cache, notAdded cacheorAdds cache. The description uses present tense and describes the code as it is now:Move foo to package buzz, notfoo is now in package buzz. No first person, nowe. -
Don't paraphrase the code changes, the diff already shows them. The description is for what the diff can't show: why, scope, what was left out. Leave it empty when the title says everything.
-
Don't list the files touched, don't restate the title in longer words and don't close with a summary of the commit.
-
A commit that bundles several changes lists them as bullets, each with its own conventional prefix. List only the main changes. Tests, docs and call-site updates that come with a change are part of it, not separate bullets:
feat: Add funcFoo <- keep, this is the change docs: Add docs for funcFoo <- drop test: Add tests for funcFoo <- drop refactor: Use funcFoo everywhere <- drop test: Add benchmark to test funcFoo against funcBar <- drop -
A breaking change ends with a
BREAKING:block. It is the migration instruction: name every removed or renamed symbol asold -> new, and say what the caller has to do, 1 step per line. A caller must be able to migrate from this block alone, without reading the diff. Say plainly when a step is automatic (datapages genregenerates it) and when it is manual. Every line is a step the caller takes. Never list what did not change:href is unchangedis a step to do nothing. When a step could be read as reaching further than it does, narrow the step instead of adding a line: writeEvSubjPref<Event> -> EvPrefix<Event>, the prefix constants only, not... unchangedon a line of its own. -
A
perf:commit quotes the measurement asbefore -> after. -
No tool attribution or
Co-Authored-Bytrailers.
Bad:
feat: added caching to the generator and updated some files
This commit adds a cache to the generator so that it is faster. I changed
internal/gen/gen.go, internal/gen/cache.go and internal/cmd/gen.go to add the
cache and wire it up. The cache stores parsed packages in a map keyed by import
path. Overall this makes the generator faster and cleaner.
Co-Authored-By: Some Tool <[email protected]>
Good:
perf: Cache parsed packages in the generator
Every `datapages gen` run reparsed all dependencies. The cache keys on
import path and file mod time, which is safe because the loader already
rejects stale build artifacts.
Watch mode still reparses on every event: invalidation for edits inside
the module isn't implemented yet.
40ms -> 12ms on example/classifieds.
Good, breaking change:
refactor!: Move HTTP core to runtime packages
BREAKING:
- `datapages.NewCore` -> `runtime/httpserve.NewCore`.
- `datapages.CoreConfig` -> `runtime/httpserve.Config`.
- Generated code: run `datapages gen`, no hand edits needed.
- Hand-written callers: import `github.com/romshark/datapages/runtime/httpserve`
and update the 2 names above.
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.
- 25d ago Changed b13064357934
- 1mo ago First seen · 67 lines · 35 tokens per session scan A 3dc239567f9f
git-commits is a skill published in the GitHub repository romshark/datapages (119 stars, last pushed 2d ago), licensed MIT. It adds 35 tokens to every session and 919 once invoked, about $0.0001 per session on Opus 5.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-09-27.
git-commits compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| git-commitsromshark/datapages | Skill | 119 | 2d ago | MIT | A | 35 | Claude Code |
| commit-msgjrswab/axe | Skill | 909 | 15d ago | Apache-2.0 | A | 0 | Claude Code, Codex |
| git-commit-integrityirahardianto/awesome-agv | Skill | 158 | 23d ago | MIT | A | 136 | Claude Code, Codex |
| pixiv-cli-developFlanChanXwO/pixiv-cli | Skill | 132 | yesterday | MIT | A | 49 | Codex |
| commit-stagedGoldziher/ai-rulez | Skill | 167 | yesterday | MIT | A | 23 | Claude Code |
| squash-commitGoldziher/ai-rulez | Skill | 167 | yesterday | MIT | A | 27 | Claude Code |
| test-then-commitGoldziher/ai-rulez | Skill | 167 | yesterday | MIT | A | 28 | Claude Code |