A starter repo for humans and coding agents working together.
This repo is intentionally dual-purpose:
- It is a template you can copy to start new repositories.
- It is also the living workspace where you improve the template itself.
Requirements: Bash, Git, and Python 3 (used by scripts/dev.sh for port detection when no port is set).
Use this repo as a starter: clone or copy it into a new project folder, then replace example docs and skills with project-specific ones. Adapt DEPLOY.md, STATUS.md, .env.example, and scripts/dev.repo.sh for your project.
This is a starter/workbench template; some scripts are scaffolding and are meant to be adapted per repo.
- One-command local development:
./scripts/dev.sh - Strong AI orientation via
AGENTS.md - Clear project truth via
README.md,STATUS.md, andDEPLOY.md - Temporary AI clutter belongs in
working/ - Durable operational knowledge belongs in
skills/ - Secrets stay out of git
- Testing is considered from the start
- Branch-specific status should be easy to inspect
- The repo should help both humans and AIs quickly understand how to work
AGENTS.md— how AIs should understand and operate in the repoCLAUDE.md— thin pointer that importsAGENTS.md(Claude Code reads this automatically)STATUS.md— high-level current statusDEPLOY.md— deployment model and expectationsdocs/decisions/— durable design decisionsskills/— committed operational skills for this reposcripts/— stable project scriptstests/— canonical testing ladder and unit/integration test areae2e/— end-to-end and Playwright-style testing areaworking/— scratch space, AI handoffs, temporary notes, branch status
Use these entrypoints consistently:
./scripts/check-env.sh
./scripts/dev.sh
./scripts/stop.sh
./scripts/status.sh
./scripts/export.shNotes:
./scripts/dev.shis the only standard local development entrypoint./scripts/stop.shcleans up the dev server started bydev.shfor the current branch./scripts/export.shbuilds a.zipof the committed tree (no gitignored deps) intoworking/export/— useful for external AI review; seeworking/ask-ai/- branch status notes belong in
working/status/ - temporary AI, handoff, and debug work belongs in
working/ - durable repo-specific operational knowledge belongs in
skills/
Use this repo to evolve the template. The normal workflow is:
- capture current thinking in
STATUS.md - use
working/for drafts and experiments - promote stable patterns into committed docs, scripts, or
skills/ - when the template improves, copy it forward into new repos
- First run: Copy
.env.exampleto.envand add real values as needed (cp .env.example .env). Then run./scripts/check-env.shto verify, and./scripts/dev.shto start. On a fresh fork,dev.shwill print a stub message — that's expected; customizescripts/dev.repo.sh::repo_dev_start()to make it actually start your app. - Use this repo as a starter by cloning or copying it into a new project folder, then updating the core docs and scripts for that project.
- Update top-level docs for your project:
README.md— replace the title and description with your projectAGENTS.md— adjust the Repo purpose section; the conventions can usually staySTATUS.md— replace the template content with your project's actual statusDEPLOY.md— replace with your real deployment model (or note that there isn't one).env.example— list the keys your project actually needs
- Customize scripts and CI:
scripts/dev.repo.sh— implementrepo_dev_start()for your stack (and optionallyrepo_dev_stop())scripts/check-env.sh— usually fine as-is unless you need richer validation.github/workflows/ci.yml— add your real test commands
- Replace the example skills in
skills/with ones that are useful for your repo.
The repo root should contain only durable, orienting, high-signal files and folders.
Keep the repo root limited to a small set of orienting files; put other durable documentation such as architecture notes, decisions, and runbooks under docs/.
Temporary writeups, experiments, and one-off scripts belong in working/.