Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add sina-heidariaan/tornhill/plugin install tornhillWrote 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/sina-heidariaan/tornhill/tornhill)<a href="https://agentmods.dev/skills/sina-heidariaan/tornhill/tornhill"><img src="https://agentmods.dev/badge/skills/sina-heidariaan/tornhill/tornhill/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/sina-heidariaan/tornhill/tornhill"><img src="https://agentmods.dev/badge/skills/sina-heidariaan/tornhill/tornhill.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.00172 | $0.03158 |
| Opus 5 | $0.00086 | $0.01579 |
| Sonnet 5 | $0.00034 | $0.00632 |
| Haiku 4.5 | $0.00017 | $0.00316 |
Grade A, and why
tornhill 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 10d 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 — 215 lines — stays where its author put it; the contents beside it link to each section on GitHub.
tornhill Skill
Produces a critique-led architecture view. The diagram is the substrate; the findings overlay is the product. Drawing boxes without the critique layer is the failure mode this skill exists to avoid.
Design: critique-led · Mermaid source + interactive HTML twin · flows auto-proposed then user-pinned · one-shot on demand with a provenance stamp.
⛔ Grounding contract (overrides everything)
An invented architecture map lies — authoritatively. Every claim tornhill makes must be checkable by opening real code. So:
- Every box and every arrow carries an evidence anchor — a real
path:line. Derive edges from actual imports/calls/routes using whatever code-search or code-graph tools you have —tornhill-mine-graph.py(deterministic Tier-0 import graph, needs no tooling), ripgrep, an LSP, or a code-graph MCP. Never infer an edge from a name. - No anchor, no node/edge. If you cannot cite it, you drop it. A smaller true map beats a larger plausible one.
- Every finding cites its evidence — a
path:line, a churn count, or a co-change pair fromtornhill-mine-git.py. No "probably / likely / typically". - Code + git are ground truth. When the map and the code disagree, fix the map.
The path:line anchor does double duty: it is the falsifiable proof of the claim,
and the renderer turns it into a click-to-open code link in the HTML twin.
Altitude rule (the hard part — enforce by COLLAPSING)
Build the full graph, then collapse so it stays analyzable:
- L1 System Context — the system + external actors/integrations.
- L2 Containers / runtime units — deployables, datastores, caches, queues.
- L3 Components — modules within a unit. Cluster by directory/module; hide edges below a coupling threshold; suppress leaf utilities. This collapse is what yields the spaceship altitude.
- Hard stop before L4 GLOBALLY. Never draw classes/functions/code in the main
diagrams. Exception: inside a risk-selected, user-confirmed deep-dive
scope (the
deepop), L4 (symbols + detailed sequences) is permitted, bounded bytornhill-mine-symbols.py --scope. The global L1–L3 view still collapses.
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.
- 10d ago First seen · 215 lines · 172 tokens per session scan A 62ddba09bb1c
tornhill is a skill published in the GitHub repository sina-heidariaan/tornhill (1 stars, last pushed 2mo ago), licensed Apache-2.0. It adds 172 tokens to every session and 3,158 once invoked, about $0.0009 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
cloudflare-workers-observability
Cloudflare Workers observability with logging, Analytics Engine, Tail Workers, metrics, and alerting. Use for monitoring, debugging, tracing, or encountering log parsing, metric aggregation, alert configuration errors.
cloudflare-workers-dev-experience
Cloudflare Workers local development with Wrangler, Miniflare, hot reload, debugging. Use for project setup, wrangler.jsonc configuration, or encountering local dev, HMR, binding simulation errors.
diagnosing-bugs
Diagnosis loop for hard bugs and performance regressions. Builds a red-capable feedback loop and runs it before hypothesising — complements static code review (which finds bugs by reading) by running actual repros. Use when the user says 'diagnose'/'debug this', or reports something broken/throwing/failing/slow.
issue-debugging
Systematic methodology for issue debugging including root cause analysis, impact mapping, tiered validation plans, and confidence assessment. Use when analyzing bugs, fixing issues, or validating fixes.
fix-bug
Run the Fix Validation pipeline to investigate, fix, and validate a bug. Ensures deterministic pipeline execution with IssueAnalyzer, FixWriter, TestWriter (conditional), TestAudit (conditional), and FixValidator stages.
ccc-systematic-debugging
Root-cause debugging via the Iron Law: no fix without confirmed root cause. Reproduce → hypothesize → verify → fix. Use when investigating bugs, test failures, or…