source/skills/spawn-pages/SKILL.md
Given the product offering and existing page inventory, create new core landing and resource pages (homepage refresh, features, solutions, pricing, comparison, resource hubs, about) that capture core product intent using the query-fanout pattern. Use this skill whenever the user asks to "spawn pages", "generate landing pages", "create marketing pages", "build a pricing page", "add a solutions page", "build out the site", "fill in missing pages", or wants new top-level marketing/product pages. Output is one new page per route in the project's native file format (component or markdown), matching the existing page style and framework idiom.
npx skillsauth add zhizdev/overgrow spawn-pagesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill plans and drafts net-new core pages that close gaps in the site's marketing structure — the pages buyers hit before they become leads. It applies the query-fanout pattern to audience-and-intent space (who is searching, what stage, what objection) rather than to blog topics.
.overgrow/inventory.md. If missing, run init first..overgrow/audit.md if present — flagged gaps are prime spawn targets.$ARGUMENTS: if a page type, audience, or vertical seed is given, scope to it. Otherwise propose 3-5 candidate pages to spawn and {{ask_instruction}} which to run.Before planning pages, read these from the plugin's knowledge/ directory:
knowledge/geo.md — SEO + GEO master reference. Pay attention to: foundations, content structure, E-E-A-T signals, AI extraction patterns, commercial intent.knowledge/query-fanout.md — the 15-facet query fan-out taxonomy; use it to pick which page types and sub-pages to spawn.knowledge/pages.md — H-tag structure and AI-overview-friendly formatting rules.reference/page-templates.md (this skill's own reference) — section-by-section templates and copy patterns for homepage, features, solutions, pricing, resources, and about pages.If those files are not reachable from the current working directory, fall back gracefully using the rules summarized in this SKILL.md, but prefer the reference files when available.
Blogs fan out over questions. Pages fan out over who is shopping and why. Given the product's core value prop, generate candidate pages along these branches:
Cross-check every candidate against the inventory. Do not duplicate existing pages. Rank by: (1) search/AI intent volume, (2) conversion proximity, (3) competitive gap.
Use the section-by-section templates in reference/page-templates.md for:
For page types not covered there — comparison, integration landing, security/trust, demo — use this minimum structure:
FAQPage schema).Before writing anything, read the Authoring conventions section of .overgrow/inventory.md and open at least one existing page in the same route group to mirror its imports, layout wrapper, metadata pattern, styling convention, and use of reusable section components. Never guess the idiom — copy it from what's already shipping.
Pick the output format from the inventory's detected framework:
.tsx, SvelteKit +page.svelte, Astro .astro, Nuxt .vue, Remix, etc.)Emit a real page component at the framework's expected route path:
app/<route>/page.tsx (or .jsx / .mdx if that's what the project uses).pages/<route>.tsx.src/routes/<route>/+page.svelte.src/pages/<route>.astro.pages/<route>.vue.The component must:
export const metadata = { ... }, SvelteKit <svelte:head>, Astro frontmatter + <SEO> component, Nuxt useHead() / definePageMeta().<Hero />, <FeatureGrid />, <Pricing />, <CTA />, <FAQ />) — pass copy in as props. If a needed primitive is missing, inline the section as JSX/Svelte/Astro markup in the same style used elsewhere in the repo, not as raw HTML.Authoring conventions says.<script type="application/ld+json"> block or the project's existing schema helper.app/**/page.mdx, Nuxt Content, Hugo, Jekyll, Gatsby MDX, Docusaurus)Emit .md or .mdx at the content root used by the project (detected from the inventory — e.g. src/content/pages/<slug>.md, content/pages/<slug>.mdx). Match the exact frontmatter shape used by an existing page in the same collection (key names, order, required fields). Body uses the project's MDX components if any are in use.
Do not write a file. Instead append a migration note to .overgrow/content-plan.md under a ## CMS migrations section, with field-by-field copy mapped to the CMS model the user is using, plus the target route and which CMS content type to create it in.
knowledge/pages.md — one H1, H2 per major section, H3 only where needed.<script type="application/ld+json"> block or use the project's schema helper. For markdown output, include a jsonLd: field in frontmatter if the project supports it, otherwise leave a clearly labeled block at the top of the body..overgrow/inventory.md. Never invent routes. Use the project's link primitive (<Link>, <a>, [text](route)).{/* placeholder: replace with real <thing> */} in JSX, <!-- placeholder: replace with real <thing> --> in markdown/Astro/Svelte template regions, or the framework's comment syntax. List all placeholders at the bottom of the file or in a TODO block.draft frontmatter convention, set draft: true. For component projects, add a // TODO: review before shipping header comment — the reviewer's signal, not a framework mechanism.Then update .overgrow/content-plan.md with an entry for each spawned page under a ## Pages section, noting the output file path and format (component / markdown / CMS migration).
X vs Y) → /compare/<competitor> or /alternatives/<competitor> page.X for <industry>) → /solutions/<industry> page.X for <role>) → /solutions/<role> page.X with <tool>) → /integrations/<tool> page./pricing + optional tier-specific landings./security, /trust, or /compliance page./features/<feature>.knowledge/geo.md sections on content structure and AI extraction before drafting.{{config_file}}, BRAND.md, VOICE.md). Default to clear, active, jargon-light.humanize/reference/word-lists.md from the start — saves a humanize pass later.spawn-blogs).spawn-internal-links).audit and humanize on new pages before publishing.tools
Pull the open Bonemeal action queue (landing pages and blog posts the user has not built yet) via the bonemeal MCP server, let the user pick which ones to build, dispatch each to the spawn-pages or spawn-blogs skill with the action's brief, and mark each completed in Bonemeal once the file is written. Use this whenever the user says "grow", "/grow", "build my Bonemeal queue", "what's in my Bonemeal queue", "build the suggested pages", or wants to act on Bonemeal's content suggestions. Stop and ask the user before marking actions complete the first time, then remember their preference.
development
Examine every existing page on the site, build a semantic map across pillars, and add missing internal links so the site becomes a semantic graph anchored on clear topical pillars. Use this skill whenever the user asks to "add internal links", "build internal linking", "build a semantic graph", "link related pages", "strengthen topical authority", "fix orphan pages", "add pillar linking", or wants hub-and-spoke linking between pillars, hubs, and supporting content. Output is an edit list (proposed link insertions) plus optionally direct edits to page source files.
development
Given the product and the existing page inventory, identify missing blog topics and generate new blog posts that capture search/AI intent using the query-fanout pattern. Use this skill whenever the user asks to "spawn blogs", "generate blog posts", "expand the blog", "build out a content cluster", "write blog ideas", "cover more search intents", "query fanout for blogs", or wants new long-form content that supports existing pillars. Output is one new post per topic in the project's existing post format (markdown, MDX, component, or CMS migration note), with frontmatter shape mirrored from an existing post.
development
Audit an existing sitemap.xml / robots.txt or generate new ones following sitemaps.org protocol and Google Search Central guidance, with a growth-first default that allows every crawler including AI search and AI training bots. Use this skill whenever the user asks to "build a sitemap", "generate sitemap.xml", "audit the sitemap", "refresh sitemap", "write robots.txt", "check robots", "allow AI crawlers", "block AI crawlers", "fix crawl budget", "submit to Google", or any other discovery / indexing configuration task. Output is a valid sitemap.xml (or sitemap index) and/or robots.txt, plus a written audit when auditing.