Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/aeonfun/aeonnpx agentmods add skills/aeonfun/aeon/competitor-monitorWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/aeonfun/aeon/competitor-monitor)<a href="https://agentmods.dev/skills/aeonfun/aeon/competitor-monitor"><img src="https://agentmods.dev/badge/skills/aeonfun/aeon/competitor-monitor/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/aeonfun/aeon/competitor-monitor"><img src="https://agentmods.dev/badge/skills/aeonfun/aeon/competitor-monitor.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00052 | $0.03394 |
| Opus 5 | $0.00026 | $0.01697 |
| Sonnet 5 | $0.00010 | $0.00679 |
| Haiku 4.5 | $0.00005 | $0.00339 |
Grade A, and why
competitor-monitor scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
1 near-identical copy found in the catalogue:
- competitor-monitor — 100% identical, 13 lines differ
How it starts
The opening of the file, as written. The whole thing — 283 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Today is ${today}.
${var} — the pages to watch, comma-separated.
- empty → read the watch list from
memory/competitors.md.https://rival.com/pricing, https://rival.com→ watch exactly these pages this run (a bare host getshttps://prepended). Watch specific pages, not just origins:/pricing,/changelog,/blogare where a competitor's moves actually show up.add:<url>→ append<url>tomemory/competitors.md, confirm, and end (the shape the Telegram force-reply sends). No monitor runs.
What this does
Fetches each watched page, extracts the handful of signals a human would notice
if they reopened the tab — the pricing numbers, the section headings, the
call-to-action buttons, the nav/footer links, the <title> and meta description
— snapshots them, and diffs today's snapshot against the previous run. It reports
only the differences, ranked by how much they matter (a pricing change beats
a reworded button), and keeps a durable log of every change it has ever seen.
The heavy lifting is in scripts/competitor-monitor.mjs, which returns
machine-readable signals and a machine-computed diff, so you reason over facts
instead of eyeballing two HTML dumps. Diffing signals, not raw HTML, is the
whole point — raw HTML churns every deploy (build hashes, nonces, inlined
timestamps) and would fire on every run. Signals only move when the site
actually moved.
This reads what a page serves. A pure client-rendered SPA that ships an empty shell will look thin — the meta tags and any server-rendered copy still diff, but JS-injected content won't. Most marketing, pricing, blog, and changelog pages are server-rendered enough to track; say so if a target comes back near-empty rather than inventing signal.
Capability notes (read before editing this skill)
This skill is mode: read-only, and that is load-bearing (same contract as
seo-audit):
- The scraper is stdlib Node, not Python —
Bash(node:*)is in the read-only capability base;Bash(python3:*)is write-tier. Porting to Python forcesmode: write. - No Write or Edit tool, and no shell output redirection. Read-only mode
strips
Write/Editand the Bash permission layer blocks> file/>> fileas defense-in-depth. So every file this skill produces is written by aBash(node:*)command that opens the file itself — the snapshot/diff script takes--out FILE, andCHANGES.mdis written by piping its content into a one-linenodewriter (both shown below). Do not use>— it will be refused mid-run. The read-only guard reverts writes to code/config paths but preservesmemory/andoutput/, which is exactly where this skill writes. - No secrets, no
requires:. It only makes outbound HTTPS GETs.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed · +13 lines 0b4cb0f9817b
- 12d ago First seen · 270 lines · 52 tokens per session scan A ff2d1681a378
competitor-monitor is a skill published in the GitHub repository aeonfun/aeon (723 stars, last pushed today), licensed MIT. It adds 52 tokens to every session and 3,394 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
flowcraft-config
Author, validate, and troubleshoot complete FlowCraft deployment configuration (deploy.yaml with the runtime section, inference/workspace/sandbox/tool sub-documents, core/memory contracts, and graph JSON node wiring). Use when writing or reviewing FlowCraft configs, assembling an agent deployment, adding…
api-interface-design
Use when designing public APIs, module boundaries, provider adapters, tool schemas, or data contracts.
unit-converter
Converts values between metric and imperial units, using the project's agreed factors.
explore
Explore the codebase and summarize how the project is wired.
flow-develop
Multi-AI implementation using Codex and Gemini CLIs (Double Diamond Develop phase). Use when: AUTOMATICALLY ACTIVATE when user requests building or implementation:. "build X" or "implement Y" or "create Z". "develop a feature for X".
flow-discover
Multi-AI research using Codex and Gemini CLIs (Double Diamond Discover phase). Use when: AUTOMATICALLY ACTIVATE when user requests research or exploration:. "research X" or "explore Y" or "investigate Z". "what are the options for X" or "what are my choices for Y".