# Skyscraper Content Quality Enforcement

**Last Updated:** 2026-03-23  
**Purpose:** Prevent word-count chasing; enforce comprehensive, data-driven content creation per skyscraper technique. Use when creating or improving blog posts.

## Problem Statement

Content creation can degenerate into **word-count chasing**: adding filler sentences to reach validation minimums instead of creating best-in-class content that leverages all available SEO data (competitive research, SERP analysis, PAA, competitor content). This produces thin, undifferentiated content that underperforms.

## Core Principle

**Aim for suggested (100% of competitive-depth), not minimum (80%).** The 80% floor is a validation safety net—not the target. Content that consistently hits minimums will underperform vs. competitors.

**PAA ≠ skyscraper depth:** `validate-content-completeness` can show PAA covered while the post is still far below the **Recommended Target** in `competitive-depth-analysis.md`. See [CONTENT_PIPELINE_AUDIT_2026-03-23.md](CONTENT_PIPELINE_AUDIT_2026-03-23.md). **`compare-content-to-competitors.php`** is the **ratio and competitor-gap** source of truth before publish; use **`--strict`** when enforcing no WARN / minimum ratio ([CI_BLOG_CONTENT_GUARDRAILS.md](CI_BLOG_CONTENT_GUARDRAILS.md)).

## Mandatory Data Utilization

Before and during content creation, **all** of the following must be used:

| Data Source | Required Use | Gate |
|-------------|--------------|------|
| **competitive-depth-analysis.md** | Set outline target to 100% of recommended; populate with real competitor H2s, word counts, topics when SISTRIX fails | validate-content-outline-quality |
| **competitor-analysis.json** | When SISTRIX returns 0: Run Firecrawl remediation to populate. Never create outline with empty competitor data. | SISTRIX_FAILURE_FALLBACKS |
| **SERP_ANALYSIS.md** | 30 min browser review; no placeholders; PAA coverage matrix; ranking factors; recommendations | validate-serp-outline-ready |
| **compare-content-to-competitors.php** | Run **before** finalizing; address **every** gap (Rechtsfragen, Anwendungsfelder, depth per section). Do NOT add filler—address gaps substantively. | Mandatory pre-publish |
| **section-briefs.md** | Read before writing each H2; cover all key points; hit per-section target words | generate-section-briefs |
| **outline-scaffold.generated.md** | Auto-merge helper: competitor H2 frequency, PAA list, gaps, intent — run `synthesize-outline-scaffold.php`, merge into outline | synthesize-outline-scaffold.php |
| **CONTENT_OUTLINE.md** | Unique Value ≥1 checked; PAA matrix filled; competitor H2 mapping; content gap checklist | validate-content-outline-quality |

## Prohibited Behaviors

1. **Filler to reach word count** – Adding sentences like "Sie wird oft in Arbeitsverträgen genannt" or "Eine digitale Zeiterfassung unterstützt die Umsetzung" solely to hit 80%. Cut these; add substantive content instead.
2. **Ignoring compare-content-to-competitors** – If it says "Add ~428 words" and "Focus on: Rechtsfragen, Anwendungsfelder, depth per section," address those gaps. Do not add generic paragraphs elsewhere.
3. **Skipping Firecrawl when SISTRIX fails** – Run `validate-blog-competitor-data-completeness.php --remediate` to scrape top 5–7 competitors. Populate competitive-depth-analysis with real H2s and word counts.
4. **Outline target = minimum** – Set target to 100% of competitive-depth recommended. Use 90% only when topic is narrow.
5. **Thin sections** – Each H2 needs 2+ paragraphs or 1 paragraph + list/table. Per-section target words from outline must be respected.

## Substantive Expansion Checklist

When `compare-content-to-competitors` or validators flag gaps, expand with **substantive** content:

- [ ] **Rechtsfragen** – Add specific Q&A (Darf der AG einseitig ändern? Was bei Vertragsende? Mitbestimmung?)
- [ ] **Anwendungsfelder** – Expand Branchen with concrete examples, use cases, "Wann lohnt sich / wann nicht"
- [ ] **Depth per section** – Add step-by-step examples, Berechnungsbeispiele with numbers, comparison tables
- [ ] **Competitor topics we miss** – Scrape competitors; add any H2/subtopic they cover that we don't
- [ ] **Unique value** – Checkliste, Einführungs-Guide, Sonderfälle, expert insight, or better format

## Process Integration

- **blog-content-creation-gate.mdc** – References this doc; gate blocks content creation if SERP/outline/Unique Value fail.
- **CONTENT_CREATION_WORKFLOW_2026.md** – Outline-first, section-by-section; no incremental word-count chasing.
- **LEXIKON_POST_CREATION_TODO_TEMPLATE.md** – Firecrawl remediation when SISTRIX=0; default `synthesize-outline-scaffold.php` when `competitive-depth-analysis.md` exists; address `compare-content-to-competitors` gaps before finalizing.

## References

- [SKYSCRAPER_TECHNIQUE_2026.md](SKYSCRAPER_TECHNIQUE_2026.md)
- [CONTENT_PIPELINE_AUDIT_2026-03-23.md](CONTENT_PIPELINE_AUDIT_2026-03-23.md)
- [SISTRIX_FAILURE_FALLBACKS.md](SISTRIX_FAILURE_FALLBACKS.md)
- [ANTI_FLUFF_CHECKLIST.md](ANTI_FLUFF_CHECKLIST.md)
- [CONTENT_CREATION_WORKFLOW_2026.md](CONTENT_CREATION_WORKFLOW_2026.md)
- [Cluster mapping (architecture)](../../reference/architecture/content-clusters/CLUSTER_MAPPING.md)
