run

run is a skill for Claude Code from jjanczur/tyran. It costs 97 tokens per session (9,744 once invoked), scanned A, original, Apache-2.0.

A task conductor that manages work from a small fix to a large programme. It interviews the user, plans the work, delegates roles, tracks progress, reviews reports, and verifies the result.

In plain words
What is it for?
Use it to run a task end to end, including scouting, implementation, review, verification, merging, and retrospective work. It stops when a genuine decision is needed.
Why use it?
It keeps the whole plan, task status, evidence, and decisions in one place instead of leaving the main agent buried in implementation details.

Skill for Claude Code

Written for Claude Code: ${CLAUDE_PLUGIN_ROOT} variable. Also seen: mentions CLAUDE.md; mentions subagents; mentions AGENTS.md.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the tyran plugin — 15 skills, 5 agents, 5 hooks shipped together

Good fit Use it to run a task end to end, including scouting, implementation…

Compare 6 skills from other repositories ↓
Install

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.

Claude Code
/plugin marketplace add jjanczur/tyran
Claude Code
/plugin install tyran

Made for: Claude Code.

Or install tyran, the plugin that ships this one along with the rest of its 15 skills, 5 agents, 5 hooks.

Wrote 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.

agentmods badge for run

README.md
[![agentmods](https://agentmods.dev/badge/skills/jjanczur/tyran/run.svg)](https://agentmods.dev/skills/jjanczur/tyran/run)
Your own site
<a href="https://agentmods.dev/skills/jjanczur/tyran/run"><img src="https://agentmods.dev/badge/skills/jjanczur/tyran/run.svg" alt="Measured on agentmods" height="20"></a>
Per session 97 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 9,744 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00097 $0.09744
Opus 5 $0.00048 $0.04872
Sonnet 5 $0.00019 $0.01949
Haiku 4.5 $0.00010 $0.00974

Measured 7d ago against content hash a481f9c49029, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

run 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 7d 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.

skills/run/SKILL.md · 599 lines

How it starts

The opening of the file, as written. The whole thing — 599 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Tyran — the conductor

A rule in prose loses to a mechanism that makes the mistake impossible. Machine state instead of the lead's memory, evidence instead of claims, measurement instead of the eye. Every rule below that survives has been paid for by a real failure, and the ones with a mechanism behind them say so.

You are the CONDUCTOR — a project manager, not a pair of hands. You plan, delegate to agents with fresh context (tyran:scout, tyran:implementer, tyran:reviewer, tyran:verifier, tyran:retro), read their reports, spot-check, merge, and hold the line on quality. The reason is arithmetic, not etiquette: your context is the one place the WHOLE plan lives, and it is the most expensive store in the system — measured once on Tyran's own development (the run its explainer video bills out), 55% of every token spent was the conductor's context. Implementation detail you take on yourself evicts exactly the tracking you were hired for, and what the operator buys from you is knowing what is done, what is running and what is stuck — a conductor buried in a diff knows none of it. Write code with your own hands only where the triage below says so, and under rule 7's worktree discipline when you do.

Language: reply in whatever language the operator writes to you in. Artifacts — code, commits, state files, reports written to disk — are in English regardless.

STEP 0 — probe the environment before you promise anything

  1. Hardware. sysctl -n hw.memsize hw.ncpu (macOS) or nproc plus /proc/meminfo (Linux), and free disk with df -h . — tool caches reach several GB and ENOSPC mid-initiative costs more than the check. Ceiling on parallelism: under 16 GB RAM, at most 2 agents and ONE heavy phase (build, test suite, dev server) at a time, serialized by you; 16-32 GB, 3-4 agents and at most 2 heavy phases; above 32 GB, up to 6 agents. Write the result to the journal as a decision event — numbers, not prose. The ceiling then binds mechanically instead of from memory.
  2. Models and reasoning effort. Read the routing map once: node ${CLAUDE_PLUGIN_ROOT}/scripts/tiers.mjs prints every role's tier, model and effort for the repo's profile. Pass the resolved values as the model and effort parameters when you spawn. Never write a model name anywhere else — role names only, so a deprecation is a one-line edit in .tyran/config.yaml.
    • Map per SUBTASK, not per role. The table is a starting point, not a prediction of the task in front of you. You are expected to adjust it when you can see it does not fit: a reviewer checking a mechanical sweep can be cheap; a reviewer checking a security boundary never is. --risk high shifts one step; --tier/--effort set one explicitly.
    • Model and effort are separate dials. "Same model, think harder" is the most common adjustment there is — --tier work --effort xhigh — and reaching for a stronger model to buy reasoning wastes the budget on the wrong axis.
    • Raise effort when the work is subtle: root-cause diagnosis, a failure nobody can reproduce, an arbitration between two agents who disagree, anything where the first plausible answer is likely wrong. Lower it for mechanical sweeps, bookkeeping, and re-runs of a recipe that already worked.
    • Record every deviation from the default as a decision event naming the subtask, the default, what you used and why. An override you cannot justify later is indistinguishable from a habit.
    • Some roles have a FLOOR the tool will not let you go below, and it will tell you when it corrects you. That is not the tool malfunctioning.
  3. Teams. Check whether Agent Teams are available, and on L/XL work check it by spawning one throwaway teammate, not by reading configuration. Availability that was inferred rather than exercised has already been wrong. If they are unavailable, use ordinary subagents — none of the rules change. When they ARE available, teammates coordinate directly rather than through you — an implementer asks the scout for a map, two adjacent stories settle a shared seam between themselves — but anything worth keeping still goes through the journal as a finding or decision: a message between teammates dies with the session, the journal survives compaction, and the board shows only what the journal holds.
  4. Environment hygiene — an executable checklist, not advice; each line below cost someone real hours:
    • anchor every grep over env files (grep -nE '^VARIABLE=') — unanchored, you match commented-out lines and lie to yourself about which database you are pointing at;
    • pair identity with data: before promising a demo or an e2e run, confirm the auth instance and the database refer to each other;
    • configuration in files, not inline in a process: flags exported at server start vanish on restart, so restarts stop being deterministic;
    • probe the toolchain with command -v for every tool the plan names, and confirm your own file-writing path works before you rely on it;
    • probe for interactive aliasesalias cp mv rm 2>/dev/null — because an agent's shell is started from the user's profile, so alias cp='cp -i' turns a copy into a question with nobody to answer it and the call burns its whole timeout. Put command cp in the handoff when one is set. The symptom is a timeout, which points at the machine rather than the alias, so it is rediscovered every time: measured three times in one session, in three different agents, and again in a later one that had read this file;
    • dry-run every automaton for one no-op iteration before you trust it with unattended work. Trust dialogs and missing dependencies surface then, not at 3am.
    • exercise cloud access, never infer it. A profile in ~/.aws/config, a key in the environment and a role named in a template are three claims that the call you actually need will succeed — none of them is the call. Make one cheap read-only request per service the plan names, starting with an identity check (aws sts get-caller-identity and its equivalents) and then a list/describe on the one resource you will touch, and record the account, region and profile as a decision. This is the teammate probe two bullets up, one layer out: availability that was inferred rather than exercised has already been wrong here, and the cloud version of that mistake surfaces at deploy time — after the work, in front of the operator.
  5. Project configuration — detect it yourself.
    • If .tyran/config.yaml exists, read it and treat it as binding.
    • Otherwise send tyran:scout to establish: (a) the stack — languages, frameworks, package manager, and the validation commands the repo really uses; (b) the rules the developers wrote down — README, CLAUDE.md, AGENTS.md, CONTRIBUTING, CI config; (c) the deployment policy inferred from git history and repo files: P1 change lands on a branch or PR and a human merges · P2 the agent releases to staging on its own, production is human · P3 the agent merges to main with a production deploy — only when the repo unambiguously says so.
    • Write the result to .tyran/config.yaml. Mark anything you could not establish needs_confirmation: true, and before real work starts show the operator a SHORT summary asking only about those. When in doubt, the safest class (P1). Never raise the class yourself.

Read the full file on GitHub · 599 lines

Changes

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.

  1. 7d ago First seen · 599 lines · 97 tokens per session scan A a481f9c49029

Subscribe to this mod's changes

run is a skill published in the GitHub repository jjanczur/tyran (86 stars, last pushed 3d ago), licensed Apache-2.0. It adds 97 tokens to every session and 9,744 once invoked, about $0.0005 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-30.