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/sdotj/sleeper-bot/cairn-proposenpx skills add sdotj/sleeper-bot --skill cairn-proposegit clone --depth 1 https://github.com/sdotj/sleeper-botWrote 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/sdotj/sleeper-bot/cairn-propose)<a href="https://agentmods.dev/skills/sdotj/sleeper-bot/cairn-propose"><img src="https://agentmods.dev/badge/skills/sdotj/sleeper-bot/cairn-propose.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.00000 | $0.00913 |
| Opus 5 | $0.00000 | $0.00456 |
| Sonnet 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 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.
This is a copy
100% identical to cairn-propose — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
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.
- 3d ago First seen · 82 lines · 0 tokens per session scan A fd3303d2d574
cairn-propose is a skill published in the GitHub repository sdotj/sleeper-bot (0 stars, last pushed 6d ago), licensed MIT. 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. It is 100% identical to cairn-propose, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
auto-perf-optimize
Run agent-driven VS Code performance or memory investigations. Use when asked to launch Code OSS, automate a VS Code scenario, run the Chat memory smoke runner, capture renderer heap snapshots, take workflow screenshots, compare run summaries, or drive a repeatable scenario before heap-snapshot analysis.
chat-perf
Run chat perf benchmarks and memory leak checks against the local dev build or any published VS Code version. Use when investigating chat rendering regressions, validating perf-sensitive changes to chat UI, or checking for memory leaks in the chat response pipeline.
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…