Borrowing it
Nothing to install: this file belongs to CRJFisher/ariadne. 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/CRJFisher/ariadne/main/.claude/skills/plan/SKILL.mdgit clone --depth 1 https://github.com/CRJFisher/ariadneWrote 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/crjfisher/ariadne/plan)<a href="https://agentmods.dev/skills/crjfisher/ariadne/plan"><img src="https://agentmods.dev/badge/skills/crjfisher/ariadne/plan/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/crjfisher/ariadne/plan"><img src="https://agentmods.dev/badge/skills/crjfisher/ariadne/plan.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.00072 | $0.03732 |
| Opus 5.5 | $0.00029 | $0.01493 |
| Sonnet 5.5 | $0.00014 | $0.00746 |
| Haiku 4.5 | $0.00007 | $0.00373 |
Grade A, and why
plan 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 5d 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 — 232 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Plan
FIRST ACTION — run this immediately, before any other step:
node --import tsx .claude/skills/plan/scripts/group_runs.ts $ARGUMENTS
Capture the printed JSON as SWEEP. Then follow Passes B and C below.
Do NOT call any other Skill. Do NOT search the backlog. Do NOT read any task file.
The pipeline is self-contained.
Offline three-pass engine over triage outputs: group → strategize →
reconcile. Pass A deterministically buckets every published false-positive by
AriadneFaultArea; Pass B dispatches one plan-strategist (sonnet) per bucket to
design a hierarchical fix-plan tree; Pass C reconciles the trees into the
task-DB at ~/.ariadne/plan/, augmenting existing tasks by
dedup_key rather than duplicating them.
The engine is planning-only: it reads
analysis_output/<project>/triage_results/<run-id>.json (schema v5, owned by
@ariadnejs/skill-protocol) and writes only PlanTask rows + a per-sweep event
log under ~/.ariadne/plan/. It never writes the user's backlog/, the
classifier registry.json, or packages/core. Graduation of a plan task into
backlog/ is the separate, user-invoked export adapter (see Export to
backlog below; the writer set for backlog/ is named under Write boundaries).
Pass A buckets only the run's novel_issues[] (confirmed false-positives). It
deliberately does not consume uncertain[]: an uncertain verdict is the
investigator's abstain, not a confirmed FP, so grounding a fix-plan on one would
mint work against an unproven signal. Persistently-uncertain entries are surfaced
to the human instead — as a cross-run repeat count in get_triage_summary — to
resolve or exclude, never fed into planning.
Script invocation: always node --import tsx. Never pnpm exec tsx or
npx tsx.
Pipeline overview
| # | Pass | Actor | Output |
|---|---|---|---|
| A | Group | scripts/group_runs.ts |
One FaultAreaBucket per AriadneFaultArea, staged under ~/.ariadne/plan/staging/<sweep>/buckets/, plus a manifest.json recording the full scanned scope (projects + run_ids, incl. zero-FP runs) and a sweep summary. Consults the membership-override store to re-route (or suppress) members a prior sweep judged mis-routed |
| B | Strategize | plan-strategist (sonnet, ≤5 concurrent) |
One StrategistPlan (hierarchical fix tree) per bucket — including a total per-member membership review — self-validated via scripts/validate_plan.ts |
| C | Reconcile | scripts/reconcile_plan.ts |
PlanTask rows (grounded on confirmed members only) + a PlanSweepEvent log in ~/.ariadne/plan/; live tasks augmented by dedup_key, orphans superseded/combined/resolved, user-promoted tasks marked exported; membership exclusions recorded as exclude_member events + override records + derive_fault_area correction signals |
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- meta.json 5.0 KB
- package.json 624 B
- README.md 3.6 KB
- README.per-step.mmd 3.0 KB
- README.per-step.svg 46 KB
- scripts/apply_investigation_verdicts.test.ts 6.0 KB runs code
- scripts/apply_investigation_verdicts.ts 5.6 KB runs code
- scripts/cross_check_exported_overlap.ts 1.9 KB runs code
- scripts/export_to_backlog.test.ts 22 KB runs code
- scripts/export_to_backlog.ts 16 KB runs code
- scripts/get_bucket_context.ts 7.0 KB runs code
- scripts/graduate_group_docs.test.ts 9.6 KB runs code
- scripts/graduate_group_docs.ts 6.7 KB runs code
- scripts/group_runs.test.ts 2.8 KB runs code
- scripts/group_runs.ts 8.4 KB runs code
- scripts/reconcile_plan.ts 5.3 KB runs code
- scripts/validate_consolidation.ts 4.8 KB runs code
- scripts/validate_plan.ts 3.3 KB runs code
- src/export/next_backlog_task_id.test.ts 2.1 KB runs code
- src/export/next_backlog_task_id.ts 2.0 KB runs code
- src/export/render_backlog_task.test.ts 8.3 KB runs code
- src/export/render_backlog_task.ts 5.0 KB runs code
- src/export/select_exportable_tasks.test.ts 6.1 KB runs code
- src/export/select_exportable_tasks.ts 5.4 KB runs code
- src/export/task_assignment.test.ts 4.4 KB runs code
- src/export/task_assignment.ts 5.6 KB runs code
- src/group/group_fault_areas.test.ts 14 KB runs code
- src/group/group_fault_areas.ts 6.3 KB runs code
- src/reconcile/build_plan_tasks.test.ts 12 KB runs code
- src/reconcile/build_plan_tasks.ts 5.9 KB runs code
- src/reconcile/compute_dedup_key.test.ts 3.9 KB runs code
- src/reconcile/compute_dedup_key.ts 4.7 KB runs code
- src/reconcile/exported_overlap.test.ts 8.2 KB runs code
- src/reconcile/exported_overlap.ts 4.4 KB runs code
- src/reconcile/investigation_verdict.test.ts 4.9 KB runs code
- src/reconcile/investigation_verdict.ts 4.6 KB runs code
- src/reconcile/load_staged_plans.test.ts 8.4 KB runs code
- src/reconcile/load_staged_plans.ts 7.1 KB runs code
- src/reconcile/permanent_reroute.ts 1.4 KB runs code
- src/reconcile/reconcile_plan.test.ts 29 KB runs code
- src/reconcile/reconcile_plan.ts 16 KB runs code
- src/reconcile/record_membership_decisions.test.ts 9.2 KB runs code
- src/reconcile/record_membership_decisions.ts 4.5 KB runs code
- src/reconcile/render_task.test.ts 5.2 KB runs code
- src/reconcile/render_task.ts 3.6 KB runs code
- src/reconcile/validate_consolidation.test.ts 6.1 KB runs code
- src/reconcile/validate_consolidation.ts 7.6 KB runs code
- src/reconcile/validate_plan.test.ts 15 KB runs code
- src/reconcile/validate_plan.ts 17 KB runs code
- src/store/backlog_dedup.test.ts 3.1 KB runs code
- src/store/backlog_dedup.ts 3.6 KB runs code
- src/store/json_plan_task_repository.test.ts 11 KB runs code
- src/store/json_plan_task_repository.ts 6.3 KB runs code
- src/store/membership_override.test.ts 6.0 KB runs code
- src/store/membership_override.ts 7.8 KB runs code
- src/store/paths.test.ts 3.9 KB runs code
- src/store/paths.ts 5.7 KB runs code
- src/store/plan_task_record.ts 4.0 KB runs code
- src/store/plan_task.ts 14 KB runs code
- src/store/scan_runs.test.ts 5.5 KB runs code
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.
- 5d ago Changed · +1 tokens per session fed19e530c1f
- 17d ago First seen · 232 lines · 71 tokens per session scan A 0a01ad41a466
plan is a skill published in the GitHub repository CRJFisher/ariadne (23 stars, last pushed 4d ago), licensed MIT. It adds 72 tokens to every session and 3,732 once invoked, about $0.0003 per session on Opus 5.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-10-06.
Other skills, from other repositories
record-gotchas
Capture surprises, workarounds, and rough edges hit while consuming the public surface of Prisma 8, Prisma Compute, or Prisma Postgres — anything a real user of these products would experience. Fires whenever an operator (or agent) writes a workaround, hits a surprising failure mode, or finds undocumented behaviour…
contrib-pr
Open a high-quality external contributor PR against prisma/orm. Use when the user is an outside contributor (not a Prisma maintainer) and wants to submit a change as a pull request from a fork. Encodes the contribution flow from CONTRIBUTING.md so the resulting PR passes review on the first round.
github-review-iteration
Orchestrates a GitHub PR review loop by delegating triage and implementation to dedicated sub-agents, then repeating until actionable review items are cleared. Use when the user says “address PR review”, “triage review comments”, or “iterate until review is clean”.
review-implement-phase
Implements triaged review actions, commits focused fixes, and posts Done plus resolves threads. Use when the user wants only the implementation phase of the review-framework workflow.
no-bare-casts
Writing as in TypeScript or TSX production code, modifying a file that contains a bare as cast, silencing a type error with a cast, encountering as unknown as, or reviewing a cast site.
write-architecture-docs
Write or rewrite architecture subsystem docs, ADRs, and reference material for the engineering team. Use when creating, updating, or reviewing docs under docs/architecture docs/, or when the user asks you to write documentation that describes the system's design.