Skip to content

Commit c9cdd60

Browse files
readme, spec: the vocabulary bullet names everything the vocabulary defines
Also drops the wrong direction count: the model defines three, request, response, and none. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QDvUFsg5nu1NBWQffErGDw
1 parent 75072d4 commit c9cdd60

2 files changed

Lines changed: 3 additions & 2 deletions

File tree

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ OpenAPI gave API definitions a formal model. This repository does the same for *
44

55
The model is one file, [`openapi-changes-model.yaml`](openapi-changes-model.yaml). It contains:
66

7-
- **The vocabulary**: the seven actions a document edit can perform (add, remove, set, unset, increase, decrease, change), the two wire directions, the six effects a change can have on the set of valid payloads, and the guards, document states that qualify a verdict.
7+
- **The vocabulary**: every term the model uses, defined in the file itself: the location grammar and the claim syntax built on it, the seven actions a document edit can perform (add, remove, set, unset, increase, decrease, change), the wire directions, the areas and kinds that situate each change in the OpenAPI object model, the six effects a change can have on the set of valid payloads, the guards (document states that qualify a verdict), the severity levels, and the statuses and categories of the coverage listing.
88
- **The severity law**: one rule that derives every verdict. Guards apply first; then narrowing breaks request consumers, widening breaks response consumers, an incomparable change breaks both, and an unknown one is a warning. When a change cannot be proven safe, it is breaking.
99
- **681 named changes**, each with its direction, effect, guards, derived severity, human-readable message, and its **claims**: the exact document locations and actions it covers, as `location:action` patterns over the OpenAPI object model.
1010
- **The full edit space**: 15,255 possible edits, enumerated mechanically from the OpenAPI specification's object model. Every edit is covered by named changes, waived with a written reason, or classified as non-contract (unable to affect which payloads are valid). None are undecided.

‎SPEC.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ A **change** is a named, human-meaningful classification of one or more edits, i
2727
- **direction**: whether it concerns what clients send (`request`), receive (`response`), or neither;
2828
- **effect**: what the change does to the set of valid payloads: `narrows`, `widens`, `incomparable`, `none`, `unknown` (the specification cannot decide), or `violation` (a lifecycle contract is broken);
2929
- **guards**: document states that qualify the verdict (a `readOnly` property never appears in requests; an honored sunset sanctions a removal);
30-
- **level**: the derived severity.
30+
- **level**: the derived severity;
31+
- **area** and **kind**: where the change sits in the OpenAPI object model and which aspect of the contract it touches, for querying and auditing the catalog.
3132

3233
## The severity law
3334

0 commit comments

Comments
 (0)