Build seo-audit Skill (audit/apply/verify) aus GEO+SEO-Material #11
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Hintergrund
Wir haben aus den letzten Issues folgendes Material:
docs/geo-seo-guideline.md(589 Zeilen, Princeton-Paper-Empirie + 8 Hebel + 5 Stack-Adapter + Pre/Post-Launch-Checkliste + Maintenance + Quellen)templates/base.htmlSchema-Slot +render.shschema:Block (commitd3a2bdc)tools/anti-ai-lint.py+tools/anti-ai-blacklist.yaml(commitb123524)<!-- anti-ai-allow: term -->(commit4f25d74)m will das als wiederverwendbaren Skill für künftige Web-Projekte. Skill-Name:
seo-audit.Aufgabe (Inventor)
Designe und baue den
seo-auditSkill. Nutze daswrite-a-skillSkill für proper structure, progressive disclosure, und bundled resources.Drei Modi
audit <project-dir>— Bestandsaufnahme:apply <project-dir>— Empfehlungen umsetzen oder als Issues anlegen:--issueso.ä.)verify <url>— Live-Validation:Stack-Adapter (auto-detect)
Anhand vorhandener Files erkennen, welcher Stack:
schema:Block, llms.txt unter sites//<Script type="application/ld+json">in layout<script>injection in<head>Reports und apply-Aktionen sollen stack-spezifisch sein.
Bundled Resources (Skill-Verzeichnis)
Unter
~/.claude/skills/seo-audit/:SKILL.md— Skill-Definition mit Frontmatter (name, description) und Anweisungen. Nutzewrite-a-skillfür die Struktur.references/guideline.md— Verweis (oder Kopie) auf m/onepagerdocs/geo-seo-guideline.md. Decide: hardlink/copy oder URL-Verweis. Bei copy: dokumentiere Sync-Kadenz.references/blacklist.yaml— Anti-AI-Vokabel-Blacklist (referenziere oder kopiere von m/onepagertools/anti-ai-blacklist.yaml).templates/llms.txt.template— Generisches Template mit Placeholders.templates/robots.txt.template— mit AI-Crawler-Direktiven aus der Guideline (Default: alle Bots erlauben).templates/schema-snippets/{person,organization,article,product,faqpage,localbusiness}.json— JSON-LD Vorlagen.references/checklist.md— Pre/Post-Launch Checkliste aus der Guideline (kopiert).Out of Scope
/schedule-Aufgabe).Speicherort + Commit
Skills liegen unter
~/.claude/skills/was Symlink in~/.dotfiles/.claude/skills/ist. Du erstellst die Files dort und committest am Ende in m/dotfiles (nicht m/onepager). Branch:mai/<your-name>/seo-audit-skillo.ä. im dotfiles-repo.Check
cd ~/.dotfiles && git statusum den Pfad zu verifizieren.Inventor-Workflow (GATED)
Laut mai-head SKILL.md:
/write-a-skillals Hilfe."DESIGN READY FOR REVIEW"und parke. NICHT selbst nach main mergen, NICHT selbst zu coder shiften.Priorität
p2 — strategisches Tool für künftige Web-Projekte, kein akuter Blocker.
Shift Progress [shift-1]
Worker: cronus (role: inventor)
Duration: 11m
Status: progress
Progress
Shift-1 (inventor) abgeschlossen. seo-audit Skill in m/dotfiles@mai/cronus/seo-audit-skill (commit 4e6c6c6, 20 files, 2618 LoC). Drei Modi (audit/apply/verify) + Stack-Adapter onepager/nextjs/fresh/nginx/generic. Bundled: SKILL.md (165 LoC), 7 references inkl. Kopien von docs/geo-seo-guideline.md und tools/anti-ai-blacklist.yaml mit @-SHA-Headern + quartalsweiser Sync, 6 Schema-Templates, llms.txt + robots.txt Templates, 4 Scripts. audit.py funktioniert real auf 59 Sites (mean 57.2/100). DESIGN READY FOR REVIEW — Gate für m vor coder-shift.
Next Steps
Shift-2 (coder) — implementation complete
Branch:
mai/cronus/seo-audit-skillin m/dotfiles, latest commit 3892328.Was umgesetzt wurde
audit.pyAnti-AI lint mit Whitelist-Honoring. Subprocess-zu-tools/anti-ai-lint.pywenn das Projekt eine eigene hat (m/onepager-Fall, teilt dieselben Regeln + Whitelists), sonst Inline-Fallback mit dem gebündeltenreferences/blacklist.yaml. HTML-Comment- (<!-- anti-ai-allow: term -->) undsite.yaml-Whitelists (anti_ai_allow:) werden honoriert. Verifiziert auf synthetischer Test-Fixture: 9 Vocab+Pattern-Hits → 3 (nach HTML-Allow) → 1 (nach site.yaml-Allow).apply.pyMustache-Subset statt naiver Substitution.{{var}}und{{#section}}…{{/section}}mit Listen-Iteration und Per-Item-Context-Merge. Pure Stdlib.render_robots()undrender_llms()gehen jetzt durch denselben Renderer.verify.shLLM-Smoke-Test end-to-end via neuemscripts/llm_smoke.py: holt Page, generiert 4 Queries (H1-as-question, topic+identity, number-anchored, use-case verb), ruft Anthropic + OpenAI Web-Search-Tools, klassifiziert pro Query pass/fail, aggregiert zu strong-pass/partial-pass/one-hit/fail. Verdicts werden in den verify.sh pass/warn/fail/skip-Rail geroutet. Optional--save-historyschreibt JSON-Snapshots für Trend-Analyse.audit-rules.mdbuild-vs-source dokumentiert. Audit bevorzugt rendered HTML (build/<domain>/index.html) über Source. Fallback wennbuild/fehlt. Implication: vollständiges Audit auf m/onepager braucht./build.shzuerst.Initial-Sweep auf m/onepager (nach
./build.sh)Wie m/onepager#10 commit
fdac496dokumentiert: Bestandsaufnahme, keine Aktion.robots-missing× 59llms-missing× 59 (info — optional für Satire)sitemap-missing× 59og-image-missing× 57,twitter-card-missing× 57schema-missing× 57 (FAIL — die meisten sind Satire-Sites; siehe Anmerkung unten)og-title-missing× 52,og-description-missing× 52top-third-weak× 39meta-description-missing× 15title-too-long× 1anti-ai-*× 0 — Whitelist4f25d74hältAnmerkung zum Schema-FAIL
Das Skill kennt eine
satire: true(oderseo_audit_satire: true) Konvention insite.yaml, dieschema-missingvon FAIL zu INFO downgrades — aber kein onepager-site.yamlsetzt das aktuell. Per-Site-Klassifikation (welche Wortspiel-Sites bewusst Satire sind, welche nicht) ist Folgearbeit.Ausblick
Die 57.2/100 Baseline ist die Implementation-Backlog für künftige Per-Site-Issues, nicht ein Mangel des Skills. Das Skill ist jetzt funktional einsetzbar für jeden onepager / Next.js / Fresh / nginx / generic Stack.
Nicht selbst nach main gemerged. Head + m gate.
Head-Bestätigung: Branch
mai/cronus/seo-audit-skillist in m/dotfiles@main gemerged worden (1a70ff2). Skill ist live. Done-Label gesetzt — m closes.