analyzing-content-gaps — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited analyzing-content-gaps (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The top 3 pages already won the editorial battle for a query — Google watched users vote with dwell, scroll, and pogo-sticks for months and decided those pages best serve the intent. Your job isn't to imagine what the page should cover. It's to diff what they cover that you don't, then decide which gaps deserve a response.
Core principle: SERP-proven coverage beats imagination. Entities and sub-questions present across all top-3 are table stakes — if they're missing on your page, fix those first.
finding-underserved-keywords shows the gap is structural, not striking-distanceDon't use for: brand-new sites with no SERP presence (use researching-keywords-pre-launch), pages whose problem is decay (use refreshing-stale-content), or queries where SERP intent doesn't match your page type — fix intent first.
| Axis | Extract | Why |
|---|---|---|
| Entities | People, products, places, concepts, standards | Modern ranking signal; entities all 3 cover and you don't = priority [1] |
| H2/H3 structure | Sub-questions answered | Each H2 is a sub-intent the SERP rewards |
| Schema | JSON-LD types (Article, FAQPage, HowTo, Product, Review) | Rich-result + AIO citation surface |
| Word count + depth | Median competitor count | Floor: within ±20% of median [5] |
| Freshness | dateModified, "as of [year]" lines | Pages updated <3 mo cited ~2× more by AI engines [3] |
| Internal links | Count + anchor patterns | Reveals topical authority structure |
| AI Overview presence | Are competitors cited in AIO? | If yes-them-no-you, gap is citation-shaped, not ranking-shaped |
firecrawl MCP — firecrawl_search for the SERP, then firecrawl_scrape per result with formats: ["markdown", "links"] and onlyMainContent: true. Skip ads/sponsored/aggregators unless they are the intent. Firecrawl respects robots.txt by default [2].analyzeEntities (~$1/1k requests) — named entities with salience scores [7].dateModified, internal-link count.dateModified >9 months stale.optimizing-on-page.planning-topic-clusters.adding-schema-markup.Top-3 are NYT, Vogue, a Substack. Diff reveals:
seasonal palette, core 4 silhouettes, 70/20/10 ratio — your page mentions zero. Tier 1.Recommendation: expand (one page worth of edits, not a new spoke). Hand off to optimizing-on-page with this brief.
researching-keywords-pre-launch instead.| Gap | Response |
|---|---|
| Entity | Mention naturally in body / H3 |
| H2 | Add the section with a 40–50 word direct answer for AIO eligibility [3] |
| Schema | Hand off to adding-schema-markup |
| Depth (after Tier 1) | Expand existing sections with examples, not filler |
| Freshness | Update dateModified, refresh stat citations, add "as of [year]" |
| AIO presence | Front-load a question-phrased H2 with a definition-format answer [3] |
| Multi-subtopic | New spoke — planning-topic-clusters |
Growth-phase skill (3–12 mo). Skip pre-launch (no SERP signal yet — use researching-keywords-pre-launch). For mature pages, pair with refreshing-stale-content — the gap may be freshness, not coverage.
optimizing-on-page with the brief in hand.planning-topic-clusters.adding-schema-markup.optimizing-for-generative-engines after the page is structurally sound.Citations and verification tags in SOURCES.md.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.