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 agentmods add skills/jayminwest/warren/good-first-issue-batchnpx skills add jayminwest/warren --skill good-first-issue-batchgit clone --depth 1 https://github.com/jayminwest/warrenWrote 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/jayminwest/warren/good-first-issue-batch)<a href="https://agentmods.dev/skills/jayminwest/warren/good-first-issue-batch"><img src="https://agentmods.dev/badge/skills/jayminwest/warren/good-first-issue-batch.svg" alt="Measured on agentmods" 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 | $0.00080 | $0.02249 |
| Opus 5 | $0.00040 | $0.01125 |
| Sonnet 5 | $0.00016 | $0.00450 |
| Haiku 4.5 | $0.00008 | $0.00225 |
Grade A, and why
good-first-issue-batch 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 — 208 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Protocol: Good-First-Issue Batch
You turn seeds backlog rows into GitHub issues a stranger can actually pick up. The hard part is not writing them. It is proving they are still real.
The failure this skill exists to prevent
On 2026-08-07 six issues were bulk-filed straight from seeds rows. Within four
hours a contributor commented on #808 that the work was already merged — it had
been fixed in PR #774 four days before the issue was filed. Two more issues in
the same batch (#806, #807) turned out to be half-dead. Nobody noticed because
the seeds rows still said open, and the seeds rows still said open because
the PRs that killed them were about something else entirely.
A tracker row is a lead, not evidence. Its age, its open status, and its
description are all things a human wrote once and never revisited. The only
evidence that a bug is real is the bug, in the code, at HEAD, today.
1. Operating principles
- Re-derive every claim from HEAD. Never copy a defect description from the seeds row into the GitHub body. Open the file, confirm the defect, and write the body from what you just read.
- Verify bullets independently. A three-bullet issue is three issues wearing a trenchcoat. One bullet dying does not kill the others, and one bullet surviving does not vindicate the rest. Grade each separately.
- Line numbers are always stale. Every
file:linein an old row has drifted. Re-resolve all of them; cite what you actually saw. - A dead issue costs more than no issue. A contributor who burns an evening on already-merged work may not come back. When verification is ambiguous, leave the row in seeds rather than publishing a maybe.
- Never file for volume. Six solid issues beat twenty speculative ones. There is no quota.
2. Gather candidates
Pull open seeds rows that are plausibly contributor-sized and self-contained:
sd list --status open --format compact
sd search "<theme>" --format compact
Good raw candidates are bounded in blast radius, need no cluster access or live credentials to reproduce, and have an obvious done condition. Drop anything needing a running k8s deployment, a GitHub App token, or judgement about product direction.
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 First seen · 208 lines · 80 tokens per session scan A c5d8ad9a8321
good-first-issue-batch is a skill published in the GitHub repository jayminwest/warren (372 stars, last pushed yesterday), licensed MIT. It adds 80 tokens to every session and 2,249 once invoked, about $0.0004 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.
Other skills, from other repositories
factory-handoff
Hand one exact agent-ready ticket to the central Factory runtime over the configured SSH forced-command boundary. Use when an operator asks to hand off an existing ticket or a prose request instead of implementing it in the current session.
ticket-spec
Turn a raw Linear Triage ticket into a fully specified ai:agent-ready one by exploring the codebase. Use when specifying, refining, or promoting tickets, or when asked why a ticket isn't dispatchable.
Task Convention
Track multi-step work in useAgent's durable task manager, with .useagent/tasks.md as an explicit repo-local or offline fallback.
campaign
Start, drive, monitor, and stop an Autonomous Improvement Campaign — a durable, repeatable wrapper around the dev-improve loop.
dev-loop
Pull the next task from a platform Ralph Loop queue (via the devloop MCP bridge) and drive it to a verified, committed, reported outcome. One task per invocation — this is a Ralph-pattern loop body designed to be driven repeatedly by /loop /dev-loop.
tend-change
Apply scope, requirement, or dependency changes to a feature and cascade effects to dependents - including step traces and audit invalidation. Trigger when the user says "actually we need", "change X to Y", or requirements have shifted.