Borrowing it
Nothing to install: this file belongs to kavo-labs/kavo. 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/kavo-labs/kavo/main/.claude/skills/add-adr/SKILL.mdgit clone --depth 1 https://github.com/kavo-labs/kavoWrote 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/kavo-labs/kavo/add-adr)<a href="https://agentmods.dev/skills/kavo-labs/kavo/add-adr"><img src="https://agentmods.dev/badge/skills/kavo-labs/kavo/add-adr/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/kavo-labs/kavo/add-adr"><img src="https://agentmods.dev/badge/skills/kavo-labs/kavo/add-adr.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00066 | $0.00800 |
| Opus 5.5 | $0.00026 | $0.00320 |
| Sonnet 5.5 | $0.00013 | $0.00160 |
| Haiku 4.5 | $0.00007 | $0.00080 |
Grade A, and why
add-adr 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 1mo 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 — 84 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Writing an ADR
Kavo records one ADR per load-bearing decision, in docs/internals/adr/.
They are read before changing the behavior they govern (CLAUDE.md), so an ADR
is only worth writing when a future change could plausibly get the decision
wrong without it.
Decide whether this change needs one
Write an ADR when the change:
- introduces a new seam or contract other code will be built against (a new resolver, a new precedence rule, a new boundary between packages);
- forecloses an alternative someone will naturally reach for later (e.g. "why isn't this just a second config mechanism?");
- changes something
.dependency-cruiser.cjsor a schema enforces mechanically — the ADR is the "why" the enforcement doesn't say.
Don't write one for a normal feature addition that fits an existing pattern
(a new standard operation via the registry, a new DTO slot) — that's the
add-operation skill's territory, already covered by ADR-0006/0007. Don't
write one to narrate an implementation detail with no future alternative to
foreclose.
Numbering and location
- File:
docs/internals/adr/00NN-kebab-title.md, next sequential number — check the highest existing file first, never reuse or renumber. - ADRs are never superseded by editing in place. If a later decision
overturns one, the old ADR's
Statusbecomessuperseded by ADR-00MMand the new ADR explains the change; the history stays legible.
Required shape
Follow the existing ADRs' structure (e.g. ADR-0013):
# ADR-00NN — <decision, stated as the resolution, not the topic>
**Status:** accepted
## Context
The tension or constraint that forces a choice — what two things are in
conflict, and why the obvious alternative doesn't work. Reference the
specific mechanism it collides with (another ADR, a boundary rule).
## Decision
The rule, stated normatively enough that a reviewer can check code against
it. Enumerate the specific cases if the rule has edges (see ADR-0013's
`restoreOne`/`purgeOne` split).
## Consequences (if non-obvious)
What this forecloses, and what it costs. Skip if the decision speaks for
itself.
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.
- 1mo ago First seen · 84 lines · 66 tokens per session scan A 873c4a39c265
add-adr is a skill published in the GitHub repository kavo-labs/kavo (17 stars, last pushed today), licensed MIT. It adds 66 tokens to every session and 800 once invoked, about $0.0003 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-02.
Other skills, from other repositories
nestjs-expert
Expert knowledge in NestJS framework, modular architecture, dependency injection, TypeORM/Prisma persistence, microservices transports, and enterprise-grade Node.js backend development. Use when the user mentions NestJS, Nest CLI, decorators, dependency injection, guards, interceptors, or backend microservices, or…
create-pr
Creates a GitHub PR with a Linear-ticket-prefixed title and a decision-led, narrative description for Prisma 8. Use when the user wants to create a pull request, open a PR, or submit changes for review.
draft-release-notes
Author the committed release-notes file for a Prisma 8 release (stable or 8.0.0-rc.N) by enumerating the merged PRs since the previous release v tag (stable or -rc.N), resolving opaque TML-NNNN: titles via Linear context (never copied verbatim), triaging public-worthiness, and writing categorized notes — breaking…
publish-npm-version
Cuts the next release of Prisma 8: bumps the root package.json version (on the v8 RC line: 8.0.0-rc.N → rc.N+1), propagates it to every workspace package, and opens a PR titled "chore(release): bump to ". When the maintainer merges the PR, the Publish to npm workflow runs automatically and ships the new version to npm…
record-upgrade-instructions
Record upgrade instructions alongside a Prisma 8 breaking-change PR, so downstream consumers (users of @internal/ and authors of Prisma 8 extensions) can apply the matching code translation automatically via the published upgrade skills. Use when you have refactored framework code and the test suite went red in…
triage-contributor-pr
Triage open pull requests from external contributors to prisma/orm and produce a per-PR verdict with evidence. Use when a maintainer asks to triage, evaluate, assess, or review the queue of incoming contributor PRs, to decide whether a fork PR is safe to run CI on, to check whether a PR is in scope for its version…