general · git:20260916.b334104 · 2026-09-16 · sha256 caf1cee59e6f5841

general git:20260916.b334104A

Immutable. This exact content is served forever at /api/v1/blob/caf1cee59e6f5841.

---
name: general
description: General development guidelines, nix environment, service startup, development preferences, code quality principles. Use for all Donut coding work.
---
# General Development Rules

- Consult `.agents/agent-map.md` when navigation, focused commands, service assumptions, generated API guidance, ADR locations, or log inspection is unclear.
- Architectural decisions: humans approve via `docs/adrs/`; agents use `dough-adr-awareness` (see `architecture-decisions` skill).
- Run repo tooling through Nix (`CURSOR_DEV=true nix develop -c …`) unless documented otherwise (e.g. Cloud VM). **Git commands do not need the Nix prefix** — run `git` directly.
- For Cursor Cloud VM without Nix, use the `cloud-vm-setup` skill.
- When deleting files, prefer `trash` from the Nix environment instead of `rm -f` or `rm -rf`.
- Keep high cohesion: minimize duplication, keep one representation for each concept, and place related code together.
- Keep changes simple. Do not add defensive layers unless observed behavior requires them.
- Failure handling: ADR 0006 (`docs/adrs/0006-failure-handling-accepted.md`).
- Unit tests use the "small test" style (stable boundary, data over mocks, focused assertions, concise `makeMe`) — the `unit-testing` skill.
- Problem, story, and execution-leaf splits must pass the gates in
  the `problem-decomposition` skill; planning artifacts and lifecycle use
  the `planning` skill.
- Name permanent artifacts by product capability, not development history or planning sequence numbers.
- Do not add comments or docs about past implementations in product code, tests, or permanent docs; code readers care about the current state.
- **`.planning/` exception:** while a plan is **in progress**, keep enough history in the PLAN file (slice status, brief learnings) to **stop and resume** across sessions. When the plan is **fully executed** into code and permanent docs, **actively clean up** spent planning history (see `planning` skill).
- Planning layout and lifecycle: the `planning` skill.