Borrowing it
Nothing to install: this file belongs to cairn-framework/cairn. 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/cairn-framework/cairn/main/.claude/skills/cairn-propose/SKILL.mdgit clone --depth 1 https://github.com/cairn-framework/cairnWrote 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/cairn-framework/cairn/cairn-propose)<a href="https://agentmods.dev/skills/cairn-framework/cairn/cairn-propose"><img src="https://agentmods.dev/badge/skills/cairn-framework/cairn/cairn-propose/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/cairn-framework/cairn/cairn-propose"><img src="https://agentmods.dev/badge/skills/cairn-framework/cairn/cairn-propose.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.00000 | $0.00913 |
| Opus 5.5 | $0.00000 | $0.00365 |
| Sonnet 5.5 | $0.00000 | $0.00183 |
| Haiku 4.5 | $0.00000 | $0.00091 |
Grade A, and why
cairn-propose 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 2mo 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.
Copies of this mod
1 near-identical copy found in the catalogue:
- cairn-propose — 100% identical, 0 lines differ
What it actually says
Propose a new change: create it and write its artifacts in one step. The result
is meta/changes/<name>/ holding proposal.md (the outcome, how it will be
proven, and what is excluded), design.md (how), and tasks.md (implementation
steps). Implementation is the cairn-apply skill.
Input: a change name (kebab-case) or a description of what to build.
Steps
-
Settle what they want to build: ask when the request is unclear:
"What change do you want to work on? Describe what you want to build or fix."
Derive a kebab-case name from the description ("add user authentication" ->
add-user-auth). Proceed only once the intended outcome is understood. If a change with that name exists, ask whether to continue it or start a new one. -
Create the change directory
cairn change new "<name>"This scaffolds
meta/changes/<name>/with proposal.md, design.md, tasks.md, and an empty specs/ directory. -
Read the scaffolded files to pick up the structure.
-
Name the outcome and how it will be proven
Before writing the design, settle four things and put them in proposal.md. Everything downstream depends on them:
- Outcome. What is observably true after this change that is not true now? Write it as a state of the world, not a list of edits. "Operators can retry a failed import from the run detail page", not "add a retry button".
- Acceptance boundary. The nearest place that outcome becomes observable. For a library it may be a public function's return value; for a CLI, the command's output and exit code; for a UI, the rendered surface; for an operational change, the running instance. Name it concretely.
- Evidence. What will be run or shown at that boundary to prove the
outcome, and what result counts as proof. "
cairn scanexits 0 with no ORPHANED findings on the fixture", not "tests pass". If the outcome is a bug fix, the evidence starts with a reproduction that currently fails. - Exclusions. What this change deliberately does not do, especially the adjacent work a reader would otherwise assume is included. Exclusions are what stop the change from growing during implementation.
Prefer the smallest boundary that actually settles the claim. A boundary you cannot reach in this environment is worse than a narrower one you can: if the real boundary is out of reach, say so in the proposal and name what would be needed, rather than silently substituting a unit test for it.
-
Write the remaining artifacts: design.md (the approach and the delta operations: ADDED, MODIFIED, REMOVED, RENAMED), then tasks.md (the design turned into actionable checkboxes, ending with the task that produces the evidence named in step 4).
-
Report: the change name and location, the artifacts created, the outcome and its acceptance boundary, then prompt: "Ask me to apply the change to start working on the tasks."
Artifact guidelines
- Follow the scaffolded structure from
cairn change new. - Plain English, no em-dashes (use periods, colons, commas, or parentheses).
- Write for a staff engineer reading the change in six months: concise and focused.
- Cite accepted decisions (
cairn rationale <node>lists what already binds the node) rather than restating them as if this proposal were deciding them. - If context is critically unclear, ask. Otherwise make a reasonable decision and record it, to keep momentum.
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.
- 2mo ago First seen · 82 lines · 0 tokens per session scan A fd3303d2d574
cairn-propose is a skill published in the GitHub repository cairn-framework/cairn (53 stars, last pushed yesterday), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 913 tokens. 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-30.
cairn-propose compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| cairn-proposecairn-framework/cairn | Skill | 53 | yesterday | Apache-2.0 | A | 0 | Claude Code |
| imagegenopenai/codex | Skill | 133k | yesterday | Apache-2.0 | A | 113 | Codex |
| playwright-climicrosoft/playwright | Skill | 99k | yesterday | Apache-2.0 | A | 19 | Claude Code |
| local-ai-agentsmicrosoft/ai-agents-for-beginners | Skill | 79k | 4d ago | MIT | A | 200 | Claude Code, Codex |
| systematic-debuggingobra/superpowers | Skill | 313k | 3d ago | MIT | A | 21 | Claude Code |
| next-cache-components-adoptionvercel/next.js | Skill | 143k | today | MIT | A | 95 | Claude Code |
| next-partial-prefetching-adoptionvercel/next.js | Skill | 143k | today | MIT | A | 103 | Claude Code |