PHP 8.3+ · deterministic runtime
Build APIs your agents can ship —
and you can trust.
Univeros is a deterministic, reversible PHP framework. One YAML spec scaffolds the Action, Input, Responder, tests, OpenAPI, and a typed client SDK — every artifact byte-stable, every change rewindable, every mutation logged.
composer create-project univeros/univeros my-api One spec emits
- Action
- Input
- Responder
- tests
- OpenAPI
- SDK
Deterministic
Every generated artifact is byte-stable. Same spec in, same bytes out — on any machine, any PHP minor. Diffs stay meaningful and CI can gate on drift.
Reversible
A rewind/replay journal captures every scaffold. journal:rewind undoes a bad generation; a failed iteration is recoverable, never catastrophic.
Idempotent & webhook-ready
Stripe-style Idempotency-Key middleware and signed inbound/outbound webhooks are first-class primitives — spec-driven and round-tripping through OpenAPI.
Agent-operable
A first-party MCP server exposes the framework as 42 agent-callable tools, and an append-only event log answers “what just changed?” across sessions.
Batteries included · agent-ready
Everything an API needs — and everything an agent needs to operate it.
40 independently usable packages under one bundle. Install the whole framework, or pick the pieces you need.
Spec-driven scaffolding
A YAML endpoint spec emits the Action / Input / Responder triple, a domain stub, a PHPUnit test, an OpenAPI fragment, and the route entry — in one command.
/docs/packages/scaffoldOpenAPI round-trip + SDKs
Emit OpenAPI 3.1 from specs and import it back, faithfully. Generate zero-dependency TypeScript and httpx/pydantic Python clients — deterministic, CI-checkable.
/docs/guides/openapi/roundtripPersistence, the right way
A thin Repository / UnitOfWork contract over Cycle ORM v2 with db:migrate commands. Add a persistence: block and the entity, repository, and migration scaffold too.
/docs/packages/persistenceMessaging & workers
A MessageBus + worker bridge over Symfony Messenger with attribute-driven handler discovery. A queue: block scaffolds the DTO, handler, and test alongside the endpoint.
/docs/packages/messagingIntrospection & Doctor
A read-only X-ray of a booted app — bindings, routes, listeners, middleware, specs — plus a doctor health-check, both with deterministic JSON for agents and CI.
/docs/packages/introspectionSymbol index & adviser
An AST + spec-aware symbol index answers find-usages, callers-of, and refactor-impact in milliseconds. A refactor adviser flags dead bindings, fat constructors, and spec-less routes.
/docs/packages/symbol-indexFirst-party MCP server
The framework as 42 agent-callable Model Context Protocol tools over stdio/HTTP — the shell-less bridge for hosted agents and remote introspection of deployed APIs.
/docs/packages/mcpObservatory & events
A dev-only, fail-closed monitoring panel over the framework’s own introspection, plus an append-only .altair/events.jsonl mutation log for “what changed?” across sessions.
/docs/packages/observatoryFrom spec to shipped
One spec in. A tested, documented endpoint out.
bin/altair spec:scaffold
reads a single YAML file and writes the whole vertical slice — then records a journal entry
so you can journal:rewind it.
# api/users/create.yaml
operationId: createUser
method: POST
path: /users
summary: Register a new user
input:
email: { type: string, format: email, required: true }
password: { type: string, minLength: 12, required: true }
persistence:
entity: User
table: users
idempotency: true
responses:
"201": { $ref: User } - + Http/Action/CreateUserAction.php action
- + Http/Input/CreateUserInput.php input
- + Http/Responder/CreateUserResponder.php responder
- + Domain/User.php entity
- + Domain/UserRepository.php repository
- + database/migrations/20260607_create_users.php migration
- + tests/Http/CreateUserActionTest.php test
- + docs/openapi/users-create.yaml openapi
- + config/routes.php (+ POST /users) route
Tokens to Ship. A defensible benchmark of how cheaply an AI agent gets from spec to passing acceptance — because deterministic, scannable output costs fewer tokens than reading source.
See the methodologyThe catalogue
40 packages, one coherent framework.
Each ships with a stand-alone guide. Composer-require the bundle, or any single package.
HTTP stack
Application core
Infrastructure
Get started
From empty directory to a running, tested API.
Scaffold a project, write a spec, and ship your first endpoint in minutes — with the determinism, reversibility, and agent tooling baked in.
composer create-project univeros/univeros my-api