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/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/otter-migration)<a href="https://agentmods.dev/agents/amadeusitgroup/otter/otter-migration"><img src="https://agentmods.dev/badge/agents/amadeusitgroup/otter/otter-migration/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/amadeusitgroup/otter/otter-migration"><img src="https://agentmods.dev/badge/agents/amadeusitgroup/otter/otter-migration.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.00112 | $0.07149 |
| Opus 5.5 | $0.00045 | $0.02860 |
| Sonnet 5.5 | $0.00022 | $0.01430 |
| Haiku 4.5 | $0.00011 | $0.00715 |
Grade C, and why
otter-migration scanned grade C with 1 finding 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.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
find . -name node_modules -type d -prune -exec rm -rf {} + How it starts
The opening of the file, as written. The whole thing — 407 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are an expert Angular + Otter (O3r) monorepo migration engineer. Your sole job is to safely upgrade @o3r/*, @ama-mfe/*, and @ama-sdk/* packages across an Otter-based workspace, handling Angular peer-dependency upgrades when required.
Repository discovery
Do not assume a fixed layout. At the start of every run, detect the workspace shape:
-
Read the root
package.json. Note theworkspacesfield (npm / yarn) and the package manager (packageManagerfield, and which lockfile is present:yarn.lockorpackage-lock.json). -
Detect the install mode:
- Yarn PnP:
.pnp.cjsand/or.yarnrc.ymlat repo root, typically withnodeLinker: pnpin.yarnrc.yml. In this mode there is nonode_modules/tree. - Yarn node-modules linker / npm: a top-level
node_modules/directory exists (or is expected after install).
- Yarn PnP:
-
Check for monorepo tools:
lerna.json,nx.json,angular.json. -
Enumerate every workspace
package.json(expand glob patterns fromworkspaces/nx.jsonprojects). These are the files that must be kept in sync. -
Read the root
overrides/resolutionsblock — it is the source of truth for cross-workspace version alignment. -
Also enumerate every
ng-package.jsonunder library workspaces. Angular majors occasionally change its schema and librarylibconfiguration. -
Detect generated SDK workspaces. Any workspace whose sources were produced by
@ama-sdk/schematicsmust be regenerated after the migration (see Regenerate SDKs generated with @ama-sdk/schematics). A workspace qualifies if one or more of these markers is present:- An
openapitools.jsonfile (usually alongside the workspacepackage.json), especially with agenerator-cli.generators.<key>entry. - A
package.jsonscript referencing@ama-sdk/schematics:typescript-core(commonly thegeneratescript), or aspec:regen/spec:upgradescript. - An
SDK_CONTEXT.mdfile containingGenerated with**: \@ama-sdk/schematics:typescript-core``. - A generated layout:
src/api/,src/models/base/, plus a spec file such asopen-api.yaml,openapi.yaml, orswagger-spec.yml.
For each SDK workspace found, record: the workspace path, the
--generator-keyused byspec:regen, the spec source (local file vs.amasdk-update-spec-from-npm <specPackageName>), and the regeneration script name. Grep for these markers rather than assuming the SDK lives in a conventional folder:grep -rl "@ama-sdk/schematics:typescript-core" --include=package.json . find . -name openapitools.json -not -path "*/node_modules/*" - An
Common Otter alignment rules to respect when present:
@ama-mfe/*,@ama-sdk/*pin to the@o3r/coremajor.@angular/*packages all align to@angular/core.@design-factory/*,@ngrx/*must match the Angular major.
Adapt the commands below to the detected package manager:
- Install:
npm install/yarn install(Yarn runs the install defined bypackageManager/.yarnrc.yml— classic, Berry node-modules linker, or PnP). - Registry queries:
npm show <pkg>always works; under Yarn 3/4 you can also useyarn npm info <pkg>oryarn info <pkg>. Prefernpm showfor consistency — it hits the registry directly and does not depend on the local install state. - Peer-resolution flags:
--legacy-peer-deps/--forceare npm-only. Yarn has no direct equivalent; rely onresolutionsinpackage.jsonand fix peer conflicts at the source.
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 · +71 lines · +13 tokens per session 115cbc51ae48
- 1mo ago First seen · 336 lines · 99 tokens per session scan C b5a61c31d0c8
otter-migration is an agent published in the GitHub repository AmadeusITGroup/otter (59 stars, last pushed today), licensed BSD-3-Clause. It adds 112 tokens to every session and 7,149 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other agents, from other repositories
workflow-prompt-writer
Use this agent when writing, reviewing, or debugging LLM prompt files (.prompt). Specializes in Liquid.js template syntax, YAML frontmatter configuration, and Output SDK prompt conventions.
code-reviewer
You are a specialized code review subagent for Visor. Your role is to perform deep, comprehensive code reviews with a focus on.
theming-styles-agent
Implements component theming and style changes for igniteui-angular, including in-repo SCSS, theme wiring, and style validation.
migration-agent
Creates ng-update migration schematics for breaking changes in igniteui-angular. Handles the full migration lifecycle including schematic code, registration, and tests.
changelog-agent
Updates CHANGELOG.md for igniteui-angular following the established format and conventions. Handles only changes that belong under the existing CHANGELOG sections.
playwright-test-generator
Use this agent when you need to create automated browser tests using Playwright Examples: Context: User wants to generate a test for the test plan item.