dev-env-setuplisted
Install: claude install-skill mickzijdel/dev-hooks
# dev-env-setup
Bring a repo up to **Mick's dev-environment standard** and keep it there. Reference
implementations: [`bedlam-bacs`], [`readoc`] (Python), [`booking-overview`] (Rails).
## The standard (v15)
A repo is **compliant at v15** when it has all of:
- **`mise.toml`** — tools pinned (`hk`, `pkl`, stack tool, `gitleaks`, `node` for jscpd),
`[settings] lockfile = true` and `minimum_release_age = "4d"`, and the `[env]` version stamp
`DEV_ENV_VERSION = "15"`.
- **`mise.lock`** (committed) — reproducible, checksum-verified tool installs. See "Lockfile &
supply-chain verification".
- **`.jscpd.json`** — duplication config (`minTokens 70`, `threshold 0`, path excludes under
`ignore` — never `ignorePattern`, inert in jscpd v5).
- **`scripts/run-jscpd.sh`** (added in v14) — the shared jscpd runner holding the
version-cooldown policy; both the hk step and CI's audit job call it (CI with `--require`)
so the two gates can't drift. Copied verbatim from the template (repo formatters may re-indent it; never hand-edit the logic).
- **`hk.pkl`** — per-stack linters **plus** the dead-code + duplication audits, the
`exec-bit-scripts` gate, `gitleaks`, and
`check-added-large-files`, in one `linters` mapping shared by the `pre-commit`/`fix`/`check`
hooks.
- **Executable-bit gate** (added in v15) — the hk `exec-bit-scripts` step + a CI lint-job
mirror fail when any tracked shebang file is index mode `100644` (a fresh clone/plugin
install would get a script that die