Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/thisisAhsanIqbal/nextjs-seo-auditnpx agentmods add skills/thisisahsaniqbal/nextjs-seo-audit/semantic-layoutWrote 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/skills/thisisahsaniqbal/nextjs-seo-audit/semantic-layout)<a href="https://agentmods.dev/skills/thisisahsaniqbal/nextjs-seo-audit/semantic-layout"><img src="https://agentmods.dev/badge/skills/thisisahsaniqbal/nextjs-seo-audit/semantic-layout/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/skills/thisisahsaniqbal/nextjs-seo-audit/semantic-layout"><img src="https://agentmods.dev/badge/skills/thisisahsaniqbal/nextjs-seo-audit/semantic-layout.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.00047 | $0.00924 |
| Opus 5.5 | $0.00019 | $0.00370 |
| Sonnet 5.5 | $0.00009 | $0.00185 |
| Haiku 4.5 | $0.00005 | $0.00092 |
Grade A, and why
semantic-layout 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 2mo 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 — 96 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Semantic Layout
Audit the page for proper use of HTML5 semantic elements and accessibility.
Note: The
langattribute check is handled by the international-seo skill. Do not duplicate it here.
1. Required semantic elements
These elements must be present:
| Element | Missing = |
|---|---|
<header> |
❌ FAIL |
<main> |
❌ FAIL |
<footer> |
❌ FAIL |
<nav> |
❌ FAIL |
Report count if present: ✅ PASS "<tag> element found (N instance(s))"
2. Recommended semantic elements
These elements should be present:
| Element | Missing = |
|---|---|
<article> |
⚠️ WARN "Consider using for content structure" |
<section> |
⚠️ WARN |
<aside> |
⚠️ WARN |
<figure> |
⚠️ WARN |
3. Skip-navigation link
Check for accessibility skip links: <a href="#main-content">, <a href="#content">, or <a href="#main">
- Found → ✅ PASS
- Missing → ⚠️ WARN "Add skip-navigation link for accessibility"
4. Div-soup detection
Count <div> elements vs semantic elements (header, main, footer, nav, article, section, aside, figure):
| Condition | Status |
|---|---|
| Divs > 0 but zero semantic elements | ❌ FAIL "Restructure with semantic HTML" |
| Divs > 5× semantic element count | ⚠️ WARN "High div-to-semantic ratio" |
5. ARIA landmark roles
Check for these roles: banner, navigation, main, contentinfo, search
- Any found → ✅ PASS — list which roles are present
6. Layout suggestions
Single <main>
- 0
<main>elements → ⚠️ WARN "Wrap primary content in<main>" - Multiple
<main>→ ⚠️ WARN "Should have only one"
Headings inside semantic containers
- Count
<h2>,<h3>,<h4>that are NOT inside<section>,<article>,<aside>, or<main> - If any found → ⚠️ WARN "Wrap content blocks in
<section>or<article>"
Images without <figure>
- If > 3 images not wrapped in
<figure>→ ⚠️ WARN "Use<figure>/<figcaption>"
Date markup
- If
<time>elements found → ✅ PASS - If date patterns found in text but no
<time>elements → ⚠️ WARN "Wrap dates in<time datetime=\"...\">"
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.
- 2mo ago First seen · 96 lines · 47 tokens per session scan A 81a97697ebf9
semantic-layout is a skill published in the GitHub repository thisisAhsanIqbal/nextjs-seo-audit (7 stars, last pushed 8mo ago), licensed MIT. It adds 47 tokens to every session and 924 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.
semantic-layout compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| semantic-layoutthisisAhsanIqbal/nextjs-seo-audit | Skill | 7 | 8mo ago | MIT | A | 47 | Claude Code, Codex |
| podlite-markuppodlite/podlite-skills | Skill | 3 | 13d ago | MIT | A | 47 | Claude Code |
| podlite-verifypodlite/podlite-skills | Skill | 3 | 13d ago | MIT | A | 64 | Claude Code |
| wgmagent-frontier/wgm | Skill | 3 | 3d ago | MIT | A | 155 | Claude Code, Codex |
| ruggedagent-frontier/wgm | Skill | 3 | 3d ago | MIT | A | 182 | Claude Code, Codex |
| teach-meagent-frontier/wgm | Skill | 3 | 3d ago | MIT | A | 149 | Claude Code, Codex |
| quiz-meagent-frontier/wgm | Skill | 3 | 3d ago | MIT | B | 151 | Claude Code, Codex |