Automated summary
Audits the developer experience (DX/UX) of a library or tool across four surfaces — CLI, programmatic API, server service, and GitHub Action — producing a scored, evidence-backed remediation plan.
Strengths
- Auto-detects which surfaces a repo exposes and lets you narrow the audit with /dx-audit cli|api|service|action.
- Clearly separates the static tier from the fixture tier, so run-dependent metrics stay n/a rather than being fabricated.
- Includes explicit credential hygiene guidance (testnet only, env-var references, never echo a key into an artifact).
- Every finding is tied to evidence, user impact, and estimated fix effort.
Limitations
- The default static tier yields no real numbers for time to first success, startup time, or task success rate.
- The fixture tier requires credentials and time that are often unavailable during a quick audit.
- The SKILL.md body defers to references/ files that must be loaded phase by phase.
Use it when you want an objective read on onboarding friction, API ergonomics, docs, and error handling for a package you maintain.
Don't use it for a general correctness or security code review, or to audit a repository you don't own.
Security analysis
CautionThe skill uses Bash, WebFetch, and credential handling for legitimate DX auditing purposes. However, the instructions involve executing code from third-party repositories and passing secrets on the command line, which warrants caution rather than a safe rating.
- •Uses Bash to execute arbitrary commands, including installing packages and running code from audited repositories, which can execute untrusted code.
- •Instructs sourcing .env files and passing secrets as command-line arguments (e.g., --private-key "$PRIVATE_KEY_MAIN"), which may expose credentials in process listings or logs.
- •Allows WebFetch to access external resources, potentially fetching remote content during the audit.
Examples
Run /dx-audit on this repository and give me a scored DX report with a prioritized remediation plan. State which tier you used.Audit only the CLI surface of this package — check --help, --version output, parse-error exit codes, and stdout/stderr separation. Static tier is fine, skip anything that needs credentials.Do a full fixture-tier audit of the library API: install the published tarball into a throwaway consumer project, then measure time to first success and example reliability.name: dx-audit description: Audit developer experience (DX/UX) of a library or tool across four surfaces — CLI, programmatic library/API, server/service, and GitHub Action — using measurable checks, clean consumer fixtures, and remediation-oriented scoring. Use when asked to audit DX, usability, onboarding, docs, examples, error handling, API ergonomics, or automation surfaces of a package you maintain. allowed-tools: Bash, Read, Glob, Grep, Edit, Write, WebFetch metadata: short-description: Measurable DX/UX audit across CLI, API, service, and Action surfaces
DX Audit
Audit a repository for developer-facing DX/UX problems across up to four surfaces and produce a scored, evidence-backed remediation plan.
- CLI
- Programmatic library/API
- Server/service
- GitHub Action
Primary goals: minimize time to first success, minimize time to first output, cut cognitive load and task distance, improve machine discoverability, harden structured errors and observability — and report fixes with evidence, impact, and effort.
When to invoke
/dx-audit(no args) — auto-detect surfaces in the current repo and audit all detected ones./dx-audit cli|api|service|action [...]— audit only the named surfaces./dx-audit <repo-path>— audit a checkout elsewhere.- Any request to "audit DX", "review usability/onboarding", "check API ergonomics", "is this package easy to consume", etc.
If the user names a focus (e.g. "prioritize onboarding friction and machine-readable output"), weight findings toward it but still score every detected surface.
Audit tiers
Pick a tier up front and state it in the report — it determines which metrics are real vs n/a.
- Static tier (default for a quick pass): docs + source + contract inspection, plus any cheap live probe that needs no credentials or network mutation (
--help,--version, parse-error exit codes, stream separation,tscon examples). Do not populate metrics that require a run — TTFS, task success rate, error rate, startup time stayn/a. Don't print ann/a-riddled metrics table pretending to be a fixture run. - Fixture tier (when credentials + time allow, or the user asks): everything in static, plus clean-room runs that produce real TTFS / TTFO / success-rate / example-reliability numbers — install the published tarball into a throwaway consumer, start the server and hit it, run the action via
actor a real workflow.
Default to static unless the user says "full audit" or supplies credentials. Always name the tier in the report summary.
Credentials for the fixture tier
Many real audits need a funded test identity. Before declaring a check un-runnable, look for one:
- Check the repo for a
.env/.env.example/ test-fixture key, and prefer a testnet (e.g. Filecoin calibration, Sepolia, a sandbox tenant) so runs cost nothing and mutate nothing real. - Pass the secret explicitly rather than relying on ambient state, e.g.
source .env && filecoin-pin add file.txt --private-key "$PRIVATE_KEY_MAIN" --network calibration. - Never commit, echo, or write a private key into an artifact. Reference it by env-var name only in evidence.
- If no safe credential exists, stay in the static tier for that check and mark its run-dependent metrics
n/awith a one-line reason.
Workflow
Run these phases in order. Detail for each lives in references/ — load the relevant file when you reach that phase.
1. Inventory — classify surfaces
Detect which surfaces exist. Signals:
| Surface | Detect via |
|---|---|
| CLI | bin field in package.json, shebang entrypoints, commander/yargs/oclif/clap/cobra deps, cmd/ dirs |
| library/API | published package (package.json/pyproject.toml/Cargo.toml/go.mod), exported entry points, exports map, .d.ts |
| server/service | openapi.*, .proto, GraphQL schema, server entry (listen(, framework deps), Dockerfile, docker-compose |
| GitHub Action | action.yml/action.yaml, .github/workflows |
Mark each surface present / absent / uncertain. Derive the top 3–5 representative user tasks per present surface from README, docs, examples, and metadata. List assumptions explicitly.
2. Prepare fixtures
Test the published artifact, not the monorepo source — DX bugs hide in the gap between them.
- Library/API:
npm pack(or equivalent) → install the tarball into a fresh throwaway consumer project → run the documented quickstart there. - CLI: invoke the built/installed binary, not
src/. - Service: start via the documented command or
docker compose; or connect to a provided base URL. - Action: build a minimal fixture workflow.
- Always create negative-path fixtures too (invalid input, auth failure, transient failure/retry).
- Record exact commands, env vars, and timestamps as you go — they become the evidence trail.
See references/harness.md for ready-to-adapt command sequences.
3. Audit each detected surface
Walk the checklist for each present surface in references/checklists.md. For every check, capture: pass/fail, the evidence (command + output excerpt), and a 0/1/3/5 score. Measure the metrics defined in references/metrics-and-scoring.md (TTFS, TTFO, success rate, error rate, example reliability, discoverability, intervention rate).
Golden-path checks confirm the documented happy path works from a clean state. Negative-path checks confirm failures are understandable, structured, and safe.
4. Score
- Score each check 0/1/3/5 — those are the only legal values (see rubric in
references/metrics-and-scoring.md). There is no 2 or 4; round to the nearest of 1 (partial) or 3 (acceptable). - Use
nafor a check that is genuinely absent or explicitly out of the maintainer's declared scope — annacheck is excluded and its weight renormalized away, so scoped-out work is never penalized. A whole absent surface isnatoo. Guard againstna-washing: only marknawhen the repo states the limit (e.g. "this Action targets Calibration only", "Node-only library"). A gap the maintainer wants but hasn't built is a low score, notna. - Don't eyeball the rollup. Write the per-check scores into a
checks.jsonand run the scorer:It computes category → surface → overall deterministically with the documented weights and thenode <skill>/scripts/score.mjs checks.json --out "$OUT_DIR/scorecard.json"narenormalization. Input shape and category keys are documented at the top ofscore.mjsand inreferences/metrics-and-scoring.md. - Attach evidence to every check scoring below 5.
5. Report
Write artifacts outside the audited repo so the audit never pollutes the target's working tree. Default OUT_DIR to a temp dir keyed by repo name, e.g. OUT_DIR="${TMPDIR:-/tmp}/dx-audit/<repo-name>"; mkdir -p it and report the path. Only write inside the repo if the user explicitly asks (and then under a path their .gitignore already covers).
Produce the artifacts below using the templates in references/report-template.md:
$OUT_DIR/report.md— human-readable: summary (incl. audit tier), top findings, scorecard, per-surface detail, quick wins, high-impact fixes.$OUT_DIR/scorecard.json— machine-readable scores + metrics + findings (produced byscripts/score.mjs; schema inreferences/metrics-and-scoring.md).$OUT_DIR/remediation-plan.md— prioritized fixes.$OUT_DIR/checks.json— the per-check scores fed to the scorer (keep as the audit's reproducible input).
Each finding below score 3 must: explain the broken user journey, cite exact evidence, propose the smallest viable fix first then a hardening follow-up, and estimate impact (high/medium/low) and effort (small/medium/large). Prefer fixes that improve multiple surfaces at once.
Remediation priority order:
- Unblock first success.
- Make failures understandable.
- Make automation safe and machine-readable.
- Reduce task distance and doc gaps.
- Improve observability and advanced scenarios.
Reference files
references/checklists.md— the prioritized P0/P1/P2 check tables for all four surfaces, with pass / excellent / failure criteria.references/metrics-and-scoring.md— metric definitions and targets, the discoverability formula, the 0/1/3/5 rubric, surface/category weights, score interpretation bands, and thescorecard.jsonschema.references/report-template.md— report skeleton plus a filled example, and per-surface test-case templates.references/harness.md— copy-adapt command harness for fixtures and a CI rollout pattern (fail on regression, not legacy debt).scripts/score.mjs— deterministic scorer: reads achecks.jsonof per-check 0/1/3/5/nascores, emitsscorecard.json(category → surface → overall) withnarenormalization. Run withnode, no dependencies.
Notes on thresholds
Numeric targets (TTFS budgets, ≥80% structured-output coverage, etc.) are recommended operational defaults synthesized from DevEx/API-usability literature and official CLI/HTTP/Action guidance — not universal law. If the repo documents a different support matrix, latency budget, or ergonomics tradeoff, honor that instead and note the deviation. For async protocols (WebSocket, MQTT, message queues), extend the server/service checklist with protocol-specific checks rather than forcing the HTTP rubric.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/dx-audit-ms2s7c2o/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/dx-audit-ms2s7c2o' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/dx-audit-ms2s7c2o/download' --output '.skill-downloads/dx-audit-ms2s7c2o/SKILL.md.part' && mv '.skill-downloads/dx-audit-ms2s7c2o/SKILL.md.part' '.skill-downloads/dx-audit-ms2s7c2o/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Tools declared by the author (check availability in your agent): Bash, Read, Glob, Grep, Edit, Write, WebFetch
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/dx-audit-ms2s7c2o/SKILL.md' && test -s '.skill-downloads/dx-audit-ms2s7c2o/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/dx-audit' && cp -R '.skill-downloads/dx-audit-ms2s7c2o' '.claude/skills/dx-audit'Codex
test -f '.skill-downloads/dx-audit-ms2s7c2o/SKILL.md' && test -s '.skill-downloads/dx-audit-ms2s7c2o/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/dx-audit' && cp -R '.skill-downloads/dx-audit-ms2s7c2o' '.agents/skills/dx-audit'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/dx-audit-ms2s7c2o'openskills read 'dx-audit-ms2s7c2o'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/dx-audit-ms2s7c2o/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.