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 widnyana/eyay-toolkits --skill pi-coordinatorgit clone --depth 1 https://github.com/widnyana/eyay-toolkitsWrote 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/widnyana/eyay-toolkits/pi-coordinator)<a href="https://agentmods.dev/skills/widnyana/eyay-toolkits/pi-coordinator"><img src="https://agentmods.dev/badge/skills/widnyana/eyay-toolkits/pi-coordinator/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/widnyana/eyay-toolkits/pi-coordinator"><img src="https://agentmods.dev/badge/skills/widnyana/eyay-toolkits/pi-coordinator.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.00128 | $0.02553 |
| Opus 5.5 | $0.00051 | $0.01021 |
| Sonnet 5.5 | $0.00026 | $0.00511 |
| Haiku 4.5 | $0.00013 | $0.00255 |
Grade A, and why
pi-coordinator 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 yesterday.
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 — 64 lines — stays where its author put it; the contents beside it link to each section on GitHub.
pi-coordinator
<skill-dir> below is this skill's base directory.
You plan, delegate, watch, verify and land. The pi workers type the code. You never trust a worker's own "pass" report: you re-run the checks. The user keeps you as manager, so do not finish a worker's task yourself; send it back with a sharper prompt.
Why this shape: a cheap model (glm-5.3-flash) is slow and ceremonial. In past runs it spent 30 to 60 tool calls on 2 line fixes, looped on one read, hung mid output, reported "tests pass" when they failed, and left files uncommitted. The fixes are all structural: tiny tasks, exact edits in the prompt, a driver that enforces a tool cap and kills loops and stalls, a monitor, and a verify gate you own.
Workflow
- Break down. Write the plan (project convention: plan file under
docs/plans/). One task = one worktree = one squash commit. Aim for 1 to 3 files per task. Tasks that touch the same files run in sequence; disjoint ones run in parallel (2 to 3 at a time is plenty for Rust builds). - Extract facts yourself. Grep, run the codegraph or a script, read the code. Put exact file paths, line hints, old text and new text into the prompt. The worker should edit, not discover.
- Write one prompt file per task to
$PI_WORK/<unit>.txt(default$TMPDIR/pi-work). Use the Write tool, not a shell heredoc, when the prompt mentions commands a git guard blocks. Usereferences/prompt-template.md. Append the project's forbidden-phrase line to every prompt if the user gave one. - Launch in the background, one per task:
PI_VERIFY_CMD='<checks>' nohup <skill-dir>/scripts/launch.sh <unit> > $PI_WORK/run-<unit>.log 2>&1 &It creates.worktrees/<prefix>/pi-<unit>from main and runsscripts/pi-run.mjs, which drivespi --mode rpc --no-session --model <model>over JSONL (sendprompt, wait foragent_settled, readget_last_assistant_text). The driver enforcesMAXTOOLS(default 60: abort, then ask for a 4 line wrap up), nudges once or twice when any earlier tool call is repeated a third time (workers re-read ranges out of order), and ends a worker silent for 6 minutes. Driver gate (the main speed lever). WithPI_VERIFY_CMDset, the worker only edits and commits. On each settle the driver itself checks a clean tree, a commit onPI_BASE..HEAD(defaultmain), then runsPI_VERIFY_CMDin the worktree. A failure goes back to the same pi session with the last 40 lines (up toPI_VERIFY_ROUNDS, default 2), so the worker keeps its context and you skip a round trip. Pass writesout-<unit>/verify.ok(verified HEAD sha) andverify.log; exit 4 means still failing after all rounds. Every tool call is one LLM turn (10 to 25 s on glm-5.3-flash), so a worker that runs its own checks costs 2 to 3 turns plus the run, and you ran them again anyway. Put the install step inPI_VERIFY_CMDtoo. ConfirmMAXTOOLSis really set: an earlier run launched without it and nothing capped the workers. Workers run slim by default (scripts/slim-args.sh, passed throughPI_EXTRA_ARGS): no pi packages except the git guard, no skills, no prompt templates, no context files, thinking off. A full pi loads every installed package (design-thinking, sub-agents, web access, codegraph) and the global AGENTS/CLAUDE files: bigger prompts every turn, ceremony, and once a worker spawned its own "test-fix agent". The prompt must therefore carry every rule (commit style, forbidden git commands, no co-author line). RaisePI_THINKING=lowonly for a task that needs reasoning. Follow-ups and multi-part features:nohup scripts/continue.sh <unit> <prompt-name> [prefix] &runs another worker in the existing worktree (sameout-<unit>, so the same Monitor command works). A feature that must land atomically (schema change plus every writer plus tests) is one worktree with several worker runs, landed once withSUBJ=... BODY=...onland.sh. Parallelize disjoint parts of one feature: branch a second worktree from the feature branch (git worktree add .worktrees/<prefix>/pi-<unit>-fe -b <prefix>/pi-<unit>-fe <prefix>/pi-<unit>), run the frontend part there while the Rust part runs in the first, then cherry-pick its commits onto the feature branch. Cargo builds shareCARGO_TARGET_DIR(one target dir for all workers saves full rebuilds; builds take turns on its lock, which shows as idle time). - Start the Monitor in the same turn as the launch. Never launch workers without it; the user wants to see progress.
Monitor command:
<skill-dir>/scripts/monitor.sh <unit> <unit>...withtimeout_ms: 1800000; re-arm on expiry while workers still run. It polls every 10 s, printsDONEwith the head of the result as soon as a worker ends, and tool count and idle seconds per worker every 90 s.events.jsonllines carry"t"(ms): use them to see where a slow run spent its time. Long idle is normal whilecargocompiles; checkpsbefore calling it a hang. - Gate each result yourself (do not rely on the worker's last message):
git status --shortin the worktree: nothing uncommitted. Verify the commit, not the dirty tree.git --no-pager diff main...<branch>: only expected files, no generated or forbidden paths.- Run the project's real checks (project CLAUDE.md verification stack). Frontend: type check with 0 errors plus tests. Rust: fmt, clippy,
cargo check --tests, unit tests, integration tests on a private database. Whenout-<unit>/verify.okequals the worktree HEAD, the driver already ran them (trusted code, not the worker's claim): readverify.loginstead of re-running. Checks outsidePI_VERIFY_CMD(e.g. integration tests on a private DB) you still run. - Run clippy exactly as the repo hook does (bliss: lib only, no
--tests; test code has many pre-existingexpecthits). Read the diff, not just the checks: one worker put a new item between#[allow(...)]and the fn it guarded; tests passed, clippy failed. - A worker's final message can be noise ("waiting for the test-fix agent") or claim a commit it never made. Trust
git statusandgit log main..HEADin the worktree only. - Plain
cargo fmt(andrustfmton a test file, throughmod common) reformats files the task never touched when main is not fmt-clean. Tell workersrustfmt --edition 2024 <changed files>, andgit restorestray files before landing. - After several lands that touch the same files, run one combined gate on a detached worktree of the new main: the fixes were only verified one by one.
- Land.
VERIFY_CMD='<your checks>' <skill-dir>/scripts/land.sh <unit>: refuses a dirty worktree, runs the checks (skipped whenverify.okmatches HEAD), pre-checks the merge withgit merge-tree --write-tree, squash merges onto local main with the worker's first commit message, removes worktree and branch. Linear history, no merge commits, never push unless the user's wrap up line says so. If it fails, send the worker a new prompt (see below); do not patch it yourself. The squash runs in the primary checkout. If another session has uncommitted edits there in a file your branch touches, git refuses ("local changes would be overwritten") and nothing changes. Never stash, restore or overwrite that session's files, and never move the main ref behind its back (its stale index would revert your work on its next commit). Before relying on the primary tree, checkgit statusthere andpsfor other agent sessions; ask the user who commits those files. - Report in the user's reply style: what landed (hashes), what is open, the one thing the user must do.
What ships with it
7 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.
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.
- yesterday First seen · 64 lines · 128 tokens per session scan A ec6d87edb6cb
pi-coordinator is a skill published in the GitHub repository widnyana/eyay-toolkits (7 stars, last pushed 2d ago), licensed MIT. It adds 128 tokens to every session and 2,553 once invoked, about $0.0005 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-15.
Other skills, from other repositories
sxo
Search Experience Optimization (SXO), the bridge between SEO and UX/CRO. Audits the journey from the SERP click to the on-page goal: click-through factors (title, meta, rich results), then post-click signals that keep users and drive conversions: above-the-fold relevance and intent match, page speed / Core Web Vitals…
meta-tags-optimizer
Optimize title tags, meta descriptions, Open Graph, and Twitter cards for maximum click-through rate. Generates multiple A/B test variations with character counting and SERP preview. Use when asked to "optimize title tag", "write meta description", "improve CTR", "Open Graph tags", "fix my meta tags", "social media…
critical-code-reviewer
Rigorously review code or pull requests for correctness, security, accessibility, maintainability, tests, and edge cases. Use when users request a critical code review, want a guided walkthrough of findings, need implementer-facing feedback, or want to prepare, create, or submit a GitHub pull request review.
shiny-bslib
Build modern Shiny dashboards and applications using bslib (Bootstrap 5). Use when creating new Shiny apps, modernizing legacy apps (fluidPage, fluidRow/column, tabsetPanel, wellPanel, shinythemes), or working with bslib page layouts, grid systems, cards, value boxes, navigation, sidebars, filling layouts, theming…
elixir-idioms
OTP/BEAM patterns and Elixir idioms — GenServer, Supervisor, Task, Registry, pattern matching, with chains, pipes. Use when designing processes or debugging BEAM issues.
tidewave-integration
Tidewave MCP runtime tools — debugging, smoke testing, live state inspection, SQL queries, hex docs. Use when evaluating code in a running Phoenix app.