← Conformance

aicent-uri-grammar

our vectors · recorded run · lab PR #223 under review

IDENTITY · QUALITY · ASSURANCE SEALED ARTIFACTS · IQA.ORG IQA

Abstract

This page is the recorded run of the rttp URI grammar over the family’s own vectors: 26/26 cases agree and 13/13 mutants killed, exit 0, output recorded byte for byte and replayed byte-identical on a second host and a second platform. The run is author-produced (the author’s own checkers over the author’s own vectors): it records that the vectors and their battery behave exactly as documented, and it is not an independent verification and certifies nothing. The whole-session console output is embedded uncut in the Verbatim block; every number on this page is read back from the recorded file.

Scope and method

The family tests the rttp URI grammar: the ABNF shape (three dot-separated segments, hash-intent versus name-intent, single-segment action) and the exclusions (lowercase canonical form, no userinfo, port, query or fragment, no percent-encoded octets, no “rttps” fallback), with one disclosed tightening (leading hyphen) and one licensed ambiguous edge (percent-encoding). It is anchored to draft-li-rttp-iqa-addressing-02 (Informational, posted 2026-11-01), sections 4.1 and 4.2, pinned at sha256 02491c5a…85044. The corpus belongs to this repository’s candidate set (commit 8088cbb, four files per family, digest-pinned in the download table below). Method: the runner loads the family’s own checker, scores every case against the frozen vectors, records the derived verdict next to the declared expectation, then runs every mutant in the family’s battery and records which cases kill it. The declared claim set: vectors and battery behave as documented — qualifier: author-produced, no runtime certification.

Results

26/26 cases agree across 1 rules; 13/13 mutants killed. Per-rule breakdown:

ruleagreecases
R-GRAMMAR2626

Instrumentation contract

Instrumented, not asserted: the battery is the instrument. Each mutant weakens or distorts exactly one rule of the checker; a kill requires that some frozen case then disagrees with its frozen expectation. Both global directions are always present (always-accept and always-reject, or always-conformant and always-nonconformant), so a vacuous battery cannot pass. The recorded output carries the kill attribution case by case; nothing on this page is asserted without a recorded line behind it.

Mutation battery — full table

All 13 mutants, no more and no less — the table is the battery:

mutantstatekilled by
grammar: uppercase normalised awaykilledUG-N01 UG-N02 UG-N03 UG-N17
grammar: any scheme acceptedkilledUG-N03 UG-N04 UG-N17
grammar: userinfo/port/query/fragment allowedkilledUG-N03 UG-N05 UG-N06 UG-N07 UG-N08 UG-N17
grammar: segment count flexiblekilledUG-N02 UG-N03 UG-N07 UG-N08 UG-N09 UG-N10 UG-N11 UG-N13 UG-N14 UG-N17 UG-A01
grammar: empty segments allowedkilledUG-N11
grammar: charset widenedkilledUG-N12
grammar: path flexiblekilledUG-N13 UG-N14
grammar: leading-hyphen tightening droppedkilledUG-N15 UG-N16
grammar: whitespace stripped silentlykilledUG-N17
grammar: percent-encoding always rejectedkilledUG-A01
grammar: percent-encoding silently normalisedkilledUG-A01
grammar: always acceptkilledUG-N01 UG-N02 UG-N03 UG-N04 UG-N05 UG-N06 UG-N07 UG-N08 UG-N09 UG-N10 UG-N11 UG-N12 UG-N13 UG-N14 UG-N17 UG-N15 UG-N16 UG-A01
grammar: always rejectkilledUG-P01 UG-P02 UG-P03 UG-P04 UG-P05 UG-P06 UG-P07 UG-P08 UG-N01 UG-N02 UG-N03 UG-N04 UG-N05 UG-N06 UG-N07 UG-N08 UG-N09 UG-N10 UG-N11 UG-N12 UG-N13 UG-N14 UG-N15 UG-N16 UG-A01

Diagnostics

No separate diagnostic pass was run for this family: the mutation battery serves as the diagnostic instrument, and its full table above is the diagnostic record. The runner adds no diagnostics of its own beyond what the family’s checker and battery emit.

Oracle checkpoints

Not applicable in the interop sense: this family has no external oracle to check against. The frozen vectors carry their own expectations, anchored sentence by sentence to the pinned draft text (each case lists its basis sections in vectors.json); the checker re-derives every decision from the pinned text, not from any implementation library.

Reporting semantics

Executed, not asserted: every verdict in the Results table and every kill in the battery table was computed during the recorded run and read back from family-runner/run-output.json. No number on this page was typed by hand from memory; the summary lines in the Verbatim block are the runner’s own printed output, embedded uncut.

Exit status

exit 0 — the runner exits 0 only when every case agrees and every mutant is killed; any mismatch or any live mutant yields exit 1. The recorded run exited 0.

Negative-path self-check

Both failure directions are exercised by construction: the battery includes grammar: percent-encoding always rejected and grammar: always accept and grammar: always reject. Each was killed (see the battery table), which is the negative-path check: a checker that could not fail would leave the always-reject mutant alive, and a checker that could not distinguish would leave the always-accept mutant alive. The ambiguous case UG-A01 (percent-encoding) is scored in its licensed parts and constrains neither decision.

Determinism and cost

The recorded output is deterministic: the run was executed twice on the recording host and the two outputs are byte-identical, and the GitHub Actions replay (ubuntu-latest, CPython 3.12, run 43488086178) reproduced the recorded bytes via cmp. The output contains no timestamps, paths or environment detail by construction. Cost: standard library only, zero dependencies, wall time under one second for the whole six-family run.

Per-case results — full table

Every case, not truncated — identifier, rule, declared expectation, derived verdict, agreement:

caseruleexpectgotverdict
UG-P01R-GRAMMARacceptacceptagree
UG-P02R-GRAMMARacceptacceptagree
UG-P03R-GRAMMARacceptacceptagree
UG-P04R-GRAMMARacceptacceptagree
UG-P05R-GRAMMARacceptacceptagree
UG-P06R-GRAMMARacceptacceptagree
UG-P07R-GRAMMARacceptacceptagree
UG-P08R-GRAMMARacceptacceptagree
UG-N01R-GRAMMARrejectrejectagree
UG-N02R-GRAMMARrejectrejectagree
UG-N03R-GRAMMARrejectrejectagree
UG-N04R-GRAMMARrejectrejectagree
UG-N05R-GRAMMARrejectrejectagree
UG-N06R-GRAMMARrejectrejectagree
UG-N07R-GRAMMARrejectrejectagree
UG-N08R-GRAMMARrejectrejectagree
UG-N09R-GRAMMARrejectrejectagree
UG-N10R-GRAMMARrejectrejectagree
UG-N11R-GRAMMARrejectrejectagree
UG-N12R-GRAMMARrejectrejectagree
UG-N13R-GRAMMARrejectrejectagree
UG-N14R-GRAMMARrejectrejectagree
UG-N17R-GRAMMARrejectrejectagree
UG-N15R-GRAMMARrejectrejectagree
UG-N16R-GRAMMARrejectrejectagree
UG-A01R-GRAMMARambiguousambiguousagree

Run metadata

fieldvalue
operatorShaoBao Li (Lee) · @Aicent-com · RTTP CRI 27 · IQA CRI 28
modeA — author-produced: the author’s own checkers over the author’s own vectors. Not an independent verification; certifies nothing.
code as rungithub.com/Aicent-Stack/conformance @ 590b26b · family_runner.py sha256 5ce00209af90c7c62f432c014a96319edf64575ed1b01cf1bdfc96a9e639eabe
inputscandidate families on the same commit (8088cbb): six families, four files each, digest-pinned in the download table below
recorded outputfamily-runner/run-output.json · 45,516 B · sha256 b2347a582c3682b0fdae26401a74db78b442dfc204226d0c2d7cf344f21f6b94
recorded onWindows, CPython 3.14.2 (two runs, byte-identical)
replayed onGitHub Actions ubuntu-latest, CPython 3.12 (run 43488086178), byte-identical via cmp
defect vectors observednone — all cases agree, all mutants killed

Verbatim command and output

python3 -I family_runner.py candidates run-output.json

aicent-grant-ref             25/25 agree, 21/21 mutants killed
aicent-lease-boundary        15/15 agree, 17/17 mutants killed
aicent-ae128-fail-closed     21/21 agree, 15/15 mutants killed
aicent-pulse-header          24/24 agree, 19/19 mutants killed
aicent-uri-grammar           26/26 agree, 13/13 mutants killed
aicent-route-shard           16/16 agree, 9/9 mutants killed
summary: 127/127 cases agree, 94/94 mutants killed
status: run_matched

Uncut: the whole-session console output of the recorded run, exactly as printed.

Findings raised and revisions

Initial recorded run; no findings raised and none resolved within the run itself. Revisions to this page are append-only and will be recorded here with their reason. Known scope notes carried from the candidates: the AE-128 verification step (2) (lease against the receiver’s clock) is time-dependent and is exercised by the aicent-lease-boundary family, not this one; the iqa URI syntax is out of the aicent-uri-grammar family’s scope; the collision bounds of section 9.1 are design accounts, not conformance targets.

Artifact, download and provenance

Download — the frozen corpus, digest-pinned:

filesizesha256
CANDIDATE.md7,517 B68852d2e3f3cd41680d87315865bb6b1e6d18a7ee0972dc6add370fd578bdab2
vectors.json9,788 B091737ed07f2c70e6b79a273ca4cca339e35da41fb1b61004700eb4e79e8d5a4
check.py3,636 B11d8f34d4583573f9bd43c4c5f04a7bcb3cce80f68cde8f55f265869ad46a928
mutate.py3,679 B74d4fe7a8462daadba542552bb020784cd9976eb12ed70976fc167258ee73ebd

Artifact and seal — this page is sealed by our own organ as a single-file site freeze: aicent-uri-grammar-site-20261114a.tar.gz. The two addresses of the sealed page are carried in the one-artifact-two-addresses block at the foot of this page (a display block excluded from the page digest by design, so the digest pins exactly the text above — the addresses are derived from that digest and cannot appear inside it). Replay: recompute the sha256 of this page with that block removed and compare with the address pair in the block; the tarball’s index.html must match this page byte for byte.

Provenance — the candidate corpus was written for this repository by the draft author; no files are copied from the draft beyond short quoted sentences for rule description, and no code from any implementation is used: the checkers derive their rules from the pinned text. The runner is a thin harness over those checkers and batteries. On independence: this run is author-produced and is presented as such — its value is a complete, byte-replayable record that the vectors and batteries behave as documented; independent scrutiny is exactly what the family is offered for.

Canonical source: github.com/Aicent-Stack/conformance · candidates/aicent-uri-grammar. The family is filed at the Agent-Authority-Conformance lab as PR #223, under review. License Apache 2.0 (the license of the repository).

Citation

From this run forward, our run reports ship with a citation block: runner family_runner.py · repository Aicent-Stack/conformance (family-runner/) · operator ShaoBao Li (Lee) / Aicent Stack, RTTP CRI 27 · IQA CRI 28. We ask that any public reference to this run names the runner, its repository, and its operator.

rttp:// · the question (WHERE + WHEN) · intent side rttp://ebc5d5fd.site.iqa

intent = first 8 hex of the current page digest (the intent field is 8 lowercase hex by grammar); pillar and root are operator-chosen labels. Authority: ebc5d5fd.site.iqa.

iqa:// · the answer (WHETHER) · attestation side iqa://ebc5d5fd8af5fe02dc18031a802fa309.forge.iqa

subject = first 32 hex of the same digest; organ forge (closed set) — this is the exact subject the organ seal on this page attests, and the organ answers live at /organ-api/v1/production?subject=ebc5d5fd8af5fe02dc18031a802fa309. Each sealed cut carries its own address pair; the superseded pairs remain verifiable in the seal bundle.

Sealed · 2026-11-14 · page sha256 ebc5d5fd8af5fe02… (seal line excluded) · rttp://ebc5d5fd.site.iqa · iqa://ebc5d5fd8af5fe02dc18031a802fa309.forge.iqa · artifact: aicent-uri-grammar-site-20261114a.tar.gz