cairn: Instructions file for Claude Code

CLAUDE.md

cairn CLAUDE.md is an instructions file for Claude Code from uHappyLogic/cairn. It costs 17,123 tokens per session, scanned B, original, MIT.

Project instructions for Cairn, a Claude Code plugin that guides software work through milestones. It includes the repository layout and the skills and agents used in that workflow.

In plain words
What is it for?
Use it when working on Cairn's plugin configuration, skills, agents, or milestone-driven development process.
Why use it?
It helps an agent follow the project's milestone process and locate the correct plugin files.

Instructions file for Claude Code

Written for Claude Code: the file is CLAUDE.md. Also seen: reads .claude/ paths; mentions .claude-plugin; mentions CLAUDE.md.

This is uHappyLogic/cairn's own configuration. It tells Claude Code how to work on cairn itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything cairn configures →

Reuse

Borrowing it

Nothing to install: this file belongs to uHappyLogic/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.

Copy the file
curl -O https://raw.githubusercontent.com/uHappyLogic/cairn/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/uHappyLogic/cairn

Made for: Claude Code.

Wrote 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.

agentmods badge for cairn CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/uhappylogic/cairn/claude-md/github.svg)](https://agentmods.dev/instructions/uhappylogic/cairn/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/uhappylogic/cairn/claude-md"><img src="https://agentmods.dev/badge/instructions/uhappylogic/cairn/claude-md/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.

agentmods 80×15 button for cairn CLAUDE.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/uhappylogic/cairn/claude-md"><img src="https://agentmods.dev/badge/instructions/uhappylogic/cairn/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 17,123 This file is loaded in full into every session.
When invoked 17,123 The same file — it is already loaded in full.
Security scan B 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.17123 $0.17123
Opus 5.5 $0.06849 $0.06849
Sonnet 5.5 $0.03425 $0.03425
Haiku 4.5 $0.01712 $0.01712

Measured 3d ago against content hash 1cbc79ccc9f4, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade B, and why

cairn CLAUDE.md scanned grade B with 1 finding 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.

Reads agent configuration directoriesmediumAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

uv run pytest agy_tests # on-demand suite driving the installed agy against ~/.gemini/config/plugins/cairn; run before committing an Antigravity integration change
CLAUDE.md · 136 lines

How it starts

The opening of the file, as written. The whole thing — 136 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

What this repo is

A plugin (cairn) for Claude Code, Antigravity, and Codex that brings a milestone's important questions up to be decided before work starts, so execution can then be handed to agents. It ships as a set of skills, a few agents, shared procedures, and the stdlib-only Python tools under tools/ (among them the open-question tool and the task-list tool, the only writers of each milestone's open-question document and of its two task files once they are created, and the fold tool through which the answer sweep records its decisions in requirements.md) that move a project from a vague idea through discussion, planning, completion, and archival — one milestone at a time.

Commands

uv run scripts/build_hosts.py                           # rebuild hosts/ from core/ after any change under core/ or scripts/hosts/
uv run scripts/build_hosts.py --check                   # drift gate: fails if the committed hosts/ trees differ from a fresh build
uv run pytest                                           # Python tool suite under the pinned interpreter (.python-version)
uv run --no-project --python 3.9 --with pytest pytest   # the same suite at the 3.9 floor; run both before committing a tool change
uv run pytest agy_tests                                 # on-demand suite driving the installed agy against ~/.gemini/config/plugins/cairn; run before committing an Antigravity integration change
uv run scripts/set_version.py X.Y.Z                     # bump VERSION and its three mirrors; releases go through /release-plugin instead

Repository layout

Each entry names the file that documents itself; read that file rather than expecting the detail here.

AGENTS.md                        — symlink to CLAUDE.md; never edited directly
VERSION                          — bare MAJOR.MINOR.PATCH, the single source of truth; written by set_version.py, read by build_hosts.py
.claude-plugin/marketplace.json  — the maintainer's directory marketplace pointing at ./hosts/claude; users install from the distribution repos
core/                            — the host-neutral runtime layer (skills/, agents/, shared/, tools/); cross-references use {{PLUGIN_ROOT}}, no file names a host
core/skills/<name>/SKILL.md      — one skill per directory
core/agents/*.md                 — the two dispatched subagents (complete-task, provide-alternatives-to-open-question)
core/shared/*.md                 — the shared procedures, each the single source of truth for one unit of work referenced by two or more runners
core/tools/open_questions.py     — the stdlib-only (Python 3.9+) open-question tool; run `--help` for its subcommands and contract
core/tools/define_milestone.py   — the stdlib-only (Python 3.9+) milestone-definition tool: numbers and slugs a new milestone, creates its directory with the four files (the empty open_questions.xml included), prints the commit subject and directory
core/tools/task_list.py          — the stdlib-only (Python 3.9+) task-list tool, the only writer of TASKS_TODO.md and TASKS_DONE.md once created; run `--help` for its subcommands and contract
core/tools/requirements.py       — the stdlib-only (Python 3.9+) fold tool: `fold` splices one decision under a named `###` subsection of requirements.md's `## Decisions` and `replace` rewrites the body of one existing subsection, called by the answer sweep only and not that file's sole writer; run `--help` for its subcommands and contract
scripts/hosts/<host>/            — one declarative host definition per host: settings.toml, a slots/ subdirectory holding one value file per wording slot, and that host's manifest, README, CONTRIBUTING pointer, and traffic-workflow templates
scripts/build_hosts.py           — the one generic host build and validation gate (see its docstring and CONTRIBUTING.md ## Development)
scripts/set_version.py           — writes VERSION and its three mirrors (marketplace.json, pyproject.toml, uv.lock) in lockstep; touches no git
tests/                           — pytest suite of the tools under core/tools/, one flat test_<name>.py per subcommand or concern, golden fixtures under tests/fixtures/, plus test_build_rendering.py, the build's in-process rendering test, which runs under the pinned interpreter only, and the two fixed-call tests (test_sweep_compact_view.py, test_sweep_batched_call.py), which extract the answer sweep's two shell calls from the rendered Claude Code tree, each as the one fence holding a command only it carries (the batched call's conflict section likewise, from the one fence holding `replace`) with nothing added to the runtime file, and run them under bash, under both interpreters
agy_tests/                       — on-demand suite driving the real agy CLI against the global Antigravity copy, outside testpaths and CI, seeded from tests/fixtures/agy_project/; see CONTRIBUTING.md ## Development
hosts/<host>/                    — committed build output, never hand-edited; published verbatim into uHappyLogic/cairn-<host> at release
.claude/skills/release-plugin/   — maintainer-only release skill, outside core/ so no host renders it
milestones/                      — this repo's own milestones (self-dogfooding); milestones/README.md holds the Current milestone: pointer
milestones/answer_decision_principles.md — project-wide principle store read by recommend-procedure.md, written only by capture-milestone-principle-updates
ideas/                           — design drafts that precede any milestone, versioned so they can be revised in the open; holds the benchmark draft
.github/workflows/drift-gate.yml — CI: --check then both pytest runs in one job; actions pinned to SHAs bumped by hand
.github/workflows/traffic-badges.yml — daily traffic-badge workflow; its copies under scripts/hosts/ are kept in sync by hand (grep github-traffic-badge@)
docs/                            — workflow.md (phase narrative, how skills commit, learning loop), skill-reference.md (one entry per skill), design-claims.md, ways-of-using-cairn.md (headless chains)
README.md, CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md, CHANGELOG.md, LICENSE — landing page, contributor guide (## Development is the build loop), root-only policy files, release notes written by /release-plugin

Read the full file on GitHub · 136 lines

Changes

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.

  1. 3d ago Changed · +3 lines · +2,609 tokens per session 1cbc79ccc9f4
  2. 10d ago Changed · +4 lines · +1,818 tokens per session scan A → B b46ba56ffb27
  3. 14d ago Changed · +2 lines · +1,642 tokens per session dc5e9e028055
  4. 15d ago Changed · +1,634 tokens per session c77bcc40d274
  5. 20d ago Changed · +1,593 tokens per session 033e951ba9fb
  6. 24d ago Changed · +592 tokens per session 6486da183efd
  7. 27d ago Changed · +1 lines · +297 tokens per session 0f4067cefbfc
  8. 28d ago Changed · +1 lines · +556 tokens per session 1e79ac1fa3ea
  9. 29d ago Changed · +2 lines · +626 tokens per session 92914fb1e36b
  10. 1mo ago First seen · 123 lines · 5,756 tokens per session scan A ce6c74c521bf

Subscribe to this mod's changes

cairn CLAUDE.md is an instructions file published in the GitHub repository uHappyLogic/cairn (3 stars, last pushed yesterday), licensed MIT. It adds 17,123 tokens to every session, about $0.0685 per session on Opus 5.5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other instructions, from other repositories

vscode buildNext.instructions.md

Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).

microsoft/vscode · 9,715 tokens

next.js AGENTS.md

AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.

vercel/next.js · 7,461 tokens

vscode oss-third-party-notices.instructions.md

Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).

microsoft/vscode · 5,262 tokens

langchain AGENTS.md

AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.

langchain-ai/langchain · 4,680 tokens

vscode copilot-instructions.md

Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).

microsoft/vscode · 2,750 tokens

deno copilot-instructions.md

Copilot instructions for denoland/deno, covering deno development guide for github copilot, network access, high level overview, key directories and key files to understand first.

denoland/deno · 3,077 tokens