skills/do-recommend/SKILL.md
Scan a project for missing best-practice areas and recommend 1-3 technology options for each gap. Currently covers linting and unit testing. Writes recommendations to docs/maverick/recommendations/<topic>.md.
npx skillsauth add thermiteau/maverick do-recommendInstall 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.
Depends on: mav-bp-linting, mav-bp-unit-testing
Scan the current project for missing best-practice areas and produce a short-list of 1–3 technology recommendations for each gap. Output is a recommendation file per topic, not an implementation.
| Topic | Best-Practice Skill | What to detect | | ----- | ------------------- | -------------- | | linting | mav-bp-linting | Linter configs, formatter configs, lint scripts, pre-commit hooks | | unit-testing | mav-bp-unit-testing | Test frameworks, test runners, coverage tools, test files |
When invoked, process all topics in the table above unless `` names a specific topic — in that case process only that topic. Do not prompt the user for which topics to process.
For each topic:
Scan for evidence that the practice is already in place:
Linting:
eslint.config.*, .eslintrc*, .prettierrc*, prettier.config.*, ruff.toml, pyproject.toml [tool.ruff], .golangci.yml, .stylelintrc*eslint, prettier, ruff, clippy, golangci-lint, rubocop, stylelintUnit testing:
jest.config.*, vitest.config.*, pytest.ini, pyproject.toml [tool.pytest], setup.cfg [tool:pytest]vitest, jest, mocha, pytest, unittest, junit, rspec**/*.test.*, **/*.spec.*, **/test_*.*If the practice is already implemented (configs exist, dependencies present, tests/rules are actively used), skip the topic and note it as already covered.
Determine the primary language(s) and framework(s) by reading:
package.json (Node/JS/TS, look at framework deps like react, vue, express, etc.)pyproject.toml / requirements.txt (Python)go.mod (Go)Cargo.toml (Rust)build.gradle.kts / pom.xml (JVM)Read the corresponding best-practice skill (e.g., skills/mav-bp-linting/SKILL.md) to understand the recommended tool categories and language-specific defaults.
For the detected stack, recommend 1 to 3 concrete technology options ranked by fit. Each recommendation must include:
If there is a clear best choice for the stack (e.g., Ruff for Python, ESLint for TypeScript), recommend only 1 option. Only list alternatives when there are genuinely competitive options for the project's context.
Write to docs/maverick/recommendations/<topic>.md using the Write tool:
---
name: <topic>
title: <Topic> — Technology Recommendations
generated: <YYYY-MM-DD>
status: pending
---
# <Topic> Recommendations
**Project stack:** <detected language(s) and framework(s)>
## Current State
<1–2 sentences describing what exists (or doesn't) for this practice area.>
## Recommendations
### 1. <Tool Name> (Recommended)
**Why it fits:** <1–2 sentences>
**Getting started:**
\```bash
<install command>
\```
**Minimal config:** <describe the config file and its key settings in prose — no code blocks>
**Trade-offs:** <strengths and limitations>
### 2. <Tool Name> (Alternative)
<same structure — only include if there is a genuinely competitive alternative>
### 3. <Tool Name> (Alternative)
<same structure — only include if there is a third viable option>
## Next Steps
To adopt the recommended option, run `/maverick:do-adopt <topic>`.
<topic>: already implemented, skipping.development
--- name: do-test description: Write or update tests for a code change. Operates in two modes: `unit` (module-scoped, fast, deterministic) and `integration` (crosses module / service / database boundaries). Intended to be invoked once per testable change from inside a do-issue-* or do-epic phase. Mode is required. argument-hint: mode: unit or integration user-invocable: true disable-model-invocation: false --- **Depends on:** mav-bp-unit-testing, mav-bp-integration-testing, mav-local-verificati
development
Implement a focused code change. Use this skill as the wrapper for any implementation work so the Maverick workflow report captures what was done and so the agent applies the project's coding standards before editing. Intended to be invoked once per task from inside a do-issue-* or do-epic phase, not standalone.
testing
How to stack a PR on top of an unmerged sibling branch, and how to retarget it to the repo's default branch once the sibling merges. Prevents orphan-merge incidents when a dependent story is ready before its parent.
development
Claim, lease, heartbeat, and release protocols for when multiple Claude Code instances may act on the same issue or epic concurrently. GitHub labels and marker comments are the coordination surface; local state is a cache.