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 skills add XuanRanL/loamwright-SEO-Skill --skill schema-generatorgit clone --depth 1 https://github.com/XuanRanL/loamwright-SEO-SkillWrote 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/xuanranl/loamwright-seo-skill/schema-generator)<a href="https://agentmods.dev/skills/xuanranl/loamwright-seo-skill/schema-generator"><img src="https://agentmods.dev/badge/skills/xuanranl/loamwright-seo-skill/schema-generator/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/xuanranl/loamwright-seo-skill/schema-generator"><img src="https://agentmods.dev/badge/skills/xuanranl/loamwright-seo-skill/schema-generator.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00076 | $0.05909 |
| Opus 5 | $0.00038 | $0.02955 |
| Sonnet 5 | $0.00015 | $0.01182 |
| Haiku 4.5 | $0.00008 | $0.00591 |
Grade A, and why
schema-generator 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 9d 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 — 543 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Schema Generator · JSON-LD @graph
Generates complete, validated JSON-LD structured data for blog posts. The head-level
article graph (meta.json :: schema_jsonld) uses the combined @graph pattern with
stable @id references; BODY supplemental blocks (workspace/{task}/schema.json)
use the blocks[] shape — one entry per rendered <script> tag, because
verify_post check 17 counts TAGS, not @graph members (see Step 11).
Rule 8 — no competitor domains in URL fields. Any
citation,sameAs,url, orisBasedOnvalue you emit must NOT point at a competitor/peer ("同行") domain.sameAs/urlare brand-owned (safe); if you ever emit acitationarray from the article's sources, run each URL throughpython -m scripts._core.competitor_domains --task {tid} --check-url "{url}"first.verify_postcheck 28 + the CITECOMP01veto scan the rendered schema, so a competitor URL here will block publish. See root CLAUDE.md Rule 8.
SEO-plugin coordination (READ THIS FIRST)
Before generating ANY schema type, read projects/{slug}/business-context.json :: wordpress.seo_plugin_schema_provided. This is an explicit list of @type values the project's SEO plugin (RankMath, Yoast, AIOSEO, etc.) already emits natively in <head> on every post. DO NOT regenerate those types in schema.json. Duplicating them produces:
- Either silent Google-side de-duplication (harmless but wastes bytes), OR
- Worse: competing
@idreferences that fragment entity-linking signals across head and body, hurting structured-data extraction confidence.
Canonical project-charlie example (RankMath Pro + global Breadcrumb JSON-LD enabled, 2026-05-21+):
"seo_plugin_schema_provided": [
"Article", "BlogPosting", "Organization", "Person",
"WebPage", "WebSite", "ImageObject", "BreadcrumbList"
]
Per the list above, for project-charlie the schema-generator should ONLY emit body-supplemental types not in the list, i.e.:
- ✅
FAQPage(always emit if FAQ section exists; highest AI-Overview citation value) — see Hard Rule 6, near-mandatory - ✅
ItemList(for listicle / comparison-review formats with a ranked list, OR any compared/tabular set of >=3 named entities — the default 2nd block; see Hard Rule 6) - ✅
Recipe,Course,Event,VideoObject,SoftwareApplication(format-dependent) - ❌
HowTo,Dataset,Q&A,SpecialAnnouncement— NEVER as a standalone top-level@type(Step 10 deprecated-type list;agents/schema-validator.md's T09 veto scan hard-rejects these as a primary type).HowTocontent may still be nested asArticle.mainEntity: HowToif a project'sseo_plugin_schema_provideddoesn't already coverArticlein head — do not emit it as its own top-level block. - ❌ Skip
BlogPosting,Organization,Person,BreadcrumbList,WebPage,WebSite,ImageObject,Article— RankMath handles all 8
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.
- 9d ago First seen · 543 lines · 76 tokens per session scan A f4773d823fa2
schema-generator is a skill published in the GitHub repository XuanRanL/loamwright-SEO-Skill (49 stars, last pushed 26d ago), licensed Apache-2.0. It adds 76 tokens to every session and 5,909 once invoked, about $0.0004 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-09-03.
Other skills, from other repositories
geo-platform-optimizer
Platform-specific AI search optimization — audit and optimize for Google AI Overviews, ChatGPT, Perplexity, Gemini, and Bing Copilot individually.
four-core-documents
Produce Part 3 of the 12-Part engagement: the four strategic-spine documents across 61 steps — 3.1 Business & SBU Analysis, 3.2 Segmentation Framework, 3.3 Brand Positioning & Communications, 3.4 DMFlow — with --doc single-document runs, --view v2 re-runs, and a --combined executive stitch. Triggers on…
continuous-improvement-loop
Run Part 12 of the engagement methodology — the continuous improvement loop that aggregates quarterly-review, customer-feedback, competitive, and operating signals into a Quarterly Product & Offering Improvement Brief for business leadership, plus fast 1-3 page ad-hoc briefs when a significant signal lands…
seo-plan
Build a 12-month SEO strategy and phased roadmap with industry templates (SaaS, ecommerce, local, publisher, agency). With fresh specialist outputs it runs as a dispatcher: scores four pillars — technical, content, topical, AI search — and makes the weakest pillar the plan's lead theme; missing specialists re-run only…
c2pa-metadata
Embed a C2PA provenance manifest into an AI-generated marketing asset (PNG, JPG, WebP, GIF, TIFF, MP4, MOV, WebM, MP3, WAV, PDF) via scripts/embed-c2pa.py — produces a signed copy of the file carrying IPTC digital-source-type AI claims, an optional c2pa.ai-disclosure assertion for EU AI Act Article 50 (applicable 2…
import-guidelines
Import brand guidelines — voice and tone rules, messaging, banned words and restrictions, channel styles, visual identity — and structure them into enforceable markdown files in the brand's guidelines layer, auto-classified by category, conflict-checked against the brand profile, and merged with existing rules rather…