hugo / rig-competition
Competitive intel for any field - weekly briefs, per-competitor dossiers, sourced metric pulls, AI-feature scans, a landscape map, and a threat-watch lens against your own positioning. Ship discipline: no invented numbers, every claim cited, dossiers append-only. Run the setup skill on first install to fill the data scaffolds for your business.
rig use hub:hugo/rig-competitionReadme
rig-competition
A portable rig for studying your competition. Tracks the competitors in your field, surfaces what they ship and what the numbers look like, and flags the moves that pressure your own positioning.
Vertical-agnostic — works for fintech, devtools, B2B SaaS, consumer apps, marketplaces, anything with a definable competitive set and a definable lens of "what matters."
What it does
- Runs a weekly brief on the past 7 days across all tracked comps
- Maintains per-competitor dossiers that accumulate over time (append-only)
- Pulls sourced metrics for one comp or the whole set
- Scans AI/agent features across the field
- Maps the landscape in a single snapshot
- Filters week's moves for threats to your own positioning
Hard rule: no invented numbers, no invented news. Every claim cites a source.
Setup (run this first)
rig use hub:hugo/rig-competition --dir ./my-competition-rig
cd my-competition-rig
claude
Then say setup to the agent. It walks you through:
- What your business does
- Your field / vertical
- Your competitive set (you give names, it researches URLs / IR pages / handles)
- Your positioning vectors (what a competitor would have to do to threaten you)
- The reputable trade-press outlets for your field
- How to bucket the competitive set (2–4 groups)
Output: every file in data/ is filled, cited, and ready. Takes ~15–30 min depending on how many competitors you bring.
After setup, type any of the triggers below.
Skills
| Skill | Trigger | Output |
|---|---|---|
setup (run first) | "setup" | Fills data/00–04 from your business description |
weekly-brief | "weekly brief" | outputs/weekly/YYYY-MM-DD_brief.md + appends to dossiers |
competitor-deep-dive | "deep dive on <comp>" | outputs/competitors/<slug>.md (header refresh + new block) |
metrics-pull | "pull metrics for <comp>" | Table in chat + appended to dossier |
ai-feature-scan | "AI feature scan past 30 days" | outputs/snapshots/YYYY-MM-DD_ai-feature-scan.md |
landscape-map | "show me the landscape" | outputs/snapshots/YYYY-MM-DD_landscape.md |
threat-watch | "any threats" (or auto from weekly-brief) | Appended to weekly brief under ## Threats to watch |
Context (data/)
| File | What's in it |
|---|---|
00-tracking-thesis.md | What the rig watches and why; your lens (which signals matter most); cadence rules |
01-competitive-set.md | The comps grouped by bucket, with URLs, filings/IR, social, blogs |
02-metrics-rubric.md | Per-category metrics that matter; where to source each; what to do when a number isn't public |
03-source-rules.md | Citation discipline; your field's allow-list and a universal disallow-list of sources |
04-your-positioning-brief.md | Your product's positioning + the threat vectors threat-watch looks for |
After setup, edit any of these by hand to add a comp, tighten a source rule, or revise a vector. Skills read these files but don't rewrite them — only setup and you do.
Output
outputs/weekly/YYYY-MM-DD_brief.md— one per weekly runoutputs/competitors/<slug>.md— append-only dossier per comp; each block is dated and signed by the skill that wrote itoutputs/snapshots/YYYY-MM-DD_<type>.md— landscape and ai-feature-scan snapshots
Outputs are gitignored and not packaged.
Customising further
The skills themselves (under skills/) are deliberately generic. If your field needs a different cadence, a different metric matrix, or different threat vectors than what setup produced, edit data/ first — skills read from data/, so most behaviour is data-driven. Touch skills/ only when you want a structurally different output (e.g., monthly briefs instead of weekly).
Version
0.1.0