← ClaudeAtlas

nix-dev-initlisted

Per-project development environment bootstrap workflow for this user: github/create_repo.sh --template → direnv allow → language sync/build inside the direnv-activated shell. ALWAYS load when starting a new project, initializing a repo, scaffolding dev tooling, or writing project-level flake.nix / .envrc / devShell. Also load when the user asks to use or reference template-python, template-typescript, template-rust, template-tex, template-minimal, or configure an existing project from a template. This skill is DISTINCT from `nix-dotfiles` (global dotfiles system config under ghq); load THIS for project-scoped devShells. Without it, Claude or Codex may run language tools on the host shell and leak host toolchain versions into lockfiles. Supported language templates live under furedea/ and are used via `github/create_repo.sh --template`. Also trigger on "/nix-dev-init", "new project", "set up dev environment", or any mention of creating a flake.nix for a project.
furedea/agent-harness · ★ 1 · AI & Automation · score 67
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>` -