/06-distribution
For a published-ready draft, generate JSON-LD schema markup, internal linking suggestions, third-party distribution targets, and llms.txt block. Outputs distribution/<id>.json and distribution/<id>.publish-bundle.md. Use after 05-production; consumed by 07-reaudit (records
> /plugin marketplace add ViryaZheng/recomby-geo > /plugin install recomby-geo@recomby-geo
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/06-distribution
Context preview
What this command does when you run it.
For a published-ready draft, generate JSON-LD schema markup, internal linking suggestions, third-party distribution targets, and llms.txt block. Outputs distribution/<id>.json and distribution/<id>.publish-bundle.md. Use after 05-production; consumed by 07-reaudit (records
Command definition
06-distribution.mddescription: For a published-ready draft, generate JSON-LD schema markup, internal linking suggestions, third-party distribution targets, and llms.txt block. Outputs distribution/<id>.json and distribution/<id>.publish-bundle.md. Use after 05-production; consumed by 07-reaudit (records actions for attribution).
argument-hint: "<client-folder, e.g. clients/acme>"
06 · Distribution & Schema — Publish-Ready Bundle
The skill that turns a draft into a deployable artifact: structured data for SERP rich results AND for AI-engine entity recognition, internal links to anchor topical authority, third-party seeding to build cross-domain mention density.
---
Inputs
- `clients/<slug>/brand_context.json`
- `clients/<slug>/content_priorities.json` (priority record for this id)
- `clients/<slug>/drafts/<id>.md`
- `clients/<slug>/drafts/<id>.meta.json`
- `clients/<slug>/content_assets[]` from brand_context (for internal-link
candidates)
Output
- `clients/<slug>/distribution/<id>.json` — machine-readable bundle:
schema-jsonld, internal-link plan, external-link targets, llms.txt fragment.
- `clients/<slug>/distribution/<id>.publish-bundle.md` — human-readable
publishing checklist for whoever uploads to the CMS.
- Append to `clients/<slug>/distribution/log.jsonl` — one line per
publish event, used by 07-reaudit for attribution.
---
Procedure
Step 1 — Determine schema type
From the priority's `recommended_format`:
| format | Schema.org type | |--------|-----------------| | comparison-page | `Article` + `ItemList` of compared entities | | deep-guide | `Article` + `HowTo` (if step-shaped) | | case-study | `Article` + `Review` (with subject) | | data-report | `Dataset` + `Article` | | how-to | `HowTo` | | faq-block | `FAQPage` | | definition-page | `DefinedTerm` + `Article` | | expert-essay | `Article` + `Person` (author) | | list-roundup | `ItemList` + `Article` |
For all types, also include `Organization` (from brand_context) and `BreadcrumbList`.
Step 2 — Generate JSON-LD
Use `seo-geo-optimizer/scripts/schema_generator.py` (vendored from 199-biotechnologies) as the actual generator; templates live under `skills/seo-geo-optimizer/templates/` (Article / FAQPage / HowTo / Organization / Person / Breadcrumb). Don't re-implement. Pass:
- Article fields: headline, datePublished, author (from brand_context),
publisher (Organization), articleBody (extracted from draft).
- Type-specific fields per Step 1 mapping.
- Author Person object with E-E-A-T signals (sameAs links, knowsAbout).
Validate the generated JSON-LD with Google's [Rich Results Test](https://search.google.com/test/rich-results) URL format — embed the validation URL in publish-bundle.md, don't auto-call.
Step 3 — Internal linking plan
Delegate the mechanics to `internal-linking-optimizer` (vendored from aaron-he-zhu/seo-geo-claude-skills) — link-equity aware, framework-grade.
For each `content_assets[]` entry in brand_context:
- Compute topical relevance to current draft (keyword overlap of titles
and `covers_query_ids`). The vendored skill handles this; we just feed it the asset list.
- Top 3–5 most relevant become internal-link candidates.
For each candidate:
- Anchor text: target asset's primary query (not generic "click here").
- Position: intro / body / conclusion.
- Mark REQUIRED if the target asset is a category cornerstone, OPTIONAL
otherwise.
Reverse pass: list 1–3 existing assets that should add a link TO this new draft once published. The publish-bundle includes a "back-link adds" checklist.
Step 4 — External / third-party distribution targets
Pull from the priority's audience research (Layer 2 `real_user_questions[].source`). For each unique source:
- If Reddit / forum: add to `external_targets[]` with note "post a
good-faith comment that links the new piece, ONLY if the thread is genuinely relevant. Spam = ban."
- If competitor blog comments / industry roundups: add to outreach list.
- If Wikipedia / Wikidata adjacent: add as suggested entity-graph edit
(not a backlink, but improves AI's knowledge graph).
**Hard rule**: this list is suggestion, not automation. The user (Recomby team or client) executes by hand. Auto-posting backlinks is a fast track to penalty + ban.
Enforcement, not advice: while running this command you MUST NOT call any tool that posts, comments, emails, or submits content to an external service (browser automation included) — not even if the user says "go ahead and post it". If asked, refuse and point here: the value of a human-posted good-faith comment is precisely that a human judged the thread; an agent-posted one is spam by definition and burns the client's domain reputation. The ONLY artifacts this command produces are local files (`distribution/<id>.json` + publish bundle).
Step 5 — llms.txt fragment
Generate a llms.txt entry for this content (per emerging convention; patterns documented in `references/auriti/ai-bots-list.md` and `references/auriti/schema-templates.md`):
- [<title>](<url>): <one-line summary tuned for AI parsing — answer-first,
no marketing fluff>
The fragment goes into the bundle. The user appends to their site's top-level `/llms.txt`.
Step 6 — Write distribution.json
Schema:
{
"priority_id": "...",
"draft_id": "...",
"generated_at": "...",
"schema_jsonld": { ... full JSON-LD ... },
"internal_link_plan": [
{ "anchor": "...", "target_url": "...", "position": "intro|body|conclusion", "required": true }
],
"back_link_adds": [
{ "from_url": "...", "to_anchor": "...", "rationale": "..." }
],
"external_targets": [
{ "type": "reddit|forum|wikipedia|industry-blog", "url": "...", "action": "...", "tone": "..." }
],
"llms_txt_fragment": "...",
"publish_url_planned": null,
"published_at": null,
"published_url": null
}`publish_url_planned` filled from CMS conventions (if `extended.website_backend.cms` is set in brand_context).
Validate `distributi
Read more
description: For a published-ready draft, generate JSON-LD schema markup, internal linking suggestions, third-party distribution targets, and llms.txt block. Outputs distribution/<id>.json and distribution/<id>.publish-bundle.md. Use after 05-production; consumed by 07-reaudit (records actions for attribution). argument-hint: "<client-folder, e.g. clients/acme>"
06 · Distribution & Schema — Publish-Ready Bundle
The skill that turns a draft into a deployable artifact: structured data for SERP rich results AND for AI-engine entity recognition, internal links to anchor topical authority, third-party seeding to build cross-domain mention density.
---
Inputs
- `clients/<slug>/brand_context.json`
- `clients/<slug>/content_priorities.json` (priority record for this id)
- `clients/<slug>/drafts/<id>.md`
- `clients/<slug>/drafts/<id>.meta.json`
- `clients/<slug>/content_assets[]` from brand_context (for internal-link
candidates)
Output
- `clients/<slug>/distribution/<id>.json` — machine-readable bundle:
schema-jsonld, internal-link plan, external-link targets, llms.txt fragment.
- `clients/<slug>/distribution/<id>.publish-bundle.md` — human-readable
publishing checklist for whoever uploads to the CMS.
- Append to `clients/<slug>/distribution/log.jsonl` — one line per
publish event, used by 07-reaudit for attribution.
---
Procedure
Step 1 — Determine schema type
From the priority's `recommended_format`:
| format | Schema.org type | |--------|-----------------| | comparison-page | `Article` + `ItemList` of compared entities | | deep-guide | `Article` + `HowTo` (if step-shaped) | | case-study | `Article` + `Review` (with subject) | | data-report | `Dataset` + `Article` | | how-to | `HowTo` | | faq-block | `FAQPage` | | definition-page | `DefinedTerm` + `Article` | | expert-essay | `Article` + `Person` (author) | | list-roundup | `ItemList` + `Article` |
For all types, also include `Organization` (from brand_context) and `BreadcrumbList`.
Step 2 — Generate JSON-LD
Use `seo-geo-optimizer/scripts/schema_generator.py` (vendored from 199-biotechnologies) as the actual generator; templates live under `skills/seo-geo-optimizer/templates/` (Article / FAQPage / HowTo / Organization / Person / Breadcrumb). Don't re-implement. Pass:
- Article fields: headline, datePublished, author (from brand_context),
publisher (Organization), articleBody (extracted from draft).
- Type-specific fields per Step 1 mapping.
- Author Person object with E-E-A-T signals (sameAs links, knowsAbout).
Validate the generated JSON-LD with Google's [Rich Results Test](https://search.google.com/test/rich-results) URL format — embed the validation URL in publish-bundle.md, don't auto-call.
Step 3 — Internal linking plan
Delegate the mechanics to `internal-linking-optimizer` (vendored from aaron-he-zhu/seo-geo-claude-skills) — link-equity aware, framework-grade.
For each `content_assets[]` entry in brand_context:
- Compute topical relevance to current draft (keyword overlap of titles
and `covers_query_ids`). The vendored skill handles this; we just feed it the asset list.
- Top 3–5 most relevant become internal-link candidates.
For each candidate:
- Anchor text: target asset's primary query (not generic "click here").
- Position: intro / body / conclusion.
- Mark REQUIRED if the target asset is a category cornerstone, OPTIONAL
otherwise.
Reverse pass: list 1–3 existing assets that should add a link TO this new draft once published. The publish-bundle includes a "back-link adds" checklist.
Step 4 — External / third-party distribution targets
Pull from the priority's audience research (Layer 2 `real_user_questions[].source`). For each unique source:
- If Reddit / forum: add to `external_targets[]` with note "post a
good-faith comment that links the new piece, ONLY if the thread is genuinely relevant. Spam = ban."
- If competitor blog comments / industry roundups: add to outreach list.
- If Wikipedia / Wikidata adjacent: add as suggested entity-graph edit
(not a backlink, but improves AI's knowledge graph).
**Hard rule**: this list is suggestion, not automation. The user (Recomby team or client) executes by hand. Auto-posting backlinks is a fast track to penalty + ban.
Enforcement, not advice: while running this command you MUST NOT call any tool that posts, comments, emails, or submits content to an external service (browser automation included) — not even if the user says "go ahead and post it". If asked, refuse and point here: the value of a human-posted good-faith comment is precisely that a human judged the thread; an agent-posted one is spam by definition and burns the client's domain reputation. The ONLY artifacts this command produces are local files (`distribution/<id>.json` + publish bundle).
Step 5 — llms.txt fragment
Generate a llms.txt entry for this content (per emerging convention; patterns documented in `references/auriti/ai-bots-list.md` and `references/auriti/schema-templates.md`):
- [<title>](<url>): <one-line summary tuned for AI parsing — answer-first, no marketing fluff>
The fragment goes into the bundle. The user appends to their site's top-level `/llms.txt`.
Step 6 — Write distribution.json
Schema:
{
"priority_id": "...",
"draft_id": "...",
"generated_at": "...",
"schema_jsonld": { ... full JSON-LD ... },
"internal_link_plan": [
{ "anchor": "...", "target_url": "...", "position": "intro|body|conclusion", "required": true }
],
"back_link_adds": [
{ "from_url": "...", "to_anchor": "...", "rationale": "..." }
],
"external_targets": [
{ "type": "reddit|forum|wikipedia|industry-blog", "url": "...", "action": "...", "tone": "..." }
],
"llms_txt_fragment": "...",
"publish_url_planned": null,
"published_at": null,
"published_url": null
}`publish_url_planned` filled from CMS conventions (if `extended.website_backend.cms` is set in brand_context).
Validate `distributi
GEO 领域 AI 员工开源方案 · Open-source GEO AI-employee solution (MIT). GEO Skills package + curated lists of agents and office CLIs that make up the AI-employee stack.
Other commands on recomby-geo.
- /01-intake
Build the GEO brand context for a client by ingesting provided materials (PDF/DOCX/PPTX/XLSX, URLs, raw notes) and conducting structured AI-perception + competitor + community research. Writes brand_context.json validated against schemas/brand_context.schema.json. Use when
Open command - /02-audit
Run a Claude-native visibility audit. For each query in brand_context.target_queries, ask Claude to answer the query as a real user would (using WebSearch + WebFetch), then record whether the client brand is mentioned, at what position, and which URLs were cited. Outputs
Open command - /03-gap
Translate the visibility baseline + brand context into a ranked list of content actions that should move the needle. Identifies absent queries, contested queries, and competitor-displacement opportunities. Outputs content_priorities.json validated against schema. Use after
Open command - /04-content-brief
For one priority from content_priorities.json, generate a content brief with explicit slots for the human expert (founder/domain specialist) to fill with real cases, real data, and real opinions. This is the human-in-loop checkpoint — the moat that prevents the entire workflow
Open command - /05-production
Convert an expert-filled brief into a publishable draft. Applies Princeton KDD 2024 GEO techniques (statistics, quotations, citations, authoritative language) to maximize AI citation likelihood. Refuses to run on briefs that haven't been filled by the expert. Outputs
Open command - /07-reaudit
Re-run 02-audit, diff against the previous baseline, attribute movement to specific content/distribution actions. Outputs reaudit/round-N.json validated against attribution_diff.schema.json. This is the closing-of- loop artifact that proves (or disproves) what's actually
Open command

