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 skills add uHappyLogic/cairn --skill capture-milestone-principle-updatesgit clone --depth 1 https://github.com/uHappyLogic/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/uhappylogic/cairn/capture-milestone-principle-updates)<a href="https://agentmods.dev/skills/uhappylogic/cairn/capture-milestone-principle-updates"><img src="https://agentmods.dev/badge/skills/uhappylogic/cairn/capture-milestone-principle-updates/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/uhappylogic/cairn/capture-milestone-principle-updates"><img src="https://agentmods.dev/badge/skills/uhappylogic/cairn/capture-milestone-principle-updates.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.00029 | $0.09094 |
| Opus 5 | $0.00015 | $0.04547 |
| Sonnet 5 | $0.00006 | $0.01819 |
| Haiku 4.5 | $0.00003 | $0.00909 |
Grade A, and why
capture-milestone-principle-updates 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 today.
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 — 569 lines — stays where its author put it; the contents beside it link to each section on GitHub.
capture-milestone-principle-updates
This is the on-demand harvester of the answer-principle-learning loop. Over a milestone, every
recorded answer is one commit on the milestone's requirements.md under one of three subjects —
Manual-answer:, Alternative-answer:, or Recommendation-answer: <Short Title> — whose body carries
the recorded answer and whose diff preserves the analysis the user saw when recording it. This skill
reads that finite, known-up-front set of commits for the milestone you name and distills from them
the generalizable answering principles that the recommendation advisor can apply.
It runs against any milestone id whose milestones/<milestone_id>/requirements.md exists — the
current milestone, an unfinished one, or one already finished (backfill included). Because every
answer commit lands during the requirements phase, the milestone's finish status carries no
information the harvest needs: a run against a milestone whose questions are still being answered
simply harvests what exists so far, and a later run re-walks the same path to pick up the rest.
Running it right after /finish-current-milestone is the natural moment, since the milestone's
answer set is complete by then, but it is never a precondition.
It is the sole writer of milestones/answer_decision_principles.md (a single project-wide file at
the milestones/ root, above any one milestone, so principles accumulate across milestones).
Usage
/capture-milestone-principle-updates <milestone_id>
<milestone_id>(required): the milestone directory name undermilestones/, e.g.milestone_12_user-guide— exactly as/specify-milestone-starting-statetakes it. No bare-number form is accepted and no number-to-directory resolution exists; the value is used verbatim.
Example:
/capture-milestone-principle-updates milestone_12_user-guide
This skill writes only the principle store at the fixed path
milestones/answer_decision_principles.md. It does not touch any milestone'srequirements.md. When a pass composes a store rewrite it writes it in place and — once the user has reviewed the working-tree change withgit diffand confirmed it — commits that rewrite itself (step 7); a pass that distills nothing, or whose rewrite the user rejects, leaves the store as it stood and commits nothing. It imposes no clean-store precondition and does not refuse a milestone already captured — both cases pass through a notice-and-confirm guard (step 2), never a stop.
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.
- today Changed · +2 lines a51c89ee557a
- 3d ago Changed · +394 lines · -2 tokens per session 55d6a90abae2
- 4d ago Changed 9fb9f06acc0f
- 5d ago Changed · -47 lines · -160 tokens per session d7af51b857d2
- 11d ago First seen · 220 lines · 191 tokens per session scan A fcdcf5c11f56
capture-milestone-principle-updates is a skill published in the GitHub repository uHappyLogic/cairn (2 stars, last pushed today), licensed MIT. It adds 29 tokens to every session and 9,094 once invoked, about $0.0001 per session on Opus 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-08-31.
Other skills, from other repositories
scout-consolidation
Launch a Scout consolidation session as a background process. Runs a lighter delta scan — captures what changed since the last run and updates action items and KB.
scout-dream
Launch a Scout dreaming session as a background process. Processes feedback, does KB deep work, and works on wishlist items.
context
Context lifecycle as thin seams over native primitives (/foundry:context ). WRAP of the retired context-lifecycle skills — additive over native /compact, --resume, /rewind, and the context sensor; never reinvents transcript replay. Trigger to snapshot/resume a session's distilled arc-state or check context budget.
learn-distill
Cluster session-learning records into HBK/memory/skill candidates (/foundry:learn-distill), on a native-scheduled cadence. The distill consumer (token-overlap clustering, deterministic) is CUSTOM; the CADENCE is a WRAP over native ScheduleWakeup/CronCreate. Trigger on the scheduled tick or when the operator asks for a…
yolo-intake
Use when a feature should draw on the project's reference material for context. yolo-intake does NOT fetch, import, or copy anything — it points YOLO at a selected folder (default docs/) and READS from it to enrich a feature's context. Getting material INTO that folder (a Figma, a spec, a URL, a schema) is the docs…
grimoire
Use when the user says 'update context', 'update claude', 'save library', or after significant project changes.