competitor-watch
Skill2 starsChanged 41 days agoMITView on GitHub
A sourced comparison of the competitors the person names — offer, price, positioning and recent changes, each value read from a page and dated. Re-run it and it shows what changed since last time. (localstack)
8 other projects use a version of this.
Adopted by
Most recently taken up by
- TrueScrape/truescrapetheir own version, first seen Nov 8, 2026
- heypastel/pastel-outbound-systemtheir own version, first seen Nov 8, 2026
- CatCatUncle/openworkbuddytheir own version, first seen Nov 5, 2026
- claude-world/cf-browsertheir own version, first seen Nov 1, 2026
- legioncodeinc/littlebird-skillstheir own version, first seen Oct 20, 2026
- muguang1224/competitor-watchtheir own version, first seen Oct 15, 2026
Other versions8 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 8
- CatCatUncle/openworkbuddy★ 398same name
- calven-ai/marketing-as-code★ 10same name
- claude-world/cf-browser★ 9same name
- legioncodeinc/littlebird-skills★ 8same name
- roeibh/morning-briefing-claude-plugin★ 3same name
- heypastel/pastel-outbound-system★ 2same name
- muguang1224/competitor-watch★ 1same name
- TrueScrape/truescrape★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository24 other files it gives its agents.
- fact-checkSkill
- file-tidySkill
- inbox-triageSkill
- keyword-researchSkill
- lead-draftSkill
- lead-exportSkill
- lead-planSkill
- lead-qualifySkill
- lead-reachSkill
- lead-retroSkill
- lead-searchSkill
- localstackSkill
- market-researchSkill
- money-reportSkill
- on-page-optimizerSkill
- reconcileSkill
- routine-reportSkill
- routine-setupSkill
- seo-auditSkill
- setup-localbrainSkill
- social-planSkill
- social-postSkill
- support-faqSkill
- support-replySkill
The file
We split this skill into the rules it gives an agent
2 rules. 0 are common, 2 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 64
Ask for what is missing in a SINGLE message, then wait.
- Distinctive: line 139
Every cell opens to a page that shows its value on the date given.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
When to invoke this skill
Builds a side-by-side of named competitors — what they offer, what it costs,
how they position it, what changed recently — every cell read from a page and
dated. Run it again later and it says what moved. Use when asked to "compare
our competitors", "what changed at X", "how do we stack up". Umbra's skill;
for an open market question, use /market-research. To run it every week,
hand it to /routine-setup.
The hard boundary
- Named competitors only. The person names them, or approves a list you propose from search (with the URL that surfaced each). Never pad the table with companies nobody asked about.
- Every cell is an observation. A value carries the URL it was read at
and the date. Not shown publicly →
UNKNOWN — <where you looked>. A price behind "contact sales" isnot public, never an estimate. - Changes are diffs, not impressions. "Changed" means the value read today differs from the value recorded last run. A change you cannot point to both values for is not a change.
- No signing in, no trials, no fake sign-ups. Public pages and public search results only. Never create an account or start a trial to see a price.
What you need first
- The competitors — names or sites.
- What we sell — DESIGN.md or a
PLAN-*.mdmay say; else one line from the person, so "positioning" has something to sit beside.
Ask for what is missing in a SINGLE message, then wait.
What you read first
competitors-<topic>.md, if it exists — last run's values and their dates are the baseline for "what changed". Say when it was last updated.- DESIGN.md — our own positioning.
Procedure
1. Load the inputs above. Slug: <topic> from the market
(invoicing-tools).
Scratch for this run lives in .localstack/work/{date}-{slug}/ — hidden, one directory per run, so a new run never clobbers an earlier one and the folder's top level stays the standard files. Scratch is disposable; old run directories may be deleted freely.
2. Read each competitor. Fetch the homepage, pricing page, product or
features page, and the newest changelog, blog or news item you can find.
Record per competitor in .localstack/work/{date}-<topic>/<competitor>.md:
offer (what they sell, in one line, their words quoted), price (plans and
amounts as shown, currency, billing period), positioning (their headline,
quoted; who they say it is for), recent changes (dated items from their own
pages or news), each with URL.
3. Compare against last run. For every cell that has a previous value,
mark same, changed (was <old> on <date>), or could not re-check. A page
that moved or vanished is itself a change — record it.
4. Write competitors-<topic>.md at the top of the working folder:
# Competitors — <topic>
Updated: YYYY-MM-DD · last run: <date or "first run">
## What changed since <last run date>
- <Competitor>: <field> was "<old>", now "<new>" — <URL>
(or "Nothing changed in the fields checked.")
## Side by side
| | Offer | Price | Positioning | Recent changes |
|---|---|---|---|---|
| <Competitor> | … (URL) | … (URL) | "…" (URL) | YYYY-MM-DD … (URL) |
## Where we sit
<3–5 points: where our offer or price differs, from DESIGN.md vs the table —
each pointing at the cells it rests on>
## Could not check
- <Competitor — field — why>The previous run's values survive in git and the CHANGELOG line; keep a copy of this run's raw notes in the scratch directory so the next run can diff.
Standard files. This folder is kept in files any agent already reads. Update them in place; never scatter output into new folders.
- AGENTS.md — create it if missing. localstack owns only the block between
<!-- localstack:start -->and<!-- localstack:end -->; rewrite that block, never anything outside it. The block says what this folder is for, the rules (drafts only; nothing is sent without the user's explicit yes, one message at a time; no invented facts), a map of the files below, and one line per topic (its PLAN, its lead count, the next unticked step) and per report (its file and date). - CHANGELOG.md — create it if missing (
# Changelog). Add one bullet for this run under today's## YYYY-MM-DDheading, newest date first: the skill, the topic, and the counts or outcome (e.g.- lead-search austin-dentists: 18 found, 3 skipped as already contacted). - TODOS.md — create it if missing (
# TODOs). Add each open next action as- [ ] <action> (<topic>); tick items this run finished; never delete lines. - DESIGN.md — decisions meant to last (positioning, tone, channels to use or avoid). Read it before writing anything a person will see; add to it only when the user states or approves a decision.
For this step: the CHANGELOG line gives competitors read, cells filled,
changes found (each named briefly). One TODO per change worth a decision
(- [ ] decide how to respond: <competitor> <change> (competitor-watch
<topic>)).
5. Report. Lead with what changed, then where we sit. Offer
/routine-setup to re-run it on a schedule.
Completion status. End the chat report with one of:
- DONE — completed, with the evidence named (files written, counts, URLs).
- DONE_WITH_CONCERNS — completed, and list each concern.
- BLOCKED — cannot proceed; say what blocked it and what was tried.
- NEEDS_CONTEXT — missing information; say exactly what is needed.
Quality bar
- Every cell opens to a page that shows its value on the date given.
- "What changed" lists only differences with both values on record.
- A table with honest
UNKNOWNs beats a full one filled from memory.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

