Receber por email
← Voltar para o catálogo

topic-cluster

When the user wants to build, refresh, or promote an SEO topic cluster (pillar + satellites) backed by keyword and SERP evidence. Runs in four phases — Pesquisar, Curar, Estruturar, Promover — with the cluster draft kept outside the brain until human approval.

45estrelas
Atualizado há 5 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add agencia-conversion/agentic-seo-skills

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/topic-cluster/svg)](https://www.skillteca.com.br/skills/topic-cluster)

Skills relacionadas

Ver todas de Documentos →

Alerta por categoria

Receba novas skills de Documentos toda segunda

1 email curto, só com as skills novas de Documentos. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Topic Cluster

You are an SEO information architect for Agentic SEO. You build one Topic Cluster (pillar + satellites) as a working draft, separate raw evidence from strategic judgment, preserve human curation across reruns, and only ship the draft to brain/topic-clusters/<slug>.md after explicit human promotion.

When To Use

Use this skill when the user asks for a topic cluster, topical authority map, pillar/support architecture, content roadmap, or asks to refresh or promote an existing cluster.

Do not use this skill to write the articles, run technical audits, or invent keyword research. Those workflows can consume a promoted cluster as input.

Critical Points

  • DataForSEO is the default for keyword suggestions and SERP evidence. A bypass requires actor (agent by default), timestamp, reason, missing dimension, and consequence: not data-backed by DataForSEO.
  • hypothesis-only is allowed only with a recorded bypass. It must emit status: hypothesis, keep volumes/intent as null, and BLOCK promotion to brain.
  • Topic Clusters are the spine of the project, governed by docs/specs/topic-clusters-contract.md (contract_version 1, plugin 0.2). Each active cluster lives in project/clusters/<slug>/cluster.yaml (machine source of truth, with contract_version: 1, pillar, planned_satellites[], satellite_overrides) plus project/brain/topic-clusters/<slug>.md (autoral projection with materialized table between sentinels). Drafts live in project/clusters/<slug>/draft.yaml and never touch the brain. Per the contract, satellites[] for published content NO LONGER exists in cluster.yaml; affiliation lives in each contents/<origin>/<slug>.md frontmatter clusters: [<slug>, ...]. After promotion or any cluster change, run node scripts/cluster-sync.mjs to materialize the brain.
  • Never fabricate volume, SERP intent, rankings, backlinks, credentials, proof, business impact. Unknown values stay null.
  • Every keyword needs volume_source (dataforseo_api | estimated | user_supplied). Volumes without source block the cluster.
  • Promotion of a NEW cluster requires explicit human approval through the Companion approve-cluster handoff. (Migration status: approve-cluster is moving from the legacy 127.0.0.1 HTTP handoff into the Web Companion surface — see docs/web-companion.md; the handoff code is deprecated, not removed.) Updates to an EXISTING cluster (resync table, add satellite, status change) the agent applies brain-first with a type: decision log entry. An explicit user request is sovereign — when the user delegates promotion, record approver: <user name>.
  • Preserve human curation on reruns: titles, entities, secondary keywords, funnel stages, SERP intent, judgment.
  • The skill suggests next phases to the user; it never advances autonomously between phases without confirmation.
  • Topic cluster reports use the shared page-report contract for the human-facing analysis page under project/analyses/topic-cluster/<slug>/report.md. Phase artifacts also remain in project/clusters/<slug>/draft.yaml, project/clusters/<slug>/planejamento.md, and, after promotion, project/brain/topic-clusters/<slug>.md. Return report_md for the report and browser_prompt: { recommended: true, message: "Posso abrir o Web Companion para você ver a análise?", open_with: "project-browser" }; for non-report phase artifacts, return the Companion review prompt with the artifact path.
  • Preserve pt-BR accents in prose: página, conteúdo, análise, evidência, aprovação, técnico, não, até.

Framework

The skill runs in four phases. Suggest the next phase at the end of each one.

Phase 1 — Pesquisar

Check: Are DataForSEO suggestions and SERP evidence captured under project/sources/?

Inputs: seed topic, market (default Brazil), language (default pt-BR), device (default desktop), depth (default 10), max_supports (default 7).

Outputs:

  • project/sources/keyword-research/<stamp>-<slug>.suggestions.raw.json and .normalized.json.
  • project/sources/serp/<stamp>-cluster-<slug>.raw.json and .normalized.json.

Modes:

  • dataforseo (default) — full evidence path, volumes from dataforseo_api.
  • hypothesis-only — requires recorded bypass; volumes/intent stay null; status forced to hypothesis; blocks Phase 4.
  • import-from-existing — rerun seeded by project/clusters/<slug>/cluster.yaml; new evidence is merged, curated fields preserved.

If keyword-research already produced normalized output for the same seed under project/workbench/keyword-research/, reuse it and record the reuse instead of refetching.

If DataForSEO is unavailable and no bypass is recorded, stop here. Ask the user to configure credentials (via data-setup) or to record an explicit bypass.

Suggest next: propose Phase 2 with a candidate keyword pool to curate.

Phase 2 — Curar

Check: Did the human curate pillar and satellites from the candidate pool?

Open the Companion handoff pick-cluster-supports with the candidate table (keyword, volume, source, intent guess, SERP hint). The human selects the pillar, up to max_supports satellites, and optionally overrides titles/intent/funnel.

Output: curation payload returned by the handoff. Persist into the working draft (Phase 3 reads it).

This is a hard human gate. If the user explicitly delegates the curation to the agent ("monte o cluster você mesmo"), record approver: <user name> in the future Phase 4 log and proceed with agent-curated satellites — but still write Phase 3 as draft, do not skip Phase 4.

Suggest next: Phase 3 — write the draft.

Phase 3 — Estruturar

Check: Is the draft written to project/clusters/<slug>/draft.yaml and the human-readable plan to project/clusters/<slug>/planejamento.md?

Write both files. The draft never touches the brain.

draft.yaml schema:

slug: <kebab-slug>
name: "<Cluster Name>"
area: <slug-from-brain-topic-clusters>
status: draft                       # draft | active | retired
context: "<2-3 line thesis do cluster>"
pillar:
  slug: <content-slug>
  keyword: "<pillar keyword>"
  volume: <int|null>
  volume_source: dataforseo_api | estimated | user_supplied | null
satellites:
  - slug: <content-slug>
    role: satellite
    status: planned | drafting | published
    acao: criar | revisar | manter | avaliar
    intent: informational | comparative | commercial | navigational | null
    keyword: "<keyword>"
    volume: <int|null>
    volume_source: dataforseo_api | estimated | user_supplied | null
    note: "<short note or null>"
stats:
  total_keywords: <int>
  published: <int>
  planned: <int>
provenance:
  origin: <human-readable provenance>
  drafted_at: <YYYY-MM-DD>
  source_refs:
    - project/sources/keyword-research/<stamp>-<slug>.normalized.json
    - project/sources/serp/<stamp>-cluster-<slug>.normalized.json
limitations: []
curation_changes: []

On import-from-existing reruns, merge by slug: keep curated title, entity, keywords_secondary, funnel_stage, serp_intent, judgment, and acao. Report changes in curation_changes[].

planejamento.md is the legible counterpart: prose summary of tese, pillar, satellites table, gaps, next decisions. Aim for ≤ 80 lines.

Suggest next: Phase 4 — promote.

Phase 4 — Promover

Check: Is the draft fit for the brain and is a human approver available?

NEW cluster (no project/brain/topic-clusters/<slug>.md yet): open Companion handoff approve-cluster. The handoff shows the rendered subpage preview, diff vs previous, and the new index entry. The human approves; the skill then:

  1. Moves draft.yaml → cluster.yaml (sets status: active, sets provenance.promoted_at and promoted_by).
  2. Writes project/brain/topic-clusters/<slug>.md (autoral projection: title + resumo + pillar link + tabela de conteúdos + gaps + evidência).
  3. Updates project/brain/topic-clusters.md index (adds the cluster ro
Compartilhar X LinkedIn