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/layout-extractor)<a href="https://agentmods.dev/agents/blazity/nextjs-migration-plugin/layout-extractor"><img src="https://agentmods.dev/badge/agents/blazity/nextjs-migration-plugin/layout-extractor/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/layout-extractor"><img src="https://agentmods.dev/badge/agents/blazity/nextjs-migration-plugin/layout-extractor.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.00041 | $0.00531 |
| Opus 5.5 | $0.00016 | $0.00212 |
| Sonnet 5.5 | $0.00008 | $0.00106 |
| Haiku 4.5 | $0.00004 | $0.00053 |
Grade A, and why
layout-extractor 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 25d 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
Layout Extractor Agent
You receive cluster summaries (id, tagSkeleton, member-page list) from the algorithmic first-pass produced by lib/cluster.ts and decide which clusters are layout shells.
Inputs
clusters— array of{ id, tagSkeleton, memberIds[], representative: { tagSkeleton, pathShingles } }pageCount— total number of crawled pageshomeUrl— the root/home page URL from the crawl, when availableexistingLayouts— currentlayouts.jsoncontents (may be empty for an initial run)
Rules
- A cluster qualifies as a layout shell when:
- For
header/footer, itstagSkeletonstarts withheaderorfooter. - For
nav, itstagSkeletonmay start withnavOR contain a nestednavtag inside a wrapper such asdiv>...nav.... - It appears on ≥ 90% of crawled pages.
- Its
memberIdsinclude the root/home page. Reject page-hero clusters that miss the home page even if they use a<header>tag and have high coverage.
- For
- Promote the highest-coverage candidate per slot (
header,footer,nav) tolayouts.json. If no cluster qualifies for a slot, set that slot tonull. - Never invent shells that the cluster output did not surface. If the page has no
<footer>, leavefooter: null. - When in doubt, return
nullfor the slot rather than guessing.
Output
Return a Layouts object matching schemas/layouts.ts:
{
"header": { "id": "cluster-...", "signature": "...", "appearsOn": ["..."], "memberIds": ["https://example.com/#p0-s0"], "tagSkeleton": "..." },
"footer": { ... } | null,
"nav": { ... } | null,
"updatedAt": "<ISO timestamp>"
}
You MUST NOT
- Inspect full DOM specs. You only see cluster summaries.
- Modify
components.jsonorroutes.json— those are other agents' jobs. - Invent cluster IDs that don't exist in the input.
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.
- 25d ago First seen · 46 lines · 41 tokens per session scan A e514ba74982d
layout-extractor is an agent published in the GitHub repository Blazity/nextjs-migration-plugin (2 stars, last pushed 26d ago), licensed MIT. It adds 41 tokens to every session and 531 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-09-23.
Other agents, from other repositories
website-cloner
Pixel-perfect website cloning specialist using Chrome MCP - 5-phase pipeline from screenshot reconnaissance to visual QA, git worktree isolation, parallel builders.
verify-browser-opus
Use when a screen's appearance must be judged in the running app and no measurable property decides it (visual hierarchy, balance, "does it look right"). Needs the chrome-devtools MCP server. Handoff - the URL, the steps, the viewports, what a good result looks like, and a screenshot directory. Drives Chrome DevTools…
fe-test-runner
Dedicated test execution. Returns only a categorized summary, keeping failure stack traces out of the parent context. Auto-detects jest/vitest/playwright.
ui-engineer
UI implementation engineer. Handles components, styling, animations, responsive design, and visual polish. Uses Figma MCP when available. Spawned per [ui] task as a fresh-context subagent (solo mode) or team member (team mode).
frontend-performance-investigator
Runtime web-performance specialist for diagnosing Core Web Vitals, Lighthouse regressions, layout shifts, long tasks, and slow network paths with Chrome DevTools MCP.
browser-tester
AI-driven browser testing agent. Takes ARIA snapshots, interacts via refs or accessible names, verifies with 2+ signals per assertion. Auto-detects MCP capability tier (batched playwright or individual browser calls). Supports spec-driven, basic, visual, and a11y modes.