CommunityCodierung & Entwicklunggithub.com

Blog-Taxonomie

Verwaltet Tags, Kategorien und Themencluster in CMS-Plattformen.

Was ist Blog-Taxonomie?

Dieser Skill für KI-Agenten hilft dabei, die Taxonomie eines Blogs zu verwalten, indem er Tags und Kategorien aus Inhalten vorschlägt, diese mit verschiedenen CMS-Plattformen synchronisiert und die Taxonomie auf Schwachstellen wie dünne Tags, verwaiste Tags oder übermäßig viele Tags prüft. Er unterstützt WordPress, Shopify, Ghost, Strapi und Sanity und stellt spezifische API-Endpunkte und Authentifizierungsmechanismen für jedes System bereit. Der Arbeitsablauf umfasst die Analyse von Inhalten (H2/H3-Überschriften, fetter/kursiver Text, Häufigkeitsanalyse), die semantische Gruppierung und Deduplizierung von Kandidaten sowie die Bewertung nach einem Punktesystem. Der Skill führt auch ein vollständiges Taxonomie-Audit durch, das nach dünnen Archiven, verwaisten Tags, Bloat und anderen Problemen sucht, und liefert priorisierte Empfehlungen. Die Umgebungsvariablen CMS_TYPE, CMS_URL und CMS_API_KEY müssen gesetzt sein; Fehler wie fehlende Credentials, Timeouts oder Duplikate werden mit detaillierten Meldungen behandelt.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-taxonomy

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Blog-Taxonomie?

Verwalte Tags, Kategorien und Themencluster in CMS-Plattformen.

Befehle

BefehlZweck
/blog taxonomy suggest <datei>Extrahiere Kandidaten für Tags und Kategorien aus Inhalten
/blog taxonomy sync <cms>Taxonomie per authentifizierter API an CMS pushen
/blog taxonomy audit [verzeichnis]Prüfe auf dünne Tags, verwaiste Tags, Taxonomie-Bloat

Arbeitsablauf für Tag-Vorschläge

Schritt 1: Inhaltsstruktur parsen

Zieldatei lesen und extrahieren:

  • Alle H2- und H3-Überschriften (primäre Themensignale)
  • Fett und kursiv formatierte Phrasen (Betonungssignale)
  • Vorhandene Frontmatter-Tags/Kategorien, falls vorhanden

Schritt 2: Häufigkeitsanalyse

Textkörper auf hochfrequente Phrasen scannen:

  • 1-Wort-Begriffe: mindestens 4 Vorkommen (außer Stoppwörter)
  • 2-Wort-Phrasen: mindestens 3 Vorkommen
  • 3-Wort-Phrasen: mindestens 2 Vorkommen

Gebräuchliche Nicht-Tag-Wörter ausschließen: Artikel, Präpositionen, Konjunktionen, Pronomen.

Schritt 3: Semantische Gruppierung

Zusammenhängende Kandidaten in Cluster gruppieren:

  • Singular-/Pluralvarianten zusammenführen (die häufigere Form behalten)
  • Silbentrennungs- und nicht silbengetrennte Formen zusammenführen
  • Synonyme unter dem Begriff mit der höchsten Häufigkeit gruppieren

Schritt 4: Deduplizieren und bewerten

  • Fuzzy-Match auf slugifizierten Namen (Levenshtein-Distanz <= 2)
  • Jeden Kandidaten bewerten: (häufigkeit * 2) + (überschrift_vorhanden * 5) + (betonung * 1)
  • Top 5-10 bewertete Vorschläge zurückgeben

Ausgabeformat

## Tag-Vorschläge: [Beitragstitel]

| Rang | Tag | Punktzahl | Quelle |
|------|-----|-------|--------|
| 1 | content-marketing | 18 | H2 + 6 Erwähnungen |
| 2 | seo-strategie | 14 | H3 + 4 Erwähnungen |
| 3 | keyword-recherche | 11 | 5 Erwähnungen + fett |

### Vorgeschlagene Kategorien
- Primär: [am besten passende Kategorie]
- Sekundär: [optionale zweite Kategorie]

CMS-Adapter

Adapter-Übersicht

CMSAPI-TypAuthentifizierungsmethodeTags-Modell
WordPressRESTAnwendungspasswörter (base64)Erstklassige Entitäten mit IDs
ShopifyGraphQL (Admin-API)Admin-API-ZugriffstokenString-Array auf Article
GhostREST (Admin-API)API-Schlüssel mit JWT-SignaturErstklassige Entitäten
StrapiREST oder GraphQLAPI-Token (Bearer)Benutzerdefinierter Inhaltstyp
SanityGROQ / MutationenProjekt-Token (Bearer)Dokumenttyp

WordPress-Adapter

Tags auflisten:

GET {CMS_URL}/wp-json/wp/v2/tags?per_page=100&search={keyword}
Authorization: Basic {base64(benutzername:app_password)}

Tag erstellen:

POST {CMS_URL}/wp-json/wp/v2/tags
Body: {"name": "Tag-Name", "slug": "tag-name", "description": "Optional"}

Kategorien auflisten (hierarchisch, unterstützt parent-Feld):

GET {CMS_URL}/wp-json/wp/v2/categories?per_page=100

Kategorie erstellen:

POST {CMS_URL}/wp-json/wp/v2/categories
Body: {"name": "Kategorie", "slug": "kategorie", "parent": 0}

Tags einem Beitrag zuweisen:

POST {CMS_URL}/wp-json/wp/v2/posts/{id}
Body: {"tags": [1, 2, 3], "categories": [4]}

Seitennummerierung: Folge dem X-WP-TotalPages-Header für die vollständige Liste.

Shopify-Adapter

Tags in Shopify sind String-Arrays auf dem Article-Objekt, keine erstklassigen Entitäten.

Beitrags-Tags aktualisieren (GraphQL Admin API):

mutation {
  articleUpdate(id: "gid://shopify/Article/123", article: {
    tags: ["tag-eins", "tag-zwei", "tag-drei"]
  }) {
    article { id tags }
    userErrors { field message }
  }
}

Alle verwendeten Tags auflisten (GraphQL):

{
  articles(first: 250) {
    edges {
      node { id title tags }
    }
  }
}

Auth-Header: X-Shopify-Access-Token: {token}

Hinweis: REST-API wurde im Oktober 2024 als Legacy markiert. GraphQL ist für neue Apps seit April 2025 erforderlich.

Ghost-Adapter

Tags auflisten:

GET {CMS_URL}/ghost/api/admin/tags/?limit=all
Authorization: Ghost {jwt_token}

Tag erstellen:

POST {CMS_URL}/ghost/api/admin/tags/
Body: {"tags": [{"name": "Tag-Name", "slug": "tag-name"}]}

JWT-Erzeugung: Mit Admin-API-Schlüssel (id:secret-Format) signieren, iat = jetzt, exp = 5 min, audience = /admin/.

Strapi-Adapter

Endpunkt automatisch aus Inhaltstypen generiert. Typische Einrichtung:

GET {CMS_URL}/api/tags?pagination[pageSize]=100
POST {CMS_URL}/api/tags
Body: {"data": {"name": "Tag-Name", "slug": "tag-name"}}
Authorization: Bearer {api_token}

Strapi v4+ verwendet den data-Wrapper. Überprüfe dein Inhaltstyp Schema auf Feldnamen.

Sanity-Adapter

Tags abfragen (GROQ):

*[_type == "tag"] { _id, name, slug }

Tag erstellen (Mutations-API):

POST https://{project_id}.api.sanity.io/v2024-01-01/data/mutate/{dataset}
Body: {"mutations": [{"create": {"_type": "tag", "name": "Tag", "slug": {"current": "tag"}}} ]}
Authorization: Bearer {token}

Arbeitsablauf Taxonomie-Audit

Schritt 1: Inventar

Alle Beiträge im Zielverzeichnis scannen (oder vom CMS abrufen). Erstelle eine Zuordnung:

  • tag_name -> [Liste der Beitragsdateien/IDs, die dieses Tag verwenden]
  • category_name -> [Liste der Beitragsdateien/IDs]

Schritt 2: Gesundheitschecks

PrüfungSchwelleAktion
Dünne Tag-Archive< 5 Beiträge pro Tagnoindex oder Zusammenführung empfehlen
Verwaiste Tags0 BeiträgeLöschung empfehlen
Tag-Bloat> 50 Tags insgesamtKonsolidierung empfehlen
Kategorie-Tiefe> 3 EbenenAbflachung empfehlen
Nicht kategorisierte BeiträgeKeine Kategorie zugewiesenGeeignete Kategorie zuweisen
Doppelte SlugsGleicher Slug, unterschiedlicher NameIn kanonische Version zusammenführen

Schritt 3: Empfehlungen

Ergebnisse nach Priorität gruppieren:

  • Kritisch: Verwaiste Tags erzeugen leere Archivseiten (Crawl-Verschwendung)
  • Hoch: Dünne Tags mit < 3 Beiträgen (schlechte Benutzererfahrung, schwaches SEO-Signal)
  • Mittel: Tag-Bloat über 50 (verwässerte Taxonomie, schwieriger zu navigieren)
  • Niedrig: Benennungsinkonsistenzen (gemischte Groß-/Kleinschreibung, Bindestrich vs. Leerzeichen)

Ausgabeformat

## Taxonomie-Audit: [Seite/Verzeichnis]

**Tags insgesamt**: [n] | **Kategorien insgesamt**: [n]
**Gesund**: [n] | **Dünn**: [n] | **Verwaist**: [n]

### Kritische Probleme
- [Liste verwaister Tags]

### Empfehlungen
1. [tag-a] und [tag-b] zusammenführen (gleiches Thema, [n] kombinierte Beiträge)
2. Verwaiste Tags löschen: [Liste]
3. noindex zu Tag-Archiven mit < 5 Beiträgen hinzufügen

Seitenweite Richtlinien

  • Strebe 5-10 Hauptkategorien pro Seite an (breite Themen)
  • Tags sollten mindestens 5 Beiträge haben, bevor eine Archivseite erstellt wird
  • Konsistentes Slug-Format verwenden: Kleinbuchstaben, mit Bindestrich getrennt
  • Jeder Beitrag benötigt genau 1 primäre Kategorie
  • Tags pro Beitrag: 3-8 empfohlen, nie mehr als 15

Umgebungsvariablen

VariableZweckBeispiel
CMS_TYPEPlattformkennungwordpress, shopify, ghost, strapi, sanity
CMS_URLBasis-URL des CMShttps://example.com
CMS_API_KEYAuthentifizierungsnachweisAnwendungspasswort, API-Token oder Schlüssel

Diese müssen in der Shell-Umgebung gesetzt sein. Speichere Anmeldedaten niemals in Dateien oder committe sie nicht in die Versionskontrolle. Der Skill liest sie zur Laufzeit über $CMS_TYPE, $CMS_URL, und $CMS_API_KEY.

Fehlerbehandlung

  • Fehlende Umgebungsvariablen: Wenn CMS_TYPE, CMS_URL oder CMS_API_KEY nicht gesetzt ist, melde, welche Variable fehlt, und gib das erwartete Format an.
  • Ungültige Anmeldedaten: Wenn die CMS-API 401/403 zurückgibt, melde „Authentifizierung fehlgeschlagen – CMS_API_KEY überprüfen“ und wiederhole nicht.
  • Verbindungszeitüberschreitung: Wenn der CMS-Endpunkt nach 10 Sekunden nicht erreichbar ist, melde die Zeitüberschreitung und schlage vor, CMS_URL zu überprüfen.
  • Doppelte Tag-Slugs: Wenn ein Tag bereits im CMS existiert, überspringe die Erstellung und notiere „Tag existiert bereits: [Name]“.
  • Ratenbegrenzungen: Wenn die CMS-API 429 zurückgibt, warte und wiederhole einmal. Melde, wenn die Begrenzung bestehen bleibt.
  • Nicht unterstütztes CMS: Wenn CMS_TYPE nicht einer der 5 unterstützten Plattformen ist, liste die gültigen Optionen auf und beende.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Verwandte Skills