Audits and fixes developer-experience friction in repositories by scaffolding bootstrap, reset, and seed scripts, and verifying time-to-first-commit targets.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pproenca-dot-skills-1:dx-harnessThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Audits, scaffolds, and maintains the developer-experience harness of a repository. The harness is the meta-tooling that makes a dev loop fast: one-command bootstrap, one-command reset, one-command seed, discoverable conventions, agent-friendly entry points.
Audits, scaffolds, and maintains the developer-experience harness of a repository. The harness is the meta-tooling that makes a dev loop fast: one-command bootstrap, one-command reset, one-command seed, discoverable conventions, agent-friendly entry points.
This skill exists because dev-experience attrition is real: harnesses rot, manual steps creep back in, conventions drift, and the cost is paid in micro-friction every day. The skill detects attrition systematically and applies canonical fixes.
Trigger this skill when:
┌────────────────────────────────────────────────────────────┐
│ 1. DISCOVER scripts/discover.sh → repo-fingerprint │
│ 2. AUDIT scripts/audit.sh → dx-audit.json │
│ 3. PRIORITIZE scripts/prioritize.sh → ranked findings │
│ 4. SCAFFOLD scripts/scaffold-*.sh → scratch dir │
│ 5. CONFIRM show diff to user; user picks what to apply│
│ 6. VERIFY scripts/verify.sh → assertions + timing │
│ 7. TRACK scripts/track-attrition.sh → audit log │
└────────────────────────────────────────────────────────────┘
All scaffolded edits land in a scratch directory first (${TMPDIR}/dx-harness-<timestamp>/). The user reviews the diff and chooses what to copy back into the repo. No surprise writes to the working tree.
Required: bash, git, node, jq.
Detected at runtime (the skill adapts — it never forces a migration):
| Toolchain | Detection signal |
|---|---|
| npm/pnpm/yarn/bun | package.json, pnpm-lock.yaml, yarn.lock, bun.lockb |
| cargo | Cargo.toml |
| go modules | go.mod |
| Python (uv/poetry/pip) | pyproject.toml, uv.lock, poetry.lock, requirements.txt |
| just | Justfile or justfile |
| make | Makefile |
| docker compose | docker-compose.yml, compose.yaml |
| database (postgres) | docker-compose.yml services, DATABASE_URL env reference |
Write. The skill writes files but does not delete user data, force-push, or run destructive ops. Default mode stages everything in a scratch directory; the user explicitly approves each application. Verification runs in a separate git worktree so timing measurements never touch the working tree.
On first invocation, the skill checks config.json and prompts via AskUserQuestion for any empty required fields. See config.json for fields and defaults.
Key defaults:
ttfc_target_seconds: 60 — the time-to-first-commit goal in secondsapply_mode: "scratch" — scaffolded edits go to scratch dir first; user copies inaudit_log_path: "${CLAUDE_PLUGIN_DATA}/dx-harness/audits.log" — persistent attrition historybash scripts/discover.sh > /tmp/fingerprint.json
bash scripts/audit.sh /tmp/fingerprint.json > /tmp/audit.json
bash scripts/prioritize.sh /tmp/audit.json
bash scripts/scaffold-bootstrap.sh /tmp/fingerprint.json
bash scripts/scaffold-reset.sh /tmp/fingerprint.json
bash scripts/scaffold-seed.sh /tmp/fingerprint.json
bash scripts/scaffold-agents-md.sh /tmp/fingerprint.json
bash scripts/scaffold-justfile.sh /tmp/fingerprint.json
bash scripts/verify.sh
# runs bootstrap in a scratch worktree, times it, asserts TTFC < target
bash scripts/track-attrition.sh /tmp/audit.json
# appends to audits.log, prints diff vs previous run
The workflow scripts produce JSON between steps so they compose. The agent should read references/workflow.md for full step-by-step orchestration, including error handling and when to stop and ask the user.
For deeper context:
| File | Read When |
|---|---|
| references/workflow.md | Executing the workflow (always start here) |
| references/audit-checklist.md | Understanding what audit.sh checks and why |
| references/fix-recipes.md | Choosing which scaffold script applies for a finding |
| references/attrition-patterns.md | Reading git history for DX-rot signals |
See gotchas.md — accumulated failure points discovered over time. Always append new ones rather than rewriting.
dev-skill:* — for creating new agent-friendly skills (often the output of an AGENTS.md scaffolding pass references skills)bug-review — pairs naturally: bad DX often surfaces as repeat bug categoriesnpx claudepluginhub joshuarweaver/cascade-code-general-misc-1 --plugin pproenca-dot-skills-1Systematically assess and improve developer experience (tools, documentation, onboarding, debugging) to increase team productivity. Use in roadmapping or when noticing developer friction.
Audits developer experience by measuring onboarding time, build/test speeds, deployment friction, and satisfaction. Use for DX audits, DORA metrics, or workflow reviews.
Improves developer experience by automating setup, optimizing workflows, and enhancing tooling with git hooks, IDE configs, and project-specific commands. Activates on new projects or friction.