The charter

Six core principles

These govern what goes into the framework and how it is shaped. They are design constraints, not marketing — when a change conflicts with one, the change is wrong until argued otherwise.

01

Human First

Code should be obvious to a human.

TetherPHP must prioritise readable, understandable code. Developers should be able to open an unfamiliar project and quickly understand what it does and where things belong. No cleverness for cleverness' sake.

02

Agent Ready

Everything a human can understand, an agent should be able to understand.

TetherPHP's architecture, conventions and tooling are deliberately designed for AI agents. Predictable naming, explicit dependencies, consistent structure and machine-readable context make it easy for an agent to navigate and modify an application safely.

03

Explicit Over Magic

If something matters, make it visible.

TetherPHP puts the wiring where you can see it. You should be able to trace a request from route to response by reading the code in front of you, without holding framework behaviour in your head to follow it.

  1. Request
  2. Route
  3. Action
  4. Domain
  5. Responder
  6. Response
04

One Obvious Way

There should be one obvious way to do things.

TetherPHP is opinionated: one clear convention rather than several ways to reach the same result. Adding a second way to do something means removing the first. That keeps the number of things to hold in mind small, for developers and agents alike.

05

Small & Composable

The core should do less, but do it well.

The core provides the fundamental building blocks of an application, and stops there. Database layers, validation, templating and queues compose in as packages rather than shipping in the middle. Small core. Strong foundations.

06

Tools Are Part of the Framework

The framework should help you understand the application, not just run it.

TetherPHP's CLI and developer tooling are first-class. Commands such as make:action, test, inspect, explain and context help developers and agents understand, build and maintain an application. The framework isn't just the runtime — the tooling is part of the developer experience.