Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Nimbleway/agent-skills --skill competitor-positioninggit clone --depth 1 https://github.com/Nimbleway/agent-skillsWrote 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/nimbleway/agent-skills/competitor-positioning)<a href="https://agentmods.dev/skills/nimbleway/agent-skills/competitor-positioning"><img src="https://agentmods.dev/badge/skills/nimbleway/agent-skills/competitor-positioning/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/nimbleway/agent-skills/competitor-positioning"><img src="https://agentmods.dev/badge/skills/nimbleway/agent-skills/competitor-positioning.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Rogue Agent · line 29 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium Excessive Agency · line 102 Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
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.00194 | $0.03959 |
| Opus 5 | $0.00097 | $0.01980 |
| Sonnet 5 | $0.00039 | $0.00792 |
| Haiku 4.5 | $0.00019 | $0.00396 |
Grade A, and why
competitor-positioning 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 9d ago.
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.
How it starts
The opening of the file, as written. The whole thing — 388 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Competitor Positioning
Marketing-focused competitive positioning analysis powered by Nimble's web data APIs. Built for marketing teams who need to understand how competitors present themselves — messaging, value props, content themes, pricing — and how that evolves over time.
The output is a marketing briefing, not a signal feed. Every insight should answer: "what does this mean for our messaging and positioning?"
User request: $ARGUMENTS
Argument parsing — determine what to do before running anything:
- No arguments → run full workflow (scope confirmation in Step 2)
- Competitor names (e.g., "Exa, Tavily") → research only those, skip scope confirmation
- "battlecard [competitor]" → skip to Battlecard Generation (see below) using existing snapshots from memory
- "delta" / "what changed" → force delta mode regardless of timing
Before running any commands, read references/nimble-playbook.md for Claude Code
constraints (no shell state, no &/wait, sub-agent permissions, communication style).
Instructions
Step 0: Preflight
Follow the transport selection + standard preflight from references/nimble-playbook.md — pick CLI or MCP at session start, then run the standard preflight calls (date calc, today, profile, memory index) in parallel.
From the results:
- CLI missing or API key unset →
references/profile-and-onboarding.md, stop - Tag all
nimbleCLI calls:nimble --client-source nimble-agent-skills <subcommand>. MCP requests are attributed at the transport level — seereferences/nimble-playbook.md. - Profile exists → load prior data from two sources:
~/.nimble/memory/positioning/*.md— prior positioning snapshots (used for delta detection in Steps 4 + 5)~/.nimble/memory/competitors/*.md— business signals from competitor-intel runs (provides context for why positioning may have shifted, e.g., a funding round or leadership change that preceded a messaging pivot) Determine mode:- Full snapshot: first run OR no prior positioning data OR last run > 14 days ago
- Delta mode: last run < 14 days ago — only surface what changed
- Same-day repeat: if
last_runs.competitor-positioningis today, check for existing report at~/.nimble/memory/reports/competitor-positioning-[today].md. If found, ask: "Already ran today. Run again for fresh data?" Don't silently re-run. - Skip to Step 2
- No profile → Step 1
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 9d ago First seen · 388 lines · 194 tokens per session scan A e4ef67d38c1a
competitor-positioning is a skill published in the GitHub repository Nimbleway/agent-skills (53 stars, last pushed 13d ago), licensed MIT. It adds 194 tokens to every session and 3,959 once invoked, about $0.0010 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
docs
Scale up scraping and drive interactive pages. Use batchscrape for many URLs, getbatchresults to page through async output, scrapewithactions to interact before scraping, and generatellmstxt to produce a site's AI policy file.
crawlforge-change-tracking
Monitors web pages for changes over time with CrawlForge's trackchanges tool. Use when the user wants to track changes to a page, watch a URL, monitor competitor pricing, detect when content updates, get notified of regulation or product-availability changes, or diff a page against a saved baseline. Workflow: create a…
crawlforge-structured-extraction
Extracts structured JSON and analyzes content with CrawlForge's extractstructured, extractwithllm, extractembeddedstate, scrapestructured, scrapetemplate, processdocument, analyzecontent, summarizecontent, and listollamamodels tools. Use when the user wants to extract specific fields, pull data into a JSON schema…
crawlforge-web-scraping
Scrapes web pages and returns clean Markdown, HTML, plain text, links, or metadata using CrawlForge's scrape, fetchurl, extractcontent, extracttext, extractlinks, extractmetadata, mapsite, and crawldeep tools. Use when the user wants to scrape a URL, fetch a page, get the markdown or text of a website, extract links…
crawlforge-batch-automation
Automates large scraping jobs and browser interactions with CrawlForge's batchscrape, getbatchresults, scrapewithactions, and generatellmstxt tools. Use when the user wants to scrape many URLs at once, batch-scrape a list of pages, collect dozens of product, news, or competitor pages, run browser actions (click, type…
crawlforge-deep-research
Runs multi-source web research and autonomous question-answering with CrawlForge's deepresearch, agent, searchweb, and redditsearch tools. Use when the user wants to research a topic, do a deep dive, compare competitors, gather facts with citations, answer a question from the web, search the web, or get a synthesized…