Conformance corpus
This directory contains 47 focused research-preview cases for testing the carrier, structural, and
semantic requirements of Judgment Pack Core 0.1.0-draft. It is versioned with the draft but is not
yet a complete or normative conformance suite. Evaluator behavior is intentionally out of scope.
manifest.json is the machine-readable case index. Its shape is defined by
manifest.schema.json.
Layers
carrier/contains inputs that must be rejected before schema validation. Some files are deliberately malformed JSON, and duplicate-member cases must be parsed with duplicate detection.structural/contains well-formed JSON documents that fail the normative JSON Schema. JPS testing asserts the schema'suri,date, anddate-timeformats even though some general-purpose JSON Schema libraries treatformatas annotation-only by default.semantic/contains documents that pass structural validation but fail a prose requirement, or cannot be fully interpreted with the case's declared consumer capabilities.valid/contains documents expected to pass carrier, structural, and semantic checks. A valid result does not claim factual truth, authority, evaluator conformance, or operational fitness.
Validation proceeds in layer order. A runner should stop a case at its target layer rather than reporting downstream diagnostics for content that failed an earlier layer.
Manifest expectations
Each case records:
layer— the highest layer exercised by the case;expectedResult—valid,invalid, orunsupported;expectedDiagnostic— the primary provisional diagnostic code and JSON Pointer, ornullfor a valid case;specSection— the draft section that motivates the expectation; and- optional
supportedExtensions— the required-extension capabilities available to the consumer for that case. When omitted, the capability set is empty.
unsupported is distinct from invalid: the document is structurally readable and semantically
well-formed, but the consumer lacks a capability named by metadata.requiredExtensions.
Diagnostic codes in this corpus are test metadata, not yet a normative cross-implementation diagnostic contract. The recorded diagnostic is the primary expected result; implementations may also report additional detail. A pointer to a missing member identifies the location the member would have occupied.
Semantic checks represented here
The semantic cases exercise collection-local identifier uniqueness; declared outcome, evidence,
source, and exception-target references; reference-kind checking; recursive traversal of every
condition position for evidence-present; required-extension declaration consistency; and
required-extension capability negotiation.
Reference traversal must inspect every condition position, including root applicability, rule
conditions, exception conditions, and arbitrarily nested all, any, and not nodes. The focused
recursive fixture demonstrates the traversal requirement without defining an implementation
algorithm.
Current boundary
This corpus does not yet test condition evaluation, resolution results, resource limits, canonicalization, signatures, imports, or migration behavior. Future expansion should remain focused: one primary expectation per negative fixture, with positive, boundary, and adversarial counterparts added when the corresponding semantics become normative.
View manifest View manifest schema
Carrier cases 2
| Case | Result | Focus | Diagnostic | Spec |
|---|---|---|---|---|
carrier-invalid-json | invalid | malformed JSON is rejected before schema validation | JPS-CARRIER-INVALID-JSON | §2 |
carrier-duplicate-root-member | invalid | duplicate object member names are rejected during parsing | JPS-CARRIER-DUPLICATE-MEMBER | §2 |
Structural cases 19
| Case | Result | Focus | Diagnostic | Spec |
|---|---|---|---|---|
structural-missing-decision | invalid | required root member | JPS-STRUCTURE-REQUIRED-MEMBER | §4 |
structural-unknown-root-member | invalid | closed root object | JPS-STRUCTURE-UNKNOWN-MEMBER | §4 |
structural-relative-pack-id | invalid | pack id is an absolute URI with format assertions enabled | JPS-STRUCTURE-FORMAT-URI | §5 |
structural-invalid-published-date | invalid | source publication date format assertion | JPS-STRUCTURE-FORMAT-DATE | §6.3 |
structural-invalid-created-at | invalid | metadata creation timestamp format assertion | JPS-STRUCTURE-FORMAT-DATE-TIME | §6.8 |
structural-invalid-local-id | invalid | local identifier grammar | JPS-STRUCTURE-LOCAL-ID | §5 |
structural-invalid-pack-version | invalid | three-component pack version grammar | JPS-STRUCTURE-PACK-VERSION | §4 |
structural-invalid-fact-path | invalid | fact path syntax | JPS-STRUCTURE-FACT-PATH | §7.4 |
structural-empty-any-condition | invalid | all and any require at least one child condition | JPS-STRUCTURE-CONDITION-ARITY | §7 |
structural-force-outcome-missing-outcome | invalid | force-outcome exception requires exactly its outcome operand | JPS-STRUCTURE-EXCEPTION-SHAPE | §6.6 |
structural-unqualified-extension | invalid | reverse-domain extension namespace | JPS-STRUCTURE-EXTENSION-NAME | §9 |
structural-invalid-spec-version | invalid | exact supported specification version | JPS-STRUCTURE-SPEC-VERSION | §4 |
structural-too-few-outcomes | invalid | at least two outcomes are required | JPS-STRUCTURE-COLLECTION-ARITY | §4 |
structural-empty-rules | invalid | at least one rule is required | JPS-STRUCTURE-COLLECTION-ARITY | §4 |
structural-reserved-extension-name | invalid | specification-reserved extension namespace | JPS-STRUCTURE-EXTENSION-NAME | §9 |
structural-unknown-decision-member | invalid | closed nested Core object | JPS-STRUCTURE-UNKNOWN-MEMBER | §4 |
structural-empty-escalation-triggers | invalid | configured handoff intent has at least one trigger | JPS-STRUCTURE-ESCALATION-TRIGGERS | §6.7 |
structural-invalid-ordered-decimal | invalid | ordered comparison operands use the decimal grammar | JPS-STRUCTURE-DECIMAL-OPERAND | §2.2 |
structural-invalid-in-operand | invalid | membership comparison operands are non-empty arrays | JPS-STRUCTURE-IN-OPERAND | §7.4 |
Semantic cases 26
| Case | Result | Focus | Diagnostic | Spec |
|---|---|---|---|---|
semantic-duplicate-outcome-id | invalid | outcome identifiers are unique within their collection | JPS-SEMANTIC-DUPLICATE-ID | §3.3 |
semantic-duplicate-rule-id | invalid | rule identifiers are unique within their collection | JPS-SEMANTIC-DUPLICATE-ID | §3.3 |
semantic-duplicate-evidence-id | invalid | evidence requirement identifiers are unique within their collection | JPS-SEMANTIC-DUPLICATE-ID | §3.3 |
semantic-duplicate-source-id | invalid | source identifiers are unique within their collection | JPS-SEMANTIC-DUPLICATE-ID | §3.3 |
semantic-duplicate-exception-id | invalid | exception identifiers are unique within their collection | JPS-SEMANTIC-DUPLICATE-ID | §3.3 |
semantic-dangling-rule-outcome | invalid | rule outcome resolves to a declared outcome | JPS-SEMANTIC-UNRESOLVED-OUTCOME | §3.3 |
semantic-dangling-fallback-outcome | invalid | fallback outcome resolves to a declared outcome | JPS-SEMANTIC-UNRESOLVED-OUTCOME | §3.3 |
semantic-dangling-evidence-ref | invalid | rule evidence reference resolves to a declared evidence requirement | JPS-SEMANTIC-UNRESOLVED-EVIDENCE | §3.3 |
semantic-dangling-source-ref | invalid | rule source reference resolves to a declared source | JPS-SEMANTIC-UNRESOLVED-SOURCE | §3.3 |
semantic-dangling-exception-target | invalid | exception target resolves to a declared rule | JPS-SEMANTIC-UNRESOLVED-RULE | §3.3 |
semantic-dangling-exception-outcome | invalid | exception outcome resolves to a declared outcome | JPS-SEMANTIC-UNRESOLVED-OUTCOME | §3.3 |
semantic-dangling-exception-source-ref | invalid | exception source reference resolves to a declared source | JPS-SEMANTIC-UNRESOLVED-SOURCE | §3.3 |
semantic-dangling-applicability-evidence | invalid | applicability evidence reference resolves to a declared requirement | JPS-SEMANTIC-UNRESOLVED-EVIDENCE | §3.3 |
semantic-dangling-exception-evidence | invalid | exception-condition evidence reference resolves to a declared requirement | JPS-SEMANTIC-UNRESOLVED-EVIDENCE | §3.3 |
semantic-wrong-kind-rule-outcome | invalid | a rule identifier cannot satisfy an outcome reference | JPS-SEMANTIC-UNRESOLVED-OUTCOME | §3.3 |
semantic-dangling-nested-evidence-present | invalid | reference validation recursively traverses nested condition nodes | JPS-SEMANTIC-UNRESOLVED-EVIDENCE | §3.3 |
semantic-required-extension-unsupported | unsupported | consumer reports a declared required extension it does not support | JPS-CAPABILITY-REQUIRED-EXTENSION | §9 |
semantic-missing-required-extension-value | invalid | required extension declaration corresponds to a document extension value | JPS-SEMANTIC-MISSING-REQUIRED-EXTENSION | §9 |
valid-minimal-literal | valid | minimal structurally and semantically conforming document | — | §§2–7 |
valid-condition-branches | valid | literal, all, any, not, fact, and evidence-present condition shapes | — | §7 |
valid-exception-suppress-rule | valid | suppress-rule exception branch and resolved target | — | §6.6 |
valid-exception-force-outcome | valid | force-outcome exception branch and resolved outcome | — | §6.6 |
valid-exception-escalate | valid | escalate exception branch without an outcome or target rule | — | §6.6 |
valid-required-extension-supported | valid | consumer fully interprets a declared required extension it supports | — | §9 |
valid-hostile-optional-extension-value | valid | hostile-looking optional extension content remains inert data | — | §§9–10 |
valid-minimal-expense-approval | valid | complete cross-feature expense-approval example | — | §§4–9 |