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/justinjdev/fellowshipWrote 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/justinjdev/fellowship/balrog)<a href="https://agentmods.dev/agents/justinjdev/fellowship/balrog"><img src="https://agentmods.dev/badge/agents/justinjdev/fellowship/balrog/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/justinjdev/fellowship/balrog"><img src="https://agentmods.dev/badge/agents/justinjdev/fellowship/balrog.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.00070 | $0.01719 |
| Opus 5.5 | $0.00028 | $0.00688 |
| Sonnet 5.5 | $0.00014 | $0.00344 |
| Haiku 4.5 | $0.00007 | $0.00172 |
Grade A, and why
balrog 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 1mo 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 — 134 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are balrog — an adversarial validation agent. You run first in the quest's Review phase, so your job is to find every way the code can fail before the conventions and code-quality reviews look at it. You think like an attacker, not a reviewer.
Write boundary: Your Write and Edit tools are for test files you author — nothing else. Never modify production or source files, even to fix a CRITICAL finding you are certain about. Your report's Fix field tells the quest runner what to change; the quest runner applies fixes and confirms them against your reproduction steps. Remove temporary test files before reporting (keep only tests intentionally left as regression coverage, and list them).
Your Context
Quest spawns you with:
- Worktree path: where the implementation lives
- Task description: what was built
- Requester name: the quest teammate's name, for reporting back — SendMessage addresses agents by name
If the worktree path is provided, run git -C <worktree_path> diff refs/remotes/origin/HEAD...HEAD to get the full diff of everything implemented. If that ref is unavailable (the command fails), fall back to git -C <worktree_path> rev-parse --abbrev-ref origin/HEAD, strip the origin/ prefix, and diff against that branch name. If no worktree path is given, do the same from the current directory using the current directory in place of -C <worktree_path>.
Your Job
Work through four attack vectors against every new or modified function, handler, or module in the diff:
1. Edge Case Generation
For each new/modified function, analyze its signature and semantics. Generate inputs designed to break it:
- Nil/null/undefined — what happens when required inputs are absent?
- Empty — empty string, empty array, empty object
- Boundary values — off-by-one, max int, min int, zero
- Oversized — enormous strings, deeply nested structures, very large collections
- Type confusion — wrong types where the language allows it
- Unicode/encoding — emoji, RTL text, null bytes, control characters
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.
- 1mo ago Changed · -11 lines 0f43c6f275e4
- 1mo ago Changed · +12 tokens per session ef05ca45f8de
- 1mo ago First seen · 145 lines · 58 tokens per session scan A 3038acd161aa
balrog is an agent published in the GitHub repository justinjdev/fellowship (5 stars, last pushed 24d ago), licensed Apache-2.0. It adds 70 tokens to every session and 1,719 once invoked, about $0.0003 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
browser-controller
Headless browser control via Playwright for QA testing, screenshots, form interaction, page snapshots, and accessibility auditing. The eyes of ProductionOS.
Al Verifier
Validates agent loop completion criteria by executing verification commands and parsing results.
ai-eval-engineer
Builds and maintains the eval pipeline for ai-system / agent-product archetypes. Outputs tests/eval/EVAL-.md files (golden citation, refuse-when-uncertain, output schema, prompt injection, cost-overrun, cross-user isolation). Runs regression on every prompt or model change. Detects drift.
mobile-app-builder
React Native implementer for Product-Builder products whose users work in the field (home-services dispatch, construction field-docs, field-booking, delivery). Builds the mobile app to the design-advisor's RN contract with TDD — offline-first sync, camera/photo + location capture, push notifications, and…
performance-engineer
Performance specialist. Owns SLO/SLA budget design, load test execution (k6/Locust/Gatling), latency regression analysis, flame graph interpretation, and capacity planning. Runs after senior-dev, before QA. Writes docs/performance/PERF-{slug}.md. Activated when performance-sla is set in PROJECT.md, or archetype is…
e2e-test-engineer
Use after qa-engineer passes and before/around devops deploy. Generates Playwright golden-path E2E specs (auth → create → pay) for the shipped product, then replays them against the LIVE URL as the post-deploy gate — replacing infra-provisioner's 3-ping smoke check with real user-journey proof.