/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
> /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
/05-production
Context preview
What this command does when you run it.
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
Command definition
05-production.mddescription: 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 drafts/<id>.md. Use after 04-content-brief produces a brief with status=ready-for-production.
argument-hint: "<client-folder, e.g. clients/acme>"
05 · Production — Draft Generation
This command orchestrates `content-writer` (vendored) plus Princeton GEO rewrite techniques and CITE/EEAT quality scoring via `content-quality-auditor` (vendored). It does NOT generate content from scratch — that work happened in 04-content-brief where the expert filled REQUIRED-FILL slots. Production assembles the filled brief into a polished draft and applies GEO-optimization rewrite rules.
---
Inputs
- `clients/<slug>/brand_context.json` (for voice + extended context)
- `clients/<slug>/content_priorities.json` (to pull the priority record)
- `clients/<slug>/briefs/<id>.md` (the expert-filled brief)
- `clients/<slug>/briefs/<id>.meta.json` (must have `status:
ready-for-production`)
Output
- `clients/<slug>/drafts/<id>.md` — publishable Markdown draft.
- `clients/<slug>/drafts/<id>.meta.json` — machine-readable metadata
(word count, citation count, statistics count, quote count, voice-match score, GEO-readiness checklist).
- `clients/<slug>/drafts/<id>.html` — interactive review version for the
client (section-level comments + approve-as-is), rendered by the `geo-review-html` skill.
---
Procedure
Step 1 — Hard refusal gate
status=$(jq -r '.status' clients/<slug>/briefs/<id>.meta.json)
if [ "$status" != "ready-for-production" ]; then
echo "REFUSE: brief <id> status=$status. Run 04-content-brief Step 9 first."
exit 1
fi
If status is not `ready-for-production`, refuse to draft. Do not auto-fill slots. Send the user back to 04-content-brief.
Step 2 — Verify slot fills are substantive
Re-read the brief. For each former REQUIRED-FILL slot:
- Reject if content is `<100 chars` for `original-data` slots.
- Reject if `expert-quote` slot lacks attribution (name + role).
- Reject if `customer-case` slot lacks identifying detail (industry,
approximate size, outcome metric).
- Flag (don't auto-reject) if content sounds AI-generated (hedging
language, "in conclusion", "moreover", repeated bigrams).
If any rejection: stop, report to user, suggest re-filling. Do not draft.
Step 3 — Assemble the draft
Use the brief outline as the skeleton. Replace each filled slot inline. Do NOT remove slot id annotations — keep them as HTML comments (`<!-- slot: data-1 -->`) so 06-distribution can audit them later.
Apply transitions, intros, and connective tissue. This is the only generative work — keep it light. Heuristic: if you'd be embarrassed to say it out loud, delete it.
Step 4 — Apply Princeton GEO rewrite techniques
The KDD 2024 paper showed these rewrite operations boost AI citation rate by up to 40%. Apply each pass:
1. **Quotation injection** — wherever a claim could be stated by a recognized expert, rewrite to attribute it to the named expert from the filled brief. 2. **Statistics surfacing** — promote numbers from prose into standalone sentences. "We saw 23% improvement" → "Across 200 firms, **23% saw improvement** within 60 days." 3. **Citation densification** — every external claim gets a citation anchor `[^N]` linking to the brief's citations block. Aim for 1 citation per ~150 words of factual content. 4. **Authoritative phrasing** — rewrite hedged language ("could be", "might suggest") to direct phrasing where the brief's data supports it. Don't fake confidence; do remove unjustified hedging. 5. **Fluency optimization** — short sentences for declarations, longer for explanations. Vary sentence length (Princeton finding: monotone sentence length correlates with lower citation rate).
Step 5 — Voice match
Compare draft tone against `brand_context.voice_samples`. Adjust:
- Sentence length distribution
- Jargon density
- First-person vs third-person
- Use of rhetorical questions / direct reader address
Voice-match scoring: pick 5 random sentences from voice_samples and 5 from draft. Score 1–5 on similarity (sentence shape, vocabulary, formality). Record in meta.
Step 6 — Generate metadata
{
"priority_id": "...",
"draft_path": "clients/<slug>/drafts/<id>.md",
"generated_at": "...",
"word_count": 0,
"stats": {
"citations": 0,
"statistics_count": 0,
"quotes_count": 0,
"internal_link_slots": 0,
"external_links": 0
},
"voice_match_score": 0,
"geo_readiness": {
"has_definition_block": false,
"has_faq_block": false,
"has_comparison_table": false,
"has_methodology_section": false,
"answer_first_within_200_words": false
},
"status": "draft-ready"
}Step 7 — Write outputs
- `clients/<slug>/drafts/<id>.md`
- `clients/<slug>/drafts/<id>.meta.json` — validate before continuing:
python3 -c "import json,jsonschema; \
s=json.load(open('plugins/recomby-geo/schemas/draft_meta.schema.json')); \
d=json.load(open('clients/<slug>/drafts/<id>.meta.json')); \
jsonschema.validate(d,s); print('OK')"If validation fails, fix the meta before rendering the review HTML — an invalid meta silently breaks the index page and 06-distribution's audit.
Then render the client review HTML via the `geo-review-html` skill (draft mode: read-only prose, per-section comment toggles, `✓ Approve as-is`):
python3 plugins/recomby-geo/skills/geo-review-html/scripts/render_html.py \
--mode draft \
--md clients/<slug>/drafts/<id>.md \
--meta clients/<slug>/drafts/<id>.meta.json \
--brand clients/<slug>/brand_context.json \
--out clients/<slug>/drafts/<id>.html
A returned `*.feedback.json` (status `approved-as-is` or `reviewed-with-comments`) validates ag
Read more
description: 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 drafts/<id>.md. Use after 04-content-brief produces a brief with status=ready-for-production. argument-hint: "<client-folder, e.g. clients/acme>"
05 · Production — Draft Generation
This command orchestrates `content-writer` (vendored) plus Princeton GEO rewrite techniques and CITE/EEAT quality scoring via `content-quality-auditor` (vendored). It does NOT generate content from scratch — that work happened in 04-content-brief where the expert filled REQUIRED-FILL slots. Production assembles the filled brief into a polished draft and applies GEO-optimization rewrite rules.
---
Inputs
- `clients/<slug>/brand_context.json` (for voice + extended context)
- `clients/<slug>/content_priorities.json` (to pull the priority record)
- `clients/<slug>/briefs/<id>.md` (the expert-filled brief)
- `clients/<slug>/briefs/<id>.meta.json` (must have `status:
ready-for-production`)
Output
- `clients/<slug>/drafts/<id>.md` — publishable Markdown draft.
- `clients/<slug>/drafts/<id>.meta.json` — machine-readable metadata
(word count, citation count, statistics count, quote count, voice-match score, GEO-readiness checklist).
- `clients/<slug>/drafts/<id>.html` — interactive review version for the
client (section-level comments + approve-as-is), rendered by the `geo-review-html` skill.
---
Procedure
Step 1 — Hard refusal gate
status=$(jq -r '.status' clients/<slug>/briefs/<id>.meta.json) if [ "$status" != "ready-for-production" ]; then echo "REFUSE: brief <id> status=$status. Run 04-content-brief Step 9 first." exit 1 fi
If status is not `ready-for-production`, refuse to draft. Do not auto-fill slots. Send the user back to 04-content-brief.
Step 2 — Verify slot fills are substantive
Re-read the brief. For each former REQUIRED-FILL slot:
- Reject if content is `<100 chars` for `original-data` slots.
- Reject if `expert-quote` slot lacks attribution (name + role).
- Reject if `customer-case` slot lacks identifying detail (industry,
approximate size, outcome metric).
- Flag (don't auto-reject) if content sounds AI-generated (hedging
language, "in conclusion", "moreover", repeated bigrams).
If any rejection: stop, report to user, suggest re-filling. Do not draft.
Step 3 — Assemble the draft
Use the brief outline as the skeleton. Replace each filled slot inline. Do NOT remove slot id annotations — keep them as HTML comments (`<!-- slot: data-1 -->`) so 06-distribution can audit them later.
Apply transitions, intros, and connective tissue. This is the only generative work — keep it light. Heuristic: if you'd be embarrassed to say it out loud, delete it.
Step 4 — Apply Princeton GEO rewrite techniques
The KDD 2024 paper showed these rewrite operations boost AI citation rate by up to 40%. Apply each pass:
1. **Quotation injection** — wherever a claim could be stated by a recognized expert, rewrite to attribute it to the named expert from the filled brief. 2. **Statistics surfacing** — promote numbers from prose into standalone sentences. "We saw 23% improvement" → "Across 200 firms, **23% saw improvement** within 60 days." 3. **Citation densification** — every external claim gets a citation anchor `[^N]` linking to the brief's citations block. Aim for 1 citation per ~150 words of factual content. 4. **Authoritative phrasing** — rewrite hedged language ("could be", "might suggest") to direct phrasing where the brief's data supports it. Don't fake confidence; do remove unjustified hedging. 5. **Fluency optimization** — short sentences for declarations, longer for explanations. Vary sentence length (Princeton finding: monotone sentence length correlates with lower citation rate).
Step 5 — Voice match
Compare draft tone against `brand_context.voice_samples`. Adjust:
- Sentence length distribution
- Jargon density
- First-person vs third-person
- Use of rhetorical questions / direct reader address
Voice-match scoring: pick 5 random sentences from voice_samples and 5 from draft. Score 1–5 on similarity (sentence shape, vocabulary, formality). Record in meta.
Step 6 — Generate metadata
{
"priority_id": "...",
"draft_path": "clients/<slug>/drafts/<id>.md",
"generated_at": "...",
"word_count": 0,
"stats": {
"citations": 0,
"statistics_count": 0,
"quotes_count": 0,
"internal_link_slots": 0,
"external_links": 0
},
"voice_match_score": 0,
"geo_readiness": {
"has_definition_block": false,
"has_faq_block": false,
"has_comparison_table": false,
"has_methodology_section": false,
"answer_first_within_200_words": false
},
"status": "draft-ready"
}Step 7 — Write outputs
- `clients/<slug>/drafts/<id>.md`
- `clients/<slug>/drafts/<id>.meta.json` — validate before continuing:
python3 -c "import json,jsonschema; \
s=json.load(open('plugins/recomby-geo/schemas/draft_meta.schema.json')); \
d=json.load(open('clients/<slug>/drafts/<id>.meta.json')); \
jsonschema.validate(d,s); print('OK')"If validation fails, fix the meta before rendering the review HTML — an invalid meta silently breaks the index page and 06-distribution's audit.
Then render the client review HTML via the `geo-review-html` skill (draft mode: read-only prose, per-section comment toggles, `✓ Approve as-is`):
python3 plugins/recomby-geo/skills/geo-review-html/scripts/render_html.py \ --mode draft \ --md clients/<slug>/drafts/<id>.md \ --meta clients/<slug>/drafts/<id>.meta.json \ --brand clients/<slug>/brand_context.json \ --out clients/<slug>/drafts/<id>.html
A returned `*.feedback.json` (status `approved-as-is` or `reviewed-with-comments`) validates ag
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 - /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
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

