본문으로 건너뛰기
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>

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

使用 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월 18일 업데이트

使用 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월 18일 업데이트

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월 18일 업데이트

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

EthanYoQ/Skill-hub112026년 10월 18일 업데이트

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월 18일 업데이트

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월 18일 업데이트

EthanYoQ의 스킬 모두 보기

이 스킬의 문제 신고