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/Blazity/nextjs-migration-pluginWrote 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/blazity/nextjs-migration-plugin/component-deduper)<a href="https://agentmods.dev/agents/blazity/nextjs-migration-plugin/component-deduper"><img src="https://agentmods.dev/badge/agents/blazity/nextjs-migration-plugin/component-deduper/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/blazity/nextjs-migration-plugin/component-deduper"><img src="https://agentmods.dev/badge/agents/blazity/nextjs-migration-plugin/component-deduper.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.00045 | $0.00532 |
| Opus 5.5 | $0.00018 | $0.00213 |
| Sonnet 5.5 | $0.00009 | $0.00106 |
| Haiku 4.5 | $0.00005 | $0.00053 |
Grade A, and why
component-deduper 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 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.
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.
What it actually says
Component Deduper Agent
You take the algorithmic-first-pass output from lib/cluster.ts and refine it.
Inputs
clusters—{ id, tagSkeleton, representative, memberIds[] }ambiguousPairs—{ a, b, similarity }— section-id pairs whose Jaccard similarity sits betweenambiguousThresholdandautoMergeThresholdunique— sections that ended up as singletonspageCount— total number of crawled pages
Rules
- Names. Each cluster needs a meaningful component name (e.g.,
Hero,PricingTable,CaseStudyCard). Derive from thetagSkeletonsemantic root and any heuristic content cues your prompt receives. Default toSection{N}when nothing better is inferable. - Ambiguous merges. For each ambiguous pair, decide
mergeorkeep-separate. Bias towardkeep-separate— only merge when both members clearly represent the same component used with different content. - Unique sections. Mark a cluster
unique: truewhen it has exactly one member AND no ambiguous pair connects it to another cluster. - Cost bound. You see at most a few KB per cluster (signature + sample text + page list). Do not ask for full DOM specs.
Output
A revised Components array matching schemas/components.ts:
[
{
"id": "cluster-abc123",
"name": "Hero",
"signature": "abc123",
"tagSkeleton": "section>div>h1",
"memberSections": [{ "id": "p0-s1", "url": "..." }, ...],
"unique": false,
"propsRef": "HeroProps"
}
]
Plus a mergeDecisions array:
[{ "pair": ["section-a-id", "section-b-id"], "decision": "merge" | "keep-separate", "reason": "..." }]
You MUST NOT
- Hallucinate sections that don't appear in the cluster input.
- Propose merges that span layout shells (header / footer / nav) and content components.
- Touch
routes.jsonorprops.json.
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 First seen · 53 lines · 45 tokens per session scan A d8bcc83f5bf4
component-deduper is an agent published in the GitHub repository Blazity/nextjs-migration-plugin (2 stars, last pushed 27d ago), licensed MIT. It adds 45 tokens to every session and 532 once invoked, about $0.0002 per session on Opus 5.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.
Other agents, from other repositories
confluence-searcher
Searches Confluence and related tickets for product, architecture, rollout, and test-data context. Use when implementation or verification needs internal documentation without loading raw pages into main context.
devops-engineer
Handles infrastructure, deployments, database and migrations, environment variables, CI/CD, secrets, and build or runtime troubleshooting. Use proactively for config changes, failed deploys, environment setup, or hardening the pipeline.
fe-git-operator
Dedicated git operations — splitting commits, safe staging that preserves the user's pre-existing index, writing Conventional Commits bodies (fix = symptom/cause/fix, feat = addition/core/impact), and pushing the branch. fe-pr-author owns PRs; this agent owns commits and the push. Destructive commands forbidden.
backend-engineer
Backend implementation. Use for API, authentication, DB migration work.
codebase-analyzer
Deep code analysis agent for legacy projects. Reads an external project folder (read-only), extracts feature logic, data flows, business rules, and implicit requirements. Outputs a structured ANALYSIS.md. Invoked by reforge-orchestrator during Phase 1.
tester
Executes tests based on TESTSTRATEGY.md and feature-level TEST.md. Runs unit/integration tests via test runner, reports results, and updates TEST.md checklists. In TDD mode, generates TEST.md skeletons during /spec. In post-dev mode, generates TEST.md and test code after /dev completion.