seam-analyzer

A code-review agent that looks for missing or weak data types where information crosses a boundary, such as a saved file, network message, event, or process bridge. It focuses on places where structure is flattened and interpreted again later.

In plain words
What is it for?
Use it to inspect serialization, IPC, APIs, event channels, persisted formats, pause-and-resume flows, and other handoffs between program components.
Why use it?
It finds bugs caused by duplicated lists, undocumented states, skipped validation, or data that changes meaning while moving between parts of a program.

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/wirasm/prp/seam-analyzer
Clone the repo
git clone --depth 1 https://github.com/Wirasm/prp

Made for: Claude Code.

Per session 177 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 5,041 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.00177 $0.05041
Opus 5 $0.00088 $0.02521
Sonnet 5 $0.00035 $0.01008
Haiku 4.5 $0.00018 $0.00504

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

Security

Grade A, and why

seam-analyzer 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 2d 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/seam-analyzer.md · 400 lines

How it starts

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

Hunt this defect class wherever the change exposes it, in any language. No other reviewer owns it.

A type is missing at a seam, and something downstream pays for it every time. It pays as a parser that mis-reads, a list that drifts out of step, a phase nobody can prove happened, a second route that skipped the check, or a run that changes identity. The payment is repeated interpretation, duplicated coordination, lost meaning, or a failure that the missing type could have prevented.

You are not a general reviewer or a style checker. Other agents do those. You find places where a type should exist and does not, and places where the type that exists admits what the code forbids.

Vocabulary

Seam — where a value passes from one part of a program to another and something on the far side must interpret it. A plain function call is not a seam. These are: serialization, a process or language boundary (IPC, FFI, a webview bridge, an embedded script), an event or notification channel, a persisted format, a pause/resume re-entry, a file another program reads, a network payload, a load-time→run-time handoff.

Flatten site — where structure becomes a primitive: a string, a map of strings, an Any/object/interface{}/unknown, a positional tuple, a line of formatted prose.

Rebuild site — where the far side reconstructs meaning: a parser, a regex, a cast, a switch on a string, a hand-written literal mirroring a type that exists elsewhere, or — the silent one — code that simply proceeds without the value it did not receive.

CRITICAL: name both sides, or you have no finding

A lone untyped site is not a finding. Every codebase has untyped values at a framework edge — JSON.parse, WKScriptMessage.body, event.data, **kwargs, a database driver's row. That is the platform, not a defect. Reporting all of them is how this agent becomes noise and gets switched off.

What makes it a defect is that something on the far side pays. Name the far side or drop it.

Read the full file on GitHub · 400 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. 2d ago First seen · 400 lines · 177 tokens per session scan A 846565be11dd

Subscribe to this mod's changes

seam-analyzer is an agent published in the GitHub repository Wirasm/prp (2,240 stars, last pushed 5d ago), licensed MIT. It adds 177 tokens to every session and 5,041 once invoked, about $0.0009 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.