From recomby-geo
Entry point + orchestrator for the recomby-geo GEO (Generative Engine Optimization) workflow on OpenAI Codex CLI. Use when the user wants to run any stage of the GEO pipeline on a client folder — intake, visibility audit, content-gap analysis, content brief, draft production, distribution, or monthly re-audit — or asks to "run GEO", "audit AI search visibility", or "GEO this client". Codex has no bare slash commands, so this skill is how the 7 stages (that Claude Code runs as /01-intake … /07-reaudit) are driven on Codex. It routes to the per-stage specs in this plugin's commands/ and enforces the orchestration rules. Does not auto-fill expert content — the human-in-loop brief checkpoint is the moat.
How this skill is triggered — by the user, by Claude, or both
Slash command
/recomby-geo:geo-pipelineThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
On Claude Code each stage is a bare slash command (`/01-intake` …
On Claude Code each stage is a bare slash command (/01-intake …
/07-reaudit). Codex CLI has no bare custom commands, so this skill is the
Codex entry point: it carries the orchestration rules and routes to the
per-stage specification files, which are the single source of truth
shared with the Claude Code side. Do not duplicate stage logic here — read
the stage file and follow it.
Per-stage specs (read the one you're running):
commands/01-intake.md, commands/02-audit.md, commands/03-gap.md,
commands/04-content-brief.md, commands/05-production.md,
commands/06-distribution.md, commands/07-reaudit.md (relative to this
plugin's root). Full directory convention + dependency graph:
orchestrator/run.md.
Identify the client folder clients/<slug>/ and the stage the user wants.
Read the matching commands/0X-*.md and execute its Procedure verbatim.
Validate every JSON artifact the stage writes against its schema before moving on (Codex has no built-in schema validation — run it explicitly):
python3 - <<'PY'
import json, jsonschema
pairs = {
"brand_context.json": "brand_context.schema.json",
"visibility_baseline.json": "visibility_baseline.schema.json",
"content_priorities.json": "content_priorities.schema.json",
} # see schemas/ for the full set incl. attribution_diff + review_feedback
# jsonschema.Draft202012Validator(json.load(open("plugins/recomby-geo/schemas/<file>"))).validate(json.load(open("clients/<slug>/<artifact>")))
print("validate each artifact against plugins/recomby-geo/schemas/*.schema.json")
PY
Stop at the human-in-loop points (see rules below).
inputs/ → 01-intake → brand_context.json
→ 02-audit → visibility_baseline.json
→ 03-gap → content_priorities.json
→ 04-content-brief → briefs/<id>.md (+ .html, REQUIRED-FILL slots)
[EXPERT FILLS THE SLOTS — not the AI]
04 Step 9 verifies fills → status: ready-for-production
→ 05-production → drafts/<id>.md (+ review .html)
→ 06-distribution → distribution/<id>.json + publish-bundle.md
[PUBLISH + WAIT 7+ days]
→ 07-reaudit (monthly) → reaudit/round-N.json → feeds next 03-gap
02 needs 01; 03 needs 01+02; 04 needs 01+03; 05 needs 04 (filled); 06 needs 05; 07 needs a prior 02.
05-production refuses to run
unless briefs/<id>.meta.json status is ready-for-production. Never
auto-fill REQUIRED-FILL slots; pause the pipeline if the expert is
unavailable. This human-in-loop checkpoint is the entire moat.schemas/*.schema.json.clients/<slug>/
folders or factor out "common" context.Stages 04 and 05 produce interactive HTML for the client via the
geo-review-html skill (also in this plugin). On Codex this works the same
as on Claude Code — the stage spec already calls render_html.py.
The capability skills' scripts (e.g. seo-geo-optimizer, geo-review-html)
need python3 on PATH; the schema validation step needs jsonschema
(pip install jsonschema). These are the same dependencies as the Claude
Code side.
npx claudepluginhub yo-steven/recomby-geo-exploration-20260615 --plugin recomby-geoScans the codebase for `ponytail:` comments and compiles a debt ledger of deliberate shortcuts and deferrals, flagging entries with no upgrade path.