DX First
Treat the development experience as a product surface of the repository. Optimize
for three outcomes:
- Reduce cognitive load — make the next useful action findable and the
common path understandable.
- Shorten feedback loops — give developers fast, trustworthy signals at the
smallest useful scope.
- Protect flow — remove waiting, context switching, avoidable choices, and
surprising recovery work.
This is a human-developer experience skill. Properties that help coding agents
are useful when they also make the repository clearer and safer for people.
Select a mode
- DX Audit — inspect and test the repository, then report prioritized
friction. Remain read-only except for safe, ignored artifacts needed for
testing.
- DX Improve — perform a focused audit, implement the smallest coherent set
of fixes, update affected documentation, and rerun the journeys.
- DX Review / Guard — evaluate a feature, plan, pull request, refactor, or
tooling change for workflow regressions. Do not edit unless implementation
was requested.
If the request is ambiguous, use Audit for questions and Improve only when the
user explicitly asks to fix or implement something.
Operating workflow
Follow this pipeline; do not replace it with a checklist of missing tools:
inspect → classify → trace → test → find friction → prioritize → improve → verify → simplify
- Inspect. Read
references/repo-inspection.md. Map the repository's
structure, instructions, manifests, runtime and package-manager declarations,
task entrypoints, tests, CI, documentation, and environment configuration.
Inspect enough implementation to verify important claims; do not read the
entire codebase blindly.
- Classify. Identify the repository type, ecosystem, runtime, package
manager, monorepo boundaries, setup path, development process, validation
strategy, release shape, and any developer-facing API, CLI, SDK, or tool.
Evaluate only surfaces that apply.
- Trace. Start with the first contribution loop:
clone → setup → run → change → validate. Then trace relevant daily tasks
such as a targeted test, full validation, debugging, generated artifacts,
migrations, CI reproduction, or release preparation.
- Test. Execute supported paths when safe and practical. Prefer the real
command, help output, invalid-input behavior, targeted check, or setup step
over assumptions from file presence. Record step counts or timings only when
actually observed.
- Find friction. Read
references/friction-catalog.md as needed. Record
concrete symptoms, not vague quality judgments. Distinguish TESTED
(executed or observed), VERIFIED (confirmed statically), and INFERRED
(reasonable but unexecuted).
- Prioritize. Order work approximately by developer impact × frequency ×
confidence ÷ implementation and maintenance cost. Fix blockers and repeated
inner-loop friction before polish. Treat intentional tradeoffs as context,
not automatic findings.
- Improve. Prefer removal, simplification, clearer existing commands, and
ecosystem-native mechanisms. Add a dependency, wrapper, task runner, hook,
container, service, or configuration layer only when it removes evidenced
friction and its maintenance cost is justified.
- Verify. Rerun the affected journey and relevant repository checks. Compare
the observed path before and after; do not claim an improvement from a file
edit alone.
- Simplify. Remove stale instructions, duplicate paths, temporary helpers,
and complexity introduced during the fix. Read
references/quality-checklist.md before finishing.
Hard rules
- No vibes-only findings. Every meaningful criticism cites a repository artifact,
command, output, or observed journey.
- Use one obvious recommended path for frequent tasks, with sensible defaults
and an escape hatch for legitimate advanced cases. Do not create choice
overload or literal command names when the ecosystem has a better convention.
- Documentation should explain or route around necessary complexity; it should
not be the excuse for preserving unnecessary steps.
- Prefer local validation that shares the same underlying tasks as CI. Keep the
smallest useful check available for a small change and a broader confidence
path for integration.
- Make failures answer: what failed, why, where, and what to do next.
- Treat secrets and production/shared-environment effects as out of bounds for
ordinary audits. Do not deploy, publish, push, run destructive migrations,
delete data, or expose credentials merely to test DX.
- Do not turn this into a general security, architecture, performance, product,
or DevOps maturity audit. Consider those only when they directly create
developer friction.
- Do not require Docker, dev containers, Make, pre-commit hooks, generators,
agent maps, or any other popular mechanism without repository-specific
evidence that it is the simplest net improvement.
- Do not use a numeric DX score unless the user asks for one. A prioritized,
evidence-backed friction inventory is more useful than false precision.
dx-first works independently. If readme-first is available, compose with
it for a deep main-README rewrite rather than copying its methodology here.
Finding format
For each material finding, include:
- Journey or task
- Observed friction
- Evidence and file, symbol, command, or output reference
- Developer impact and affected frequency or scope
- Recommended improvement
- Implementation effort
- Confidence
- Method: TESTED, VERIFIED, or INFERRED
For an audit, report a short DX summary, the actual critical path,
highest-impact findings in priority order, what already works well, and
the suggested order of improvements. For Improve, also state what changed,
what journey was rerun, and what complexity was removed or deliberately kept.
For Review / Guard, answer whether the proposed change adds setup, commands,
waiting, cognitive load, manual steps, local/CI divergence, or harder failures,
and identify the paved path it preserves or improves.
Read the supporting references progressively; they are the detailed guidance,
not prerequisites to use the basic workflow:
- DX principles — conceptual foundation and
decision rules.
- Repository inspection — ecosystem-neutral
reconnaissance and safe journey testing.
- Friction catalog — symptoms and remedy
choices across repository surfaces.
- Quality checklist — final implementation
and audit gate.
1---2name: dx-first3description: Audit, improve, or guard developer experience (DX/DevEx) across any software repository or project type. Use this whenever a user asks about repository onboarding, development setup, local development, developer tooling, build/test feedback, task ergonomics, confusing commands, CI/local workflow friction, codebase discoverability, reproducible environments, development workflows, repository usability, or reviewing plans and changes that affect developer workflows, even when they do not use the term DX.4---56# DX First78Treat the development experience as a product surface of the repository. Optimize9for three outcomes:10111. **Reduce cognitive load** — make the next useful action findable and the12 common path understandable.132. **Shorten feedback loops** — give developers fast, trustworthy signals at the14 smallest useful scope.153. **Protect flow** — remove waiting, context switching, avoidable choices, and16 surprising recovery work.1718This is a human-developer experience skill. Properties that help coding agents19are useful when they also make the repository clearer and safer for people.2021## Select a mode2223- **DX Audit** — inspect and test the repository, then report prioritized24 friction. Remain read-only except for safe, ignored artifacts needed for25 testing.26- **DX Improve** — perform a focused audit, implement the smallest coherent set27 of fixes, update affected documentation, and rerun the journeys.28- **DX Review / Guard** — evaluate a feature, plan, pull request, refactor, or29 tooling change for workflow regressions. Do not edit unless implementation30 was requested.3132If the request is ambiguous, use Audit for questions and Improve only when the33user explicitly asks to fix or implement something.3435## Operating workflow3637Follow this pipeline; do not replace it with a checklist of missing tools:3839**inspect → classify → trace → test → find friction → prioritize → improve → verify → simplify**40411. **Inspect.** Read `references/repo-inspection.md`. Map the repository's42 structure, instructions, manifests, runtime and package-manager declarations,43 task entrypoints, tests, CI, documentation, and environment configuration.44 Inspect enough implementation to verify important claims; do not read the45 entire codebase blindly.462. **Classify.** Identify the repository type, ecosystem, runtime, package47 manager, monorepo boundaries, setup path, development process, validation48 strategy, release shape, and any developer-facing API, CLI, SDK, or tool.49 Evaluate only surfaces that apply.503. **Trace.** Start with the first contribution loop:51 **clone → setup → run → change → validate**. Then trace relevant daily tasks52 such as a targeted test, full validation, debugging, generated artifacts,53 migrations, CI reproduction, or release preparation.544. **Test.** Execute supported paths when safe and practical. Prefer the real55 command, help output, invalid-input behavior, targeted check, or setup step56 over assumptions from file presence. Record step counts or timings only when57 actually observed.585. **Find friction.** Read `references/friction-catalog.md` as needed. Record59 concrete symptoms, not vague quality judgments. Distinguish **TESTED**60 (executed or observed), **VERIFIED** (confirmed statically), and **INFERRED**61 (reasonable but unexecuted).626. **Prioritize.** Order work approximately by developer impact × frequency ×63 confidence ÷ implementation and maintenance cost. Fix blockers and repeated64 inner-loop friction before polish. Treat intentional tradeoffs as context,65 not automatic findings.667. **Improve.** Prefer removal, simplification, clearer existing commands, and67 ecosystem-native mechanisms. Add a dependency, wrapper, task runner, hook,68 container, service, or configuration layer only when it removes evidenced69 friction and its maintenance cost is justified.708. **Verify.** Rerun the affected journey and relevant repository checks. Compare71 the observed path before and after; do not claim an improvement from a file72 edit alone.739. **Simplify.** Remove stale instructions, duplicate paths, temporary helpers,74 and complexity introduced during the fix. Read75 `references/quality-checklist.md` before finishing.7677## Hard rules7879- No vibes-only findings. Every meaningful criticism cites a repository artifact,80 command, output, or observed journey.81- Use one obvious recommended path for frequent tasks, with sensible defaults82 and an escape hatch for legitimate advanced cases. Do not create choice83 overload or literal command names when the ecosystem has a better convention.84- Documentation should explain or route around necessary complexity; it should85 not be the excuse for preserving unnecessary steps.86- Prefer local validation that shares the same underlying tasks as CI. Keep the87 smallest useful check available for a small change and a broader confidence88 path for integration.89- Make failures answer: **what failed, why, where, and what to do next**.90- Treat secrets and production/shared-environment effects as out of bounds for91 ordinary audits. Do not deploy, publish, push, run destructive migrations,92 delete data, or expose credentials merely to test DX.93- Do not turn this into a general security, architecture, performance, product,94 or DevOps maturity audit. Consider those only when they directly create95 developer friction.96- Do not require Docker, dev containers, Make, pre-commit hooks, generators,97 agent maps, or any other popular mechanism without repository-specific98 evidence that it is the simplest net improvement.99- Do not use a numeric DX score unless the user asks for one. A prioritized,100 evidence-backed friction inventory is more useful than false precision.101- `dx-first` works independently. If `readme-first` is available, compose with102 it for a deep main-README rewrite rather than copying its methodology here.103104## Finding format105106For each material finding, include:107108- **Journey or task**109- **Observed friction**110- **Evidence** and file, symbol, command, or output reference111- **Developer impact** and affected frequency or scope112- **Recommended improvement**113- **Implementation effort**114- **Confidence**115- **Method:** TESTED, VERIFIED, or INFERRED116117For an audit, report a short **DX summary**, the actual **critical path**,118**highest-impact findings** in priority order, **what already works well**, and119the **suggested order of improvements**. For Improve, also state what changed,120what journey was rerun, and what complexity was removed or deliberately kept.121For Review / Guard, answer whether the proposed change adds setup, commands,122waiting, cognitive load, manual steps, local/CI divergence, or harder failures,123and identify the paved path it preserves or improves.124125Read the supporting references progressively; they are the detailed guidance,126not prerequisites to use the basic workflow:127128- [DX principles](references/dx-principles.md) — conceptual foundation and129 decision rules.130- [Repository inspection](references/repo-inspection.md) — ecosystem-neutral131 reconnaissance and safe journey testing.132- [Friction catalog](references/friction-catalog.md) — symptoms and remedy133 choices across repository surfaces.134- [Quality checklist](references/quality-checklist.md) — final implementation135 and audit gate.