Skip to content
🤖 AI-Optimized Docs: Plain text context available at /llms-full.txt
GitHub

AD-31 Coverage Predicates

Generated by npm run generate:ad31-table. Do not edit: npm run check:ad31-table compares this file byte for byte against the builder and fails on any difference.

AD-20’s seven discipline rules, each with a relevance predicate and a satisfaction predicate, run over the hand-authored contract corpus AD-31 names as their publication target. The historical worked example is not a publication target and appears nowhere below.

RuleRelevance predicateSatisfaction predicate
success-indicator-separationsuccess-indicator-separation-relevancesuccess-indicator-separation-satisfaction
whole-bodywhole-body-relevancewhole-body-satisfaction
malformed-inputmalformed-input-relevancemalformed-input-satisfaction
per-recordper-record-relevanceper-record-satisfaction
sibling-cross-checksibling-cross-check-relevancesibling-cross-check-satisfaction
omission-and-completenessomission-and-completeness-relevanceomission-and-completeness-satisfaction
state-change-read-backstate-change-read-back-relevancestate-change-read-back-satisfaction
RuleAbsentExplicitly emptyWitnessedUnwitnessed
success-indicator-separationabsent-success-indicatorempty-channel-rolessatisfied-declarationssplit-indicator-oracle
whole-bodyno-operation-inventorysingle-required-response-keysatisfied-declarationsper-key-split-oracles
malformed-inputno-operation-inventoryempty-request-shapessatisfied-declarationsno-type-violating-step
per-recordabsent-collection-locationsempty-collection-locationssatisfied-declarationsno-collection-quantifier
sibling-cross-checkabsent-sibling-groupsempty-sibling-groupssatisfied-declarationsunaddressed-parameter-sibling
omission-and-completenessabsent-collection-locationsunnamed-reference-setsatisfied-declarationswrong-cardinality-form
state-change-read-backno-operation-inventoryno-state-change-markersatisfied-declarationsno-read-back-relation

Each cell names the corpus contract that occupies it. Relevance false with satisfaction false occupies no cell and cannot: a rule that is relevant for no site is satisfied vacuously, so a relevance predicate answering false forces its satisfaction twin to answer true.

One CoverageGap record per corpus contract per rule where relevance fired and satisfaction failed.

ContractRuleRelevance predicateSatisfaction predicateSeverityWhy relevance firedWhy satisfaction failed
absent-success-indicatorsuccess-indicator-separationsuccess-indicator-separation-relevancesuccess-indicator-separation-satisfactioncriticaloperation create-thing nominates no success indicatoroperation create-thing nominates no success indicator, so no oracle can separate one from the body
split-indicator-oraclesuccess-indicator-separationsuccess-indicator-separation-relevancesuccess-indicator-separation-satisfactioncriticaloperation create-thing gives pointer /id a channel role beside its success indicatorno oracle addresses operation create-thing’s success indicator beside another roled pointer at one step, in both channels
split-indicator-oraclewhole-bodywhole-body-relevancewhole-body-satisfactioncriticaloperation create-thing declares 2 distinct required response keysno oracle covers every required response key of operation create-thing at one addressed step, in both channels
no-operation-inventorysuccess-indicator-separationsuccess-indicator-separation-relevancesuccess-indicator-separation-satisfactioncriticalthe contract declares no operation, so the declaration this rule reads is absentthe contract declares no operation, so the site this rule fires on has no declaration to witness
no-operation-inventorywhole-bodywhole-body-relevancewhole-body-satisfactioncriticalthe contract declares no operation, so the declaration this rule reads is absentthe contract declares no operation, so the site this rule fires on has no declaration to witness
no-operation-inventorymalformed-inputmalformed-input-relevancemalformed-input-satisfactioncriticalthe contract declares no operation, so the declaration this rule reads is absentthe contract declares no operation, so the site this rule fires on has no declaration to witness
no-operation-inventoryper-recordper-record-relevanceper-record-satisfactioncriticalthe contract declares no operation, so the declaration this rule reads is absentthe contract declares no operation, so the site this rule fires on has no declaration to witness
no-operation-inventoryomission-and-completenessomission-and-completeness-relevanceomission-and-completeness-satisfactioncriticalthe contract declares no operation, so the declaration this rule reads is absentthe contract declares no operation, so the site this rule fires on has no declaration to witness
no-operation-inventorystate-change-read-backstate-change-read-back-relevancestate-change-read-back-satisfactioncriticalthe contract declares no operation, so the declaration this rule reads is absentthe contract declares no operation, so the site this rule fires on has no declaration to witness
per-key-split-oracleswhole-bodywhole-body-relevancewhole-body-satisfactioncriticaloperation create-thing declares 2 distinct required response keysno oracle covers every required response key of operation create-thing at one addressed step, in both channels
no-type-violating-stepmalformed-inputmalformed-input-relevancemalformed-input-satisfactioncriticaloperation create-thing declares body key nameno step invoking operation create-thing binds a type-violating matcher under a check that addresses it
absent-collection-locationsper-recordper-record-relevanceper-record-satisfactioncriticaloperation create-thing declares no collection-location list, so no collection is declared to range overoperation create-thing declares no collection-location list, so no quantifier can range over a declared collection
absent-collection-locationsomission-and-completenessomission-and-completeness-relevanceomission-and-completeness-satisfactioncriticaloperation create-thing declares no collection-location list, so no location can name a reference setoperation create-thing declares no collection-location list, so no location can be reconciled against a reference set
no-collection-quantifierper-recordper-record-relevanceper-record-satisfactioncriticaloperation list-things declares 1 collection locationno check quantifies over collection /items of operation list-things
absent-sibling-groupssibling-cross-checksibling-cross-check-relevancesibling-cross-check-satisfactioncriticalthe contract declares no sibling groupsthe contract declares no sibling groups, so no group is declared to cross-check
unaddressed-parameter-siblingsibling-cross-checksibling-cross-check-relevancesibling-cross-check-satisfactioncriticalthe contract declares 1 operation sibling groupno oracle addresses two members of the parameter sibling group limit and offset in both channels
wrong-cardinality-formomission-and-completenessomission-and-completeness-relevanceomission-and-completeness-satisfactioncriticaloperation list-things names reference set expected-things for collection /itemsno check reconciles collection /items of operation list-things against reference set expected-things in the form its page-bounded cardinality requires
no-read-back-relationstate-change-read-backstate-change-read-back-relevancestate-change-read-back-satisfactioncriticaloperation create-thing declares stateChangeMarker: trueno check relates operation create-thing’s call inputs to the response body of a later step that changes no state

Every corpus contract against every rule.

ContractRuleRelevantSatisfiedGapRelevance reasonSatisfaction reason
absent-success-indicatorsuccess-indicator-separationyesnoyesoperation create-thing nominates no success indicatoroperation create-thing nominates no success indicator, so no oracle can separate one from the body
absent-success-indicatorwhole-bodyyesyesnooperation create-thing declares 2 distinct required response keysevery operation declaring more than one required response key has an oracle covering all of them at one step
absent-success-indicatormalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
absent-success-indicatorper-recordyesyesnooperation list-things declares 1 collection locationevery declared collection location is the collection of some quantifier
absent-success-indicatorsibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
absent-success-indicatoromission-and-completenessyesyesnooperation list-things names reference set expected-things for collection /itemsevery collection location naming a reference set is reconciled against it in the declared form
absent-success-indicatorstate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
empty-channel-rolessuccess-indicator-separationnoyesnoevery operation nominates a success indicator and gives no other pointer a channel rolethe rule is relevant for no site, so satisfaction holds vacuously
empty-channel-roleswhole-bodyyesyesnooperation create-thing declares 2 distinct required response keysevery operation declaring more than one required response key has an oracle covering all of them at one step
empty-channel-rolesmalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
empty-channel-rolesper-recordyesyesnooperation list-things declares 1 collection locationevery declared collection location is the collection of some quantifier
empty-channel-rolessibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
empty-channel-rolesomission-and-completenessyesyesnooperation list-things names reference set expected-things for collection /itemsevery collection location naming a reference set is reconciled against it in the declared form
empty-channel-rolesstate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
satisfied-declarationssuccess-indicator-separationyesyesnooperation create-thing gives pointer /id a channel role beside its success indicatorevery operation the rule fires on has an oracle reading its success indicator beside another roled pointer
satisfied-declarationswhole-bodyyesyesnooperation create-thing declares 2 distinct required response keysevery operation declaring more than one required response key has an oracle covering all of them at one step
satisfied-declarationsmalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
satisfied-declarationsper-recordyesyesnooperation list-things declares 1 collection locationevery declared collection location is the collection of some quantifier
satisfied-declarationssibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
satisfied-declarationsomission-and-completenessyesyesnooperation list-things names reference set expected-things for collection /itemsevery collection location naming a reference set is reconciled against it in the declared form
satisfied-declarationsstate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
split-indicator-oraclesuccess-indicator-separationyesnoyesoperation create-thing gives pointer /id a channel role beside its success indicatorno oracle addresses operation create-thing’s success indicator beside another roled pointer at one step, in both channels
split-indicator-oraclewhole-bodyyesnoyesoperation create-thing declares 2 distinct required response keysno oracle covers every required response key of operation create-thing at one addressed step, in both channels
split-indicator-oraclemalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
split-indicator-oracleper-recordyesyesnooperation list-things declares 1 collection locationevery declared collection location is the collection of some quantifier
split-indicator-oraclesibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
split-indicator-oracleomission-and-completenessyesyesnooperation list-things names reference set expected-things for collection /itemsevery collection location naming a reference set is reconciled against it in the declared form
split-indicator-oraclestate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
no-operation-inventorysuccess-indicator-separationyesnoyesthe contract declares no operation, so the declaration this rule reads is absentthe contract declares no operation, so the site this rule fires on has no declaration to witness
no-operation-inventorywhole-bodyyesnoyesthe contract declares no operation, so the declaration this rule reads is absentthe contract declares no operation, so the site this rule fires on has no declaration to witness
no-operation-inventorymalformed-inputyesnoyesthe contract declares no operation, so the declaration this rule reads is absentthe contract declares no operation, so the site this rule fires on has no declaration to witness
no-operation-inventoryper-recordyesnoyesthe contract declares no operation, so the declaration this rule reads is absentthe contract declares no operation, so the site this rule fires on has no declaration to witness
no-operation-inventorysibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
no-operation-inventoryomission-and-completenessyesnoyesthe contract declares no operation, so the declaration this rule reads is absentthe contract declares no operation, so the site this rule fires on has no declaration to witness
no-operation-inventorystate-change-read-backyesnoyesthe contract declares no operation, so the declaration this rule reads is absentthe contract declares no operation, so the site this rule fires on has no declaration to witness
single-required-response-keysuccess-indicator-separationyesyesnooperation create-thing gives pointer /id a channel role beside its success indicatorevery operation the rule fires on has an oracle reading its success indicator beside another roled pointer
single-required-response-keywhole-bodynoyesnono operation declares more than one distinct required response keythe rule is relevant for no site, so satisfaction holds vacuously
single-required-response-keymalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
single-required-response-keyper-recordyesyesnooperation list-things declares 1 collection locationevery declared collection location is the collection of some quantifier
single-required-response-keysibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
single-required-response-keyomission-and-completenessyesyesnooperation list-things names reference set expected-things for collection /itemsevery collection location naming a reference set is reconciled against it in the declared form
single-required-response-keystate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
per-key-split-oraclessuccess-indicator-separationyesyesnooperation create-thing gives pointer /id a channel role beside its success indicatorevery operation the rule fires on has an oracle reading its success indicator beside another roled pointer
per-key-split-oracleswhole-bodyyesnoyesoperation create-thing declares 2 distinct required response keysno oracle covers every required response key of operation create-thing at one addressed step, in both channels
per-key-split-oraclesmalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
per-key-split-oraclesper-recordyesyesnooperation list-things declares 1 collection locationevery declared collection location is the collection of some quantifier
per-key-split-oraclessibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
per-key-split-oraclesomission-and-completenessyesyesnooperation list-things names reference set expected-things for collection /itemsevery collection location naming a reference set is reconciled against it in the declared form
per-key-split-oraclesstate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
empty-request-shapessuccess-indicator-separationyesyesnooperation create-thing gives pointer /id a channel role beside its success indicatorevery operation the rule fires on has an oracle reading its success indicator beside another roled pointer
empty-request-shapeswhole-bodyyesyesnooperation create-thing declares 2 distinct required response keysevery operation declaring more than one required response key has an oracle covering all of them at one step
empty-request-shapesmalformed-inputnoyesnono operation declares a request key on any transport channelthe rule is relevant for no site, so satisfaction holds vacuously
empty-request-shapesper-recordyesyesnooperation list-things declares 1 collection locationevery declared collection location is the collection of some quantifier
empty-request-shapessibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
empty-request-shapesomission-and-completenessyesyesnooperation list-things names reference set expected-things for collection /itemsevery collection location naming a reference set is reconciled against it in the declared form
empty-request-shapesstate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
no-type-violating-stepsuccess-indicator-separationyesyesnooperation create-thing gives pointer /id a channel role beside its success indicatorevery operation the rule fires on has an oracle reading its success indicator beside another roled pointer
no-type-violating-stepwhole-bodyyesyesnooperation create-thing declares 2 distinct required response keysevery operation declaring more than one required response key has an oracle covering all of them at one step
no-type-violating-stepmalformed-inputyesnoyesoperation create-thing declares body key nameno step invoking operation create-thing binds a type-violating matcher under a check that addresses it
no-type-violating-stepper-recordyesyesnooperation list-things declares 1 collection locationevery declared collection location is the collection of some quantifier
no-type-violating-stepsibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
no-type-violating-stepomission-and-completenessyesyesnooperation list-things names reference set expected-things for collection /itemsevery collection location naming a reference set is reconciled against it in the declared form
no-type-violating-stepstate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
absent-collection-locationssuccess-indicator-separationyesyesnooperation create-thing gives pointer /id a channel role beside its success indicatorevery operation the rule fires on has an oracle reading its success indicator beside another roled pointer
absent-collection-locationswhole-bodyyesyesnooperation create-thing declares 2 distinct required response keysevery operation declaring more than one required response key has an oracle covering all of them at one step
absent-collection-locationsmalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
absent-collection-locationsper-recordyesnoyesoperation create-thing declares no collection-location list, so no collection is declared to range overoperation create-thing declares no collection-location list, so no quantifier can range over a declared collection
absent-collection-locationssibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
absent-collection-locationsomission-and-completenessyesnoyesoperation create-thing declares no collection-location list, so no location can name a reference setoperation create-thing declares no collection-location list, so no location can be reconciled against a reference set
absent-collection-locationsstate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
empty-collection-locationssuccess-indicator-separationyesyesnooperation create-thing gives pointer /id a channel role beside its success indicatorevery operation the rule fires on has an oracle reading its success indicator beside another roled pointer
empty-collection-locationswhole-bodyyesyesnooperation create-thing declares 2 distinct required response keysevery operation declaring more than one required response key has an oracle covering all of them at one step
empty-collection-locationsmalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
empty-collection-locationsper-recordnoyesnoevery operation declares an explicitly empty collection-location listthe rule is relevant for no site, so satisfaction holds vacuously
empty-collection-locationssibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
empty-collection-locationsomission-and-completenessnoyesnono declared collection location names a reference setthe rule is relevant for no site, so satisfaction holds vacuously
empty-collection-locationsstate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
no-collection-quantifiersuccess-indicator-separationyesyesnooperation create-thing gives pointer /id a channel role beside its success indicatorevery operation the rule fires on has an oracle reading its success indicator beside another roled pointer
no-collection-quantifierwhole-bodyyesyesnooperation create-thing declares 2 distinct required response keysevery operation declaring more than one required response key has an oracle covering all of them at one step
no-collection-quantifiermalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
no-collection-quantifierper-recordyesnoyesoperation list-things declares 1 collection locationno check quantifies over collection /items of operation list-things
no-collection-quantifiersibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
no-collection-quantifieromission-and-completenessyesyesnooperation list-things names reference set expected-things for collection /itemsevery collection location naming a reference set is reconciled against it in the declared form
no-collection-quantifierstate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
absent-sibling-groupssuccess-indicator-separationyesyesnooperation create-thing gives pointer /id a channel role beside its success indicatorevery operation the rule fires on has an oracle reading its success indicator beside another roled pointer
absent-sibling-groupswhole-bodyyesyesnooperation create-thing declares 2 distinct required response keysevery operation declaring more than one required response key has an oracle covering all of them at one step
absent-sibling-groupsmalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
absent-sibling-groupsper-recordyesyesnooperation list-things declares 1 collection locationevery declared collection location is the collection of some quantifier
absent-sibling-groupssibling-cross-checkyesnoyesthe contract declares no sibling groupsthe contract declares no sibling groups, so no group is declared to cross-check
absent-sibling-groupsomission-and-completenessyesyesnooperation list-things names reference set expected-things for collection /itemsevery collection location naming a reference set is reconciled against it in the declared form
absent-sibling-groupsstate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
empty-sibling-groupssuccess-indicator-separationyesyesnooperation create-thing gives pointer /id a channel role beside its success indicatorevery operation the rule fires on has an oracle reading its success indicator beside another roled pointer
empty-sibling-groupswhole-bodyyesyesnooperation create-thing declares 2 distinct required response keysevery operation declaring more than one required response key has an oracle covering all of them at one step
empty-sibling-groupsmalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
empty-sibling-groupsper-recordyesyesnooperation list-things declares 1 collection locationevery declared collection location is the collection of some quantifier
empty-sibling-groupssibling-cross-checknoyesnothe contract declares explicitly empty operation and parameter sibling groupsthe rule is relevant for no site, so satisfaction holds vacuously
empty-sibling-groupsomission-and-completenessyesyesnooperation list-things names reference set expected-things for collection /itemsevery collection location naming a reference set is reconciled against it in the declared form
empty-sibling-groupsstate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
unaddressed-parameter-siblingsuccess-indicator-separationyesyesnooperation create-thing gives pointer /id a channel role beside its success indicatorevery operation the rule fires on has an oracle reading its success indicator beside another roled pointer
unaddressed-parameter-siblingwhole-bodyyesyesnooperation create-thing declares 2 distinct required response keysevery operation declaring more than one required response key has an oracle covering all of them at one step
unaddressed-parameter-siblingmalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
unaddressed-parameter-siblingper-recordyesyesnooperation list-things declares 1 collection locationevery declared collection location is the collection of some quantifier
unaddressed-parameter-siblingsibling-cross-checkyesnoyesthe contract declares 1 operation sibling groupno oracle addresses two members of the parameter sibling group limit and offset in both channels
unaddressed-parameter-siblingomission-and-completenessyesyesnooperation list-things names reference set expected-things for collection /itemsevery collection location naming a reference set is reconciled against it in the declared form
unaddressed-parameter-siblingstate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
unnamed-reference-setsuccess-indicator-separationyesyesnooperation create-thing gives pointer /id a channel role beside its success indicatorevery operation the rule fires on has an oracle reading its success indicator beside another roled pointer
unnamed-reference-setwhole-bodyyesyesnooperation create-thing declares 2 distinct required response keysevery operation declaring more than one required response key has an oracle covering all of them at one step
unnamed-reference-setmalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
unnamed-reference-setper-recordyesyesnooperation list-things declares 1 collection locationevery declared collection location is the collection of some quantifier
unnamed-reference-setsibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
unnamed-reference-setomission-and-completenessnoyesnono declared collection location names a reference setthe rule is relevant for no site, so satisfaction holds vacuously
unnamed-reference-setstate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
wrong-cardinality-formsuccess-indicator-separationyesyesnooperation create-thing gives pointer /id a channel role beside its success indicatorevery operation the rule fires on has an oracle reading its success indicator beside another roled pointer
wrong-cardinality-formwhole-bodyyesyesnooperation create-thing declares 2 distinct required response keysevery operation declaring more than one required response key has an oracle covering all of them at one step
wrong-cardinality-formmalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
wrong-cardinality-formper-recordyesyesnooperation list-things declares 1 collection locationevery declared collection location is the collection of some quantifier
wrong-cardinality-formsibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
wrong-cardinality-formomission-and-completenessyesnoyesoperation list-things names reference set expected-things for collection /itemsno check reconciles collection /items of operation list-things against reference set expected-things in the form its page-bounded cardinality requires
wrong-cardinality-formstate-change-read-backyesyesnooperation create-thing declares stateChangeMarker: trueevery state-changing operation is read back through a later non-state-changing step
no-state-change-markersuccess-indicator-separationyesyesnooperation create-thing gives pointer /id a channel role beside its success indicatorevery operation the rule fires on has an oracle reading its success indicator beside another roled pointer
no-state-change-markerwhole-bodyyesyesnooperation create-thing declares 2 distinct required response keysevery operation declaring more than one required response key has an oracle covering all of them at one step
no-state-change-markermalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
no-state-change-markerper-recordyesyesnooperation list-things declares 1 collection locationevery declared collection location is the collection of some quantifier
no-state-change-markersibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
no-state-change-markeromission-and-completenessyesyesnooperation list-things names reference set expected-things for collection /itemsevery collection location naming a reference set is reconciled against it in the declared form
no-state-change-markerstate-change-read-backnoyesnono operation declares stateChangeMarker: truethe rule is relevant for no site, so satisfaction holds vacuously
no-read-back-relationsuccess-indicator-separationyesyesnooperation create-thing gives pointer /id a channel role beside its success indicatorevery operation the rule fires on has an oracle reading its success indicator beside another roled pointer
no-read-back-relationwhole-bodyyesyesnooperation create-thing declares 2 distinct required response keysevery operation declaring more than one required response key has an oracle covering all of them at one step
no-read-back-relationmalformed-inputyesyesnooperation create-thing declares body key nameevery operation declaring a request key has a type-violating step some check addresses
no-read-back-relationper-recordyesyesnooperation list-things declares 1 collection locationevery declared collection location is the collection of some quantifier
no-read-back-relationsibling-cross-checkyesyesnothe contract declares 1 operation sibling groupevery declared sibling group has an oracle reading two of its members
no-read-back-relationomission-and-completenessyesyesnooperation list-things names reference set expected-things for collection /itemsevery collection location naming a reference set is reconciled against it in the declared form
no-read-back-relationstate-change-read-backyesnoyesoperation create-thing declares stateChangeMarker: trueno check relates operation create-thing’s call inputs to the response body of a later step that changes no state