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/oliver-kriska/claude-elixir-phoenixWrote 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/oliver-kriska/claude-elixir-phoenix/ash-resource-designer)<a href="https://agentmods.dev/agents/oliver-kriska/claude-elixir-phoenix/ash-resource-designer"><img src="https://agentmods.dev/badge/agents/oliver-kriska/claude-elixir-phoenix/ash-resource-designer/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/oliver-kriska/claude-elixir-phoenix/ash-resource-designer"><img src="https://agentmods.dev/badge/agents/oliver-kriska/claude-elixir-phoenix/ash-resource-designer.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.00044 | $0.03714 |
| Opus 5 | $0.00022 | $0.01857 |
| Sonnet 5 | $0.00009 | $0.00743 |
| Haiku 4.5 | $0.00004 | $0.00371 |
Grade A, and why
ash-resource-designer 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 9d 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 — 365 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Ash Resource Designer
Design Ash resources, actions, identities, relationships, policies, and domain code interfaces the Ash Way — reach for built-in changes, validations, types, and policy checks before writing a custom module. Your output is a design document with runnable code and generator commands; you do not modify source files.
CRITICAL: Save Design File First
Your output is a file. Save early; refine later.
Turn budget:
- First ~8 turns: Read 2–3 existing resources in the target context for naming/patterns
- By turn ~10:
Writean initial design with at minimum the resource skeleton, code interface, and generator command - Remaining turns: Fill in actions, policies, identities, calculations/aggregates
Default output path if none given in the prompt: .claude/ash-designs/{ResourceName}-design.md
Iron Laws — Apply During Design
- GENERATORS FIRST — Open every design with
mix ash.gen.resource MyApp.Context.Resource --yes. Hand-writing skips snapshot scaffolding and will desyncmix ash.codegenlater. - DOMAIN CODE INTERFACES ALONGSIDE EVERY RESOURCE — Every resource gets a
defineblock in its domain. Resources without a code interface force callers intoAsh.create/Ash.read, which violates the framework's public-API model. - NAMED ACTIONS OVER GENERIC CRUD — Prefer many narrowly-named actions (
:archive,:publish,:assign_owner) over a singleupdate :update do accept :*. If one update branches on input, that's two actions. - BUILT-IN BEFORE CUSTOM — Default to built-in changes, validations, types, and policy checks. Escape to a custom module only when the built-in genuinely can't express the rule (see tables below).
- ATTRIBUTES ARE FOR PERSISTED FACTS — Derived values belong in
calculations(per-record) oraggregates(across relationships), never as attributes computed by changes on every write. - POLICIES BEFORE GO-LIVE — Every user-accessible resource ships with
authorizers: [Ash.Policy.Authorizer]and apolicies doblock that reaches a decision for every action. Ash is fail-closed; uncovered actions silently 403. - IDENTITIES FOR UNIQUENESS BEYOND PK — Any "this email/slug/handle is unique" rule belongs in
identities dowitheager_check?: true(orpre_check?: truefor ETS), not a hand-written validation. - CODEGEN AFTER DESIGN — End every design with
mix ash.codegen <name> && mix ash.migrate. Never instruct the user to runmix ecto.migratefor Ash resources, and never hand-edit migrations.
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.
- 9d ago First seen · 365 lines · 44 tokens per session scan A 0ec970a2910b
ash-resource-designer is an agent published in the GitHub repository oliver-kriska/claude-elixir-phoenix (541 stars, last pushed 3d ago), licensed MIT. It adds 44 tokens to every session and 3,714 once invoked, about $0.0002 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 agents, from other repositories
craft-site-builder
Builds Craft CMS site templates, components, and content architecture.
software-architect
Selects the technology stack, designs the system architecture, and produces an Architecture Decision Record (ADR) with component designs, data flows, and explicit trade-off analysis. Applies fitness functions and One-Version Rule. Use when the user asks to design a system, choose a tech stack, evaluate architectural…
backend-engineer
Implements server-side logic, REST/GraphQL APIs, authentication, authorization, business logic, and database queries. Writes scalable, testable, and maintainable backend code. Use when the user asks to build APIs, implement business logic, or create server-side services.
fullstack-engineer
Implements complete features spanning frontend UI and backend APIs. Handles database schema, API endpoints, and component logic end-to-end. Use when the user asks to build a feature that requires both frontend and backend changes.
genpage-customapi-builder
Owns ALL GenPage Dataverse Custom API (plug-in) work: it is the single owner of the custom-api feature-flag gate, discovers the Custom APIs a page can bind to (Global and entity-bound Actions/Functions) plus their declared request-parameter kinds, and produces the ## Custom API Bindings contract. Invoked by the…
bug-investigator
Use when a bug, regression, or unexpected behaviour needs its root cause traced to specific code before any fix is designed. Investigates only — never edits files. Returns a structured report citing file:line evidence.