本文へ移動
cccskills
無料GitHub で公開

add-competitor

Add a new competitor to the AI Visibility Tool Directory — researches the tool, generates data, takes a screenshot, and inserts into the codebase

インストール方法を見る

含まれるファイル(1)

  • SKILL.md7.8 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Add a new competitor to the AI visibility tool directory at apps/www/src/lib/competitors/data.ts.

The user will provide a URL. Follow these steps:

Important: Write objective, factual descriptions. Do not use marketing language, exaggerations, or the competitor's own promotional claims at face value. Describe what the tool does and how it works in neutral terms. Avoid superlatives like "industry-leading", "best-in-class", "revolutionary", etc. Stick to verifiable facts — features offered, platforms tracked, pricing tiers. Highlights should be factual differentiators, not praise.

1. Research the competitor

Use WebFetch to read the competitor's website at $ARGUMENTS. Gather:

  • Product name
  • Domain
  • What the tool does (tagline + longer description)
  • Which category it fits: tracking, content, api-developer, ecommerce, seo-traditional, open-source, or other
  • Pricing info (free tier? starting price? enterprise?)
  • Status: active, shutting-down, acquired, or beta
  • 3 highlights (short bullet points about what makes it notable)

2. Determine feature flags

Read the feature definitions in apps/www/src/lib/competitors/types.ts (the FEATURE_CATEGORIES constant). Based on your research, determine which features the competitor supports. Set each to true or omit it (defaults to false). The features are:

  • multiLlmTracking — tracks across multiple AI platforms (ChatGPT, Claude, Gemini, etc.)
  • visibilityScore — provides an aggregate AI visibility score
  • citationAnalytics — tracks citation sources in AI responses
  • competitorBenchmarking — compare visibility against competitors
  • brandMentionTracking — monitor brand mentions in AI responses
  • promptVolumeEstimates — estimated search/prompt volumes
  • sentimentAnalysis — brand sentiment in AI responses
  • crawlerAnalytics — track AI bot visits to your site
  • geographicTracking — visibility by region/country
  • socialMediaTracking — Reddit and social platform monitoring
  • shoppingTracking — product visibility in AI shopping
  • multiLanguage — multi-language support
  • actionRecommendations — prioritized action items
  • contentGapAnalysis — detect content gaps vs competitors
  • siteAudits — AI site readiness audits
  • keywordResearch — AI keyword/prompt discovery
  • emailAlerts — automated alerts
  • dataExportApi — CSV export or API access
  • biConnectors — Looker Studio, NinjaCat, etc.
  • whiteLabelAgency — white-label or agency features
  • openSource — source code available
  • contentGeneration — AI content creation

Be conservative — only mark features as true if you can confirm them from the website.

3. Fetch the domain rating

Extract the domain from the URL (e.g. https://www.example.com/foo → example.com). Then run:

cd apps/www && node scripts/fetch-domain-rating.mjs "<domain>"

This returns JSON with ahrefsDR, from Ahrefs' free public API (no API key required). Use it for the competitor entry.

4. Generate the slug

Create a URL-friendly slug from the product name (lowercase, hyphens, no special chars). For example: "Otterly.ai" → "otterly", "SE Ranking" → "se-ranking".

5. Take the screenshot and upload

Run the screenshot script:

cd apps/www && node scripts/screenshot-competitor.mjs "<slug>" "<url>"

This requires SCREENSHOT_ONE_ACCESS_KEY and BLOB_READ_WRITE_TOKEN in apps/www/.env.

If the script fails, inform the user and continue with the data entry — the screenshot can be added later.

Verify the capture — don't trust it blindly. ScreenshotOne uploads whatever the site serves, and sites with bot protection (Cloudflare, etc.) frequently return a captcha or block page to the headless browser, which then gets stored as the "screenshot." After a successful upload, download the blob URL the script printed and actually view the image:

curl -s -o /tmp/<slug>.jpg "<blob URL printed by the script>"

Open /tmp/<slug>.jpg and confirm it's genuinely the competitor's homepage/product — not a bot challenge ("Checking your browser…", "Select all squares with…", "verify you are human"), an access-denied / 403 page, or a blank/error page. If it's a challenge or error page, do NOT keep it: tell the user automated capture was blocked and ask them to send a real screenshot to upload manually (the script sets allowOverwrite: true, so re-uploading replaces the bad image).

6. Insert into data.ts

Read apps/www/src/lib/competitors/data.ts and insert the new Competitor object into the competitors array (position in this array doesn't matter for display order).

Use the same code style as the existing entries. Example entry:

{
    slug: "example-tool",
    name: "Example Tool",
    domain: "example.com",
    url: "https://example.com",
    tagline: "Short one-line description of what they do",
    description:
        "Longer 2-3 sentence description of the tool, its approach, and what makes it notable.",
    category: "tracking",
    ahrefsDR: 55,
    status: "active",
    features: {
        multiLlmTracking: true,
        visibilityScore: true,
        citationAnalytics: true,
    },
    pricing: { hasFree: true, startingPrice: "$49/mo", hasEnterprise: false },
    highlights: [
        "First highlight",
        "Second highlight",
        "Third highlight",
    ],
},

7. Add to AEO popularity ranking

In the same file (data.ts), find the aeoPopularityRanking array. This is a hardcoded list of slugs ordered from most popular to least popular as an AEO tool specifically. It determines both the display order in the directory and the A–F popularity grade.

Insert the new tool's slug at the appropriate position based on these criteria (in priority order):

  1. Is AI visibility / AEO the tool's PRIMARY product? Pure AEO trackers rank above SEO suites or content platforms that bolted on AEO features.
  2. Market traction as an AEO tool — funding rounds, notable enterprise customers, press coverage (Fortune, WSJ, TechCrunch, etc.), user counts, industry recognition (G2, Gartner, etc.).
  3. Feature depth in core AEO capabilities — multi-LLM tracking, visibility scores, citation analytics, competitor benchmarking, brand mention tracking.
  4. General web authority (DR/traffic) is a minor tiebreaker only — a DR 90 SEO suite with a small AEO add-on should NOT outrank a DR 50 dedicated AEO tracker.

The tiers in the ranking are:

  • Tier A (top ~8%): Well-known, established AEO-focused tools with real traction
  • Tier B (next ~13%): Known/growing AEO tools
  • Tier C (next ~22%): Niche/emerging AEO tools with some traction
  • Tier D (next ~27%): Early/small AEO tools
  • Tier F (rest): Very new or minimal traction

If the tool is a large platform where AI visibility is NOT the primary product (e.g., a traditional SEO suite, analytics platform, or content tool that added AEO as a secondary feature), do NOT add it to aeoPopularityRanking. Instead, add its slug to the aeoNotApplicable set. These tools get an "N/A" grade and sort to the bottom of the directory.

Look at the tools already in each tier to calibrate where the new tool belongs. Insert the slug with a short comment explaining the placement.

8. Verify

Run TypeScript type checking to make sure the entry compiles:

pnpm exec tsc --noEmit

9. Summary

After completing all steps, tell the user:

  • The competitor name and slug
  • The category and ahrefsDR
  • Which features you marked as true
  • Whether the screenshot uploaded successfully
  • The URL where the comparison page will be: /ai-visibility-tools/elmo-vs-<slug>

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

使用 AACT (Aggregate Analysis of ClinicalTrials.gov) PostgreSQL 数据仓库进行批量、历史、聚合性临床试验数据挖掘。Use this skill when the user requests bulk SQL analysis over the full clinical trials data warehouse — historical trial trends, disease landscapes, similar-design matching, or multi-year aggregations across hundreds of thousands of NCT records. 触发场景包括:AACT 查询、临床试验批量分析、PostgreSQL 试验数据、全量 NCT 检索、试验数据挖掘、历史试验分析、clinical trials data warehouse、SQL trials、bulk trial analysis、disease landscape、试验设计相似性匹配、跨年度聚合、sponsor/phase/country 多维统计。**与 clinical-trials-v2 差异**:本 skill 走批量 SQL · 离线大数据(PostgreSQL);v2 走实时 API · 单查询。两者互补:单条 NCT 实时状态用 v2,百万级历史挖掘用本 skill。支持云端公共 PostgreSQL(aact-db.ctti-clinicaltrials.org · 零部署)和每日 dump 本地还原(高性能 · 离线)两种连接方式,自动检测优先用本地。跨平台(macOS/Linux/Windows)参数化 SQL 防注入,read-only 强制保护。

日本語の概要は準備中です。原文の説明を表示しています。

EthanYoQ/Skill-hub112026年10月5日 更新

使用 AACT (Aggregate Analysis of ClinicalTrials.gov) PostgreSQL 数据库进行大批量临床试验历史分析与数据挖掘。触发场景包括:AACT 查询、临床试验批量分析、PostgreSQL 试验数据、全量 NCT 检索、试验数据挖掘、clinical trials data warehouse、疾病领域全景分析、设计相似试验匹配、跨年度试验趋势聚合。本 skill 通过 SQL 接口处理百万级试验记录,支持云端公共 PostgreSQL 服务(aact-db.ctti-clinicaltrials.org)和每日 dump 本地还原两种连接方式,自动检测并优先使用本地高性能模式。

日本語の概要は準備中です。原文の説明を表示しています。

EthanYoQ/Skill-hub112026年10月5日 更新

Use when work produces a deliverable, factual claim, dataset, code change, decision, publication, deployment, automation, or irreversible action whose failure would matter; when the user asks for a quality gate, acceptance criteria, QA, completeness, validation, audit, evidence, preflight, release readiness, or a definition of done; or before claiming completion on medium- or high-risk work. Automatically decide whether a formal gate is warranted, derive task-specific pass/fail criteria, gather evidence, and block unsupported completion. Make sure to use this skill even when the user does not say "quality gate" if consequential work needs acceptance criteria or completion evidence. Skip formal gating for trivial, reversible, low-impact requests.

日本語の概要は準備中です。原文の説明を表示しています。

EthanYoQ/Skill-hub112026年10月5日 更新

Create a changeset file in .changeset/ that describes a user-facing change for the release notes

日本語の概要は準備中です。原文の説明を表示しています。

EthanYoQ/Skill-hub112026年10月5日 更新

add-lang

無料

Add tree-sitter language support to codegraph end-to-end — wire the grammar + extractor, write tests, then benchmark extraction quality and retrieval value on 3 popular real-world repos. Use when the user runs /add-lang <language> or asks to add/support a new language (e.g. Lua, Elixir, Zig, OCaml) in codegraph.

日本語の概要は準備中です。原文の説明を表示しています。

EthanYoQ/Skill-hub112026年10月5日 更新

aesthetic

無料

Create aesthetically beautiful interfaces following proven design principles. Use when building UI/UX, analyzing designs from inspiration sites, generating design images with ai-multimodal, implementing visual hierarchy and color theory, adding micro-interactions, or creating design documentation. Includes workflows for capturing and analyzing inspiration screenshots with chrome-devtools and ai-multimodal, iterative design image generation until aesthetic standards are met, and comprehensive design system guidance covering BEAUTIFUL (aesthetic principles), RIGHT (functionality/accessibility), SATISFYING (micro-interactions), and PEAK (storytelling) stages. Integrates with chrome-devtools, ai-multimodal, media-processing, ui-styling, and web-frameworks skills.

日本語の概要は準備中です。原文の説明を表示しています。

EthanYoQ/Skill-hub112026年10月5日 更新

EthanYoQ のスキルをすべて見る

このスキルの問題を報告する