# seobuild-onpage v1.9.1
### One command. Competitive data in. Ranking pages out.
```
claude install-skill gbessoni/seobuild-onpage
```
Most SEO tools tell you what's wrong with your site. This one writes the pages.
`/seoagi "airport parking JFK"` pulls the current SERP, analyzes what's ranking, finds the gaps in their content, and writes you a complete page -- with the heading structure, depth, FAQ section, and schema markup that actually competes. Not thin content. Not keyword-stuffed filler. Pages backed by live data from the tools the pros use.
**New in v1.9.1 -- Decision Fit Mapping + Brand Voice + Missing Spoke Detection:**
- **Brand differentiator injection** via `--differentiators` on `research.py` (e.g. `--differentiators="women-owned, 24/7 service, no hidden fees"`). Passes through to the brief output so the writing agent has strict brand constraints. Differentiators must be woven verbatim into the 500-token chunks and surfaced in the AI Summary Nugget -- paraphrased fluff fails the new Brand Identity check.
- **Missing Spoke Detection** -- the research pipeline now extracts internal-link anchor text from the top 3 competitors, filters out navigational generics (Home, Contact Us, Privacy, FAQ, etc.) and image-link leakage, and outputs a ranked `missing_spokes` list. SKILL.md Section 12 now requires every generated page to append a `## Recommended Spoke Pages` section built from this data.
- **Decision Fit Mapping** -- new checklist enforcement: heading structure must map to the user's psychological buying stage (Research / Compare / Buy) instead of copy-pasting competitor H2s.
- **Execution Protocol now prompts for differentiators** if the user didn't supply them up front -- the agent stops and asks before writing rather than producing generic AI homogenization.
- **51-point quality checklist** -- adds Decision Fit (#49), Brand Identity (#50), Topical Silo (#51) checks. Passing threshold raised to 42/51.
**New in v1.9.0 -- Massive Web Render as primary content parser:**
- **Massive Web Render** (render.joinmassive.com) is now the primary competitor content parser when `MASSIVE_API_TOKEN` is configured. Returns clean rendered markdown including JS-loaded content that DataForSEO's `content_parsing/live` endpoint misses.
- **Graceful per-URL fallback to DataForSEO** -- if Massive errors or returns empty for any single URL, that URL falls back to DataForSEO. A partial Massive outage cannot break a research run.
- **SERP organic results and keyword data continue to come from DataForSEO** -- Massive's `/search` endpoint only returns "also-searched" query suggestions, not organic results, so the SERP path is unchanged.
- **`content_parsers` field added** to research output so you can see exactly which parser handled each URL (e.g. `{"massive": 4, "dataforseo-fallback": 1}`).
- Setup: add `MASSIVE_API_TOKEN=...` to `~/.config/seo-agi/.env`. No token = skill runs in pure DataForSEO mode exactly as before.
**New in v1.8.0 -- Gemini 3.5 Flash RAG Optimization + Off-Page Trust Expansion:**
- **DOM Vectoring & Shard Extraction Compliance** (Section 6) -- Google's AI Overviews are built by Gemini 3.5 Flash running a RAG pipeline that extracts structural "shards" from the raw HTML DOM. JSON-LD in `
` is no longer sufficient by itself: critical data points must live in front-facing `
` markup or inline RDFa spans where a clean-session crawler can see them without JavaScript execution.
- **Trust Pilot as Tier 1 Tributary** -- added to the Tributary Trust Protocol as a first-class Tier 1 asset. Trustpilot is now a highly weighted trust/relevance signal for LLMs and demonstrably shifts brand description vectoring in Gemini and ChatGPT within 48 hours of publication.
- **Off-Page Schema Injection** -- new Tier 1 tactic. Embedding `Organization` and `Person` JSON-LD schema in third-party properties (Cloud Pages, press releases) with explicit links back to the brand's Google Business Profile CID blocks Google's NavBoost from rank-shuffling the money page during A/B exposure tests.
- **Tributary network spread updated** from 4/5 Tier 1 assets to 5/7 to account for the two new asset types.
- **48-point quality checklist** -- adds Trust Pilot profiling, off-page schema mapping, and DOM-visible data point checks. Passing threshold raised to 39/48.
**New in v1.7.1 -- LLM Retrieval & Substantive Content Protocols:**
- **Meta-Specific Entity Isolation** -- competitor SERP descriptions are mined for the bolded query-matched terms (the snippet entities Google itself surfaces), not generic body entities. These become the primary entity set the brief must cover, because they are the exact tokens already validated as relevant by Google's snippet generator.
- **Bigram / Trigram AI Alignment** -- top 3 ranking competitors' body text is tokenized to extract the top 5 bigrams and top 5 trigrams. The AI Summary Nugget (top of page, position zero for LLM retrieval) must include 2 or more of these n-grams verbatim. AI retrieval scoring rewards token-window overlap with consensus phrasing -- this is how you align with what the LLM has already learned the topic "looks like."
- **Primary + Secondary Intent Mapping (Orcas 1)** -- single-intent pages underperform. Every page now maps Primary intent (the question the user typed) into the first 500 tokens AND Secondary intent (the action funnel: compare, book, contact, calculate) into the next two chunks. Pages without a secondary action path fail the dual-intent check.
- **The 410 Prune Protocol** -- on rewrites, every legacy URL gets an explicit status-code recommendation. 301 preserves equity when the topic survives. 410 prunes thin, cannibalizing, or out-of-topical-circle pages so they stop dragging the domain. Silent leave-as-is is no longer an acceptable output for a legacy URL audit.
- **Local Codebase Contextual Linking** -- when the skill is run inside a project repo, it scans the local file structure (`.tsx`, `.md`, `.html`, etc.), detects the framework, injects semantic HTML directly into source files where appropriate, and emits `.htaccess` / Nginx / `next.config.js` redirect snippets for the 410 recommendations. The skill writes ranking pages, not just content briefs.
- **45-point quality checklist** -- adds Meta Entity Isolation, N-Gram Alignment, Dual-Intent, and Status Code Governance checks.
**New in v1.6.0 -- ICP-Driven Content + Local Trust Signals:**
- **Ideal Customer Persona (ICP) Integration** -- page briefs now require a defined ICP with demographics, psychographics, and specific pain points. Content maps to who it's actually for, not a generic audience.
- **Deep Entity History & Identity Tags** -- founding dates, generational ownership, and identity attributes (women-owned, veteran-owned, family-owned) are now explicit entity signals. Maps directly to GBP tags and conversational AI filtering.
- **The Self-Placement Rule** -- ranking the client #1 in a listicle is now an approved tactic, provided the entry is strictly objective with a defined use-case and honest tradeoffs.
- **Keyword Cannibalization Governance** -- strict rule against creating pages that compete with existing URLs for the same intent. Sales-focused duplicates of informational pages get tagged with `noindex` recommendation.
- **41-point quality checklist** adding ICP alignment, entity history, and cannibalization checks.
**New in v1.5.0 -- Forensic SEO + Structural Signals:**
- **Semantic HTML Containers** -- generated HTML now uses ``, ``, `