Documentation version: nextdevelopment documentation
Skip to content

Architecture decision records

Decisions that shape what Gesso is, rather than how one part of it works. A change that contradicts an accepted ADR needs a new ADR that supersedes it, not just a pull request.

ADRStatusDateDecision
0001 — Align the v2 technical identity with GessoAccepted2026-07-13Namespace, package, and CLI rename to the Gesso identity, with the scope boundaries the rename did not authorize.
0002 — Phase Arazzo workflow execution behind shared runtime expressionsAccepted2026-07-30Arazzo support lands in phases, starting from a runtime-expression evaluator shared with the existing validators.
0003 — Branch-complete response payloads and an SDK round-trip harnessAccepted2026-07-31Close the SDK ⇄ spec gap by feeding spec-derived payloads through a generated decoder.
0004 — v3 consistency policy and protected coreAccepted, amended 2026-08-122026-08-06v3 changes shape, not capability: the invariants that may not regress, the inclusion criterion and its non-goals, and the rule a reduction PR is held to. Amendments: the #508 exception; the sequencing rule that the final v2 minors carry the adopter-visible value while v3.0 deletes; and the condition — not a date — that opens the v3.0 window.
0005 — v3 configuration and CLI namingAccepted2026-08-06Resolves the naming conflicts between the four v3 rename issues, and fixes the gesso.php key set and the coverage:merge flag set they all target.
0006 — Server base paths and request-path matchingAccepted2026-08-07servers[].url stays out of path matching; strip_prefixes remains authoritative, and a failed match names the server base path that would have matched.

Writing one

Follow the most recent file. The header carries Status, Date, Issue, and Related; 0004 adds Supersedes, which every later ADR should carry even when the value is none. Number files sequentially and add the row above in the same change, so this page never lags the directory.