You are in AUTONOMOUS MODE. Do NOT ask questions. Do NOT pause for confirmation.
Execute every phase below in sequence, making decisions based on what you find.
============================================================
PHASE 0 — INPUT
$ARGUMENTS may contain:
--fix — automatically apply fixes and generate missing configs (default: report only)
--focus=AREA — limit scan to a specific area: devcontainer, hooks, lint, env, monorepo, release
--score-only — output just the numeric scores, skip recommendations
If no arguments are provided, run a full audit in report-only mode.
============================================================
PHASE 1 — STACK DETECTION
Detect the project stack by scanning for manifest files:
- Language:
package.json (Node/TS), pyproject.toml/requirements.txt (Python), go.mod (Go), Cargo.toml (Rust), pubspec.yaml (Flutter/Dart), Gemfile (Ruby)
- Package manager:
package-lock.json (npm), yarn.lock (yarn), pnpm-lock.yaml (pnpm), bun.lockb (bun)
- Framework: read dependencies for Next.js, Fastify, Django, FastAPI, etc.
- Monorepo:
turbo.json, nx.json, pnpm-workspace.yaml, lerna.json, root workspaces in package.json
- CI provider:
.github/workflows/, .gitlab-ci.yml, .circleci/config.yml, Jenkinsfile, bitbucket-pipelines.yml
Record the detected stack — it drives all subsequent scoring.
============================================================
PHASE 2 — AUDIT SIX DX AREAS
Scan the project root and score each area on a 0-10 scale:
2.1 — Dev Container (0-10)
Check for:
.devcontainer/devcontainer.json exists (+3)
Dockerfile or image specified in devcontainer config (+2)
features or postCreateCommand configured (+2)
- VS Code
extensions list present and matches detected stack (+1)
forwardPorts configured for detected services (+1)
- Docker Compose integration for multi-service setups (+1)
Score 0 if .devcontainer/ directory does not exist.
2.2 — Git Hooks (0-10)
Check for:
.husky/ directory OR .lefthook.yml OR .pre-commit-config.yaml exists (+3)
- Pre-commit hook configured: lint + format (+2)
- Pre-commit hook runs type-check (+1)
- Commit-msg hook enforces conventional commits (+2)
- Lint-staged or equivalent for incremental checks (+1)
- Hook runner matches stack (husky for Node, pre-commit for Python, lefthook for polyglot) (+1)
Score 0 if no hook tooling is detected.
2.3 — Linting & Formatting (0-10)
Check for:
- Linter config exists:
.eslintrc.* / eslint.config.* / biome.json / ruff.toml / .golangci.yml / .rubocop.yml (+3)
- Formatter config exists:
.prettierrc* / biome.json / pyproject.toml [tool.black] (+2)
- Editor config:
.editorconfig (+1)
- VS Code settings:
.vscode/settings.json with format-on-save (+1)
- Lint script in package.json / pyproject.toml / Makefile (+1)
- No conflicting configs (e.g., ESLint + Biome overlapping) (+1)
- Config is current (ESLint 9 flat config, not deprecated
.eslintrc.json) (+1)
2.4 — Build Tooling & Caching (0-10)
Check for:
turbo.json or nx.json with task pipeline configured (+3)
- Build caching enabled (local cache directory or remote cache config) (+2)
- Task graph defined with proper dependencies (+2)
tsconfig.json project references (TypeScript composite builds) (+1)
- Incremental builds configured (+1)
- Dev server script exists and uses watch mode (+1)
Score N/A if project is not a monorepo and has no build step.
2.5 — Environment Setup (0-10)
Check for:
.env.example or .env.template exists with documented variables (+3)
docker-compose.yml for local services (database, cache, etc.) (+2)
- Setup script:
Makefile, scripts/setup.sh, or just / task taskfile (+2)
.tool-versions or .nvmrc or .python-version for runtime pinning (+1)
- Database migration tooling configured (Prisma, Alembic, goose, etc.) (+1)
- README has "Getting Started" section with fewer than 5 steps (+1)
2.6 — Release Pipeline (0-10)
Check for:
- Semantic-release or changesets or equivalent configured (+3)
- Conventional commits enforced (commitlint + husky or equivalent) (+2)
- CHANGELOG.md exists and appears auto-generated (+1)
- GitHub Actions / CI workflow for releases exists (+2)
- Version field in package.json / pyproject.toml / Cargo.toml is not
0.0.0 placeholder (+1)
- Git tags exist following semver pattern (+1)
============================================================
PHASE 3 — CALCULATE DX HEALTH SCORE
Compute the overall DX health score:
- Overall Score = average of all applicable area scores (skip N/A areas)
- Grade: A (9-10), B (7-8.9), C (5-6.9), D (3-4.9), F (0-2.9)
Classify each area:
- Strong (8-10): well-configured, no action needed
- Adequate (5-7): functional but has gaps
- Weak (2-4): partially set up, needs work
- Missing (0-1): not configured at all
============================================================
PHASE 4 — GENERATE RECOMMENDATIONS
For each area scored below 8, generate specific recommendations:
- What is missing and why it matters
- Estimated setup effort:
quick (< 5 min), medium (15-30 min), involved (1+ hr)
- Which sub-skill to run:
/devcontainer, /git-hooks, /linter, /env-setup, /monorepo, /release
- Priority:
critical (score 0-2), high (3-5), medium (6-7)
Sort recommendations by priority (critical first), then by effort (quick first).
If --fix was passed, automatically invoke the sub-skill for every critical and high priority area. Run them in sequence since some depend on others (e.g., /linter before /git-hooks).
============================================================
SELF-HEALING VALIDATION (max 2 iterations)
After completing, validate the output was produced correctly:
- Verify generated files exist and are syntactically valid.
- Run any available validation (lint, type-check, dry-run).
- If the skill produces configuration, verify it parses without errors.
IF VALIDATION FAILS:
- Diagnose from error context and re-generate the failing artifact
- Repeat up to 2 iterations
============================================================
OUTPUT
Print the DX Health Report:
## DX Health Report
### Project: {name}
### Stack: {language} / {framework} / {package-manager}
### Overall: {score}/10 ({grade})
| Area | Score | Status |
|------------------|-------|---------|
| Dev Container | X/10 | {status}|
| Git Hooks | X/10 | {status}|
| Lint & Format | X/10 | {status}|
| Build & Cache | X/10 | {status}|
| Environment | X/10 | {status}|
| Release Pipeline | X/10 | {status}|
### Recommendations (by priority)
1. {area} — {what's missing} — run `/sub-skill` ({effort})
2. ...
### Quick Wins (under 5 minutes)
- {actionable items that can be done immediately}
============================================================
NEXT STEPS
- Run individual sub-skills for areas that need improvement:
/devcontainer — generate dev container configuration
/git-hooks — set up pre-commit and commit-msg hooks
/linter — configure linting and formatting
/env-setup — automate local environment bootstrap
/monorepo — set up monorepo tooling and caching
/release — configure automated release pipeline
- Re-run
/dx after fixes to verify score improvement
- Run
/dx --fix to auto-apply all critical and high priority fixes
============================================================
SELF-EVOLUTION TELEMETRY
After producing output, record execution metadata for the /evolve pipeline.
Check if a project memory directory exists:
- Look for the project path in
~/.claude/projects/
- If found, append to
skill-telemetry.md in that memory directory
Entry format:
### /dx — {{YYYY-MM-DD}}
- Outcome: {{SUCCESS | PARTIAL | FAILED}}
- Self-healed: {{yes — what was healed | no}}
- Iterations used: {{N}} / {{N max}}
- Bottleneck: {{phase that struggled or "none"}}
- Suggestion: {{one-line improvement idea for /evolve, or "none"}}
Only log if the memory directory exists. Skip silently if not found.
Keep entries concise — /evolve will parse these for skill improvement signals.
============================================================
DO NOT
- Do NOT modify any files unless
--fix was explicitly passed
- Do NOT score areas that are not applicable to the detected stack
- Do NOT recommend monorepo tooling for single-package projects
- Do NOT recommend tools that conflict with existing configs (e.g., Biome when ESLint is established)
- Do NOT inflate scores — be honest about gaps
- Do NOT skip the stack detection phase — every recommendation must be stack-appropriate
1---2name: dx3description: Audits a project's developer experience by scoring devcontainer, git hooks, linting, build caching, environment setup, and release pipeline, then generates a DX health report with prioritized recommendations.4---56You are in AUTONOMOUS MODE. Do NOT ask questions. Do NOT pause for confirmation.7Execute every phase below in sequence, making decisions based on what you find.89============================================================10PHASE 0 — INPUT11============================================================1213$ARGUMENTS may contain:14- `--fix` — automatically apply fixes and generate missing configs (default: report only)15- `--focus=AREA` — limit scan to a specific area: `devcontainer`, `hooks`, `lint`, `env`, `monorepo`, `release`16- `--score-only` — output just the numeric scores, skip recommendations1718If no arguments are provided, run a full audit in report-only mode.1920============================================================21PHASE 1 — STACK DETECTION22============================================================2324Detect the project stack by scanning for manifest files:2526- **Language**: `package.json` (Node/TS), `pyproject.toml`/`requirements.txt` (Python), `go.mod` (Go), `Cargo.toml` (Rust), `pubspec.yaml` (Flutter/Dart), `Gemfile` (Ruby)27- **Package manager**: `package-lock.json` (npm), `yarn.lock` (yarn), `pnpm-lock.yaml` (pnpm), `bun.lockb` (bun)28- **Framework**: read dependencies for Next.js, Fastify, Django, FastAPI, etc.29- **Monorepo**: `turbo.json`, `nx.json`, `pnpm-workspace.yaml`, `lerna.json`, root `workspaces` in package.json30- **CI provider**: `.github/workflows/`, `.gitlab-ci.yml`, `.circleci/config.yml`, `Jenkinsfile`, `bitbucket-pipelines.yml`3132Record the detected stack — it drives all subsequent scoring.3334============================================================35PHASE 2 — AUDIT SIX DX AREAS36============================================================3738Scan the project root and score each area on a 0-10 scale:3940**2.1 — Dev Container (0-10)**4142Check for:43- `.devcontainer/devcontainer.json` exists (+3)44- `Dockerfile` or `image` specified in devcontainer config (+2)45- `features` or `postCreateCommand` configured (+2)46- VS Code `extensions` list present and matches detected stack (+1)47- `forwardPorts` configured for detected services (+1)48- Docker Compose integration for multi-service setups (+1)4950Score 0 if `.devcontainer/` directory does not exist.5152**2.2 — Git Hooks (0-10)**5354Check for:55- `.husky/` directory OR `.lefthook.yml` OR `.pre-commit-config.yaml` exists (+3)56- Pre-commit hook configured: lint + format (+2)57- Pre-commit hook runs type-check (+1)58- Commit-msg hook enforces conventional commits (+2)59- Lint-staged or equivalent for incremental checks (+1)60- Hook runner matches stack (husky for Node, pre-commit for Python, lefthook for polyglot) (+1)6162Score 0 if no hook tooling is detected.6364**2.3 — Linting & Formatting (0-10)**6566Check for:67- Linter config exists: `.eslintrc.*` / `eslint.config.*` / `biome.json` / `ruff.toml` / `.golangci.yml` / `.rubocop.yml` (+3)68- Formatter config exists: `.prettierrc*` / `biome.json` / `pyproject.toml [tool.black]` (+2)69- Editor config: `.editorconfig` (+1)70- VS Code settings: `.vscode/settings.json` with format-on-save (+1)71- Lint script in package.json / pyproject.toml / Makefile (+1)72- No conflicting configs (e.g., ESLint + Biome overlapping) (+1)73- Config is current (ESLint 9 flat config, not deprecated `.eslintrc.json`) (+1)7475**2.4 — Build Tooling & Caching (0-10)**7677Check for:78- `turbo.json` or `nx.json` with task pipeline configured (+3)79- Build caching enabled (local cache directory or remote cache config) (+2)80- Task graph defined with proper dependencies (+2)81- `tsconfig.json` project references (TypeScript composite builds) (+1)82- Incremental builds configured (+1)83- Dev server script exists and uses watch mode (+1)8485Score N/A if project is not a monorepo and has no build step.8687**2.5 — Environment Setup (0-10)**8889Check for:90- `.env.example` or `.env.template` exists with documented variables (+3)91- `docker-compose.yml` for local services (database, cache, etc.) (+2)92- Setup script: `Makefile`, `scripts/setup.sh`, or `just` / `task` taskfile (+2)93- `.tool-versions` or `.nvmrc` or `.python-version` for runtime pinning (+1)94- Database migration tooling configured (Prisma, Alembic, goose, etc.) (+1)95- README has "Getting Started" section with fewer than 5 steps (+1)9697**2.6 — Release Pipeline (0-10)**9899Check for:100- Semantic-release or changesets or equivalent configured (+3)101- Conventional commits enforced (commitlint + husky or equivalent) (+2)102- CHANGELOG.md exists and appears auto-generated (+1)103- GitHub Actions / CI workflow for releases exists (+2)104- Version field in package.json / pyproject.toml / Cargo.toml is not `0.0.0` placeholder (+1)105- Git tags exist following semver pattern (+1)106107============================================================108PHASE 3 — CALCULATE DX HEALTH SCORE109============================================================110111Compute the overall DX health score:112113- **Overall Score** = average of all applicable area scores (skip N/A areas)114- **Grade**: A (9-10), B (7-8.9), C (5-6.9), D (3-4.9), F (0-2.9)115116Classify each area:117- **Strong** (8-10): well-configured, no action needed118- **Adequate** (5-7): functional but has gaps119- **Weak** (2-4): partially set up, needs work120- **Missing** (0-1): not configured at all121122============================================================123PHASE 4 — GENERATE RECOMMENDATIONS124============================================================125126For each area scored below 8, generate specific recommendations:127128- What is missing and why it matters129- Estimated setup effort: `quick` (< 5 min), `medium` (15-30 min), `involved` (1+ hr)130- Which sub-skill to run: `/devcontainer`, `/git-hooks`, `/linter`, `/env-setup`, `/monorepo`, `/release`131- Priority: `critical` (score 0-2), `high` (3-5), `medium` (6-7)132133Sort recommendations by priority (critical first), then by effort (quick first).134135If `--fix` was passed, automatically invoke the sub-skill for every critical and high priority area. Run them in sequence since some depend on others (e.g., `/linter` before `/git-hooks`).136137138============================================================139SELF-HEALING VALIDATION (max 2 iterations)140============================================================141142After completing, validate the output was produced correctly:1431441. Verify generated files exist and are syntactically valid.1452. Run any available validation (lint, type-check, dry-run).1463. If the skill produces configuration, verify it parses without errors.147148IF VALIDATION FAILS:149- Diagnose from error context and re-generate the failing artifact150- Repeat up to 2 iterations151152============================================================153OUTPUT154============================================================155156Print the DX Health Report:157158```159## DX Health Report160161### Project: {name}162### Stack: {language} / {framework} / {package-manager}163### Overall: {score}/10 ({grade})164165| Area | Score | Status |166|------------------|-------|---------|167| Dev Container | X/10 | {status}|168| Git Hooks | X/10 | {status}|169| Lint & Format | X/10 | {status}|170| Build & Cache | X/10 | {status}|171| Environment | X/10 | {status}|172| Release Pipeline | X/10 | {status}|173174### Recommendations (by priority)1751. {area} — {what's missing} — run `/sub-skill` ({effort})1762. ...177178### Quick Wins (under 5 minutes)179- {actionable items that can be done immediately}180```181182============================================================183NEXT STEPS184============================================================1851861. Run individual sub-skills for areas that need improvement:187 - `/devcontainer` — generate dev container configuration188 - `/git-hooks` — set up pre-commit and commit-msg hooks189 - `/linter` — configure linting and formatting190 - `/env-setup` — automate local environment bootstrap191 - `/monorepo` — set up monorepo tooling and caching192 - `/release` — configure automated release pipeline1932. Re-run `/dx` after fixes to verify score improvement1943. Run `/dx --fix` to auto-apply all critical and high priority fixes195196197============================================================198SELF-EVOLUTION TELEMETRY199============================================================200201After producing output, record execution metadata for the /evolve pipeline.202203Check if a project memory directory exists:204- Look for the project path in `~/.claude/projects/`205- If found, append to `skill-telemetry.md` in that memory directory206207Entry format:208```209### /dx — {{YYYY-MM-DD}}210- Outcome: {{SUCCESS | PARTIAL | FAILED}}211- Self-healed: {{yes — what was healed | no}}212- Iterations used: {{N}} / {{N max}}213- Bottleneck: {{phase that struggled or "none"}}214- Suggestion: {{one-line improvement idea for /evolve, or "none"}}215```216217Only log if the memory directory exists. Skip silently if not found.218Keep entries concise — /evolve will parse these for skill improvement signals.219220============================================================221DO NOT222============================================================223224- Do NOT modify any files unless `--fix` was explicitly passed225- Do NOT score areas that are not applicable to the detected stack226- Do NOT recommend monorepo tooling for single-package projects227- Do NOT recommend tools that conflict with existing configs (e.g., Biome when ESLint is established)228- Do NOT inflate scores — be honest about gaps229- Do NOT skip the stack detection phase — every recommendation must be stack-appropriate