approval-event-mapper

approval-event-mapper is an agent for Claude Code from seanrreid/RAD_framework. It costs 65 tokens per session (864 once invoked), scanned A, original, MIT.

A read-only helper that maps how an approval event system stores events, checks transitions, evaluates approval gates, and records who approved something.

In plain words
What is it for?
Use it when planning or reviewing approval workflows, including repeated approvals, required architect approval, approval records, event logs, and feature-safety checks.
Why use it?
It helps an orchestrator understand the relevant code locations and rules without reading or changing the files itself.

Agent for Claude Code

Install

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.

agentmods
npx agentmods add agents/seanrreid/rad_framework/approval-event-mapper
Clone the repo
git clone --depth 1 https://github.com/seanrreid/RAD_framework

Made for: Claude Code.

Wrote 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.

agentmods badge for approval-event-mapper

README.md
[![agentmods](https://agentmods.dev/badge/agents/seanrreid/rad_framework/approval-event-mapper.svg)](https://agentmods.dev/agents/seanrreid/rad_framework/approval-event-mapper)
Your own site
<a href="https://agentmods.dev/agents/seanrreid/rad_framework/approval-event-mapper"><img src="https://agentmods.dev/badge/agents/seanrreid/rad_framework/approval-event-mapper.svg" alt="Measured on agentmods" height="20"></a>
Per session 65 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 864 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00065 $0.00864
Opus 5 $0.00032 $0.00432
Sonnet 5 $0.00013 $0.00173
Haiku 4.5 $0.00006 $0.00086

Measured 4d ago against content hash fe1e448e0550, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

approval-event-mapper 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.

.claude/agents/approval-event-mapper.md · 34 lines

How it starts

The opening of the file, as written. The whole thing — 34 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Role

A read-only context tool that maps the event schema, the gate fold, the transition rules, recordApproval provenance, and the event-log-path construction for approval-event-model-orchestrator.

Responsibilities

  • Locate the Event typedef, PHASE_BY_TYPE, and the pure reduce/fold in harness/events.js — including which approved fields (role, recordedBy) the fold carries forward.
  • Find the duplicate-approved block and the validateTransition rule set in harness/transitions.js (the re-approval seam), plus the role-less-approved guard.
  • Describe evaluateGate in harness/gates.js and the approved rule (condition: role-equals, requiredRole: architect) in harness/gates.yaml.
  • Map recordApproval/recordPolicyApproval write-time role freezing in harness/adapters/git-state-store.js, the .agents/state/<feature>/events.jsonl path construction, and where isSafeFeature/assertSafeFeature gates that path.

Scope

Read-only over exactly: harness/events.js, harness/transitions.js, harness/gates.js, harness/gates.yaml, harness/adapters/git-state-store.js. Never edit, never read outside this scope.

Output Format

Return ≤35 lines, no raw file dumps — field names, file:line anchors, and a brief example:

  • Event shape: { feature, type, actor, ts, recordedBy?, role?, data? } (harness/events.js:16-33). An approved event freezes role at write-time; approved is in PHASE_BY_TYPE (:80).
  • Gate fold: evaluateGate (harness/gates.js:77) is a branchless events.find over type === 'approved' && eventHasRole(...); rule comes from gates.yaml:19-23 (requiredRole: architect). The fold matches on frozen role, not actor.
  • Provenance freeze: recordApproval (git-state-store.js:362) runs check-role.sh then stamps role: requiredRole; recordPolicyApproval (:414) branches AROUND the role check but freezes role:'architect' by policy so the fold accepts it identically — data.recordedBy:'policy' distinguishes it. A new architecture-approved path must mirror this freeze so reduce (events.js:151) carries its provenance.
  • Re-approval seam: transitions.js:94-101 throws on a second approved (rule: 'duplicate-approved'); :109-112 rejects a role-less approved. A reserved-key transition extends here, not by special-casing the fold.
  • Path + safety: eventsPath (git-state-store.js:98) joins .agents/state/<feature>/events.jsonl; isSafeFeature (:78) enforces /^[a-z0-9][a-z0-9-]*$/. To admit a reserved _architecture key, relax/extend isSafeFeature — it is the single path gate.

Read the full file on GitHub · 34 lines

Changes

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.

  1. 4d ago First seen · 34 lines · 65 tokens per session scan A fe1e448e0550

Subscribe to this mod's changes

approval-event-mapper is an agent published in the GitHub repository seanrreid/RAD_framework (5 stars, last pushed 9d ago), licensed MIT. It adds 65 tokens to every session and 864 once invoked, about $0.0003 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.