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 +…
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
> /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.
/01-intakeContext preview
What this command does when you run it.
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
description: 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 starting a new client (clients/<slug>/inputs/ has materials but no brand_context.json), or when brand_context.json is marked status=stale. Downstream consumers: 02-audit, 03-gap, 04-content-brief, 05-production. argument-hint: "<client-folder, e.g. clients/acme>"
The single source of truth for the entire pipeline. Every downstream skill reads `brand_context.json`. If this is wrong or thin, every later skill amplifies the error.
**Core principle**: AI recommends whoever best answers the question. The richer and more precise this profile, the more accurately the rest of the pipeline can identify the exact questions this business should own.
---
DOCX, PPTX, XLSX, image, plaintext notes, URL list).
`schemas/brand_context.schema.json` (3 layers + extended).
was extracted from which source.
---
Run sequentially. Do not signal readiness to 02-audit until every gate passes.
For each file in `clients/<slug>/inputs/`:
| Input type | Approach | |------------|----------| | `*.pdf` | Read with the `Read` tool (built-in PDF support up to 10 pages; for larger PDFs, pass `pages` ranges) | | `*.docx` | `unzip -p file.docx word/document.xml \| sed 's/<[^>]*>/ /g'` then `tr -s ' ' '\n'` | | `*.pptx` | Same as docx but `ppt/slides/slide*.xml` | | `*.xlsx` / `*.csv` | `python3 -c "import pandas; print(pandas.read_excel(...).to_csv())"` | | URL list | `WebFetch` each URL with extraction prompt | | `*.png` / `*.jpg` | `Read` (multimodal) — extract text and structural info | | Notes | Read directly |
**Do not dump raw content into brand_context.json.** Apply the extraction filter: keep only signals that map to a schema field. Discard the rest.
Fill these from materials. If any is missing or thin (single word, "TBD", generic-quality phrase), ASK the user a targeted question. Don't continue with placeholder values.
1. `company.name` + URL + one-line description 2. `product_or_service.category` + description + core_offerings 3. `target_customer.primary_icp` — Forrester-style: persona_label, demographics (role/segment, geography, size/age), jobs_to_be_done (≥1), pain_points, search_behavior 4. `competitors[]` — 1–3 entries. **Verify each via `WebFetch` on their public site** before recording. Don't trust user-named competitors blindly. 5. `core_differentiator` (concrete, ≥10 chars, not "we provide quality") 6. `competitive_moat` (one-sentence why-AI-should-recommend-us)
Do all three independently. Don't ask the user; the user doesn't have this data.
**3a. AI Perception Scan**
comparison, how-to, status). Use `target_queries` if present, else generate from category + ICP.
and ask it each query. Same mechanism as 02-audit Step 2 (see `skills/02-audit/SKILL.md`). For multi-engine coverage you may optionally invoke `seo-geo-optimizer` (vendored).
recommended brands, whether us mentioned, position, captured_at.
on-topic. Record into `citation_sources[]`.
**3b. Competitor Reality**
pages. Record core_approach, strengths, weaknesses, ai_visibility_notes, key_differentiator_vs_us, verified_at.
name, surface this: "You named X, Y, but AI recommends A, B for this category. Track both sets or focus on one?" Then update Layer 1 competitors accordingly.
**3c. Community Voice**
<competitor> forum"`, `"<category> review hacker news"`.
classification.
From Layer 1 + Layer 2, identify question types where this business CAN win but currently isn't. At least one entry. Each entry must include `opportunity` + `rationale` + supporting_evidence (cite specific Layer 2 findings).
Build `target_queries[]`. Sources:
Each entry needs query, intent, priority (P0/P1/P2), rationale, expected_answer_shape.
Minimum 10 entries. Aim for 25–40 to give 02-audit a robust baseline.
post, founder note). Record source + excerpt + voice_attributes.
asset into `content_assets[]` with type + freshness.
Before persisting brand_context.json, present to user:
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.
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 +…
Translate the visibility baseline + brand context into a ranked list of content actions that should move the needle. Identifies absent queries, contested…
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…
Convert an expert-filled brief into a publishable draft. Applies Princeton KDD 2024 GEO techniques (statistics, quotations, citations, authoritative language)…
For a published-ready draft, generate JSON-LD schema markup, internal linking suggestions, third-party distribution targets, and llms.txt block. Outputs…
Re-run 02-audit, diff against the previous baseline, attribute movement to specific content/distribution actions. Outputs reaudit/round-N.json validated…