skills/best-practices-researcher/SKILL.md
A meta-skill for researching current best practices and making technology decisions. Use when the user asks about best practices, coding standards, patterns, or needs to choose between technologies for ANY stack. Trigger on "best practices", "industry standard", "recommended way", "how do people usually do X", "is this the right way", "should I use X or Y", or "review my code against best practices". Also triggers when user pastes code and asks if it's correct or well-structured. No per-technology skills needed — this skill is self-contained for all stacks.
npx skillsauth add lirrensi/agent-cli-helpers best-practices-researcherInstall 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.
A meta-skill that dynamically researches and grounds best practices for any technology stack. Instead of installing dozens of tech-specific skills, this one skill does live research and returns authoritative, version-aware guidance.
Requires web search access. If unavailable, state that limitation explicitly and fall back to official docs only — never fill gaps with training data guesses.
Before anything else, determine which mode applies:
Mode 1 — Decision Mode: User is choosing between technologies, hasn't committed yet.
Mode 2 — Grounding Mode: User has a specific tech already chosen or present in their project.
Mode 3 — Audit Mode: User has existing code and wants it reviewed against best practices.
Mixed: Existing stack is set, user is adding something new → run Mode 2 for existing stack context, then Mode 1 for the new addition. After completing BOTH, proceed to Cross-Cutting Concerns before generating any output.
Before researching, determine how deep to go:
ref or reactive?"): 2–3 targeted searches, concise answer. Skip scope negotiation.Scope negotiation (use when topic could span 3+ categories):
"I can cover [list detected areas: state management, routing, data fetching, auth, testing, styling, deployment...]. Want me to go deep on a few, or a high-level pass across all of them?"
Goal: Help the user make an informed technology choice grounded in current community reality.
Before searching, extract from the conversation or ask:
package.json, go.mod, requirements.txt, Cargo.toml, pyproject.toml, etc.)Run targeted web searches. Prioritize in this order:
Adoption & momentum signals
[technology category] developer survey [current year] — State of JS, State of DB, JetBrains Survey, Stack Overflow Survey[option A] vs [option B] [current year] — look for recent community discussion, not tutorial blogs[option A] vs [option B] site:reddit.com or site:news.ycombinator.com — real practitioner opinions, not SEO contentMaintenance health
[library name] github — check last commit, open issues, release cadence, maintainer responsivenessEcosystem fit
[option] with [existing stack] [current year] — e.g. "Prisma with NestJS 2025"Present the top 3–4 options maximum. If more exist, briefly note them as "also considered" with one line each. Deep analysis on more than 4 options overwhelms rather than helps.
## [Technology Category] Decision Matrix
**Context detected:** [existing stack / constraints stated]
**Research timestamp:** [today's date]
| Option | Momentum | Maintenance | Ecosystem Fit | Best For |
|--------|----------|-------------|---------------|----------|
| [A] | High/Med/Low | Active/Stale | [note] | [summary] |
| [B] | ... | ... | ... | ... |
### Option 1: [Name]
- **Why it stands out:** ...
- **Tradeoffs / watch-outs:** ...
- **Best if:** [specific constraint or context]
### Option 2: [Name]
- **Why it stands out:** ...
- **Tradeoffs / watch-outs:** ...
- **Best if:** [specific constraint or context]
**My read:** [Conditional framing only — e.g. "If you need X, lean toward A. If Y matters more, B fits better." Never "just use X."]
**Sources consulted:** [list with dates]
---
*Want me to save this as an Architecture Decision Record (ADR) in `docs/decisions/`?*
Goal: Produce concrete, version-aware, actionable best practices the agent can actually follow.
Versions — mandatory, do not skip. Check in order:
package.json → dependencies + devDependencies (note both range AND resolved version — range signals upgrade headroom)package-lock.json / yarn.lock / pnpm-lock.yaml → resolved versionsgo.mod, Cargo.toml, pyproject.toml, requirements.txt, Gemfile.lockpackage.json, not just root. In Turborepo/Nx/Lerna setups, versions can differ per workspace — research each independently if they diverge.Existing conventions — scan before recommending anything:
package.json).eslintrc, .prettierrc, biome.json)Do NOT recommend practices that contradict established project conventions without explicitly flagging the conflict and migration cost.
Exception — if existing conventions ARE the anti-pattern (e.g. God components, secrets in client bundles, no error handling): flag it explicitly as a finding, not a side comment. Explain why it's problematic with evidence from research, present the migration path and cost honestly, and let the user decide. Do not silently conform to bad patterns.
Run searches anchored to detected versions:
Official source first
[technology] [version] best practices on the official domain[technology] [version] migration guide or changelog — new patterns live here[technology] [version] RFC or roadmap — catch upcoming deprecations earlyWhat practitioners actually do
[technology] [version] [pattern] github — how real codebases use it[technology] [version] [anti-pattern] avoid — find what to avoid[technology] team blog [current year] — authoritative guidance from maintainersCommunity signal (anti-SEO)
[technology] [version] best practices site:reddit.com/r/[subreddit][technology] [version] site:news.ycombinator.comIf something is version-gated, note it explicitly (e.g. defineModel() — Vue 3.4+ only).
If searches return outdated junk, SEO spam, or nothing useful:
❌ Do not loop endlessly — if authoritative info isn't found within 3–4 searches on a specific point, synthesize what you have and note the ambiguity.
When scoping Grounding Mode research, draw from these as relevant to the user's question:
Only include categories that are relevant to the user's question and negotiated scope.
Include short code snippets. Developers skim text but read code.
## [Technology] Best Practices
**Versions confirmed:** [list — note if monorepo]
**Existing conventions detected:** [summary of what was found in the project]
**Research timestamp:** [today's date]
**Sources:** [list with dates]
---
### [Category — e.g. "State Management"]
- ✅ **DO:** [concrete action] — [reason + version note if applicable]
```ts
// concise good example
// concise bad example
Key version-specific notes:
Want me to go deeper on any area, research a specific pattern, or review your existing code against these rules?
Want me to save these to GROUNDED_PRACTICES.md?
---
## Cross-Cutting Concerns (Mixed Mode — run before any output)
After completing Mode 2 + Mode 1 research in Mixed mode, or when the user asks about integrating multiple technologies, explicitly research integration patterns:
- Search: `[tech A] with [tech B] [current year]` — official integration guides
- Search: `[tech A] [tech B] project structure` — how they're organized together
- Search: `[tech A] [tech B] known issues` or `incompatibility` — version conflicts, sharp edges
Note: integration friction points are often where the hardest decisions live (e.g. "how should Prisma and NextAuth share a DB connection?"). Don't skip this.
---
## Mode 3: Audit Mode
Goal: Compare existing code against researched best practices and flag gaps. The Mode 2 research happens **internally** — do NOT output a full grounding document first. The user pasted code and wants feedback, not a lecture.
### Flow:
1. Run Mode 2 research steps 1–4 silently — detect versions, conventions, search for practices.
2. Use the researched practices as your internal rubric.
3. Output ONLY the audit results, with the relevant rule cited inline per finding.
4. After the audit, offer: *"Want me to output the full best practices reference I used for this?"*
### Severity Levels — order findings by severity, not by order encountered in code:
- 🔴 **Critical**: Security vulnerabilities, data loss risks, correctness bugs
- 🟡 **Warning**: Performance issues, deprecated API usage, maintainability problems
- 🔵 **Suggestion**: Style improvements, newer patterns available, minor optimizations
### Output Format — Audit Mode
Versions detected: [list] Research timestamp: [today's date]
🔴 [Critical issue]: [what's wrong]
// what they have
// what it should be
🟡 [Warning]: ...
🔵 [Suggestion]: ...
[X critical, Y warnings, Z suggestions. Good patterns: N.] Want the full best practices reference I used for this audit?
---
## Saving Output (Optional)
Never save automatically. Wait for explicit instruction.
- **Mode 2 output** → save to `GROUNDED_PRACTICES.md` in project root
- **Mode 1 output** → offer to save as an **Architecture Decision Record (ADR)** in `docs/decisions/ADR-[topic].md` (industry standard format for documenting tech choices)
### Staleness Check
Check for existing artifacts before starting research:
- `GROUNDED_PRACTICES.md` in project root
- `docs/decisions/ADR-*.md` matching the current topic
If found and **> 90 days old** OR major version bumps detected since the timestamp → suggest a refresh.
If found and **recent** → surface it: *"You have an existing [document] from [date]. Want me to refresh it or work from it?"*
---
## What NOT to Do
- ❌ Do not rely on training data alone for best practices — always search
- ❌ Do not use tutorial blogs, Medium, or dev.to as primary sources
- ❌ Do not give version-agnostic advice when versions are detectable
- ❌ Do not hallucinate features from upcoming versions (e.g. suggesting React 19 APIs in a React 18 project)
- ❌ Do not pick a winner in Decision Mode — use conditional framing only
- ❌ Do not cover more than ~3 categories without scope-negotiating first
- ❌ Do not recommend patterns that conflict with existing project conventions without flagging the migration cost
- ❌ Do not loop on searches — if not found in 3–4 attempts, state the ambiguity and move on
- ❌ Do not pad output with caveats and disclaimers — be direct and actionable
- ❌ Do not install or suggest installing additional skills — this skill is self-contained
data-ai
Portable SSH profile manager for agents. Run remote commands on saved hosts by friendly name instead of typing user@host -i key every time. Type less crap around your SSH commands.
development
Autonomous execution mode triggered by the word "engage". Use when the user has finished planning and wants the agent to execute autonomously without further questions until the workflow is fully complete. The agent must build, test, verify, and deliver proof of work — never exiting with an incomplete or unverified result. Trigger on: "engage", "go autonomous", "execute the plan", "run it", "make it happen", or any explicit signal to switch from planning mode into fully autonomous build-and-verify mode.
tools
Use this skill when you need to manage project tasks — create, update, complete, prioritize, filter, review, track dependencies, or find unblocked work. Trigger on: 'add a task', 'create task', 'show tasks', 'what's next', 'mark done', 'update task', 'task status', 'task history', 'next task', 'task inbox', 'list tasks', 'init tasks', 'task deps', 'ready tasks', 'blocked tasks', 'search tasks', 'tag-any', 'dependency graph'. Also use proactively when starting a new work session — check `tasks status` and `tasks ready` to orient yourself. This skill covers the project's static, file-based task system (persistent, in-repo history) with typed dependency tracking, ready queue, and priority management — NOT ephemeral runtime task tools.
tools
Control tmux/psmux sessions for interactive CLIs, SSH connections, and parallel agent orchestration. Works cross-platform: tmux on Linux/macOS, psmux on Windows. Provides sync commands that send keys and automatically capture output. Triggers: "run in tmux", "create tmux session", "tmux", "SSH session", "parallel terminals", "run multiple agents".