Install
openclaw skills install @ncreighton/content-dependency-mapperMap hidden dependencies across your content library to identify critical assets, orphaned content, and strategic clusters. Use when the user needs content audit insights, editorial prioritization, or content fragility analysis for strategic planning.
openclaw skills install @ncreighton/content-dependency-mapperContent Dependency Mapper is an enterprise-grade research skill that performs deep structural analysis of your entire content library to uncover hidden relationships, traffic flows, and criticality patterns. Unlike surface-level content audits, this skill maps the actual dependencies between your assets—revealing which blog posts funnel users to premium offers, which tutorial videos are prerequisites for course comprehension, which guides get cited in sales materials, and which pieces carry disproportionate weight in your content ecosystem.
Most content teams operate blindly, publishing in silos without understanding:
This skill generates:
Works with WordPress, HubSpot, Medium, Substack, Notion, Ghost, static site generators, Google Analytics, Segment, and any content source accessible via API or CSV export.
Analyze my WordPress blog at example.com/wp-json/wp/v2/posts
and map all content dependencies including:
- Internal linking patterns
- Time-on-page metrics
- Click-through rates to conversion pages
- Content cluster recommendations
Output a dependency graph showing which posts drive traffic
to my core offer (/pricing).
I have a Notion database with 200+ articles, guides, and videos
at https://api.notion.com/v1/databases/[DB_ID]/query.
Create a Content Criticality Score for each asset that factors in:
- Inbound links from other content
- Traffic volume from Google Analytics
- Conversion impact (links to sales pages)
- Time investment required to maintain
Flag the top 15 "overworked" pieces that receive too many internal
links and should be split into smaller, focused pieces.
Audit my 150-post blog for content fragility:
- Posts with zero inbound links (orphaned)
- Content gaps (topics mentioned but not covered)
- Duplicate or near-duplicate articles
- Outdated posts still driving traffic but missing updates
Suggest which low-impact posts should be consolidated,
which should be deleted, and which need refreshing.
Maps all content relationships through:
Output formats: JSON, GraphML (Gephi/Cytoscape compatible), DOT (Graphviz), or interactive HTML visualization.
{
"nodes": [
{
"id": "post-42",
"title": "Getting Started with REST APIs",
"url": "/blog/rest-apis-intro",
"criticality_score": 87,
"inbound_links": 23,
"outbound_links": 8,
"traffic_volume": 4230,
"conversion_rate": 0.12
}
],
"edges": [
{
"source": "post-42",
"target": "course-101",
"link_type": "prerequisite",
"weight": 0.95,
"click_through_rate": 0.34
}
]
}
Evaluates each asset on:
Scores range 1-100. Assets 75+ are strategic priorities; below 30 are candidates for consolidation or deletion.
Identifies content clusters—groups of related pieces that should be:
Uses semantic similarity + linking patterns to surface opportunities.
Detects:
Generates actionable recommendations:
export OPENAI_API_KEY="sk-..." # For semantic analysis
export CONTENT_SOURCE_URL="https://..." # Your content API/export
export GOOGLE_ANALYTICS_TOKEN="..." # Optional: Traffic metrics
export CONVERSION_PAGE_URLS="..." # Comma-separated: /pricing,/signup
Export Your Content:
Connect Analytics (optional but recommended):
gcloud auth application-default login
# or
aws configure
Define Conversion Pages:
export CONVERSION_PAGE_URLS="/pricing,/book-demo,/checkout,/waitlist"
Run Analysis:
openclaw run content-dependency-mapper \
--source wordpress \
--domain example.com \
--output-format json,html,dot \
--include-analytics true
--min-link-weight 0.2: Exclude weak semantic links (0-1 scale)--cluster-threshold 0.6: Tighten/loosen cluster detection--include-semantics true: Enable AI-powered semantic linking (slower, more thorough)--compare-versions: Track changes over time (requires historical snapshots)TOP 15 CRITICAL ASSETS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. post-101: "Setup Guide for Beginners" | Score: 94
└─ Drives 8,342 visits/month → 23 course signups
└─ Referenced by 18 internal posts + email campaigns
2. video-23: "5-Minute Product Demo" | Score: 91
└─ 12,100 views, 34% CTR to /pricing
└─ Prerequisite for 6 advanced tutorials
3. guide-5: "API Reference Documentation" | Score: 89
└─ 156 inbound links from engineering content
└─ Critical infrastructure asset
OVERWORKED POSTS (>50 internal links - consider splitting)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• post-42 "Intro to Concept X" — 67 internal links
→ Recommend: Split into "Core," "Advanced," "Troubleshooting"
ORPHANED ASSETS (0 inbound links - consider consolidating)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• post-203 "Obsolete Feature Overview" | 23 visits/month
• video-88 "Conference Talk Excerpt" | 4 visits/month
→ Recommendation: Consolidate into guides or delete
digraph ContentDependencies {
rankdir=LR;
"Guide: Getting Started" -> "Tutorial: Setup";
"Tutorial: Setup" -> "Course: 201" [label="prerequisite"];
"Blog: Tips" -> "Pricing Page" [color=red, penwidth=3];
"Video: Demo" -> "Pricing Page" [color=red];
subgraph cluster_0 {
label = "Email Nurture Cluster";
"Email Seq 1" -> "Blog: Intro";
"Blog: Intro" -> "Email Seq 2";
}
}
SUGGESTED CONTENT BUNDLES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Cluster A: "Advanced API Usage" (Similarity: 0.89)
• blog-32: "Authentication Deep Dive"
• guide-11: "OAuth 2.0 Implementation"
• video-45: "Security Best Practices"
→ Action: Bundle into a "Master Guide" + add 1 new piece
on "Common Security Mistakes"
Cluster B: "Ecommerce Integration" (Similarity: 0.84)
• course-12: "Shopify Integration 101"
• tutorial-88: "WooCommerce Setup"
• case-study-5: "Fashion Brand Scaling"
→ Action: Create a comparison guide + cross-promote
Export your full content library (title, URL, publish date, traffic) before running the mapper. This skill performs better with complete data—even low-traffic orphaned posts reveal important gaps.
Traffic volume, time-on-page, and bounce rate dramatically improve criticality scoring. Without it, the mapper relies on linking patterns alone (still valuable, but less nuanced).
Explicitly list pages you consider "conversions" (pricing page, signup, demo request, etc.). The mapper will trace how much traffic each content piece ultimately drives to these endpoints.
export CONVERSION_PAGE_URLS="/pricing,/demo,/book-call,/checkout"
Content dependencies shift as you publish, update, and archive. Run this skill every 3 months to catch:
Instead of arbitrary priority, let criticality scores guide your content refresh cycles:
When the mapper surfaces an unexpected link (e.g., a random blog post driving premium course signups), investigate why. This often reveals hidden user behavior that should inform your content strategy.
Causes:
Solutions:
curl -H "Authorization: Bearer $CONTENT_SOURCE_URL" https://api.example.com/postsurl, title, content fields at minimum--debug trueCause: Skill may not have access to conversion tracking data.
Solution: Connect Google Analytics or Segment to include conversion metrics:
export GOOGLE_ANALYTICS_4_PROPERTY_ID="G-XXXXX"
export CONVERSION_PAGE_URLS="/pricing,/checkout"
Solution: Filter by similarity threshold and cluster size:
openclaw run content-dependency-mapper \
--cluster-threshold 0.8 \ # Tighten clusters
--min-cluster-size 3 \ # Only groups of 3+
--output-format json > clusters.json
Cause: AI model may misinterpret similar keywords across different contexts.
Solution:
--min-link-weight 0.3--include-semantics false (uses explicit links only)Recommendation: Quarterly for active content teams (10+ posts/month); semi-annually for slower publishers.
Track changes between runs:
openclaw run content-dependency-mapper \
--compare-versions true \
--previous-snapshot snapshot-q2-2024.json