skills/agent-dx/SKILL.md
Audit a repo's tooling for coding agent self-verification. Use when the user wants to audit agent tooling, mentions "agent-dx", "agent developer experience", "what testing tools do I need", "set up verification for agents", "how can agents test this", or when onboarding to a new codebase and want to know what verification tools are missing.
npx skillsauth add seflless/dot-agents agent-dxInstall 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.
Analyze a repo and generate a prioritized report of verification tools coding agents need to self-check their work. Report-only — recommends tools and commands, does not auto-install.
Read these files to understand the project:
package.json # JS/TS: deps, devDeps, scripts, workspaces
tsconfig.json # TypeScript config
bun.lockb / bun.lock # Bun runtime
pnpm-lock.yaml # pnpm
yarn.lock # Yarn
package-lock.json # npm
pyproject.toml # Python: deps, tools
requirements.txt # Python: deps
setup.py / setup.cfg # Python: legacy
Cargo.toml # Rust
go.mod # Go
.github/workflows/*.yml # CI configuration
CLAUDE.md # Project-level agent context
~/.claude/CLAUDE.md # Global agent context
Determine language:
package.json exists → JS/TSpyproject.toml or requirements.txt or setup.py → PythonCargo.toml → Rustgo.mod → GoDetermine package manager / runtime (JS/TS only):
bun.lockb or bun.lock exists → already using Bunpnpm-lock.yaml exists → already using pnpmyarn.lock exists → already using Yarnpackage-lock.json exists → already using npmreferences/tool-matrix.md for rationale)Determine framework (from dependencies):
electron → Electron (dual runtime: Node + Chromium)react → Reactnext → Next.jsvue → Vuesvelte → Svelteexpress / fastify / koa → Node API serverdjango / flask / fastapi → Python web frameworkDetermine monorepo:
workspaces field in package.jsonpnpm-workspace.yaml existslerna.json existsnx.json existsturbo.json existsIf monorepo detected, analyze root config + each workspace independently.
Use references/tool-matrix.md for the full lookup table of tools per language.
For each category in the tool matrix:
devDependencies in package.json (JS/TS) or pyproject.toml [tool.*] sections (Python)vitest.config.*, tsconfig.json, biome.json)package.json scripts for: test, lint, typecheck, e2e, format, check.github/workflows/*.yml for CI steps — if a tool already runs in CI, mark it as "CI-covered" not "Missing". Only recommend tools not already covered by CI.Check for agent context files at two levels:
Project-level: CLAUDE.md in the repo root (or .claude/CLAUDE.md)
Global-level: ~/.claude/CLAUDE.md
Check if it exists. If it does, scan for these sections (doesn't need to match exactly — just check if the topics are covered):
| Topic | Why it matters for agents | |-------|--------------------------| | Project description / purpose | Agent understands what it's building | | Tech stack / key dependencies | Agent picks the right tools and patterns | | How to run the project (dev server, build) | Agent can test its changes | | How to run tests | Agent knows the test command | | How to lint / type check | Agent knows the verification commands | | Code conventions / patterns | Agent follows the team's style | | Directory structure overview | Agent finds files faster | | Common gotchas / things to avoid | Agent avoids known pitfalls |
If project CLAUDE.md is missing, recommend creating one. If it exists but is thin (missing 3+ of the 8 topics above, or any topic covered in fewer than 50 words), note which topics are missing.
Recommendation template for project CLAUDE.md:
# [Project Name]
[One-line description of what this project does]
## Tech Stack
- Runtime: [Bun / Node / Python / etc.]
- Framework: [React / Next / Django / etc.]
- Database: [Postgres / SQLite / etc.]
## Development
- `bun install` — install dependencies
- `bun dev` — start dev server
- `bun test` — run tests
- `bun run lint` — lint code
- `bun run typecheck` — type check
## Code Conventions
- [Key patterns, naming conventions, directory layout rules]
## Things to Avoid
- [Known pitfalls, deprecated patterns, etc.]
Check if ~/.claude/CLAUDE.md exists. This gives agents personal context about the developer that applies across all projects.
If missing, recommend creating one with:
# About Me
- Name: [your name]
- Role: [what you do — e.g., "Full-stack engineer", "Founder at X"]
## Preferences
- Preferred runtime: [Bun / Node / etc.]
- Preferred package manager: [bun / pnpm / npm / etc.]
- Code style: [terse vs verbose, functional vs OOP, etc.]
- Communication style: [brief vs detailed responses]
## Current Projects
- [Project 1]: [one-line context]
- [Project 2]: [one-line context]
## General Instructions
- [Anything agents should always do or never do across all your projects]
The global file is especially useful for things like: "I use Bun everywhere", "I prefer terse code", "Always use TypeScript strict mode" — context that agents otherwise have to ask about every session.
Spot-check findings before reporting. For each tool marked "Installed", confirm it actually runs:
bunx vitest --version, bunx biome --version, tsc --versionpytest --version, ruff --version, pyright --versioncargo clippy --versiongolangci-lint --versionIf a command fails, downgrade that tool's status from "Installed" to "Not found (listed in deps but not runnable)".
Use the tool-matrix reference (references/tool-matrix.md) for recommendations per stack.
Use the agent-commands reference (references/agent-commands.md) for agent-optimized commands.
# agent-dx Report
## Agent Summary
```yaml
missing_critical: [list of missing critical-tier tools]
missing_important: [list of missing important-tier tools]
existing_tools: {category: tool, ...}
readiness_score: X/12
| File | Status | Notes | |------|--------|-------| | Project CLAUDE.md | [Exists (good/thin) / Missing] | [what topics are covered or missing] | | Global ~/.claude/CLAUDE.md | [Exists / Missing] | [recommendations if missing] |
| Category | Tool | Status | |----------|------|--------| | Runtime / Package Manager | [Bun / Node+npm / Node+pnpm / etc.] | [Installed] | | Unit Testing | [tool or None] | [Installed / Missing] | | Linting | [tool or None] | [Installed / Missing] | | Type Checking | [tool or None] | [Installed / Missing] | | E2E Testing | [tool or None] | [Installed / Missing / N/A] | | Structured Logging | [tool or None] | [Installed / Missing] | | GitHub CLI | [available?] | [Installed / Missing] | | Security Scanning | [tool or None] | [Installed / Missing] | | Static Analysis | [tool or None] | [Installed / Missing / N/A] | | Test Coverage | [tool or None] | [Installed / Missing] | | Visual Regression | [tool or None] | [Installed / Missing / N/A] |
[X/12 categories covered — includes CLAUDE.md files and runtime]
[Only list categories marked Missing from the table above]
[N]. [Category] — [Recommended tool] Install:
[install command]
Add to scripts:
[script entries if applicable]
Agent verification command:
[command with JSON output flag]
[Same format, for Important-tier missing tools]
[Same format, for Nice-to-Have-tier missing tools]
Quick reference of all verification commands for this project:
[list all run commands, both existing and newly recommended]
### Priority Tiers
**Critical** (agents can't operate effectively without these):
1. Project CLAUDE.md — agent needs to know how to run/test/lint the project
2. Unit/integration testing
3. Linting
4. Type checking
**Important** (significantly improves agent effectiveness):
5. Runtime / package manager (recommend Bun for new JS/TS projects)
6. E2E / browser testing (only if frontend/Electron detected)
7. Structured logging
8. GitHub CLI for CI checks
9. Global ~/.claude/CLAUDE.md — agent context about the developer
**Nice-to-Have** (for thorough verification):
10. Security scanning
11. Static analysis (only for larger/security-sensitive codebases)
12. Test coverage
13. Visual regression (only if UI components/Storybook detected)
## Tool Conflict Strategy
When an existing tool overlaps with what you'd recommend:
- **Never suggest replacing** an existing tool — respect the team's choices
- **Note faster alternatives** as an FYI footnote only (e.g., "FYI: Vitest is 10-20x faster than Jest for future consideration")
- **Fill gaps only** — if ESLint exists but no type checker, recommend tsc, don't push Biome
- **Complement, don't compete** — recommend tools from different categories, not same-category alternatives
## Edge Cases
| Scenario | What to do |
|----------|-----------|
| No manifest file (no package.json, no pyproject.toml) | Scan file extensions, give generic recs, note "add a package manager first" |
| Empty repo | Report: "No source code detected. Set up your project first." |
| Monorepo | Report per workspace + root-level summary. Note monorepo orchestrator if missing (Turborepo/Nx). |
| Electron app | Flag dual-runtime. Recommend agent-browser via CDP for Electron window + standard testing for Node. |
| Python project | Switch entirely to Python tool matrix (pytest, Ruff, Pyright, structlog). |
| Rust/Go project | Give basic recs (cargo test/clippy or go test/golangci-lint). Note: full support is JS/TS + Python focused. |
| All tools already installed | Congratulatory report. Check for missing agent-friendly flags (JSON output). Suggest agent cheat sheet. |
## Output
Print the full Markdown report directly to the user. Do not write it to a file unless asked.
tools
Send and receive transactional emails with Cloudflare Email Service (Email Sending + Email Routing). Use when building email sending (Workers binding or REST API), email routing, Agents SDK email handling, or integrating email into any app — Workers, Node.js, Python, Go, etc. Also use for email deliverability, SPF/DKIM/DMARC, wrangler email setup, MCP email tools, or when a coding agent needs to send emails. Even for simple requests like "add email to my Worker" — this skill has critical config details.
development
This skill should be used before implementing features, building components, or making changes. It guides exploring user intent, approaches, and design decisions before planning. Triggers on "let's brainstorm", "help me think through", "what should we build", "explore approaches", ambiguous feature requests, or when the user's request has multiple valid interpretations that need clarification.
tools
Use when working with icons in any project. Provides CLI for searching 200+ icon libraries (Iconify) and retrieving SVGs. Commands: `better-icons search <query>` to find icons, `better-icons get <id>` to get SVG. Also available as MCP server for AI agents.
data-ai
Enforces an opinionated UI baseline to prevent AI-generated interface slop.