A shared process for every developer — from first-timers using AI to experienced engineers. One standard, all repos.
pnpm format before committing.any — use unknown and narrow. AI often introduces any — always check.console.log in production code — use the logger. Every request should produce a trace with service name, level, and correlation ID..env files are gitignored. Secrets stored in Komodo or GitHub Actions secrets — not in .env.example.type(scope): subject. Valid types: feat fix docs ci chore refactor test. Drives semantic versioning automatically.feat/* branch must have a feature doc at docs/features/<name>.md before implementation starts. PR must link to it. AI agents read this as context.| Branch | Purpose | Notes |
|---|---|---|
main |
Production | ⬤ Protected — CI required, no direct push |
feat/<name> |
New feature | Branch from main, PR back to main |
fix/<name> |
Bug fix | Branch from main |
chore/<name> |
Maintenance, deps, docs | No feature doc required |
ci/<name> |
CI/CD changes | No feature doc required |
Describe what you want to build: what problem it solves, what it looks like when done. Add acceptance criteria. gh issue create
Copy docs/features/TEMPLATE.md → docs/features/<feature-name>.md. Fill in context, scope, and design decisions. Commit it to the branch.
Branch name matches the feature: feat/live-scoreboard. Use AI freely — but read every line it writes before committing.
Unit tests for logic. Integration tests for data flow. The pre-push gate will run them — better to know now than in CI.
Format: feat(scope): subject. Keep commits small and focused. Reference the issue: Refs: #42
Husky runs format → lint → type-check → unit → integration. If it fails, fix locally. Never use --no-verify.
PR description: what changed, why, how to test it. Link: Closes #42. Link to docs/features/<name>.md.
Once CI is green and reviewed, merge to main. GitHub Actions builds the Docker image and Komodo redeploys.
--no-verify to skip the pre-push gatemain