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 lionkiii/claude-seo-skills --skill seo-obsidian-kbgit clone --depth 1 https://github.com/lionkiii/claude-seo-skillsWrote 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/lionkiii/claude-seo-skills/seo-obsidian-kb)<a href="https://agentmods.dev/skills/lionkiii/claude-seo-skills/seo-obsidian-kb"><img src="https://agentmods.dev/badge/skills/lionkiii/claude-seo-skills/seo-obsidian-kb/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/lionkiii/claude-seo-skills/seo-obsidian-kb"><img src="https://agentmods.dev/badge/skills/lionkiii/claude-seo-skills/seo-obsidian-kb.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.00035 | $0.02556 |
| Opus 5 | $0.00017 | $0.01278 |
| Sonnet 5 | $0.00007 | $0.00511 |
| Haiku 4.5 | $0.00003 | $0.00256 |
Grade A, and why
seo-obsidian-kb 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 12d 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 — 297 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/seo obsidian-kb
Build an Obsidian knowledge base from any product website's sitemap. Uses Python for fast bulk-fetching and parallel Claude agents for quality content analysis and MD generation.
Usage
/seo obsidian-kb --sitemap <URL> --product "<Name>" [--vault <path>] [--base-path <path>]
Parameters:
--sitemap(required): Sitemap URL (e.g.,https://www.zoho.com/campaigns/sitemap.xml)--product(required): Product name for folder and tagging (e.g.,"Zoho Campaigns")--vault(optional): Obsidian vault path. Default:~/Documents/Obsidian Vault--base-path(optional): URL base path prefix (e.g.,/campaigns/). Auto-detected if omitted.
What You Must Do When Invoked
Follow these steps in order. Do not skip steps.
Step 1 — Ensure dependencies are installed
python3 -c "import aiohttp, bs4, lxml" 2>/dev/null || python3 -m pip install aiohttp beautifulsoup4 lxml -q --break-system-packages
Step 2 — Run the Python fetcher
python3 ~/.claude/skills/seo-obsidian-kb/fetch_pages.py \
--sitemap "SITEMAP_URL" \
--output /tmp/seo-obsidian-kb-pages.json \
--base-path "BASE_PATH" \
--concurrency 15
Replace SITEMAP_URL and BASE_PATH with the user's values (or omit --base-path for auto-detection).
Read the output JSON silently. Present a clean summary:
Fetched: X / Y pages
Categories: {category: count, ...}
Domain: example.com
If total_pages is 0: stop with "No pages found. Check the sitemap URL."
If total_pages > 300: warn the user and ask if they want to proceed or limit scope.
Step 3 — Create vault structure
Derive the product folder name from --product by lowercasing and hyphenating (e.g., "Zoho Campaigns" → "zoho-campaigns").
Create directories:
{vault}/
_HQ/ # Only if it doesn't exist
_SEO Command Center.md
_Templates/
{product-folder}/
{category}/ # One folder per category from the JSON
If _HQ/_SEO Command Center.md already exists, update it to add the new product row — do NOT overwrite.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 12d ago First seen · 297 lines · 35 tokens per session scan A 174913113d1d
seo-obsidian-kb is a skill published in the GitHub repository lionkiii/claude-seo-skills (20 stars, last pushed 3mo ago), licensed MIT. It adds 35 tokens to every session and 2,556 once invoked, about $0.0002 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-08-30.
Other skills, from other repositories
ln-31-performance-optimizer
Profiles and improves a measured latency, throughput, CPU, memory, or I/O problem. Not for speculative tuning or cosmetic refactoring.
session-handoff
Create consistent session handoff documents for context transfer between sessions. Use when closing a session, reaching 75% token consumption, or when user requests handoff. Ensures proper YAML headers for metrics collection, LF line endings, and complete documentation of progress, decisions, and next steps.
megg-state
Hand off an unfinished session to the next one — what's done, what's next, what's blocked.
megg-learn
Save a project fact, decision or gotcha so your next session already knows it.
seo-images
Image SEO audit for a URL or domain. Pulls raw image inventory via Firecrawl, then audits alt-text quality, modern-format coverage (WebP / AVIF), responsive sizing (srcset / sizes), lazy-loading and LCP signals (loading, fetchpriority, decoding), CLS-safe dimensions, descriptive file names, and ImageObject JSON-LD.…
seo-technical-audit
Focused one-shot technical SEO audit for a domain. Crawlability, indexability, security, mobile, structured data, JS rendering — single-pass deliverable, not a diff. Distinct from seo-drift (which tracks changes over time) and from seo-page (which audits keywords/traffic for one URL, not technical health). Use when…