Project Scaffolding
Development Philosophy
Every project should be understandable by a junior developer. Self-documenting structure. Skills as documentation. Minimal setup friction.
Language-Specific Scaffolds
After generating standard files, load the appropriate language skill for CI/CD, release, and tooling:
| Language | Skill | Key Tools |
|---|---|---|
| Rust | scaffold-rust | cargo, clippy, rustfmt, cross, crates.io |
| Go | scaffold-go | go, golangci-lint, gofmt |
| Python | scaffold-python | uv, ruff, pytest, ty |
| Node/TS | scaffold-node | npm, biome, tsc |
| Terraform | scaffold-terraform | terraform, AWS OIDC |
Always generate the standard files below first, then apply the language-specific scaffold.
Standard Files (Every Project)
| File | Purpose |
|---|---|
README.md | Human-facing documentation (see write-readme) |
AGENTS.md | AI-facing project context (see configure-ai) |
LICENSE | Apache-2.0 (standard for all repos) |
CONTRIBUTING.md | How to contribute (see template below) |
sr.yaml | Semantic release config |
.envrc | Nix shell activation (use flake .#<shell>) |
llms.txt | LLM-friendly project summary (see create-llms-txt) |
skills/<name>/SKILL.md | Agent skill instructions |
docs/ | Project documentation (guides/, rfcs/, plans/, runbooks/, etc.) |
.ai-memory/ | Tool-agnostic AI memory (see memory skill) |
.github/workflows/ci.yml | Quality gate |
.github/workflows/release.yml | Automated releases |
Task Runner Convention
Prefer native build systems over justfile. Add a justfile only when project complexity demands orchestration beyond what the native tools provide.
| Language | Native Task Runner | When to Add justfile |
|---|---|---|
| Node/TS | npm scripts in package.json | Monorepo orchestration, multi-step deploys |
| Rust | cargo commands | Multi-crate workspaces, cross-compilation |
| Go | Makefile + go commands | Multi-service repos, protobuf codegen |
| Python | justfile + uv run | Always (Python lacks a native task runner) |
| Terraform | terraform CLI | Multi-environment workspace management |
Standard Task Interface
Every project should support these operations, regardless of how they’re invoked:
init — install hooks, download deps
build — compile / bundle
test — run test suite
lint — static analysis
fmt — format code
check — fmt + lint + test (quality gate)
run — execute the project
Python Config (pyproject.toml)
[tool.ruff]line-length 100, select["E","W","F","I","UP","B","SIM","RUF"][tool.pytest.ini_options]testpaths["tests"], pythonpath["src"]
CONTRIBUTING.md Template
Standard sections:
- Prerequisites — language runtime, build tools, GH_TOKEN
- Getting Started —
git clone+ language-specific init - Development — language-specific check, test, fmt commands
- Commit Convention — conventional commits via
sr commit - Pull Requests — fork → branch → PR
- Code Style — brief, language-specific
License
Apache-2.0 for all repos. Exception: content-heavy sites (urmzd.com) may dual-license with CC BY-NC-ND 4.0 for content.
Documentation Philosophy
Skills vs Docs
Skills (skills/<name>/SKILL.md) are executable agent instructions — they tell AI agents how to do things: follow conventions, run workflows, use tools. They are operational, imperative, and agent-consumable.
Docs (docs/) are project documentation — they capture what was decided and why: design proposals, how-to guides, operational runbooks, architecture descriptions, and plans. They serve humans and agents alike as reference material.
Both exist in every project. Neither replaces the other.
File Placement
Root-level standard files (stay at project root):
- README.md — human-facing (install, usage, examples)
- AGENTS.md — AI-facing (architecture, interfaces, commands)
- CONTRIBUTING.md — contributor onboarding
- LICENSE, CODEOWNERS
llms.txt— LLM discovery (links to README, AGENTS.md, skill)- CHANGELOG.md — auto-generated by sr
All other documents go in docs/ — organized by purpose:
docs/guides/— how-to guides and walkthroughsdocs/rfcs/— design proposals and decision recordsdocs/plans/— implementation and migration plansdocs/runbooks/— operational procedures and incident responsedocs/architecture/— system design and diagrams- Add subdirectories as needed (e.g.
docs/api/,docs/tutorials/)