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 discuss-open-questiongit 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/discuss-open-question)<a href="https://agentmods.dev/skills/uhappylogic/cairn/discuss-open-question"><img src="https://agentmods.dev/badge/skills/uhappylogic/cairn/discuss-open-question/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/discuss-open-question"><img src="https://agentmods.dev/badge/skills/uhappylogic/cairn/discuss-open-question.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.00032 | $0.01230 |
| Opus 5 | $0.00016 | $0.00615 |
| Sonnet 5 | $0.00006 | $0.00246 |
| Haiku 4.5 | $0.00003 | $0.00123 |
Grade A, and why
discuss-open-question 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.
How it starts
The opening of the file, as written. The whole thing — 67 lines — stays where its author put it; the contents beside it link to each section on GitHub.
discuss-open-question
Facilitates a deliberation on a named <open-question> block (whether status="open" or status="deferred") in the current milestone's requirements.md where the user cannot give an immediate answer. The goal is a concrete decision by the end of the conversation — not a design document. The skill is purely conversational: it never edits requirements.md or any other file.
Usage
/discuss-open-question <Short Title>
The <Short Title> must match (case-insensitive) the id of an existing <open-question> block (either status="open" or status="deferred") in the document.
Example:
/discuss-open-question Getting-started section order
Workflow
0. Find the current milestone
Follow .agents/plugins/cairn/shared/get-current-milestone.md to resolve <MILESTONE_DIR>. Never use a hardcoded task-list path.
1. Locate the question
Locating a block by its handle is a deterministic lookup, so query it with the line-oriented CLI (awk/sed/grep) keyed on the <open-question …> / </open-question> boundary lines — never a real XML processor (xmllint). Every <open-question> block lives under the single ## Open questions section of <MILESTONE_DIR>/requirements.md, so those boundary lines within that one section enumerate the entire question set.
For each <open-question …> opening boundary line, pull its id attribute with an attribute-name-anchored regex — id="([^"]*)" — so the match is independent of attribute order (status may precede or follow id). The captured value is stored entity-escaped, so reverse the five-predefined-entity substitution on it before comparing — replace <→<, >→>, "→", '→', and &→& last. Then case-fold both that un-escaped id and the <Short Title> argument and compare: the block whose id case-folds equal to the title is the match.
Pull the whole matched block — from its <open-question …> opening boundary line through the next </open-question> closing boundary line — as the question context the deliberation runs on: its <question> text plus any <alternative> / <applied-principle> / <recommendation> sub-elements the recommend sweep may already have embedded. That whole block is the QUESTION you carry into step 3.
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 Changed e768208c1971
- 5d ago Changed · -8 lines · -5 tokens per session 3f0eacf6e30a
- 10d ago First seen · 75 lines · 37 tokens per session scan A 788bf44629e2
discuss-open-question is a skill published in the GitHub repository uHappyLogic/cairn (2 stars, last pushed yesterday), licensed MIT. It adds 32 tokens to every session and 1,230 once invoked, about $0.0002 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
debt-ops-init
Write or refresh a "Tech debt operations" section in the project's AGENTS.md so the team shares one source of truth for debt-ops disciplines. Run ONLY when the user explicitly asks to set up, install, or initialize debt-ops disciplines — never auto-invoke. Idempotent; only the managed section changes, other sections…
debt-ops-metrics
Print a debt-ops health summary from the metrics log, covering registration rate, feedback action rate, ADR creation, and AI-authored share. Use when the user asks for "debt-ops metrics", "debt health", "registry stats", or a tech-debt health summary. Read-only, never writes the log.
debt-ops-add
Register a deferred decision in the tech-debt registry. Trigger by judgment, not a marker scan, whenever a future reader would ask "why this way?": an unmade decision, stub, loosened type, bypassed check, swallowed error, a default picked "for now", or a TODO/FIXME/HACK/XXX marker. Trigger immediately whenever you…
multi-perspective-review
Multi-perspective collaborative review of plans or documents. Ten expert viewpoints deliberate in 3 rounds to reach consensus.
review
Run a full code review on current changes or specified files. Runs ruff lint, review-code agent, and security scan in sequence.
plan-task
Structured task planning using Work files. Use for any new feature, bug fix, or project that needs a task breakdown before implementation.