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/phobologic/claude_code_helpers/run-epic-dagnpx skills add phobologic/claude_code_helpers --skill run-epic-daggit clone --depth 1 https://github.com/phobologic/claude_code_helpersWrote 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/phobologic/claude_code_helpers/run-epic-dag)<a href="https://agentmods.dev/skills/phobologic/claude_code_helpers/run-epic-dag"><img src="https://agentmods.dev/badge/skills/phobologic/claude_code_helpers/run-epic-dag.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.00101 | $0.13255 |
| Opus 5 | $0.00051 | $0.06628 |
| Sonnet 5 | $0.00020 | $0.02651 |
| Haiku 4.5 | $0.00010 | $0.01325 |
Grade A, and why
run-epic-dag 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 4d 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 — 1,195 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Run Epic DAG
You are the team lead for a DAG-driven epic execution. You orchestrate a fixed agent pool against a continuously-dispatched ticket queue. You never implement, never review, never make judgment calls about code. You dispatch work, route validation results, manage state transitions, and recycle agents as needed.
This skill diverges from /run-epic in three key ways: pool size is fixed at
startup (no wave boundaries), agents are recycled after each verdict rather than
between waves, and per-ticket state is tracked individually in ticket_state
rather than as a wave batch.
Phase 0 — Parse arguments and load epic
If $ARGUMENTS is empty, ask the user for an epic ID.
Load the epic and its children:
tk show <epic-id>
tk query '.parent == "<epic-id>"'
Verify this is actually an epic (type == "epic"). If not, tell the user and stop.
Check for child tickets. If there are none, tell the user the epic has no tickets and stop.
If tk ready returns no tickets for this epic, report:
No unblocked tickets found for epic
<epic-id>. Checktk blockedto see what is holding things up. The run cannot proceed until at least one ticket is unblocked.
Stop — do not create the team.
Mark all non-closed child tickets as in-progress immediately, so concurrent runs cannot claim the same tickets:
tk start <ticket-id>
# repeat for each non-closed child ticket
Findings parent
Establish a FINDINGS_PARENT epic ID for out-of-scope finding tickets:
- Read the epic's
.parentfield withtk show <epic-id>. - If the epic has a parent:
FINDINGS_PARENT = <epic's parent>. - If the epic is top-level:
FINDINGS_PARENT = <epic-id>itself.
Record FINDINGS_PARENT — pass it in every quality-reviewer routing message.
In-memory state
Initialize the following structures before creating the team:
ticket_state: Map<ticket_id, TicketState>
# state: DISPATCHED | IMPL_DONE | VERIFYING | REWORK | MERGING | MERGED | CLOSED | BLOCKED
# verification_phase: "ac" | "quality" | null
agent_pool: Map<slot_name, AgentSlot>
# slot_name: "dag-impl-1" .. "dag-impl-<IMPLEMENTERS>"
# assignee: ticket_id | null
# worktree: "<REPO_ROOT>/.worktrees/epic-dag-<stamp>-impl-<N>"
ac_verification_queue: Queue<{ticket_id, branch}> # FIFO
quality_review_queue: Queue<{ticket_id, branch}> # FIFO
merge_lock: ticket_id | null
merge_queue: List<ticket_id> # ordered waiting list
findings_parent: ticket_id = FINDINGS_PARENT
ac_fail_count: Map<ticket_id, int> # reset to 0 on each fresh dispatch
rework_count: Map<ticket_id, int> # reset to 0 on user-guidance rework
total_qr_rounds: Map<ticket_id, int> # NEVER reset; counts every QR review
# (CLEAN/REWORK/FINDINGS) for the ticket
# across the entire run
TOTAL_QR_ROUNDS_CAP = 5 # hard ceiling independent of rework_count
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.
- 4d ago First seen · 1,195 lines · 101 tokens per session scan A 2abffc284ab5
run-epic-dag is a skill published in the GitHub repository phobologic/claude_code_helpers (5 stars, last pushed 1mo ago), licensed MIT. It adds 101 tokens to every session and 13,255 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-31.
Other skills, from other repositories
wayfinder
Plan a huge chunk of work (more than one agent session can hold) as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.
sap-transport-overview
System-wide inventory of open transport requests — every visible modifiable request, who owns it, how big it is, and supported risk signals such as empty/local requests, explicit locks, and confirmed manifest overlaps. Headers-only and cheap; NO source diffs. Use when asked "what transports are open in the system"…
timeline-creator
Create HTML timelines and project roadmaps with Gantt charts, milestones, phase groupings, and progress indicators. Use when users request timelines, roadmaps, Gantt charts, project schedules, or milestone visualizations.
okx-task-watch
监听任务进展 / 帮我盯着任务 / 任务有动静告诉我 / 历史消息 / 未读消息 / 未决策 / 待决策 / 继续监听 / task watch / user watch / monitor task progress / catch me up on tasks / outstanding decisions — OKX A2A user-session task-notification monitor: live long-poll via okx-a2a user watch (also drains backlog of past/missed/unread events on entry) plus…
pm-all
Skill "pm-all" from wei63w/pm-manager, covering user input, outline and shared workflow (all /pm- commands).
bootstrap-prd
Set up PRD-driven development infrastructure for a new project, including directory structure, templates, and roadmap.