Creator · AgriciDaniel
Last updated · Sep 2, 2026
Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersec
Creator · AgriciDaniel
Last updated · Sep 2, 2026
Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersec
Creator · AgriciDaniel
Last updated · Sep 2, 2026
Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersec
Creator · AgriciDaniel
Last updated · Sep 2, 2026
Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersec
Sandbox only
Install targets
Codex install prompt
Install the "blog-cannibalization" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/brain/.raw/sources/claude-blog-skill/skills/blog-cannibalization. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersection endpoint at ~$0.01/call). Outputs severity-scored report with merge or differentiate recommendations. Use when user says "cannibalization", "keyword overlap", "competing pages", "duplicate keywords", "cannibalize". After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"agricidaniel-blog-cannibalization","task":"Install blog-cannibalization","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Research agents
I need my agent to research a topic, compare sources, and produce a concise report.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Maintenance
fresh
9d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
2.0K
80/100 Quality · 79/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
2.0K GitHub stars
Repo activity
2.0K stars, 333 forks
Maintenance
9d since push
License
MIT
Install
npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add AgriciDaniel/claude-blog --skill blog-cannibalizationDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
28.0K Stars
npx skills add assafelovic/gpt-researcher
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
high
Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20blog-cannibalization%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20blog-cannibalization%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/agricidaniel-blog-cannibalization/install
Agent should check
Copy prompt
Task: Use blog-cannibalization in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20blog-cannibalization%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/agricidaniel-blog-cannibalization/install
Install command: npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/agricidaniel-blog-cannibalization/install
LLM text format
/api/skills/agricidaniel-blog-cannibalization/install?format=text
Find alternatives
/api/skills/search?q=blog-cannibalization&limit=3
Agent prompt
Use blog-cannibalization for this task. Review https://www.openagentskill.com/api/skills/agricidaniel-blog-cannibalization/install, then install with: npx skills add AgriciDaniel/claude-blog --skill blog-cannibalizationRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/agricidaniel-blog-cannibalization
LLM text
/api/registry/manifest/agricidaniel-blog-cannibalization?format=text
Install alias
/api/registry/install/agricidaniel-blog-cannibalization
Recommend
/api/registry/recommend?task=Use%20blog-cannibalization%20in%20an%20agent%20workflow&limit=3
Agent fit
Research agents
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Research agents
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS2.0K GitHub stars
Stars/forks activity
PASS2.0K stars, 333 forks; issue activity unavailable in current metadata
Recent maintenance
PASS9d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Search private knowledge
I need my agent to build a RAG workflow over documents and retrieve reliable context.
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Workflow fit
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Ingest, retrieve, and cite
A workflow for document-heavy agents that ingest files, create searchable knowledge, retrieve relevant context, and answer with grounded sources.
Turn skills into distribution
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
Run autonomous deep research over web and local sources
--- name: blog-cannibalization description: > Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersection endpoint at ~$0.01/call). Outputs severity-scored report with merge or differentiate recommendations. Use when user says "cannibalization", "keyword overlap", "competing pages", "duplicate keywords", "cannibalize". user-invokable: true argument-hint: "[directory] [--api]" license: MIT ---
# Blog Cannibalization - Keyword Overlap Detection
Detect when multiple blog posts compete for the same search keywords. Two modes: local-only analysis (default) and DataForSEO API mode for SERP-level data.
## Two Modes
| Mode | Flag | Cost | Data Source | |------|------|------|-------------| | Local | (default) | Free | File content analysis via Grep/Read | | API | `--api` | ~$0.01/call | DataForSEO Page Intersection + Ranked Keywords |
Local mode works without any API keys. API mode requires DataForSEO credentials set as environment variables: `DATAFORSEO_LOGIN` and `DATAFORSEO_PASSWORD`.
## Local Mode Workflow
### Step 1: Scan Blog Files
Use Glob to find all content files in the target directory: - Patterns: `**/*.md`, `**/*.mdx`, `**/*.html` - Skip files in `node_modules/`, `.git/`, `drafts/`
### Step 2: Extract Primary Keywords
For each file, read and extract keyword signals from: - **Title tag** or H1 heading (highest weight) - **H2 headings** (medium weight) - **First paragraph** (supporting signal) - **Meta description** if present in frontmatter
Primary keyword extraction method: 1. Tokenize title, H1, H2s, meta description, and first paragraph into 1-gram, 2-gram, and 3-gram phrases. 2. Normalize deterministically: lowercase, remove locale-aware stop words, lemmatize or stem consistently, preserve product names, and keep intent modifiers such as "best", "pricing", "vs", "review", "template", and year. 3. Score sections separately: title/H1 highest, meta description and H2s medium, first paragraph supporting. 4. Select the top-scoring 2-3 word phrase as the primary keyword and record secondary keywords from H2 headings.
### Step 3: Cluster by Similarity
Group posts into clusters using these matching rules (in priority order):
1. **Exact match** - identical primary keyword across 2+ posts 2. **Stem match** - same root word (e.g., "optimize" vs "optimization") 3. **Semantic overlap** - Assign explicit intent labels such as informational, commercial, transactional, comparison, or troubleshooting. Include confidence and a one-sentence rationale, or use an embeddings workflow with a documented threshold. 4. **Subset match** - one keyword contains another (e.g., "email marketing" vs "email marketing for startups")
### Step 4: Score and Flag
For each cluster with 2+ posts, assess severity and generate a recommendation.
### Step 5: Output Report
Display the results table and per-cluster recommendations.
## API Mode Workflow (DataForSEO)
Requires the `--api` flag and a dedicated local CLI wrapper that reads `DATAFORSEO_LOGIN` and `DATAFORSEO_PASSWORD` from the environment and emits JSON. Do not use WebFetch for DataForSEO POST calls and never expose Basic auth headers, login, password, or encoded credentials in prompts or reports. If no wrapper exists in the project, report `SKIPPED: DataForSEO wrapper unavailable` and run local mode.
### Endpoints Used
**Page Intersection** - find keywords where multiple URLs rank: ``` POST https://api.dataforseo.com/v3/dataforseo_labs/google/page_intersection/live
{ "pages": { "1": "https://example.com/post-a", "2": "https://example.com/post-b" }, "language_code": "en", "location_code": 2840 } ``` Cost: ~$0.01 per call. Returns overlapping keywords with position, volume, CPC.
**Ranked Keywords** - get all keywords a single URL ranks for: ``` POST https://api.dataforseo.com/v3/dataforseo_labs/google/ranked_keywords/live
{ "target": "https://example.com/post-a", "language_code": "en", "location_code": 2840 } ```
The wrapper sends DataForSEO auth headers from environment variables and never prints them.
### API Analysis Steps
1. Collect all published URLs from the user (or sitemap) 2. Run Ranked Keywords for each URL to build keyword profiles 3. Run Page Intersection for URL pairs that share keyword clusters 4. Calculate severity using the formula below 5. Output enriched report with search volume and position data
## Severity Scoring
Four severity levels based on overlap signals:
| Level | Criteria | Action Urgency | |-------|----------|----------------| | Critical | Same exact keyword, both pages in top 20 | Immediate | | High | Same keyword cluster, one page outranks the other | This week | | Medium | Related keywords with partial SERP overlap | This month | | Low | Semantic similarity but different confirmed intents | Monitor |
### Severity Formula (API Mode)
``` severity_score = overlap_count x avg_search_volume x (1 / position_gap) ```
Where: - `overlap_count` = number of shared ranking keywords - `avg_search_volume` = mean monthly volume of shared keywords - `position_gap` = absolute difference in average ranking position (min 1)
Higher score = more urgent cannibalization problem.
### Severity Heuristic (Local Mode)
Without SERP data, use a simplified scoring: - **Critical**: Exact primary keyword match between posts - **High**: Stem match on primary keyword, or 3+ shared H2 keywords - **Medium**: Semantic overlap on primary keyword - **Low**: Subset match only, or shared secondary keywords
## Output Format
### Summary Table
``` | Post A | Post B | Shared Keywords | Severity | Recommendation | |--------|--------|-----------------|----------|----------------| | /best-crm-tools | /top-crm-software | best crm, crm tools, crm software | Critical | MERGE | | /email-tips | /email-marketing-guide | email marketing | High | DIFFERENTIATE | | /seo-basics | /seo-for-beginners | seo basics, beginner seo | Critical | CANONICAL | | /react-hooks | /react-state-mgmt | react, state | Low | NO ACTION | ```
### Per-Cluster Detail
For each flagged cluster, provide: - Both post titles and URLs - Full list of overlapping keywords (with volume if API mode) - Which post is stronger (more comprehensive, better structured) - Specific recommendation with rationale
## Recommendations
Four possible actions for each cannibalization cluster:
### MERGE When both pages are thin or cover the same intent with similar depth. - Combine the best content from both into one comprehensive post - 301 redirect the weaker URL to the merged post - Preserve all internal links pointing to either URL
### DIFFERENTIATE When pages serve different intents but keyword targeting overlaps. - Shift the primary keyword of the weaker post to a related long-tail - Update the title, H1, and meta description to reflect the new focus - Add internal links between the two posts to signal distinct topics
### CANONICAL When one post is clearly the authority and the other is a lesser duplicate. - Add `rel="canonical"` on the weaker page pointing to the authority - Do not combine canonical and noindex casually. Use noindex only when removal from search is intended - Link from the weaker page to the authority page
### NOINDEX When a page should be removed from search results but still exist for users. - Confirm the page has no meaningful unique search demand or business value - Keep it crawlable until the noindex directive is observed - Do not use as the default duplicate-content fix
### NO ACTION When intent is genuinely different despite surface-level keyword similarity. - Document the reasoning for future audits - Monitor rankings quarterly for any position changes - Re-evaluate if either post drops in rankings
## Error Handling
- **No blog files found**: If the directory contains no .md, .mdx, or .html files, report "No blog files found in [directory]" and suggest checking the path - **DataForSEO credentials missing**: In API mode, if credentials are not configured, fall back to local mode automatically and notify the user - **API rate limits**: DataForSEO has per-minute rate limits. If a 429 response is received, wait and retry once. If it persists, switch to local mode for remaining URLs - **API request failures**: If DataForSEO returns an error, retry once within rate limits. If it still fails, switch to local mode for remaining URLs and report the failed endpoint without credentials - **Single-post directory**: If only one blog post exists, report "Cannibalization analysis requires at least 2 posts" and exit gracefully
Source provenance
Decision snapshot
2,016 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for blog-cannibalization, ready for a manual X post.
A practical pick for a web workflow: blog-cannibalization: Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semant... 2.0K stars https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=x
Listing + install path for blog-cannibalization: https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=x Install: npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to AgriciDaniel but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization/audit)
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)AgriciDaniel
@agricidaniel
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K StarsGPT Researcher
Run autonomous deep research over web and local sources
28.0K StarsSandbox only
Install targets
Codex install prompt
Install the "blog-cannibalization" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/brain/.raw/sources/claude-blog-skill/skills/blog-cannibalization. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersection endpoint at ~$0.01/call). Outputs severity-scored report with merge or differentiate recommendations. Use when user says "cannibalization", "keyword overlap", "competing pages", "duplicate keywords", "cannibalize". After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"agricidaniel-blog-cannibalization","task":"Install blog-cannibalization","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Research agents
I need my agent to research a topic, compare sources, and produce a concise report.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Maintenance
fresh
9d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
2.0K
80/100 Quality · 79/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
2.0K GitHub stars
Repo activity
2.0K stars, 333 forks
Maintenance
9d since push
License
MIT
Install
npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add AgriciDaniel/claude-blog --skill blog-cannibalizationDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
28.0K Stars
npx skills add assafelovic/gpt-researcher
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
high
Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20blog-cannibalization%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20blog-cannibalization%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/agricidaniel-blog-cannibalization/install
Agent should check
Copy prompt
Task: Use blog-cannibalization in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20blog-cannibalization%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/agricidaniel-blog-cannibalization/install
Install command: npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/agricidaniel-blog-cannibalization/install
LLM text format
/api/skills/agricidaniel-blog-cannibalization/install?format=text
Find alternatives
/api/skills/search?q=blog-cannibalization&limit=3
Agent prompt
Use blog-cannibalization for this task. Review https://www.openagentskill.com/api/skills/agricidaniel-blog-cannibalization/install, then install with: npx skills add AgriciDaniel/claude-blog --skill blog-cannibalizationRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/agricidaniel-blog-cannibalization
LLM text
/api/registry/manifest/agricidaniel-blog-cannibalization?format=text
Install alias
/api/registry/install/agricidaniel-blog-cannibalization
Recommend
/api/registry/recommend?task=Use%20blog-cannibalization%20in%20an%20agent%20workflow&limit=3
Agent fit
Research agents
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Research agents
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS2.0K GitHub stars
Stars/forks activity
PASS2.0K stars, 333 forks; issue activity unavailable in current metadata
Recent maintenance
PASS9d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Search private knowledge
I need my agent to build a RAG workflow over documents and retrieve reliable context.
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Workflow fit
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Ingest, retrieve, and cite
A workflow for document-heavy agents that ingest files, create searchable knowledge, retrieve relevant context, and answer with grounded sources.
Turn skills into distribution
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
Run autonomous deep research over web and local sources
--- name: blog-cannibalization description: > Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersection endpoint at ~$0.01/call). Outputs severity-scored report with merge or differentiate recommendations. Use when user says "cannibalization", "keyword overlap", "competing pages", "duplicate keywords", "cannibalize". user-invokable: true argument-hint: "[directory] [--api]" license: MIT ---
# Blog Cannibalization - Keyword Overlap Detection
Detect when multiple blog posts compete for the same search keywords. Two modes: local-only analysis (default) and DataForSEO API mode for SERP-level data.
## Two Modes
| Mode | Flag | Cost | Data Source | |------|------|------|-------------| | Local | (default) | Free | File content analysis via Grep/Read | | API | `--api` | ~$0.01/call | DataForSEO Page Intersection + Ranked Keywords |
Local mode works without any API keys. API mode requires DataForSEO credentials set as environment variables: `DATAFORSEO_LOGIN` and `DATAFORSEO_PASSWORD`.
## Local Mode Workflow
### Step 1: Scan Blog Files
Use Glob to find all content files in the target directory: - Patterns: `**/*.md`, `**/*.mdx`, `**/*.html` - Skip files in `node_modules/`, `.git/`, `drafts/`
### Step 2: Extract Primary Keywords
For each file, read and extract keyword signals from: - **Title tag** or H1 heading (highest weight) - **H2 headings** (medium weight) - **First paragraph** (supporting signal) - **Meta description** if present in frontmatter
Primary keyword extraction method: 1. Tokenize title, H1, H2s, meta description, and first paragraph into 1-gram, 2-gram, and 3-gram phrases. 2. Normalize deterministically: lowercase, remove locale-aware stop words, lemmatize or stem consistently, preserve product names, and keep intent modifiers such as "best", "pricing", "vs", "review", "template", and year. 3. Score sections separately: title/H1 highest, meta description and H2s medium, first paragraph supporting. 4. Select the top-scoring 2-3 word phrase as the primary keyword and record secondary keywords from H2 headings.
### Step 3: Cluster by Similarity
Group posts into clusters using these matching rules (in priority order):
1. **Exact match** - identical primary keyword across 2+ posts 2. **Stem match** - same root word (e.g., "optimize" vs "optimization") 3. **Semantic overlap** - Assign explicit intent labels such as informational, commercial, transactional, comparison, or troubleshooting. Include confidence and a one-sentence rationale, or use an embeddings workflow with a documented threshold. 4. **Subset match** - one keyword contains another (e.g., "email marketing" vs "email marketing for startups")
### Step 4: Score and Flag
For each cluster with 2+ posts, assess severity and generate a recommendation.
### Step 5: Output Report
Display the results table and per-cluster recommendations.
## API Mode Workflow (DataForSEO)
Requires the `--api` flag and a dedicated local CLI wrapper that reads `DATAFORSEO_LOGIN` and `DATAFORSEO_PASSWORD` from the environment and emits JSON. Do not use WebFetch for DataForSEO POST calls and never expose Basic auth headers, login, password, or encoded credentials in prompts or reports. If no wrapper exists in the project, report `SKIPPED: DataForSEO wrapper unavailable` and run local mode.
### Endpoints Used
**Page Intersection** - find keywords where multiple URLs rank: ``` POST https://api.dataforseo.com/v3/dataforseo_labs/google/page_intersection/live
{ "pages": { "1": "https://example.com/post-a", "2": "https://example.com/post-b" }, "language_code": "en", "location_code": 2840 } ``` Cost: ~$0.01 per call. Returns overlapping keywords with position, volume, CPC.
**Ranked Keywords** - get all keywords a single URL ranks for: ``` POST https://api.dataforseo.com/v3/dataforseo_labs/google/ranked_keywords/live
{ "target": "https://example.com/post-a", "language_code": "en", "location_code": 2840 } ```
The wrapper sends DataForSEO auth headers from environment variables and never prints them.
### API Analysis Steps
1. Collect all published URLs from the user (or sitemap) 2. Run Ranked Keywords for each URL to build keyword profiles 3. Run Page Intersection for URL pairs that share keyword clusters 4. Calculate severity using the formula below 5. Output enriched report with search volume and position data
## Severity Scoring
Four severity levels based on overlap signals:
| Level | Criteria | Action Urgency | |-------|----------|----------------| | Critical | Same exact keyword, both pages in top 20 | Immediate | | High | Same keyword cluster, one page outranks the other | This week | | Medium | Related keywords with partial SERP overlap | This month | | Low | Semantic similarity but different confirmed intents | Monitor |
### Severity Formula (API Mode)
``` severity_score = overlap_count x avg_search_volume x (1 / position_gap) ```
Where: - `overlap_count` = number of shared ranking keywords - `avg_search_volume` = mean monthly volume of shared keywords - `position_gap` = absolute difference in average ranking position (min 1)
Higher score = more urgent cannibalization problem.
### Severity Heuristic (Local Mode)
Without SERP data, use a simplified scoring: - **Critical**: Exact primary keyword match between posts - **High**: Stem match on primary keyword, or 3+ shared H2 keywords - **Medium**: Semantic overlap on primary keyword - **Low**: Subset match only, or shared secondary keywords
## Output Format
### Summary Table
``` | Post A | Post B | Shared Keywords | Severity | Recommendation | |--------|--------|-----------------|----------|----------------| | /best-crm-tools | /top-crm-software | best crm, crm tools, crm software | Critical | MERGE | | /email-tips | /email-marketing-guide | email marketing | High | DIFFERENTIATE | | /seo-basics | /seo-for-beginners | seo basics, beginner seo | Critical | CANONICAL | | /react-hooks | /react-state-mgmt | react, state | Low | NO ACTION | ```
### Per-Cluster Detail
For each flagged cluster, provide: - Both post titles and URLs - Full list of overlapping keywords (with volume if API mode) - Which post is stronger (more comprehensive, better structured) - Specific recommendation with rationale
## Recommendations
Four possible actions for each cannibalization cluster:
### MERGE When both pages are thin or cover the same intent with similar depth. - Combine the best content from both into one comprehensive post - 301 redirect the weaker URL to the merged post - Preserve all internal links pointing to either URL
### DIFFERENTIATE When pages serve different intents but keyword targeting overlaps. - Shift the primary keyword of the weaker post to a related long-tail - Update the title, H1, and meta description to reflect the new focus - Add internal links between the two posts to signal distinct topics
### CANONICAL When one post is clearly the authority and the other is a lesser duplicate. - Add `rel="canonical"` on the weaker page pointing to the authority - Do not combine canonical and noindex casually. Use noindex only when removal from search is intended - Link from the weaker page to the authority page
### NOINDEX When a page should be removed from search results but still exist for users. - Confirm the page has no meaningful unique search demand or business value - Keep it crawlable until the noindex directive is observed - Do not use as the default duplicate-content fix
### NO ACTION When intent is genuinely different despite surface-level keyword similarity. - Document the reasoning for future audits - Monitor rankings quarterly for any position changes - Re-evaluate if either post drops in rankings
## Error Handling
- **No blog files found**: If the directory contains no .md, .mdx, or .html files, report "No blog files found in [directory]" and suggest checking the path - **DataForSEO credentials missing**: In API mode, if credentials are not configured, fall back to local mode automatically and notify the user - **API rate limits**: DataForSEO has per-minute rate limits. If a 429 response is received, wait and retry once. If it persists, switch to local mode for remaining URLs - **API request failures**: If DataForSEO returns an error, retry once within rate limits. If it still fails, switch to local mode for remaining URLs and report the failed endpoint without credentials - **Single-post directory**: If only one blog post exists, report "Cannibalization analysis requires at least 2 posts" and exit gracefully
Source provenance
Decision snapshot
2,016 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for blog-cannibalization, ready for a manual X post.
A practical pick for a web workflow: blog-cannibalization: Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semant... 2.0K stars https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=x
Listing + install path for blog-cannibalization: https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=x Install: npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to AgriciDaniel but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization/audit)
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)AgriciDaniel
@agricidaniel
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K StarsGPT Researcher
Run autonomous deep research over web and local sources
28.0K StarsSandbox only
Install targets
Codex install prompt
Install the "blog-cannibalization" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/brain/.raw/sources/claude-blog-skill/skills/blog-cannibalization. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersection endpoint at ~$0.01/call). Outputs severity-scored report with merge or differentiate recommendations. Use when user says "cannibalization", "keyword overlap", "competing pages", "duplicate keywords", "cannibalize". After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"agricidaniel-blog-cannibalization","task":"Install blog-cannibalization","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Research agents
I need my agent to research a topic, compare sources, and produce a concise report.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Maintenance
fresh
9d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
2.0K
80/100 Quality · 79/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
2.0K GitHub stars
Repo activity
2.0K stars, 333 forks
Maintenance
9d since push
License
MIT
Install
npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add AgriciDaniel/claude-blog --skill blog-cannibalizationDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
28.0K Stars
npx skills add assafelovic/gpt-researcher
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
high
Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20blog-cannibalization%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20blog-cannibalization%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/agricidaniel-blog-cannibalization/install
Agent should check
Copy prompt
Task: Use blog-cannibalization in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20blog-cannibalization%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/agricidaniel-blog-cannibalization/install
Install command: npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/agricidaniel-blog-cannibalization/install
LLM text format
/api/skills/agricidaniel-blog-cannibalization/install?format=text
Find alternatives
/api/skills/search?q=blog-cannibalization&limit=3
Agent prompt
Use blog-cannibalization for this task. Review https://www.openagentskill.com/api/skills/agricidaniel-blog-cannibalization/install, then install with: npx skills add AgriciDaniel/claude-blog --skill blog-cannibalizationRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/agricidaniel-blog-cannibalization
LLM text
/api/registry/manifest/agricidaniel-blog-cannibalization?format=text
Install alias
/api/registry/install/agricidaniel-blog-cannibalization
Recommend
/api/registry/recommend?task=Use%20blog-cannibalization%20in%20an%20agent%20workflow&limit=3
Agent fit
Research agents
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Research agents
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS2.0K GitHub stars
Stars/forks activity
PASS2.0K stars, 333 forks; issue activity unavailable in current metadata
Recent maintenance
PASS9d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Search private knowledge
I need my agent to build a RAG workflow over documents and retrieve reliable context.
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Workflow fit
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Ingest, retrieve, and cite
A workflow for document-heavy agents that ingest files, create searchable knowledge, retrieve relevant context, and answer with grounded sources.
Turn skills into distribution
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
Run autonomous deep research over web and local sources
--- name: blog-cannibalization description: > Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersection endpoint at ~$0.01/call). Outputs severity-scored report with merge or differentiate recommendations. Use when user says "cannibalization", "keyword overlap", "competing pages", "duplicate keywords", "cannibalize". user-invokable: true argument-hint: "[directory] [--api]" license: MIT ---
# Blog Cannibalization - Keyword Overlap Detection
Detect when multiple blog posts compete for the same search keywords. Two modes: local-only analysis (default) and DataForSEO API mode for SERP-level data.
## Two Modes
| Mode | Flag | Cost | Data Source | |------|------|------|-------------| | Local | (default) | Free | File content analysis via Grep/Read | | API | `--api` | ~$0.01/call | DataForSEO Page Intersection + Ranked Keywords |
Local mode works without any API keys. API mode requires DataForSEO credentials set as environment variables: `DATAFORSEO_LOGIN` and `DATAFORSEO_PASSWORD`.
## Local Mode Workflow
### Step 1: Scan Blog Files
Use Glob to find all content files in the target directory: - Patterns: `**/*.md`, `**/*.mdx`, `**/*.html` - Skip files in `node_modules/`, `.git/`, `drafts/`
### Step 2: Extract Primary Keywords
For each file, read and extract keyword signals from: - **Title tag** or H1 heading (highest weight) - **H2 headings** (medium weight) - **First paragraph** (supporting signal) - **Meta description** if present in frontmatter
Primary keyword extraction method: 1. Tokenize title, H1, H2s, meta description, and first paragraph into 1-gram, 2-gram, and 3-gram phrases. 2. Normalize deterministically: lowercase, remove locale-aware stop words, lemmatize or stem consistently, preserve product names, and keep intent modifiers such as "best", "pricing", "vs", "review", "template", and year. 3. Score sections separately: title/H1 highest, meta description and H2s medium, first paragraph supporting. 4. Select the top-scoring 2-3 word phrase as the primary keyword and record secondary keywords from H2 headings.
### Step 3: Cluster by Similarity
Group posts into clusters using these matching rules (in priority order):
1. **Exact match** - identical primary keyword across 2+ posts 2. **Stem match** - same root word (e.g., "optimize" vs "optimization") 3. **Semantic overlap** - Assign explicit intent labels such as informational, commercial, transactional, comparison, or troubleshooting. Include confidence and a one-sentence rationale, or use an embeddings workflow with a documented threshold. 4. **Subset match** - one keyword contains another (e.g., "email marketing" vs "email marketing for startups")
### Step 4: Score and Flag
For each cluster with 2+ posts, assess severity and generate a recommendation.
### Step 5: Output Report
Display the results table and per-cluster recommendations.
## API Mode Workflow (DataForSEO)
Requires the `--api` flag and a dedicated local CLI wrapper that reads `DATAFORSEO_LOGIN` and `DATAFORSEO_PASSWORD` from the environment and emits JSON. Do not use WebFetch for DataForSEO POST calls and never expose Basic auth headers, login, password, or encoded credentials in prompts or reports. If no wrapper exists in the project, report `SKIPPED: DataForSEO wrapper unavailable` and run local mode.
### Endpoints Used
**Page Intersection** - find keywords where multiple URLs rank: ``` POST https://api.dataforseo.com/v3/dataforseo_labs/google/page_intersection/live
{ "pages": { "1": "https://example.com/post-a", "2": "https://example.com/post-b" }, "language_code": "en", "location_code": 2840 } ``` Cost: ~$0.01 per call. Returns overlapping keywords with position, volume, CPC.
**Ranked Keywords** - get all keywords a single URL ranks for: ``` POST https://api.dataforseo.com/v3/dataforseo_labs/google/ranked_keywords/live
{ "target": "https://example.com/post-a", "language_code": "en", "location_code": 2840 } ```
The wrapper sends DataForSEO auth headers from environment variables and never prints them.
### API Analysis Steps
1. Collect all published URLs from the user (or sitemap) 2. Run Ranked Keywords for each URL to build keyword profiles 3. Run Page Intersection for URL pairs that share keyword clusters 4. Calculate severity using the formula below 5. Output enriched report with search volume and position data
## Severity Scoring
Four severity levels based on overlap signals:
| Level | Criteria | Action Urgency | |-------|----------|----------------| | Critical | Same exact keyword, both pages in top 20 | Immediate | | High | Same keyword cluster, one page outranks the other | This week | | Medium | Related keywords with partial SERP overlap | This month | | Low | Semantic similarity but different confirmed intents | Monitor |
### Severity Formula (API Mode)
``` severity_score = overlap_count x avg_search_volume x (1 / position_gap) ```
Where: - `overlap_count` = number of shared ranking keywords - `avg_search_volume` = mean monthly volume of shared keywords - `position_gap` = absolute difference in average ranking position (min 1)
Higher score = more urgent cannibalization problem.
### Severity Heuristic (Local Mode)
Without SERP data, use a simplified scoring: - **Critical**: Exact primary keyword match between posts - **High**: Stem match on primary keyword, or 3+ shared H2 keywords - **Medium**: Semantic overlap on primary keyword - **Low**: Subset match only, or shared secondary keywords
## Output Format
### Summary Table
``` | Post A | Post B | Shared Keywords | Severity | Recommendation | |--------|--------|-----------------|----------|----------------| | /best-crm-tools | /top-crm-software | best crm, crm tools, crm software | Critical | MERGE | | /email-tips | /email-marketing-guide | email marketing | High | DIFFERENTIATE | | /seo-basics | /seo-for-beginners | seo basics, beginner seo | Critical | CANONICAL | | /react-hooks | /react-state-mgmt | react, state | Low | NO ACTION | ```
### Per-Cluster Detail
For each flagged cluster, provide: - Both post titles and URLs - Full list of overlapping keywords (with volume if API mode) - Which post is stronger (more comprehensive, better structured) - Specific recommendation with rationale
## Recommendations
Four possible actions for each cannibalization cluster:
### MERGE When both pages are thin or cover the same intent with similar depth. - Combine the best content from both into one comprehensive post - 301 redirect the weaker URL to the merged post - Preserve all internal links pointing to either URL
### DIFFERENTIATE When pages serve different intents but keyword targeting overlaps. - Shift the primary keyword of the weaker post to a related long-tail - Update the title, H1, and meta description to reflect the new focus - Add internal links between the two posts to signal distinct topics
### CANONICAL When one post is clearly the authority and the other is a lesser duplicate. - Add `rel="canonical"` on the weaker page pointing to the authority - Do not combine canonical and noindex casually. Use noindex only when removal from search is intended - Link from the weaker page to the authority page
### NOINDEX When a page should be removed from search results but still exist for users. - Confirm the page has no meaningful unique search demand or business value - Keep it crawlable until the noindex directive is observed - Do not use as the default duplicate-content fix
### NO ACTION When intent is genuinely different despite surface-level keyword similarity. - Document the reasoning for future audits - Monitor rankings quarterly for any position changes - Re-evaluate if either post drops in rankings
## Error Handling
- **No blog files found**: If the directory contains no .md, .mdx, or .html files, report "No blog files found in [directory]" and suggest checking the path - **DataForSEO credentials missing**: In API mode, if credentials are not configured, fall back to local mode automatically and notify the user - **API rate limits**: DataForSEO has per-minute rate limits. If a 429 response is received, wait and retry once. If it persists, switch to local mode for remaining URLs - **API request failures**: If DataForSEO returns an error, retry once within rate limits. If it still fails, switch to local mode for remaining URLs and report the failed endpoint without credentials - **Single-post directory**: If only one blog post exists, report "Cannibalization analysis requires at least 2 posts" and exit gracefully
Source provenance
Decision snapshot
2,016 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for blog-cannibalization, ready for a manual X post.
A practical pick for a web workflow: blog-cannibalization: Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semant... 2.0K stars https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=x
Listing + install path for blog-cannibalization: https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=x Install: npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to AgriciDaniel but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization/audit)
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)AgriciDaniel
@agricidaniel
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K StarsGPT Researcher
Run autonomous deep research over web and local sources
28.0K StarsSandbox only
Install targets
Codex install prompt
Install the "blog-cannibalization" agent skill from https://github.com/AgriciDaniel/claude-blog/tree/main/brain/.raw/sources/claude-blog-skill/skills/blog-cannibalization. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersection endpoint at ~$0.01/call). Outputs severity-scored report with merge or differentiate recommendations. Use when user says "cannibalization", "keyword overlap", "competing pages", "duplicate keywords", "cannibalize". After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"agricidaniel-blog-cannibalization","task":"Install blog-cannibalization","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Research agents
I need my agent to research a topic, compare sources, and produce a concise report.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Maintenance
fresh
9d since push
Risk
Needs review
Permission surface may require sandboxing
GitHub quality
2.0K
80/100 Quality · 79/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Quality score needs review
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
2.0K GitHub stars
Repo activity
2.0K stars, 333 forks
Maintenance
9d since push
License
MIT
Install
npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add AgriciDaniel/claude-blog --skill blog-cannibalizationDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
28.0K Stars
npx skills add assafelovic/gpt-researcher
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
high
Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20blog-cannibalization%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20blog-cannibalization%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/agricidaniel-blog-cannibalization/install
Agent should check
Copy prompt
Task: Use blog-cannibalization in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20blog-cannibalization%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/agricidaniel-blog-cannibalization/install
Install command: npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/agricidaniel-blog-cannibalization/install
LLM text format
/api/skills/agricidaniel-blog-cannibalization/install?format=text
Find alternatives
/api/skills/search?q=blog-cannibalization&limit=3
Agent prompt
Use blog-cannibalization for this task. Review https://www.openagentskill.com/api/skills/agricidaniel-blog-cannibalization/install, then install with: npx skills add AgriciDaniel/claude-blog --skill blog-cannibalizationRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/agricidaniel-blog-cannibalization
LLM text
/api/registry/manifest/agricidaniel-blog-cannibalization?format=text
Install alias
/api/registry/install/agricidaniel-blog-cannibalization
Recommend
/api/registry/recommend?task=Use%20blog-cannibalization%20in%20an%20agent%20workflow&limit=3
Agent fit
Research agents
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Research agents
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS2.0K GitHub stars
Stars/forks activity
PASS2.0K stars, 333 forks; issue activity unavailable in current metadata
Recent maintenance
PASS9d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Search private knowledge
I need my agent to build a RAG workflow over documents and retrieve reliable context.
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Workflow fit
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Ingest, retrieve, and cite
A workflow for document-heavy agents that ingest files, create searchable knowledge, retrieve relevant context, and answer with grounded sources.
Turn skills into distribution
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
Run autonomous deep research over web and local sources
--- name: blog-cannibalization description: > Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersection endpoint at ~$0.01/call). Outputs severity-scored report with merge or differentiate recommendations. Use when user says "cannibalization", "keyword overlap", "competing pages", "duplicate keywords", "cannibalize". user-invokable: true argument-hint: "[directory] [--api]" license: MIT ---
# Blog Cannibalization - Keyword Overlap Detection
Detect when multiple blog posts compete for the same search keywords. Two modes: local-only analysis (default) and DataForSEO API mode for SERP-level data.
## Two Modes
| Mode | Flag | Cost | Data Source | |------|------|------|-------------| | Local | (default) | Free | File content analysis via Grep/Read | | API | `--api` | ~$0.01/call | DataForSEO Page Intersection + Ranked Keywords |
Local mode works without any API keys. API mode requires DataForSEO credentials set as environment variables: `DATAFORSEO_LOGIN` and `DATAFORSEO_PASSWORD`.
## Local Mode Workflow
### Step 1: Scan Blog Files
Use Glob to find all content files in the target directory: - Patterns: `**/*.md`, `**/*.mdx`, `**/*.html` - Skip files in `node_modules/`, `.git/`, `drafts/`
### Step 2: Extract Primary Keywords
For each file, read and extract keyword signals from: - **Title tag** or H1 heading (highest weight) - **H2 headings** (medium weight) - **First paragraph** (supporting signal) - **Meta description** if present in frontmatter
Primary keyword extraction method: 1. Tokenize title, H1, H2s, meta description, and first paragraph into 1-gram, 2-gram, and 3-gram phrases. 2. Normalize deterministically: lowercase, remove locale-aware stop words, lemmatize or stem consistently, preserve product names, and keep intent modifiers such as "best", "pricing", "vs", "review", "template", and year. 3. Score sections separately: title/H1 highest, meta description and H2s medium, first paragraph supporting. 4. Select the top-scoring 2-3 word phrase as the primary keyword and record secondary keywords from H2 headings.
### Step 3: Cluster by Similarity
Group posts into clusters using these matching rules (in priority order):
1. **Exact match** - identical primary keyword across 2+ posts 2. **Stem match** - same root word (e.g., "optimize" vs "optimization") 3. **Semantic overlap** - Assign explicit intent labels such as informational, commercial, transactional, comparison, or troubleshooting. Include confidence and a one-sentence rationale, or use an embeddings workflow with a documented threshold. 4. **Subset match** - one keyword contains another (e.g., "email marketing" vs "email marketing for startups")
### Step 4: Score and Flag
For each cluster with 2+ posts, assess severity and generate a recommendation.
### Step 5: Output Report
Display the results table and per-cluster recommendations.
## API Mode Workflow (DataForSEO)
Requires the `--api` flag and a dedicated local CLI wrapper that reads `DATAFORSEO_LOGIN` and `DATAFORSEO_PASSWORD` from the environment and emits JSON. Do not use WebFetch for DataForSEO POST calls and never expose Basic auth headers, login, password, or encoded credentials in prompts or reports. If no wrapper exists in the project, report `SKIPPED: DataForSEO wrapper unavailable` and run local mode.
### Endpoints Used
**Page Intersection** - find keywords where multiple URLs rank: ``` POST https://api.dataforseo.com/v3/dataforseo_labs/google/page_intersection/live
{ "pages": { "1": "https://example.com/post-a", "2": "https://example.com/post-b" }, "language_code": "en", "location_code": 2840 } ``` Cost: ~$0.01 per call. Returns overlapping keywords with position, volume, CPC.
**Ranked Keywords** - get all keywords a single URL ranks for: ``` POST https://api.dataforseo.com/v3/dataforseo_labs/google/ranked_keywords/live
{ "target": "https://example.com/post-a", "language_code": "en", "location_code": 2840 } ```
The wrapper sends DataForSEO auth headers from environment variables and never prints them.
### API Analysis Steps
1. Collect all published URLs from the user (or sitemap) 2. Run Ranked Keywords for each URL to build keyword profiles 3. Run Page Intersection for URL pairs that share keyword clusters 4. Calculate severity using the formula below 5. Output enriched report with search volume and position data
## Severity Scoring
Four severity levels based on overlap signals:
| Level | Criteria | Action Urgency | |-------|----------|----------------| | Critical | Same exact keyword, both pages in top 20 | Immediate | | High | Same keyword cluster, one page outranks the other | This week | | Medium | Related keywords with partial SERP overlap | This month | | Low | Semantic similarity but different confirmed intents | Monitor |
### Severity Formula (API Mode)
``` severity_score = overlap_count x avg_search_volume x (1 / position_gap) ```
Where: - `overlap_count` = number of shared ranking keywords - `avg_search_volume` = mean monthly volume of shared keywords - `position_gap` = absolute difference in average ranking position (min 1)
Higher score = more urgent cannibalization problem.
### Severity Heuristic (Local Mode)
Without SERP data, use a simplified scoring: - **Critical**: Exact primary keyword match between posts - **High**: Stem match on primary keyword, or 3+ shared H2 keywords - **Medium**: Semantic overlap on primary keyword - **Low**: Subset match only, or shared secondary keywords
## Output Format
### Summary Table
``` | Post A | Post B | Shared Keywords | Severity | Recommendation | |--------|--------|-----------------|----------|----------------| | /best-crm-tools | /top-crm-software | best crm, crm tools, crm software | Critical | MERGE | | /email-tips | /email-marketing-guide | email marketing | High | DIFFERENTIATE | | /seo-basics | /seo-for-beginners | seo basics, beginner seo | Critical | CANONICAL | | /react-hooks | /react-state-mgmt | react, state | Low | NO ACTION | ```
### Per-Cluster Detail
For each flagged cluster, provide: - Both post titles and URLs - Full list of overlapping keywords (with volume if API mode) - Which post is stronger (more comprehensive, better structured) - Specific recommendation with rationale
## Recommendations
Four possible actions for each cannibalization cluster:
### MERGE When both pages are thin or cover the same intent with similar depth. - Combine the best content from both into one comprehensive post - 301 redirect the weaker URL to the merged post - Preserve all internal links pointing to either URL
### DIFFERENTIATE When pages serve different intents but keyword targeting overlaps. - Shift the primary keyword of the weaker post to a related long-tail - Update the title, H1, and meta description to reflect the new focus - Add internal links between the two posts to signal distinct topics
### CANONICAL When one post is clearly the authority and the other is a lesser duplicate. - Add `rel="canonical"` on the weaker page pointing to the authority - Do not combine canonical and noindex casually. Use noindex only when removal from search is intended - Link from the weaker page to the authority page
### NOINDEX When a page should be removed from search results but still exist for users. - Confirm the page has no meaningful unique search demand or business value - Keep it crawlable until the noindex directive is observed - Do not use as the default duplicate-content fix
### NO ACTION When intent is genuinely different despite surface-level keyword similarity. - Document the reasoning for future audits - Monitor rankings quarterly for any position changes - Re-evaluate if either post drops in rankings
## Error Handling
- **No blog files found**: If the directory contains no .md, .mdx, or .html files, report "No blog files found in [directory]" and suggest checking the path - **DataForSEO credentials missing**: In API mode, if credentials are not configured, fall back to local mode automatically and notify the user - **API rate limits**: DataForSEO has per-minute rate limits. If a 429 response is received, wait and retry once. If it persists, switch to local mode for remaining URLs - **API request failures**: If DataForSEO returns an error, retry once within rate limits. If it still fails, switch to local mode for remaining URLs and report the failed endpoint without credentials - **Single-post directory**: If only one blog post exists, report "Cannibalization analysis requires at least 2 posts" and exit gracefully
Source provenance
Decision snapshot
2,016 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for blog-cannibalization, ready for a manual X post.
A practical pick for a web workflow: blog-cannibalization: Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semant... 2.0K stars https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=x
Listing + install path for blog-cannibalization: https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=x Install: npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to AgriciDaniel but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization/audit)
[](https://www.openagentskill.com/skills/agricidaniel-blog-cannibalization?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)AgriciDaniel
@agricidaniel
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K StarsGPT Researcher
Run autonomous deep research over web and local sources
28.0K StarsPermission surface
secrets or environment access, shell or command execution
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
secrets or environment access, shell or command execution
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
secrets or environment access, shell or command execution
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
secrets or environment access, shell or command execution
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness