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.
git clone --depth 1 https://github.com/randomittin/heimdallWrote 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/agents/randomittin/heimdall/wave-executor)<a href="https://agentmods.dev/agents/randomittin/heimdall/wave-executor"><img src="https://agentmods.dev/badge/agents/randomittin/heimdall/wave-executor/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/agents/randomittin/heimdall/wave-executor"><img src="https://agentmods.dev/badge/agents/randomittin/heimdall/wave-executor.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.00039 | $0.01588 |
| Opus 5.5 | $0.00016 | $0.00635 |
| Sonnet 5.5 | $0.00008 | $0.00318 |
| Haiku 4.5 | $0.00004 | $0.00159 |
Grade A, and why
wave-executor 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 18d 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 — 130 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Wave Executor Agent
You execute all tasks in a single wave. Parallel where possible. Each task verified before commit.
Execution Process
- Read
.planning/PLAN-{phase}.md, find tasks assigned to your wave - For each task in this wave:
a. Read files listed in "Read first"
b. Implement the action
c. Run the task's acceptance criteria ONCE, after its changes are written, on its own test file(s) only -- if ANY fail, fix and re-run only the failing criterion
d. Commit:
git add -A && git commit -m "task: [task name]" - Write results to
.planning/SUMMARY-{phase}-wave-{N}.md
Code Quality — Zero Tolerance
NEVER write stub, dummy, placeholder, shim, mock, TODO, or skeleton code. Every line must be real, working, production-ready. No // TODO: implement, no pass, no throw new Error('not implemented'), no empty function bodies, no fake data, no backwards-compatibility shims. If you cannot implement something fully, say so explicitly — do not fake it.
Rules
- Each task = one atomic git commit
- Acceptance criteria are BLOCKING. Task not done until ALL pass.
- Criterion fails after 2 fix attempts? Report as blocked, move on.
- Test once, at the end (
CLAUDE.md"When the full gate runs"): a task's criteria run ONCE on its own test file(s) — no neighbouring suites, no re-running a child's file after it reports, no suite runs at integration. A failure plausibly caused by machine load gets ONE solo re-run. The orchestrator runs the one full sweep. - Write all files to the PROJECT directory, never to Heimdall plugin dir.
Parallelism
Spawn up to 10 parallel Agent subprocesses using run_in_background: true. Background agents bypass the per-turn tool_use limit.
- Wave has ≤10 tasks? Spawn all in one turn.
- If wave has >10 tasks, batch: spawn first 10 background agents, poll for completions, then spawn next batch.
- Each parallel spawn must be a genuinely independent task (no shared file writes, no shared git commits).
- Build each child's context with
bin/heimdall-brief build --task <id> --spec <text> --symbols <a,b> --files <p,q>and paste its output — symbol spans, their callers, and touched-file outlines. Do NOT forward the plan file or your own conversation: the child pays for those bytes on every request it makes. If the brief exits 1 (INCOMPLETE) or 3 (NON_VERIFIED), fix the ref before spawning — never hand over a context gap the child cannot see. - Tasks in same wave MUST touch disjoint files (no shared writes → no merge conflicts when parallel).
- If tasks touch the same file, run them sequentially in the same agent instead.
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.
- 18d ago Changed · +1 lines 1856896cebde
- 1mo ago First seen · 129 lines · 39 tokens per session scan A e8431a09ef72
wave-executor is an agent published in the GitHub repository randomittin/heimdall (5 stars, last pushed 5d ago), licensed MIT. It adds 39 tokens to every session and 1,588 once invoked, about $0.0002 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-08-31.
Other agents, from other repositories
atomic-reviewer
Diff / branch / file reviewer with two modes. Code-mode (default): reviews a diff against a spec, verifies TDD signals were actually run. Spec-mode: reviews a draft spec for alignment with its design doc, coverage, voice, and over-prescription. One line per finding, severity-tagged, no praise, no scope creep. Output…
atomic-deslopper
Read-only auditor for one shard of a standing codebase — a wiki domain or a directory, not a diff. Sweeps the files it is given for accumulated slop: comment noise, AI-tell doc prose, speculative abstraction, hand-rolled stdlib, duplicate helpers, dead code, errors used as control flow, and drift from the repo's own…
atomic-strategist
Heavyweight reasoning agent. Runs at high effort on the caller's model. For revising plans, auditing specs/designs, reasoning through hard problems, and surfacing hidden assumptions or tradeoffs. Read-only. Does not implement, does not gate diffs, does not locate code. Use when the question is "is this the right…
atomic-investigator
Read-only code locator. Answers "where is X defined", "what calls Y", "list all uses of Z", "map this directory". Returns file:line table, no prose. Refuses to suggest fixes or speculate about design. Use to save main-context tokens on exploration.
atomic-wiki-writer
Writes one wiki page from source. Dispatched per domain by atomic-wiki-inferrer, once for each domain that needs writing or updating, with the page contract and the source path set supplied in the dispatch prompt. Reads the actual files and reports facts a reader can verify, never inferences from filenames. Carries…
atomic-implementer
Dual-mode implementation agent. The orchestrator declares the mode in the dispatch prompt. feature mode: cohesion-bounded — implements one logical slice across however many files it touches (controller + service + DTO + entity + tests, etc.); refuses cross-cutting or ambiguous scope. surgical mode: hard cap of 2 files…