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 thettwe/nyann --skill iac-plangit clone --depth 1 https://github.com/thettwe/nyannWrote 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/thettwe/nyann/iac-plan)<a href="https://agentmods.dev/skills/thettwe/nyann/iac-plan"><img src="https://agentmods.dev/badge/skills/thettwe/nyann/iac-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/thettwe/nyann/iac-plan"><img src="https://agentmods.dev/badge/skills/thettwe/nyann/iac-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.00345 | $0.02023 |
| Opus 5 | $0.00172 | $0.01012 |
| Sonnet 5 | $0.00069 | $0.00405 |
| Haiku 4.5 | $0.00034 | $0.00202 |
Grade A, and why
iac-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 8d 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 — 162 lines — stays where its author put it; the contents beside it link to each section on GitHub.
iac-plan
Wraps bin/iac-plan.sh. It detects the repo's iac.tool, dispatches
to the per-tool adapter (bin/iac-plan/<tool>.sh), captures whatever
machine-readable plan the tool offers, and emits a normalized IacPlan
JSON on stdout (schema: schemas/iac-plan.schema.json). This skill is
READ-ONLY: it previews, it never applies. To apply, hand off to
/nyann:apply.
1. Confirm this is an IaC repo before running
iac-plan is only meaningful on an infrastructure repo. Before invoking,
satisfy yourself there's an infra signal — a tool name in the request
(terraform / tofu / cdk / pulumi / helm / kubectl / kustomize /
ansible), an explicit "infra"/"deploy" intent, OR a detected iac.tool
in the stack descriptor (bin/detect-stack.sh --path <cwd> →
.iac.tool). If there's no infra signal, this is the wrong skill — see
DISAMBIGUATION in the frontmatter and do not run.
2. Scope: whole target or a single unit
By default iac-plan previews the whole target root (unit:"."). When
the user names a specific module/stack/chart/overlay/playbook (or the
repo is a monorepo with multiple units), scope it with --unit:
bin/iac-plan.sh --target <cwd> [--unit <repo-rel-path>]
--unit is a repo-relative path resolved under the target with a
traversal guard — a path that escapes the target is refused (see step
4). Omit it to plan the root.
3. Invoke
bin/iac-plan.sh --target <cwd> [--unit <repo-rel-path>]
The script emits one IacPlan JSON object on stdout. It runs the cloud CLI only inside the adapter (which the operator invoked by asking for a plan) — detection itself is pure filesystem work and never auto-runs a cloud CLI behind the user's back. nyann handles no credentials: the adapter inherits whatever auth the user's CLI already has.
4. Branch on status — this drives everything
status |
Meaning | What to do |
|---|---|---|
planned |
A plan ran and produced a summary. | Render the summary (step 5). Only this status leads to an apply offer. |
skipped |
The CLI, backend, or credentials were absent — no plan ran (exit 0). | Surface .message verbatim (e.g. "terraform CLI not installed", "no backend configured"). Do NOT offer apply — there's nothing to apply. Tell the user what's missing. |
refused |
A precondition failed (exit 1) — unknown tool, or --unit escaped the target. |
Surface .message. This is bad input, not a missing tool. Fix the input (correct the unit path, confirm the repo's tool) and retry. |
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.
- 8d ago First seen · 162 lines · 345 tokens per session scan A 34ab84ab6631
iac-plan is a skill published in the GitHub repository thettwe/nyann (6 stars, last pushed 13d ago), licensed MIT. It adds 345 tokens to every session and 2,023 once invoked, about $0.0017 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-09-03.
Other skills, from other repositories
deploy-to-connect
Deploy or publish Python and R content to a Posit Connect server using rsconnect-python or the R rsconnect package. Handles interactive apps and dashboards, web APIs, rendered documents, and prepared bundles/manifests. Use whenever the user asks to deploy, publish, or redeploy content to Posit Connect, or mentions…
cloud-administration
Administers the cloud the company runs on rather than the one it sells — tenant and subscription structure, the SaaS estate and who owns each app, identity as the real perimeter, cloud spend that arrives as a surprise, and what the provider does not do for you. Use this to structure subscriptions or tenants, get…
network-administration
Designs and operates the corporate network — segmentation, remote access, wireless, DNS and addressing, and diagnosing network problems. Use this to segment a network, set up or fix remote access, diagnose intermittent connectivity, plan addressing or DNS, or assess whether the network's trust assumptions still hold.
telephony-and-conferencing
Runs voice and meeting infrastructure — phone systems and numbers, emergency calling obligations, conference rooms and their AV, call recording and its retention consequences, and the porting that makes provider changes go badly. Use this to replace a phone system, fix rooms nobody can start a meeting in, meet…
virtualization-operations
Runs the hypervisor layer beneath the servers — host capacity and consolidation ratios, VM sprawl, snapshot discipline, resilience and live migration, and licensing that counts cores rather than instances. Use this to size or expand a cluster, work out why VMs are slow when the hosts look idle, clean up sprawl, set…
business-continuity-and-resilience
Plans for operating through disruption — impact analysis, recovery objectives, continuity plans, and the exercises that prove they work. Use this to run a business impact analysis, set RTO and RPO, write or test a continuity plan, prepare for a supplier or site failure, or answer a customer's resilience questionnaire.