Agent skill

Competitor Watch

by ericrisco in ericrisco/rsc-harness

A skill your agent uses when an already-named set of rivals is watched on a cadence — pricing, features, positioning and changelog diffed into a maintained tracker plus an append-only, classified…

MITAuto-check passedMarketing & SEO

Install Competitor Watch

skills CLI
$ npx skills add ericrisco/rsc-harness --skill competitor-watch -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ericrisco/rsc-harness competitor-watch --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/competitor-watch .claude/skills/competitor-watch && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
competitor-watch
GitHub stars
156
Token cost
~3.1k tokens
SKILL.md length
1,533 words
Files
6 (incl. scripts, references)
Skills in repo
229
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when an already-named set of rivals is watched on a cadence — pricing, features, positioning and changelog diffed into a maintained tracker plus an append-only, classified…

  • Works in 4 steps: Get the competitor list. If there is… → Pick the vital few, then the watch-axes.… → Persist the tracker of record under… → …
  • An already-named set of rivals is watched on a cadence — pricing
  • SKILL.md covers Ethics gate — runs FIRST,…, Ground & scope before you…, Watch-list → config: map each… and The change loop, plus 5 more sections
  • Runs Shell scripts from its folder; reaches acme.com

What it does

Competitor Watch is an agent skill from ericrisco/rsc-harness. Use when an already-named set of rivals is watched on a cadence — pricing, features, positioning and changelog diffed into a maintained tracker plus an append-only, classified change log. NOT sizing the market or choosing who the rivals are (that is market-research), NOT one-off page extraction (that is data-scraper).

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/monitoring-config.md`).

It sits in Marketing & SEO, covering Web scraping, Market research and Positioning and messaging. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.

When your agent uses it

  • An already-named set of rivals is watched on a cadence — pricing
  • Positioning and changelog diffed into a maintained tracker plus an append-only
  • Classified change log

Example prompts

  • “/competitor-watch”

Requirements

  • A Bash shell
  • Docker

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Get the competitor list. If there is none, or it's unvalidated guesswork → STOP and
  2. Pick the vital few, then the watch-axes. The 3–7 rivals that move your roadmap, and only
  3. Persist the tracker of record under 02-DOCS/wiki/competitors/ (one profile per rival
  4. Every price/feature cell carries a source_url + date, or it stays blank. Why

What it can do on your machine

Read from SKILL.md and the folder at commit 92fde8f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • acme.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Competitor Watch loads about 3.1k tokens when it runs, and up to ~5.8k if it reads all its reference files. Until then it costs about 85 tokens; SKILL.md has 1,533 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~85
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from ericrisco/rsc-harness at commit 92fde8f, republished under its MIT licence (© ericrisco). 1,533 words, ~3,122 tokens.

Download SKILL.mdSave it as .claude/skills/competitor-watch/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
competitor-watch
description
Use when an already-named set of rivals is watched on a cadence — pricing, features, positioning and changelog diffed into a maintained tracker plus an append-only, classified change log. NOT sizing the market or choosing who the rivals are (that is `market-research`), NOT one-off page extraction (that is `data-scraper`).
tags
competitive-intelligence, monitoring, pricing-tracking, feature-tracking, marketing-ops
recommends
market-research, pricing, sales-pipeline, brand-voice, data-scraper, automation-flows, seo-geo
origin
risco

competitor-watch

You run a standing watch, not a one-shot study. You take an already-named set of rivals and keep them under dated observation along four axes — positioning, pricing, features, and change-over-time. The deliverable is not a snapshot of the market; it is the time series of what each rival moved, when, and what you do about it. Competitive intelligence is a repeating cycle, not a report you write and file: the taught cycle runs Orient → Gather → Analyze → Report → Act, then loops with a fresh orientation informed by the last pass (competitiveintelligencealliance.io, accessed 2026-06-02).

Two near-misses decide the routing (the rest are in Handoffs, below). ../market-research/SKILL.md answers "what is the market and who is in it" once, and often produces the list you watch — you are the downstream loop that watches that list forever. ../data-scraper/SKILL.md owns the generic mechanics of pulling data off a page on demand; you use change detection as a means, but your identity is the maintained tracker + classified change log + cadence. "Extract this one table once" → data-scraper. "Keep watching these five companies" → you.

Ethics gate — runs FIRST, before any capture

Legitimate CI is legal + ethical collection from public, observable sources with your identity disclosed. SCIP's Code of Ethics is the industry line (scip.org, accessed 2026-06-02). The practical gate is the front-page test: would you be comfortable if your collection method were reported on the front page of the news? If not, don't do it.

  • Public/observable sources only — their own site, public filings, trade-show material, published reviews (G2/Capterra), public social. Why: anything else is not CI, it's a legal risk.
  • Never pose as a customer to extract non-public info (no fake demo requests, no false pretenses, no misrepresenting who you are). Why: it's a Code-of-Ethics violation and it taints the data.
  • Never bypass access controls, paywalls, or rate limits / "no-scrape" terms. Why: circumventing access is the bright line between intelligence and intrusion.

If a request needs any of those, refuse and reframe to the legal equivalent: instead of "get their internal pricing," watch their public pricing page on a cadence and log the moves.

Ground & scope before you watch anything

  1. Get the competitor list. If there is none, or it's unvalidated guesswork → STOP and route to ../market-research/SKILL.md. Why: watching the wrong rivals forever is worse than not watching. You are not the one who decides who the competitors are.
  2. Pick the vital few, then the watch-axes. The 3–7 rivals that move your roadmap, and only the surfaces (below) that change your decisions. Why: watching 30 companies on every axis produces noise nobody reads; depth on the few beats breadth on the many.
  3. Persist the tracker of record under 02-DOCS/wiki/competitors/ (one profile per rival
    • a shared change log); keep raw captures under 02-DOCS/raw/competitors/. Why: the tracker is a maintained artifact, not a chat answer — it has to live somewhere re-runnable.
  4. Every price/feature cell carries a source_url + date, or it stays blank. Why: this is the single highest-value guard against inventing a rival's number. If you didn't see it on a dated public page, you don't know it — leave the cell empty and say so.
text
Bad:  Acme Pro tier — $79/mo                          (no source, no date — invented)
Good: Acme Pro tier — $79/mo  [acme.com/pricing, 2026-05-28]   (seen, sourced, dated)

Watch-list → config: map each surface

This is the real branch — different surfaces want different cadences and different selector types, so the table earns its place. Cadence is tiered by how fast the surface moves: time- sensitive surfaces want 5–15 min checks, general competitor surfaces hourly–daily, slow/compliance surfaces daily (visualping.io / scrapx.io cadence guidance, accessed 2026-06-02). Over-frequent on a slow page is just cost and noise; under-frequent on pricing is a missed move.

Axis (surface)What you watchCadenceSelector type
Pricing / packagingthe price node, tier names, promo banner5–15 minCSS on the price element, or JSONPath if pricing comes from an API
Features / changelogrelease-notes / "what's new" listdailyCSS on the release list (first N items)
Positioning / homepagehero headline + subhead copydaily–weeklyCSS on the hero text block
Launches / partnershipspress / blog indexdailyCSS on the post list
Careers / hiringopen-roles count + titlesweeklyCSS on the jobs list (signals strategy)
Customer reviewsG2 / Capterra recent reviewsweeklyCSS on the review feed
Socialpublic profile / postsdaily–weeklyplatform-dependent; public only

That mapping — URL + selector + cadence per surface — is the monitoring config. Write it down as config, don't hold it in your head.

The change loop

Each pass on a watched URL: capture → diff vs last → classify → score → log → flag.

  1. Capture the watched node (not the whole page — the selector keeps the diff signal-clean).
  2. Diff against the last stored capture for that URL.
  3. Classify the change into exactly one axis: pricing | feature | positioning | messaging | team | other.
  4. Score materiality: high (changes our roadmap or pricing), medium (worth knowing), low (cosmetic / noise). Why: a diff with no classification and no materiality is noise — it tells you something moved but not whether to care.
  5. Append a dated change-log row. Never overwrite; the log is the time series.
  6. Flag the high rows for action and route them — a price move to whoever owns our pricing decision, a feature ship to product. You log and flag; you don't make those calls.
text
Bad:  "They changed their website."
      (no date, no axis, no old/new, no materiality, no action — unactionable)

Good: 2026-05-20 · pricing · Acme · acme.com/pricing
      Pro tier $49→$59/mo · high · revisit our mid-tier vs theirs
      (dated, classified, old→new, scored, with a next step)

The tracker artifacts

Three structured files. Required fields named here; full schema + a filled end-to-end example competitor live in references/tracker-schema.md. The profile is a .md page under the 02-DOCS/wiki/ OKF v0.1 bundle, so its YAML frontmatter carries a non-empty type: competitor (plus the OKF-recommended title/description/tags/timestamp) alongside the domain keys; its body uses standard markdown links, never wikilinks. The two CSVs are data files, not OKF documents.

  • Competitor profile (one per rival): OKF frontmatter (type: competitor, …) + the domain keys name, positioning_line, segment, pricing tiers (each with amount, currency, source_url, date), feature-matrix rows, watched URLs.
  • Feature matrix (CSV): rows = features, columns = competitors, each cell sourced + dated.
  • Change log (CSV, append-only): date,competitor,axis,url,old_value,new_value,materiality,action.
csv
date,competitor,axis,url,old_value,new_value,materiality,action
2026-05-20,Acme,pricing,https://acme.com/pricing,$49/mo,$59/mo,high,revisit our mid-tier
2026-05-22,Acme,feature,https://acme.com/changelog,,SSO on Team plan,medium,note for product
Show full SKILL.md (569 more words)Show less

Tooling — what you can actually run

The runnable default is changedetection.io (open-source, self-hosted): it does text/ visual / XPath/CSS-selector and JSON-API (JSONPath / jq) change detection, checks as often as ~1 minute, notifies via Slack/Discord/Telegram/email/API, and ships AI change summaries like "Price dropped from $89.99 to $67.00" (github.com/dgtlmoon/changedetection.io, accessed 2026-06-02). Prefer this when you must produce a config you can run rather than recommend a SaaS. Full docker-compose + per-axis watch recipe is in references/monitoring-config.md.

  • The Wayback Machine is an archive, not a monitor. It captures some snapshots (a pricing page may be archived once in months, or never) and does not tell you when something changed; its "Changes" diff (added=blue, deleted=yellow) only compares two existing captures (archive.org "Compare two versions", accessed 2026-06-02). Use it to reconstruct historical positioning, never as the live alerting layer.
  • The paid CI-suite tier exists and sets the feature bar — quote real numbers, don't over-prescribe: Crayon median ≈$28.7K/yr, Klue ~$16K–$42.7K/yr (priced by seats), Kompyte ~$20K avg ARR (entry from ~$300/yr), lightweight page-monitors Visualping from ~$10/mo, ChangeTower from ~$9/mo (vendr.com, autobound.ai, kompyte.com, accessed 2026-06-02). These auto-update battlecards — but the battlecard is a sales artifact owned by ../sales-pipeline/SKILL.md, not you. A self-host config covers most teams; the suite is overkill until you're tracking many rivals across social + filings 24/7 with a dedicated CI owner.
  • The recurring run (cron / webhook scheduling) is wiring, not watching → ../automation-flows/SKILL.md.

Handoffs

RequestRoute to
Size the market, produce/validate the competitor list, TAM/SAM/SOM, buyer/JTBD../market-research/SKILL.md
Set OUR price / packaging / tiers (a decision, not an observation)../pricing/SKILL.md
Build the sales battlecard / objection handling / "why we win"../sales-pipeline/SKILL.md
Define OUR positioning / value prop / messaging../brand-voice/SKILL.md
One-off "extract this page/table once" with no cadence or tracker../data-scraper/SKILL.md
Wire the recurring run as a cron/webhook automation../automation-flows/SKILL.md
Track OUR own SEO / AI-search visibility vs rivals on one page../seo-geo/SKILL.md

Anti-patterns

Anti-patternWhy it's wrongDo instead
Treating it as a one-shot studyThe value is the delta over time; a snapshot is stale on arrivalSet a cadence, append to a change log every pass
Inventing a rival's price/featureUnsourced "facts" pollute the tracker and mislead decisionsEvery cell gets source_url + date, or stays blank
Posing as a customer / bypassing a paywallFails the front-page test; not CI, it's a legal riskPublic observable sources only; refuse and reframe
Using the Wayback Machine as the live monitorIt doesn't tell you when something changed and may never capture the pageWayback for historical reconstruction only; changedetection.io for live alerts
5-min cadence on a careers page / weekly on pricingOver-frequent = noise + cost; under-frequent = a missed moveTier the cadence by axis volatility (see the table)
Logging a raw diff with no axis/materiality"Something changed" is unactionableClassify the axis, score materiality, add a next step
Watching 30 competitorsBreadth produces noise nobody readsWatch the vital 3–7 that move your roadmap
Building the battlecard inside this skillThat's sales enablement, a different ownerHand off to ../sales-pipeline/SKILL.md; you supply the tracker

Verify

After you emit a tracker / change log / config, run scripts/verify.sh against your project docs. Read-only lint: required tracker columns present; every pricing/feature row has a non-empty source_url and date (the anti-invention guard); change-log axis and materiality in the allowed sets, with a url + date on every row; and a warning when a monitoring-config entry pairs a slow axis with a sub-15-min cadence, or pricing with a slower-than-daily one. It exits 0 on an empty/clean target — no false failures.

© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (scripts, references) in skills/competitor-watch of ericrisco/rsc-harness.

  • SKILL.md
  • evals/README.md
  • evals/cases.yaml
  • references/monitoring-config.md
  • references/tracker-schema.md
  • scripts/verify.sh

Open the folder on GitHubat commit 92fde8f

Compare with similar skills

Competitor Watch next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Competitor Watch compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Competitor Watch this skillericrisco/rsc-harness156—~3.1kAutomated safety check: PassMIT
Icp Researchgrowthack88/growth-marketing-os115—~4.4kAutomated safety check: PassMIT
Competitor Analysissocial-media-skills/skills116—~1.3kAutomated safety check: PassMIT
Competitor Comparison Matrixfirecrawl/web-agent1.2k—~1.1kAutomated safety check: PassMIT
Startup Designferdinandobons/startup-skill1.2k—~8.1kAutomated safety check: PassMIT
Startup Validatorailabs-393/ai-labs-claude-skills4541 repos~2.8kAutomated safety check: PassMIT

Similar skills

  • Icp Research

    growthack88/growth-marketing-os

    Scrapes case studies, testimonials, and solutions pages from a target website to build structured ICP documentation.

    115 GitHub stars~4.4k tokensUpdated 5 days ago
    Marketing & SEOAuto-check passed
  • Competitor Analysis

    social-media-skills/skills

    Competitor analysis for social media — public-data competitive reconnaissance to find the gap a brand can own.

    116 GitHub stars~1.3k tokensUpdated 5 days ago
    Marketing & SEOAuto-check passed
  • Competitor Comparison Matrix

    firecrawl/web-agent

    Compares two or more products or companies on pricing, features and positioning by scraping their sites, and returns a normalized JSON matrix.

    1.2k GitHub stars~1.1k tokensUpdated 5 mo ago
    Marketing & SEOAuto-check passed
  • Startup Design

    ferdinandobons/startup-skill

    Design, validate, and plan a startup from scratch. An agent skill from ferdinandobons/startup-skill.

    1.2k GitHub stars~8.1k tokensUpdated 3 mo ago
    Marketing & SEOAuto-check passed
  • Startup Validator

    ailabs-393/ai-labs-claude-skills

    Comprehensive startup idea validation and market analysis tool.

    454 GitHub starsUsed in 1 repo~2.8k tokens
    Marketing & SEOAuto-check passed
  • Yao Positioning Skill

    yaojingang/yao-open-skills

    Generate evidence-aware positioning reports for personal IPs, courses, products, services, brands, or companies by combining positioning theory, course-marketing analysis, user intent, competitor…

    1.3k GitHub stars~805 tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed

More from ericrisco/rsc-harness

All 229 skills in this repo
  • Ab Testing

    ericrisco/rsc-harness

    A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…

    156 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Accessibility

    ericrisco/rsc-harness

    A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…

    156 GitHub stars~3.4k tokensUpdated today
    Auto-check passed
  • Ads

    ericrisco/rsc-harness

    A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…

    156 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Agent Eval

    ericrisco/rsc-harness

    A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…

    156 GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • AI Media

    ericrisco/rsc-harness

    A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…

    156 GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Analytics

    ericrisco/rsc-harness

    A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.

    156 GitHub stars~2.8k tokensUpdated today
    Auto-check passed

Categories

Questions about Competitor Watch

What does Competitor Watch do?

A skill your agent uses when an already-named set of rivals is watched on a cadence — pricing, features, positioning and changelog diffed into a maintained tracker plus an append-only, classified…. Competitor Watch is an agent skill from ericrisco/rsc-harness. Use when an already-named set of rivals is watched on a cadence — pricing, features, positioning and changelog diffed into a maintained tracker plus an append-only, classified change log.

When should I use Competitor Watch?

Competitor Watch fits situations like: an already-named set of rivals is watched on a cadence — pricing; positioning and changelog diffed into a maintained tracker plus an append-only; classified change log.

How do I install Competitor Watch in Claude Code?

Run `npx skills add ericrisco/rsc-harness --skill competitor-watch -a claude-code`. Or copy the skill folder (skills/competitor-watch in ericrisco/rsc-harness) into .claude/skills/competitor-watch in your project. Claude Code loads it when a task matches its description.

How do I install Competitor Watch in Codex?

Run `npx skills add ericrisco/rsc-harness --skill competitor-watch -a codex`. Or copy the skill folder (skills/competitor-watch in ericrisco/rsc-harness) into .agents/skills/competitor-watch in your project. Codex loads it when a task matches its description.

Can I use Competitor Watch in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill competitor-watch -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/competitor-watch, .gemini/skills/competitor-watch, .github/skills/competitor-watch and .opencode/skills/competitor-watch in your project.

What does Competitor Watch need to run?

Going by SKILL.md and its folder, Competitor Watch needs a shell for the scripts in its folder. Our summary lists: A Bash shell; Docker.

Does Competitor Watch access the network?

SKILL.md names 1 domain. In commands or code: acme.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Competitor Watch safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Competitor Watch use?

Competitor Watch is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Competitor Watch use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.6k tokens, read only when the agent opens those files.

What are the alternatives to Competitor Watch?

Skills that share tags, products or a category with Competitor Watch: Icp Research (growthack88/growth-marketing-os, 115 stars), Competitor Analysis (social-media-skills/skills, 116 stars), Competitor Comparison Matrix (firecrawl/web-agent, 1.2k stars) and Startup Design (ferdinandobons/startup-skill, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Competitor Watch?

ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 156 GitHub stars. The repository holds 229 skills in this directory. The repository was last updated on October 6, 2026.

Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.