Skip to content

Commit b1a1dcc

Browse files
committed
docs: add architecture freeze, change litmus test, and promotion rules
1 parent faeb825 commit b1a1dcc

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

AGENTS.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,3 +444,49 @@ Communication
444444
Autonomy
445445

446446
Never reverse this order.
447+
448+
---
449+
450+
# Architecture Freeze
451+
452+
The planner architecture is stable by default, not immutable.
453+
454+
**Preference order:**
455+
456+
1. Improve implementation (bugs, UX, determinism).
457+
2. Collect telemetry.
458+
3. Adjust behavior within current layers.
459+
4. Introduce new architecture only when production evidence demonstrates a recurring limitation not solvable within the current design.
460+
461+
# Architecture Change Litmus Test
462+
463+
Before introducing a new architectural abstraction, answer:
464+
465+
1. **Can this be implemented within the existing architecture?**
466+
* If yes, keep it as an implementation change.
467+
2. If no, **what production evidence demonstrates the limitation?**
468+
3. **Why is the current architecture insufficient?**
469+
4. **What measurable outcome should improve?**
470+
5. **What evidence would tell us the new abstraction was unnecessary?**
471+
472+
# Architecture Promotion Rules
473+
474+
Do not add new abstractions without production evidence.
475+
476+
| Candidate change | Promote only if |
477+
|---|---|
478+
| `planner_metrics.h` | Metrics included by 3+ independent modules |
479+
| `unique_ptr<PlannerShadowMetrics>` | ExecutionResult becomes the lifetime owner |
480+
| Split PlannerLoop | Loop complexity consistently slows development |
481+
| New planner abstraction | Production telemetry identifies a recurring limitation not solvable within current layers |
482+
483+
# Rollout Rhythm
484+
485+
Every architectural change follows this sequence:
486+
487+
1. Build the capability.
488+
2. Run in shadow mode alongside legacy.
489+
3. Collect production telemetry.
490+
4. Compare with legacy path.
491+
5. Promote only if it demonstrates value.
492+
6. Remove old implementation.

0 commit comments

Comments
 (0)