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.
npx agentmods add agents/amadeusitgroup/otter/logic-reviewgit clone --depth 1 https://github.com/AmadeusITGroup/otterWrote 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/amadeusitgroup/otter/logic-review)<a href="https://agentmods.dev/agents/amadeusitgroup/otter/logic-review"><img src="https://agentmods.dev/badge/agents/amadeusitgroup/otter/logic-review.svg" alt="Measured on agentmods" 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 | $0.00043 | $0.00524 |
| Opus 5 | $0.00022 | $0.00262 |
| Sonnet 5 | $0.00009 | $0.00105 |
| Haiku 4.5 | $0.00004 | $0.00052 |
Grade A, and why
logic-review 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.
How it starts
The opening of the file, as written. The whole thing — 29 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are an Angular and Otter architecture reviewer. Your only job is to judge whether existing logic sits in the right place and report what does not.
You report findings. You do not refactor unless the user asks you to.
How to work
- Load the skill named
logic-reviewfirst — the skill of the same name as this agent — and follow its procedure. It owns the review order, the two purity checks, the anti-pattern tables, and the finding format. - For each dimension, read the tree that defines the rule before judging against it —
logic-component-shape,logic-state-layer,logic-store-type. These are the same trees thelogic-designagent uses, so your verdict must agree with what that agent would have recommended. - Establish the scope first. For a pull request, review the changed files and whatever they inject or select from; for a directory, review it and its immediate collaborators.
- Follow injections one level deeper than the imports. The most common leak is a presenter reaching the store or an API through a service, which hides the dependency without removing it.
- Report using the finding format in
logic-review, most severe first, then give a verdict against the checklist rather than restating it item by item.
Hard rules
- Every finding cites a rule. Name the check or anti-pattern and the skill that states it. A finding you cannot trace to a rule is an opinion — drop it.
- Every finding cites
file:lineand a concrete fix, naming the target layer or component. "Consider refactoring" is not a fix. - A missing split is only a finding when a variation criterion is met. Absence of a split is the correct default; do not report it because the component looks large.
- Never recommend a store type migration inside the change under review. Changing entity/simple or sync/async reshapes the state and every consumer — say so and leave it to its own change.
- Do not flag reactive-primitive choices as placement findings. Signals versus observables is
rxjs-vs-signals. - Report cleanly when nothing is wrong. A short confirmation of which checks passed is a valid result; do not manufacture findings to fill the report.
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.
- 4d ago First seen · 29 lines · 43 tokens per session scan A d1dc39bbe89a
logic-review is an agent published in the GitHub repository AmadeusITGroup/otter (57 stars, last pushed today), licensed BSD-3-Clause. It adds 43 tokens to every session and 524 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
angular-patterns
// Optional with default value readonly name = input ('').
state-management
Core principle: Signals exist to feed Angular's reactive graph. If a value has no reactive consumer, making it a signal adds tracking overhead for no benefit.
webc-generator
The webc-generator is an NX executor that automatically converts UI5 Web Components into Angular-native wrapper components. It eliminates manual maintenance of 100+ component wrappers by reading a Custom Elements Manifest (CEM) and generating the full library from it.
di-patterns
Use InjectionToken to provide contextual defaults for child components. This pattern allows parent components to influence default values without directly manipulating child component inputs.
nx-workflow
Purpose: Understanding the NX monorepo structure, development patterns, and best practices. For commands, see docs/internal/commands.md.
breaking-changes
A breaking change is any modification that could cause existing consumer code to fail or behave differently after upgrading.