{"id":"geo-pipeline","name":"geo-pipeline","summary":"OpenAI Codex CLI上のrecomby-geo GEO(生成エンジン最適化)ワークフローのエントリーポイント+オーケストレーター。","body":"# geo-pipeline — Codex orchestrator for recomby-geo\n\nOn Claude Code each stage is a bare slash command (`/01-intake` …\n`/07-reaudit`). Codex CLI has no bare custom commands, so this skill is the\nCodex entry point: it carries the orchestration rules and routes to the\nper-stage specification files, which are the **single source of truth**\nshared with the Claude Code side. Do not duplicate stage logic here — read\nthe stage file and follow it.\n\n**Per-stage specs (read the one you're running):**\n`commands/01-intake.md`, `commands/02-audit.md`, `commands/03-gap.md`,\n`commands/04-content-brief.md`, `commands/05-production.md`,\n`commands/06-distribution.md`, `commands/07-reaudit.md` (relative to this\nplugin's root). Full directory convention + dependency graph:\n`orchestrator/run.md`.\n\n## How to run a stage on Codex\n\n1. Identify the client folder `clients/<slug>/` and the stage the user wants.\n2. Read the matching `commands/0X-*.md` and execute its Procedure verbatim.\n3. Validate every JSON artifact the stage writes against its schema before\n   moving on (Codex has no built-in schema validation — run it explicitly):\n\n   ```bash\n   python3 - <<'PY'\n   import json, jsonschema\n   pairs = {\n     \"brand_context.json\": \"brand_context.schema.json\",\n     \"visibility_baseline.json\": \"visibility_baseline.schema.json\",\n     \"content_priorities.json\": \"content_priorities.schema.json\",\n   }  # see schemas/ for the full set incl. attribution_diff + review_feedback\n   # jsonschema.Draft202012Validator(json.load(open(\"plugins/recomby-geo/schemas/<file>\"))).validate(json.load(open(\"clients/<slug>/<artifact>\")))\n   print(\"validate each artifact against plugins/recomby-geo/schemas/*.schema.json\")\n   PY\n   ```\n\n4. Stop at the human-in-loop points (see rules below).\n\n## Stage order (never run out of order)\n\n```\ninputs/ → 01-intake → brand_context.json\n        → 02-audit  → visibility_baseline.json\n        → 03-gap    → content_priorities.json\n        → 04-content-brief → briefs/<id>.md (+ .html, REQUIRED-FILL slots)\n            [EXPERT FILLS THE SLOTS — not the AI]\n          04 Step 9 verifies fills → status: ready-for-production\n        → 05-production → drafts/<id>.md (+ review .html)\n        → 06-distribution → distribution/<id>.json + publish-bundle.md\n            [PUBLISH + WAIT 7+ days]\n        → 07-reaudit (monthly) → reaudit/round-N.json → feeds next 03-gap\n```\n\n02 needs 01; 03 needs 01+02; 04 needs 01+03; 05 needs 04 (filled); 06 needs\n05; 07 needs a prior 02.\n\n## Hard rules (orchestration level)\n\n1. **The expert fills briefs — not the AI.** `05-production` refuses to run\n   unless `briefs/<id>.meta.json` status is `ready-for-production`. Never\n   auto-fill REQUIRED-FILL slots; pause the pipeline if the expert is\n   unavailable. This human-in-loop checkpoint is the entire moat.\n2. **Schema validation is enforced.** If an artifact fails its schema, fix\n   before moving on. Schemas: `schemas/*.schema.json`.\n3. **One client per folder.** Don't share JSON across `clients/<slug>/`\n   folders or factor out \"common\" context.\n4. **Never run a stage out of order** (see graph above).\n\n## Client review HTML\n\nStages 04 and 05 produce interactive HTML for the client via the\n`geo-review-html` skill (also in this plugin). On Codex this works the same\nas on Claude Code — the stage spec already calls `render_html.py`.\n\n## Requirements\n\nThe capability skills' scripts (e.g. `seo-geo-optimizer`, `geo-review-html`)\nneed `python3` on PATH; the schema validation step needs `jsonschema`\n(`pip install jsonschema`). These are the same dependencies as the Claude\nCode side.","author":"@ViryaZheng","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/ViryaZheng/recomby-geo/tree/main/plugins/recomby-geo/skills/geo-pipeline","license":"MIT","category":"review","lang":"en","tokens":924,"stars":0,"calls30d":1,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":[]}}