nix-dev-initlisted
Install: claude install-skill furedea/agent-harness
# Nix Dev Init Workflow
## Scope
Setting up a **per-project** dev environment — not global dotfiles. For home-manager / nix-darwin edits on `~/ghq/github.com/furedea/dotfiles`, use the `nix-dotfiles` skill instead.
The workflow has two phases, and the split is load-bearing:
- **Phase 1 — Nix shell** (this file): `github/create_repo.sh --template` (or manual `flake.nix` → `.envrc`) → `direnv allow`. Language-agnostic.
- **Phase 2 — Language init** (see `references/lang-<name>.md`): verify toolchain, run language-specific sync/build **inside the direnv-activated shell**.
The whole reason Phase 1 runs before Phase 2 is so the language's commands see the nix-provided toolchain on PATH, not the host's. Do not collapse or reorder the phases.
## Mandatory Order (Phase 1)
1. VCS init — pick one:
- **New repo from template** (preferred for supported languages):
```
cd "$($DOTFILES/github/create_repo.sh <name> --private --template furedea/template-<lang>)"
```
`github/create_repo.sh` creates the remote, clones into the ghq root, applies rulesets, and patches config file names. It prints the clone destination; command substitution above moves into that path after it succeeds. The template provides `flake.nix`, `.envrc`, `.gitignore`, `lefthook.yml`, `.commitlintrc.yml`, CI workflows, and language-specific config — **skip steps 2-3**.
- New repo (public, no template): `gh repo create <name> --public --clone --license MIT` → `cd <name>`
-