From overgrow
Generates new blog posts identifying missing topics via query-fanout pattern from product inventory to cover search/AI intents, outputting in markdown, MDX, component, or CMS format.
npx claudepluginhub zhizdev/overgrow --plugin overgrowThis skill is limited to using the following tools:
This skill plans and drafts net-new blog posts that close gaps in the site's semantic pillars. It uses the **query-fanout** pattern: one seed intent is expanded into a fan of related sub-intents that modern search and AI systems decompose queries into, then each sub-intent becomes a post.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Processes PDFs: extracts text/tables/images, merges/splits/rotates pages, adds watermarks, creates/fills forms, encrypts/decrypts, OCRs scans. Activates on PDF mentions or output requests.
Share bugs, ideas, or general feedback.
This skill plans and drafts net-new blog posts that close gaps in the site's semantic pillars. It uses the query-fanout pattern: one seed intent is expanded into a fan of related sub-intents that modern search and AI systems decompose queries into, then each sub-intent becomes a post.
.overgrow/inventory.md. If missing, run init first..overgrow/audit.md if present — thin pillars and orphan topics are prime spawn targets.$ARGUMENTS: if a pillar name or topic seed is given, scope to it. If not, propose up to 3 candidate pillars to expand and STOP and call the AskUserQuestion tool to clarify. which to run. Once chosen, proceed for that pillar.Before planning topics or drafting, read from the plugin's knowledge/ directory:
knowledge/query-fanout.md — the 15-facet query fan-out taxonomy (DEFN, ENTITY, COMPARE, etc.). Use it to build the candidate sub-intent set. This SKILL.md's "Query-fanout pattern" section is a summary; query-fanout.md is the authoritative list.knowledge/geo.md — SEO + GEO master reference. Pay particular attention to the sections on content structure, AI extraction / RAG chunking, and answer-engine citation patterns. Post structure below is distilled from this file.knowledge/pages.md — H-tag and AI-overview formatting rules. Apply directly when drafting headings and the TL;DR lead.If any of those files are not reachable, fall back to the summaries in this SKILL.md and continue.
Given a seed intent (e.g. "observability for PostgreSQL"), produce a fan of sub-intents covering the natural ways users and AI systems decompose the topic. A complete fan covers:
You do not need every branch for every pillar — pick the 5-10 branches that are both relevant and missing from existing content (per the inventory).
For the chosen pillar:
Every post the skill drafts uses this structure — it's tuned for both classic SEO ranking and AI-overview / chatbot citation.
FAQPage schema fodder..overgrow/inventory.md.Before writing anything, read the Authoring conventions section of .overgrow/inventory.md and open one existing post in the target blog directory to mirror its frontmatter shape exactly (key names, order, required fields, tag format, author field, etc.). Do not invent frontmatter keys.
Pick the output format from the detected convention:
.md or .mdx at the blog content root, using the inventory's recorded extension. Frontmatter matches an existing post's shape 1:1 — if existing posts use description not excerpt, use description; if they use publishedAt not date, use publishedAt; if they add author, add author..tsx / .astro route with prose components): mirror the pattern of an existing post component, including layout wrapper, MDX-component use, and metadata export..overgrow/content-plan.md under ## CMS migrations with the full post body plus field-by-field mapping to the CMS model.If no existing posts exist yet, fall back to this default frontmatter (and flag in content-plan that the project should standardize):
---
title: <title>
description: <meta description>
slug: <slug>
date: <YYYY-MM-DD>
pillar: <pillar name>
intent: <definitional | comparative | how-to | why | problem | role | integration | migration | cost | trends>
keywords: [<primary>, <secondary1>, <secondary2>]
draft: true
---
<body — following the structure above>
Use the project's draft gating idiom: if existing posts use draft: true, use it; if they use published: false, use that; if the project has no draft mechanism, add a TODO: review before shipping comment at the top of the body.
Then update .overgrow/content-plan.md (create if missing) with an entry per spawned post:
## <Pillar>
- [ ] <slug> — <title> — intent: <branch> — status: drafted <YYYY-MM-DD>
Leaving posts gated (via the project's existing draft mechanism or a TODO comment) is intentional — the user should run audit and humanize before publishing.
<!-- placeholder: replace with real example -->.CLAUDE.md, BRAND.md, VOICE.md, style-guide.md). Otherwise default to clear, active, jargon-light.humanize/reference/word-lists.md from the start so there's less to clean.spawn-pages).spawn-internal-links). It only adds outbound links from the new posts it drafts.