agentleFS
LiozShorLiozShor/claude-code-skills/tech-researcher/SKILL.md

tech-researcher

Skill2 starsChanged 3 months agoMITView on GitHub

Compare libraries/frameworks/tools and verify current APIs via live sources before choosing or implementing (X vs Y, latest, deprecated?). Also handles decision-grade questions — pivots, build-vs-buy, stack changes — via a weighted-criteria brief. Not for research already running inside a /design-log Phase B, and not for pure conceptual questions with no implementation impact.

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. kcayme/k-agents★ 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 repository8 other files it gives its agents.

The file

Show its rules and text

We split this skill into the rules it gives an agent

23 rules. About 0 are common, 20 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈20

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill when the agent needs current technical information before giving advice, writing implementation plans, choosing tools, or …

    line 9
  2. Distinctive:

    Use this skill when the user asks about:

    line 17
  3. Distinctive:

    Do not use this skill when:

    line 31
  4. Distinctive:

    If there is any realistic chance that the answer changed recently, use this skill.

    line 39
  5. Very specific:

    Check the research index before searching: If the project has .agent/design-logs/research-index.md, read it — a matching domain entry <90 …

    line 60
  6. Very specific:

    Prefer primary sources (official docs, repos, changelogs, registries, vendor docs).

    line 66
  7. Distinctive:

    Check dates and versions: latest stable, deprecations, migration notes, breaking changes, docs-vs-version match.

    line 68
  8. Distinctive:

    Time-box research to 5–10 minutes of tool calls: Search smart — read the most relevant sections, not entire pages.

    line 76
  9. Distinctive:

    Before recommending anything, check whether a simpler solution already suffices.

    line 80
  10. Distinctive:

    Prefer built-in / standard-library / native-platform features over a new dependency.

    line 82
  11. Distinctive:

    If the user's existing stack can already do this, say so instead of recommending something new.

    line 83
  12. Distinctive:

    If you find yourself recommending added complexity, name the specific requirement that forces it.

    line 87
  13. Distinctive:

    Ask the user before: production-impacting architecture changes.

    line 93
  14. Distinctive:

    Do not recommend from memory in fast-moving domains, and do not give implementation code until the current API has been verified.

    line 105
  15. Distinctive:

    Do not assume package names, import paths, or API syntax are still current.

    line 106
  16. Distinctive:

    Do not treat a blog post as truth when official docs exist.

    line 107
  17. Distinctive:

    Do not recommend an abandoned package without saying it appears abandoned, or a tool only because it is popular.

    line 108
  18. Distinctive:

    Do not skip security implications for auth, deployment, cloud, or dependency decisions.

    line 109
  19. Distinctive:

    Do not recommend migration unless the benefit clearly outweighs the cost — for decision-grade questions the switching cost is part of the …

    line 110
  20. Distinctive:

    Do not answer a pivot-level question with a library-level answer: if the choice is expensive to undo, it gets the decision brief (criteria …

    line 111
  21. Distinctive:

    Do not skip the research-index check (step 2) — re-researching a <90-day-old domain from scratch wastes the whole time-box.

    line 112
  22. Very specific:

    Do not call WebSearch/WebFetch — they are not in allowed-tools and the call will fail.

    line 113
  23. Distinctive:

    Before finalizing the answer, verify:

    line 123

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Tech Researcher

Use this skill when the agent needs current technical information before giving advice, writing implementation plans, choosing tools, or editing code.

The purpose of this skill is to prevent stale, confident, outdated technical recommendations. Many technical domains change quickly. A model may remember an old API, deprecated library, renamed package, outdated best practice, or abandoned framework. This skill forces the agent to verify current information before making a recommendation.

It uses the research MCP (Tavily/Exa/Firecrawl) tools (the same tooling pattern as /design-log Phase B) — built-in WebSearch/WebFetch are intentionally not in allowed-tools because these MCPs return full-page markdown and support parallel batch fetches, which is what this skill needs for primary-source verification.

When this triggers

Use this skill when the user asks about:

  • The best current way to implement something.
  • Which library, framework, package, API, SDK, tool, or platform to use.
  • Direction decisions: pivoting an approach, build-vs-buy, replacing part of the stack, "what's the best thing to implement X with" — run these in decision-grade mode (below).
  • Whether a package or framework is still maintained; current setup, syntax, APIs, or version-specific behavior.
  • Technical architecture choices; comparing tools before implementation.
  • Fast-moving domains: AI/ML tooling, agent frameworks, RAG, MCP, LLM SDKs, JS/TS frameworks, Python tooling, cloud platforms, CI/CD, databases, auth, deployment.
  • Debugging that may depend on current package versions or changed APIs.

Trigger phrases: "what is the best way to…", "which library/tool should I use", "is this still recommended / maintained / deprecated?", "latest version", "current best practice", "compare these", "should I use X or Y?", "should I switch to…", "before implementing".

When this does not trigger

Do not use this skill when:

  • The question is basic and stable, or purely conceptual with no implementation impact.
  • The user explicitly asks not to search or not to verify externally.
  • The task is only formatting, rewriting, translating, or summarizing user-provided text/docs.
  • The answer can be safely handled from the project's existing local files.
  • The user is already inside a /design-log Phase B run — that workflow already handles research and this skill would duplicate it (but both share the same research index — see step 2).

If there is any realistic chance that the answer changed recently, use this skill.

Standing user constraints

Apply these to every recommendation unless the user overrides them (they come from the user's global setup; verify against CLAUDE.md if in doubt):

  • Resale-readiness: systems may be sold — anything requiring per-account hardcoding, heavy vendor lock-in, or non-transferable licensing scores worse. Everything must be configurable via env/config.
  • Solo maintenance: one person operates everything — prefer boring, reliable, well-documented tools over powerful-but-fussy ones. Maintenance burden is a first-class criterion, not a footnote.
  • Existing stack first: n8n, Airtable, Tally, Cloudflare (Workers/Pages), GitHub Pages, Base44, Node/JS/TS, Python. If the current stack can do it, say so before recommending anything new.
  • Hebrew/RTL support matters for client-facing surfaces.

Required inputs

Before researching, identify: the technical decision being made; target language/framework/platform; user constraints beyond the standing ones; whether the user wants a recommendation, comparison, implementation plan, or decision brief. If details are missing, make a reasonable assumption, state it, and continue unless it blocks the task.

Workflow

  1. Anchor on the current date FIRST. Fetch today's date via Bash (date +%Y-%m-%d) or the injected session context. Do NOT rely on training-cutoff intuition. Use the anchored date to set year filters and start_date/time_range parameters on search calls, and to judge whether a source is actually recent.
  2. Classify the question: lookup (verify an API/package/syntax) · comparison (X vs Y) · decision-grade (pivot, build-vs-buy, stack change — anything expensive to undo). Decision-grade adds the criteria table and reversibility analysis to the output; lookups stay fast — do NOT inflate a 2-minute lookup into a decision brief.
  3. Check the research index before searching. If the project has .agent/design-logs/research-index.md, read it — a matching domain entry <90 days old means delta research only (verify what changed since), not from-scratch research. This is the same cache /design-log Phase B uses.
  4. Define the research question in one sentence, and list what could be stale (package names, API syntax, install commands, versions, architecture advice, pricing/limits, deprecations, compatibility).
  5. Search current sources via a research MCP — pick the tool by job using references/research-mcp-tools.md (Tavily = ranked search + batch extract · Exa = semantic discovery · Firecrawl = full-page/JS-heavy/docs crawls). Parallelize independent searches. Never WebSearch/WebFetch.
  6. Prefer primary sources (official docs, repos, changelogs, registries, vendor docs); secondary sources (blogs, tutorials, discussions) only for context. Full ladder + date/version/maintenance rules in references/research-quality-rules.md.
  7. Check dates and versions: latest stable, deprecations, migration notes, breaking changes, docs-vs-version match.
  8. For comparisons/decisions: compare fit, maintenance, ecosystem, complexity, lock-in, learning curve, implementation risk — scored against the standing user constraints. For decision-grade: fill the criteria table, the reversibility call (one-way vs two-way door), and cost-of-change vs cost-of-staying.
  9. Produce the answer in the matching format from references/output-formats.md (research answer · comparison · implementation plan · decision brief). Mention uncertainty when sources are weak, conflicting, or incomplete.
  10. Write back to the research index. If the project has .agent/design-logs/research-index.md, upsert a dated entry (domain, verdict, key sources) via Edit. If it doesn't exist, do NOT create it — include the would-be entry at the end of the answer so a later /design-log run can seed it. This is what makes repeated research compound instead of restart.

Time-box research to 5–10 minutes of tool calls. Search smart — read the most relevant sections, not entire pages.

Simplicity gate

Before recommending anything, check whether a simpler solution already suffices. Default to the least complex option that meets the stated need:

  • Prefer built-in / standard-library / native-platform features over a new dependency; one well-maintained library over a framework + plugins.
  • If the user's existing stack can already do this, say so instead of recommending something new.
  • More popular ≠ more appropriate. More powerful ≠ better fit.
  • State the simplest option that works FIRST; mention heavier alternatives only if a real constraint justifies them.

If you find yourself recommending added complexity, name the specific requirement that forces it. If you can't name one, drop it.

Decision gates

Stop and report uncertainty when: official docs cannot be found; sources disagree on core facts; the package appears abandoned; the API changed and the correct version is unclear; the user's environment version is unknown and it matters; the recommendation could cause security, data-loss, production, or cost risk.

Ask the user before: production-impacting architecture changes; recommending migration away from an existing stack; adding a dependency with significant lock-in; choosing a paid service; changing auth, security, or deployment strategy.

Proceed without asking when: the user asked for research only; the change is informational; assumptions can be stated clearly and safely.

Edit is allowed ONLY for upserting the research index (step 9) — never for modifying project code; surface code changes to the user instead. Bash is allowed only for the step-0 date anchor.

Output format

Pick the matching template from references/output-formats.md: research answer, tool comparison, implementation plan, or decision brief (for pivots/build-vs-buy). For shorter answers, compress the format but keep the logic: recommendation, evidence, risks, next step. Decision briefs must end with "what would change this call" — the condition that flips the recommendation.

Gotchas

  • Do not recommend from memory in fast-moving domains, and do not give implementation code until the current API has been verified.
  • Do not assume package names, import paths, or API syntax are still current; do not ignore version differences.
  • Do not treat a blog post as truth when official docs exist; do not cite community answers as the main source for current API behavior.
  • Do not recommend an abandoned package without saying it appears abandoned, or a tool only because it is popular.
  • Do not skip security implications for auth, deployment, cloud, or dependency decisions.
  • Do not recommend migration unless the benefit clearly outweighs the cost — for decision-grade questions the switching cost is part of the answer, not an afterthought.
  • Do not answer a pivot-level question with a library-level answer: if the choice is expensive to undo, it gets the decision brief (criteria + reversibility), not just "X is well-maintained."
  • Do not skip the research-index check (step 2) — re-researching a <90-day-old domain from scratch wastes the whole time-box.
  • Do not call WebSearch/WebFetch — they are not in allowed-tools and the call will fail. Use the research MCP.

References

  • references/research-quality-rules.md — source-quality ladder, date/version rules, maintenance/deprecation signals. Load at step 5.
  • references/research-mcp-tools.md — per-tool job matching for Tavily/Exa/Firecrawl + worked examples. Load at step 4.
  • references/output-formats.md — the four output templates (research answer, comparison, implementation plan, decision brief). Load at step 8.

Evaluation checklist

Before finalizing the answer, verify:

  • Did I classify the question (lookup / comparison / decision-grade) and match the output format to it?
  • Did I check the research index before searching, and upsert it after?
  • Did I anchor the date and check primary sources via the research MCP, with dates/versions verified?
  • Did I score against the standing user constraints (resale, solo maintenance, existing stack)?
  • Did I recommend the simplest option that meets the actual need, justifying any added complexity?
  • For decision-grade: did I include reversibility, switching cost, and "what would change this call"?
  • Did I distinguish recommendation from evidence, and state risks/uncertainty?
  • Did I avoid WebSearch/WebFetch and avoid relying on memory?

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.