Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/mblode/agent-skills --skill dx-audit- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads dx-audit automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
DX Audit
Audit or improve what developers import, run, configure, or read when something fails.
- IS: a bounded review of public APIs, developer-facing errors, CLI commands, exported types, install and first-run behavior, and config, with fixes only when asked.
- IS NOT: a repo-wide quality sweep (
tidy), end-user UI (ui-designAudit mode), agent trust review (ax-audit), public site or docs agent scores (agent-ready), docs prose or a README (ghostwriter), repository architecture (codebase-architecture), or building a new CLI (scaffold-cli).
Modes
Pick the narrowest mode the request supports, and write a one-line scope receipt before reading code:
| Mode | When | Output |
|---|---|---|
| Targeted (default) | a named or changed public surface | findings report, read-only |
| Fix | the user says fix, improve, simplify, or implement | localized edits inside the receipt, then verification |
| Exhaustive | the user explicitly asks for the whole package or every public surface | every material finding, partitioned by surface |
Scope: <mode>; surfaces: <commands/exports/config>; prefixes: <err-, cli->; excludes: <UI, docs, architecture, private internals>
"DX", "gold standard", and "review holistically" do not by themselves widen a targeted audit into exhaustive. When several skills are invoked together, this one owns only the surfaces above.
Audit progress
DX audit progress:
- [ ] 1. Lock the public surface and write the scope receipt
- [ ] 2. Gather local evidence and run the safe probes
- [ ] 3. Select prefixes, then open candidate rules
- [ ] 4. Rank root causes
- [ ] 5. Report, or fix when asked
- [ ] 6. Verify on the same scope
1. Lock the public surface
Start from git diff against the normal base and keep only changed files reachable from a public entry point: package.json exports or bin, a command registry, an exported type, a documented config loader, or an observed error path. With no useful diff, use the command, export, error, or config the user named. A private helper enters scope only through a public caller.
2. Gather evidence, then stop
- Local instructions, the manifest, and the diff or named entry point.
- Direct public dependencies and the nearest tests that pin behavior.
- Safe probes against the local build:
- CLI:
--help,--version, one success path, one invalid-input path, and the same command with stdout piped (| cat) to see non-TTY behavior. Never trigger a real mutation to test DX; use--dry-runwhere it exists. - Package:
pnpm dlx publintandpnpm dlx @arethetypeswrong/cli --pack .after a build. These inspect packaging, but packing may invoke lifecycle scripts. Inspect those scripts first or use a disposable checkout before calling--pack.
- CLI:
- The prior release contract, only when the diff changes a public export, signature, or return shape.
Stop when the behavior is proven, disproven, private, or out of scope. External research is for an explicit comparison request or a named uncertainty local evidence cannot resolve; references/standards-map.md carries the standards this skill already leans on.
3. Dispatch rules candidate-first
Read rules/_sections.md, then select prefixes by surface:
| Priority | Prefix | Category | Default impact | Rules |
|---|---|---|---|---|
| 1 | api- | Public API and SDK | CRITICAL | 7 |
| 2 | err- | Developer-facing errors | CRITICAL | 5 |
| 3 | cli- | CLI UX for humans and agents | HIGH | 13 |
| 4 | types- | Exported type ergonomics | HIGH | 5 |
| 5 | onboard- | Install and first run | HIGH | 5 |
| 6 | config- | Config ergonomics | MEDIUM | 3 |
| Surface | Prefixes |
|---|---|
| Public API entry point | api-, types-, reached err- paths |
| CLI command | cli-, reached err- paths |
| Exported declarations | types-, plus api- when behavior changed |
Install, package.json, first run | onboard- |
| Config loader | config-, reached err- paths |
Applicability outranks priority: a CLI-only audit never loads api- because API rules rank higher.
Targeted mode: list the filenames for the selected prefixes (the names are the checklist), look for concrete evidence, then open only the rule files a finding needs. Exhaustive mode: read every rule in the selected prefixes.
Capability gates, applied inside a selected prefix:
- Structured JSON input, schema introspection, and compact polling snapshots apply when automation or agent use is promised, requested, or already supported.
- Dry-run and confirmation apply to destructive, expensive, or hard-to-reverse mutations.
- Progress and resume apply to operations that can block, outlive one command, or be retried after ambiguous output.
stdinapplies when the command semantically accepts file or stream data.- Stable-contract comparison applies only when a public contract changed.
4. Rank root causes, not instances
- Order CRITICAL, HIGH, MEDIUM by each cited rule's frontmatter
impact, copied exactly. Impact is the rule's declared consequence, not a confidence score: exit 0 on failure in one subcommand is still HIGH, because the CI gate it defeats is the same. Open the rule file before citing it, since an id cited from memory drifts from the file, and drop the citation if no such file exists. - Merge repeated instances of one root cause into one finding with up to three representative locations. Missing JSDoc, error codes, or
--jsonacross a surface is one finding, not one per symbol. - A missing feature with no current consumer path is not a defect.
- Targeted mode: every CRITICAL finding, then the highest-value remainder up to five total; summarize the rest by category.
5. Report or fix
Audit requests are read-only. A fix request authorizes localized changes inside the receipt, not a redesign of adjacent docs, UI, or architecture.
## DX Audit
Scope: `tool status` CLI; `err-`, `cli-`; 4 files inspected.
### Findings
- [HIGH] `cli-idempotent-resume` at `src/start.ts:42`: retrying the same target creates a second job.
Fix: return the existing job id and state unless the caller passes `--fresh`.
### Deferred
- 2 lower-impact config candidates were outside the locked CLI scope.
List only files with findings; a clean surface gets one pass line naming the surfaces and rule files checked. In fix mode, replace Deferred with Changed and Verification (the exact commands or probes that passed). Length follows findings, not the template.
6. Verify on the same scope
Re-open every touched or cited location, rerun the same probes and focused project checks, and reapply the same candidate rules. Match the evidence to the claim: a clean build does not prove CLI behavior, a runtime probe does not prove exported types, and only attw or a consumer-style tsc import proves a types resolution.
Reference files
| File | Read when |
|---|---|
rules/_sections.md | Every audit, for prefix applicability and priority |
rules/<prefix>-*.md | A candidate has evidence, or exhaustive mode |
references/standards-map.md | A finding needs an external citation, the user asks why something is a rule, or a borderline call needs a tie-break |
rules/_template.md | Adding or editing a rule |
Gotchas
pnpm dlx <pkg>(ornpx) and a global install probe the registry copy, not the working tree.--help, exit codes, and error strings then describe a released version. Build, then invoke the local entry point (node ./dist/cli.js).process.stdout.isTTYisundefinedunder a pipe, notfalse. A guard written asisTTY === falsenever disables color or spinners when piped, so ANSI codes reach the redirected file. Probe with| catrather than trusting the guard.process.exit(1)right afterconsole.logcan truncate the output it was meant to explain. stdout writes are asynchronous when piped, so a CLI that prints usage and callsexit()can emit nothing under| cat. The fix isprocess.exitCode = 1and a natural return (cli-exit-codes).- An
exportsmap that reads correctly can still resolve wrong."require"pointing at a.jsfile under"type": "module"masquerades as CJS, and atypescondition listed afterimportis never reached.publintandattwcatch both; reading the map does not (onboard-exports-resolve-typed).
Related skills
ui-designAudit mode: rendered end-user frontend quality and accessibilityax-audit: same files, different reader; asks whether an agent can operate and recover, where this skill asks whether a developer finds the surface ergonomicscaffold-cli: builds a new CLI with these patterns already in place; this skill audits what existstidy: general correctness and structure of a diffagent-ready: public HTTP/docs agent scores (AFDocs, Is Agentic, Is It Agent Ready); this skill audits the package once it existsghostwriter: documentation prose, README structure, and the first-reader narrativeagents-md: AGENTS.md and CLAUDE.md instruction filescodebase-architecture: repository structure and module contracts inside the repo, rather than the surface a package ships outward
Maintenance only: evals/evals.json and evals/evaluation-scenarios.md hold regression scenarios for changes to this skill; neither loads during a user task.
FAQ
What does the dx-audit skill do?
Audits libraries, CLIs, and SDKs using 38 rules for public contracts, package exports, piped output, errors, and configuration. Use when asked to "audit my CLI", "review my SDK", or diagnose package type resolution.
How do I install dx-audit?
Run npx skills add https://github.com/mblode/agent-skills --skill dx-audit in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/dx-audit/ (personal) or .claude/skills/dx-audit/ (project).
Which AI agents can use dx-audit?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is dx-audit safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains dx-audit?
It is published by mblode in mblode/agent-skills. It has 379 recorded installs.
More from mblode/agent-skills
ui-animation
mblode/agent-skills
Builds, reviews, and measures UI motion, including springs, gestures, scroll effects, curve fitting from recordings, and sparse interface sound. Use when asked to "add animation", "match this easing", "reverse engineer this motion", "add a click sound", or find animation opportunities.
multi-tenant-architecture
mblode/agent-skills
Designs tenant isolation, hostname routing, custom-domain lifecycle, and plan limits on Cloudflare or Vercel. Use when asked to "isolate tenant data", "support custom domains", "build a white-label platform", or assess PSL registration. For general module structure use codebase-architecture; for SEO content use seo.
ui-design
mblode/agent-skills
Designs and builds React/Next/Tailwind UI, audits visual and interaction defects, and stress-tests components with worst-case data. Use when asked to "build a landing page", "extract our design system", "add dark mode", "make this responsive", "remove UI slop", "audit this component", "stress-test this component", "break this UI", or "show me the worst case".
typography-audit
mblode/agent-skills
Audits font loading, type scales, measure, spacing, OpenType, and rendered punctuation with 78 scoped rules. Use when asked to "audit typography", "fix the fonts", or "review my type system". For a new visual direction use ui-design Direction; for general UI defects use ui-design Audit.
agent-skills-creator
mblode/agent-skills
Creates and improves portable Agent Skills with a validator, routing scenarios, and evidence-based keep, cut, merge, or retire decisions. Use when asked to "write a skill", "update all skills", "audit my SKILL.md", "remove redundant instructions", or fix skill triggering.
docs-writing
mblode/agent-skills
Writes and audits technical docs with Diataxis type gating, runnable examples, and 51 documentation rules. Use when asked to "review my docs", "write an API reference", or improve a documentation page. For a whole README use readme-creator; for agent instructions use agents-md.
Popular security skills
azure-compliance
microsoft/azure-skills
Run Azure compliance and security audits with azqr plus Key Vault expiration checks. Covers best-practice assessment, resource review, policy/compliance validation, and security posture checks. WHEN: compliance scan, security audit, BEFORE running azqr (compliance cli tool), Azure best practices, Key Vault expiration check, expired certificates, expiring secrets, orphaned resources, compliance assessment.
minimal-run-and-audit
lllllllama/rigorpilot-skills
Rigor Run skill for README-first deep learning repo reproduction. Use when the task is specifically to capture or normalize evidence from the selected smoke test or documented inference or evaluation command and write standardized reprooutputs/ files, including patch notes when repository files changed. Do not use for training execution, initial repo intake, generic environment setup, paper lookup, target selection, hidden scientific-meaning changes, or end-to-end orchestration by itself.
seo-audit
coreyhaines31/marketingskills
When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," "SEO health check," "my traffic dropped," "lost rankings," "not showing up in Google," "site isn't ranking," "Google update hit me," "page speed," "core web vitals," "crawl errors," "indexing issues," "stuck on page 2," "striking distance keywords," "title tag rewrite," "low CTR," "local SEO," "Google Business Profile," or "map pack." Use this even if the user just says something vague like "my SEO is bad" or "help with SEO" — start with an audit. For building pages at scale to target keywords, see programmatic-seo. For adding structured data, see schema. For AI search optimization, see ai-seo.
firebase-security-rules-auditor
firebase/agent-skills
Audits Firebase (Firestore, Cloud Storage) security rules for vulnerabilities, privilege escalation, role bypasses, create vs update inconsistencies, resource exhaustion, type safety, size limits, and hasOnly ownership checks. Use when auditing/reviewing rules, running red-team rule assessments, or scoring against auditor checklists. Don't use for Firebase CLI (login, deploy), Auth, Crashlytics, Remote Config, or database queries.
audit
pbakaus/impeccable
Run technical quality checks across accessibility, performance, theming, responsive design, and anti-patterns. Generates a scored report with P0-P3 severity ratings and actionable plan. Use when the user wants an accessibility check, performance audit, or technical quality review.
competitors
coreyhaines31/marketingskills
When the user wants to create competitor comparison or alternative pages for SEO and buyer-facing use. Also use when the user mentions 'alternative page,' 'vs page,' 'competitor comparison,' 'comparison page,' '[Product] vs [Product],' '[Product] alternative,' 'competitive landing pages,' 'how do we compare to X,' 'competitor teardown,' 'audit our competitor pages,' 'are our comparison pages out of date,' or 'competitive asset audit.' Use this for any content that positions your product against competitors. Covers four formats: singular alternative, plural alternatives, you vs competitor, and competitor vs competitor. For auditing existing claims (not researching competitors from scratch, which is competitor-profiling; not technical SEO on these pages, which is seo-audit), use the asset audit here. For internal battle cards and sales-specific competitor docs, see sales-enablement.
