01Foundations
6Show all 6Hide
Single Responsibility Principle
Everything should do one thing and one thing only.
Intention-Revealing Names
The signature is the spec.
Don't Repeat Yourself
Every fact has one home.
Simplicity
KISS and YAGNI: no line is cheaper than the one you didn't write.
Self-Documenting Code
Code should explain itself without narration.
Encapsulation
The interface is the only contract.
02Architecture
11Show all 11Hide
Screaming Architecture
Folders should tell you what the app does.
Three-Tier Hoisting
Default to local. Earn each tier upward.
Stable Dependencies Principle
Volatile depends on stable, never the reverse.
Common Closure Principle
Things that change together belong together.
Thin Handlers
Entry points dispatch, they don't decide.
Bounded Contexts
Each context gets one model and one folder.
Coupling First
Pick the architecture with the weaker coupling.
Push to the Source of Truth
Run the work where the data lives.
Liskov Substitution Principle
Subtypes honour the contract.
Interface Segregation Principle
Small, focused surfaces.
Dependency Inversion Principle
Depend on abstractions.
05Process
8Show all 8Hide
Test-First Development
The test is the brief. Write it first.
Spec-First Execution
AC at the start, AC at the end.
Definition of Done
Done means the checklist passed.
Continuous Quality Feedback
The feedback loop is the gate.
Shift-Left Quality
Quality is part of done, not part of QA.
Leave it Better Than You Found it
Boy Scout, sharper.
Short-Lived Branches with AI+Human Review
Branch for a day, review, then merge to main.
Architecture Decision Records
Record each decision with its change.
06Testing
8Show all 8Hide
Living Documentation
Tests don't lie.
Specification by Example
Domain-language Gherkin.
Parameterised Scenarios
One step definition, a table of examples, then property-based tests.
Real-Dependency E2E
Mocks hide the bugs that reach production.
Structural Assertions
Hardcoded slugs are brittleness.
Behaviour Testing
Test the public surface, never the private one.
Test Isolation
If you mock your own code, the code is wrong.
One Concept Per Test
If the name needs an and, split it.
07AI Collaboration
6Show all 6Hide
The Intern Pattern
Plan, approve, execute, review.
Persistent Brief
Context belongs in the repo rather than the chat.
Working Context
Context is a finite resource.
Verifiable Specs
If the agent can't grade itself, it isn't a spec.
Verify the API
Don't trust the training.
Self-Review Pass
Critique your own draft before you hand it back.