We are discovering better ways to build software in partnership with Artificial Intelligence agents.
Through this work, we have come to value:
- Clear direction and structured context over passive code generation.
- Validated incremental progress over uncontrolled monolithic delivery.
- Human understanding and simplicity over premature machine-made abstractions.
- Traceability and living documentation over speed without control.
Even though the items on the right have value, we prioritize the items on the left.
Our principles
I. We take the director’s chair
We do not merely ask for code. We direct very fast agents.
We set the environment. We define the rules. We mark the boundaries.
II. We respect the rhythm of thought
We do not mix exploration, planning, and implementation.
First we explore the idea. Then we plan the steps. Only then do we ask for construction.
III. We celebrate the single step
We refuse the urge to create the whole system at once.
We prefer to implement, review, and validate one small step per cycle.
IV. We demand explainability
We do not accept code we cannot explain.
If the architecture becomes unintelligible to a human mind, speed has stopped helping.
V. We validate relentlessly
No line of code is ready without proof that it works.
Validation is not bureaucracy. It is the minimum contract between intent and reality.
VI. We protect history
We use Git from the first cycle.
Small, well-described commits preserve context, reduce fear, and make progress reversible.
VII. We govern through context
We recognize AGENTS.md as the project’s constitution.
It records rules, criteria, limits, and working agreements.
VIII. We model before persisting
We respect data structure.
Before writing business logic, we document entities, fields, relations, and rules.
IX. We restrict to liberate
We limit the machine’s technical creativity to protect product maintenance.
The simplest solution that works is usually the best first solution.
X. We cultivate project memory
Living documentation preserves the reason behind decisions.
Without memory, every new session tries to rebuild the project from zero.
A cycle example
1. Write the goal of the step.
2. Say which files may change.
3. Implement little.
4. Run lint, tests, and build.
5. Review the diff.
6. Record risks and next steps.
Vibe coding is not abandoning engineering.
It is using AI without abandoning direction, judgment, and responsibility.