affitor/content-moat-calculator
> Estimate pages needed for topical authority. Go/no-go decision before investing months in content. "how many articles", "content gap analysis", "can I compete in this niche", "content investment calculator", "is this niche worth the effort", "SEO feasibility", "how many pages to rank", "content volume needed", "competitive content analysis", "moat calculation", "authority gap", "should I invest in this niche".
npx skills add https://github.com/Affitor/affiliate-skills --skill content-moat-calculator
Estimate the total content investment needed to establish topical authority in a niche. Analyzes competitors' content volume and quality to give you a go/no-go decision before investing months of work. Answers the question: "How many pages do I need to dominate this topic?"
S3: Blog & SEO — This decides what blog content to build. It's the feasibility check that saves you from starting a content strategy you can't finish.
keyword-cluster-architect to estimate effort for the planned clustersniche: string # REQUIRED — the topic to analyze
# e.g., "AI video tools", "email marketing for SaaS"
hub_keyword: string # OPTIONAL — main keyword to analyze competitors for
# Default: inferred from niche
your_current_pages: number # OPTIONAL — how many pages you already have on this topic
# Default: 0
publishing_capacity: string # OPTIONAL — "1/week" | "2/week" | "3/week" | "5/week"
# Default: "2/week"
Chaining from S3 keyword-cluster-architect: Use keyword_clusters.total_clusters and keyword_clusters.hub.keyword.
Read shared/references/seo-strategy.md for moat calculation methodology.
web_search for [hub_keyword] or main niche keywordweb_search: site:[competitor.com] [niche topic] — count pages on this topicAverage competitor pages = sum(competitor_pages) / number_of_competitors
Your moat target = Average × 1.5 (need MORE than average to break through)
Content gap = Moat target - your_current_pages
Based on moat target and publishing capacity:
Weeks to moat = Content gap / publishing_capacity_per_week
| Moat Target | Assessment | Recommendation |
|---|---|---|
| < 20 pages | GREEN — Achievable | Go for it. 2-3 months at 2/week. |
| 20-50 pages | YELLOW — Significant | Commit or don't. 3-6 months at 2/week. |
| 50-100 pages | ORANGE — Major investment | Consider narrowing niche. 6-12 months. |
| 100+ pages | RED — Very high barrier | Find a sub-niche or different angle. |
Identify ways to build moat FASTER:
proprietary-data-generator)Create realistic timeline:
output_schema_version: "1.0.0"
content_moat:
niche: string
hub_keyword: string
competitors_analyzed: number
average_competitor_pages: number
moat_target: number
your_current_pages: number
content_gap: number
feasibility: string # "green" | "yellow" | "orange" | "red"
weeks_to_moat: number
assessment: string # Go/no-go summary
competitors:
- domain: string
pages_on_topic: number
content_quality: string # "thin" | "average" | "deep"
freshness: string # "stale" | "recent" | "actively updated"
authority_gaps: string[] # What competitors have that you don't
competitive_advantages: string[] # Ways to build moat faster
chain_metadata:
skill_slug: "content-moat-calculator"
stage: "blog"
timestamp: string
suggested_next:
- "affiliate-blog-builder"
- "keyword-cluster-architect"
- "proprietary-data-generator"
- "content-decay-detector"
## Content Moat Analysis: [Niche]
### Competitor Landscape
| Competitor | Pages on Topic | Quality | Freshness |
|---|---|---|---|
| [domain] | XX | [thin/average/deep] | [stale/recent/active] |
### Moat Calculation
- **Average competitor pages:** XX
- **Your moat target (1.5x):** XX pages
- **Your current pages:** XX
- **Content gap:** XX pages
- **At [X]/week:** XX weeks to moat
### Feasibility: [GREEN/YELLOW/ORANGE/RED]
[Assessment paragraph — honest, actionable]
### Competitive Advantages
1. [How to build moat faster]
2. [What competitors are missing]
### Timeline
| Phase | Content | Pages | Weeks |
|---|---|---|---|
| Foundation | Hub + core spokes | XX | X |
| Supporting | Long-tail, tutorials | XX | X |
| Authority | Original research, data | XX | X |
| **Total** | | **XX** | **X** |
### Recommendation
[Clear go/no-go with reasoning]
monopoly-niche-finder first."Example 1: "How much content do I need to dominate AI video tools?"
→ Analyze top 5 sites ranking for "best AI video tools". Average 35 pages. Moat = 53 pages. At 2/week = 27 weeks. YELLOW — significant but doable.
Example 2: "Can I compete in email marketing?"
→ Analyze competitors. Average 200+ pages. Moat = 300 pages. RED — too broad. Suggest: "email marketing for Shopify stores" (moat = 25 pages, GREEN).
Example 3: "Content moat for my keyword clusters" (after keyword-cluster-architect)
→ Use cluster data to estimate pages needed per cluster. Compare against competitors per cluster. Identify which clusters are GREEN vs RED.
affiliate-blog-builder (S3) — how many articles and what type to writegrand-slam-offer (S4) — authority gaps inform what to emphasize in offersproprietary-data-generator (S7) — identifies data moat opportunitieskeyword-cluster-architect (S3) — cluster count informs moat estimationseo-audit (S6) — current content performance dataperformance-report (S6) — content performance metricsperformance-report (S6) tracks progress toward moat target → celebrate milestones, adjust strategy if falling behindBefore delivering output, verify:
Any NO → rewrite before delivering.
shared/references/seo-strategy.md — Topical authority model, moat calculation formulashared/references/case-studies.md — Real content strategy examplesshared/references/flywheel-connections.md — Master connection mapTake affitor/content-moat-calculator from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.