skills/tavily/SKILL.md
AI-optimized web search via Tavily API when no URL is provided. Returns clean AI-ready snippets for current info and news. Triggers on: "search the web", "look up online", "find recent information", "web search". NOT for known URLs, use web-fetch.
npx skillsauth add mathews-tom/armory tavilyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Web search and URL content extraction powered by Tavily API. Returns clean, structured results optimized for AI consumption — no HTML noise, no cookie banners, no pagination.
| Situation | Tool | Reason |
| ------------------------------------ | ---------------------------------- | ---------------------------------------- |
| Need current information on a topic | search.mjs | Tavily aggregates and ranks live results |
| Need news from the last N days | search.mjs --topic news --days N | News mode filters recency |
| Have a specific URL, need full text | extract.mjs | Extracts clean article content from URL |
| Need documentation for a library | search.mjs --deep | Deep mode covers docs sites thoroughly |
| Need a static resource already known | direct fetch or read | Skip Tavily if no live lookup needed |
| Need multiple competing perspectives | search.mjs -n 10 | Increase result count for breadth |
Both scripts exist at scripts/ and require TAVILY_API_KEY in the environment.
scripts/search.mjs — query-based web searchscripts/extract.mjs — full content extraction from a URLnode {baseDir}/scripts/search.mjs "query"
node {baseDir}/scripts/search.mjs "query" -n 10
node {baseDir}/scripts/search.mjs "query" --deep
node {baseDir}/scripts/search.mjs "query" --topic news
node {baseDir}/scripts/search.mjs "query" --topic news --days 3
| Option | Default | Description |
| ----------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -n <count> | 5 | Number of results to return (max: 20). Increase for broader coverage. |
| --deep | off | Advanced search mode — slower but more comprehensive. Use for complex research questions, technical deep-dives, or when standard results are insufficient. |
| --topic <topic> | general | general for standard search; news for current events filtered by recency. |
| --days <n> | — | Only valid with --topic news. Limits results to articles published in the last n days. |
node {baseDir}/scripts/extract.mjs "https://example.com/article"
Use when you already have a URL and need the full page content — Tavily strips navigation, ads, and boilerplate, returning structured article text.
Search results return a JSON array. Each result contains:
[
{
"title": "Article or page title",
"url": "https://source.com/path",
"content": "Clean text snippet (AI-optimized excerpt)",
"score": 0.92
}
]
score is Tavily's relevance ranking (0–1). Higher is more relevant. When parsing results,
use content for summarization and url for attribution. Do not treat content as the full
article — use extract.mjs on the URL if complete text is needed.
Extract output returns a single object:
{
"url": "https://source.com/path",
"raw_content": "Full extracted page text..."
}
| Error | Cause | Resolution |
| ----------------------------- | ---------------------------- | -------------------------------------------------------------------- |
| TAVILY_API_KEY not set | Environment variable missing | Set TAVILY_API_KEY before running. Get a key at https://tavily.com |
| 401 Unauthorized | Invalid API key | Verify the key value; regenerate at Tavily dashboard if needed |
| 429 Too Many Requests | Rate limit hit | Reduce request frequency; free tier allows 1000 API credits/month |
| Empty results array [] | No matches found | Broaden or rephrase the query; try --deep for niche topics |
| ETIMEDOUT / timeout | Network or API latency | Retry once; --deep searches take longer (up to 30s) |
| Extract returns empty content | Page blocks scrapers | Use a different source or fall back to a manual fetch approach |
--deep costs more.general mode. Use --topic news for recency-sensitive queries.testing
Manages dependent branch stacks and stacked pull requests using safe Git topology rules. Triggers on: "create stacked PRs", "publish this stack", "sync my PR stack", "rebase this stack", "merge the stack", "retarget child PRs", "split this branch into stacked PRs", "validate this stack", "cleanup stacked branches". Use when local branches or one source branch need to become a dependency-ordered PR stack with correct parent bases, validation, synchronization, merge order, and cleanup.
development
Scaffolds per-repository agent context so coding agents share the same issue tracker rules, triage label vocabulary, domain glossary, ADR layout, and handoff conventions. Triggers on: "set up project context", "configure agent docs", "create CONTEXT.md", "setup agent workflow", "agent issue tracker setup", "triage labels", "domain glossary for agents". Use when a repo needs durable context files before planning, triage, debugging, TDD, architecture review, or multi-agent implementation.
testing
Produces phased task boards from feature requests: dependency-mapped work items, parallelization flags, risk flags, edge cases, test matrices. Triggers on: "decompose this feature", "task breakdown with dependencies", "phased implementation plan", "work breakdown structure". NOT for effort estimates, use estimate-calibrator.
development
Hypothesis-driven debugging with ranked hypotheses, git bisect strategy, instrumentation planning, and minimal reproduction design. Triggers on: "debug this systematically", "root cause analysis", "bisect this bug", "rank hypotheses", "isolate this issue", "minimal reproduction". NOT for general reasoning.