Genesis PreviewE1 admittedSemantic Snapshot implemented500 Atlas identitiesQuery Lab: liveRead-onlyNo arbitrary URLsHosted CI: startup blocked

Live read-only Genesis baseline plus protected E4.7 agent, ontology and model candidates. Public MCP, frontier-model execution and TNOE training are not deployed; no arbitrary URLs.

TWIRX Reference implementation and public service of the Typed Web Commons

Evidence record

From source bytes to a million-packet, proof-bearing Utility Universe.

E1 establishes the evidence kernel. Later gates add typed operations, Atlas admission, immutable semantic packets, a real historical delta, materialized views, and now a privacy-safe Opportunity release candidate. Every figure remains tied to a report or manifest.

A verified kernel and a small end-to-end release

E1 establishes the evidence spine. Later local gates add typed operations, Atlas admission, semantic packets, immutable views, queries and deltas. The released baseline snapshot is implemented, validated and served by the public read-only Query Lab. The larger E4 Opportunity candidate remains local. None of this authorizes arbitrary URLs, production write actions or a mutable semantic database on the current shared host.

What E1 proves Implemented

For the controlled source representation and the committed adversarial corpus, the implementation can bind retrieved bytes to a canonical observation, independently verify those bytes in Go and in C, and deterministically extract a source-native statement plus an explicit semantic interpretation and a complete derivation record — while offline.

It also proves rejection behaviour for the bounded classes represented by the public vectors, and it proves that the local demonstration does not need the origin to remain available after observation. Those two properties are what make the evidence claim meaningful: a result that can be recomputed from stored bytes after the source is gone is a result that can be audited.

Everything on this page is copied from reports/gate-1-genesis.md, the committed evidence report. Where this page and the report disagree, the report is authoritative. The same figures are published as project-status.json.

The path it proves

  1. Controlled originA local fixture server, not a production source. Loopback access is denied unless explicitly enabled.
  2. Policy-constrained observationHTTP GET under an explicit URL policy with bounded time, size, redirects, and ports.
  3. Content-addressed evidenceThe response body is stored under its SHA-256 digest and retrieved by that digest.
  4. Deterministic CBOR envelopeRetrieval metadata is bound to the evidence digest in a canonical encoding with a normative CDDL schema.
  5. Go verifier and independent C verifierTwo implementations validate the same envelope and body against the same committed vectors.
  6. Origin stoppedThe fixture server is shut down. Nothing after this point may contact the network.
  7. Deterministic offline extractionA manually admitted adapter reads the stored bytes. No shell, no network, no model.
  8. Native statement and semantic viewThe provider's own term and lexical value are retained beside the transformed value.
  9. Field-level provenanceEvery emitted field carries request URL, final URL, retrieval time, body and observation digests, adapter identity and digest, extraction method, locator, transform chain, and mapping relation.

Reproduce it

The acceptance sequence runs from a clean generated-artefact state and requires no public internet. Requirements are Go 1.23 or later (1.26 recommended), GCC with C2x support, Clang 17 or later for the sanitizer tests, plus Bash, Python 3, and curl.

git clone https://github.com/banga-agents/twirx-public.git
cd TWIRX

make clean && make build && make test && make demo

make test runs the normal Go tests, every configured Go fuzz target, the Clang ASan/UBSan C corpus, 5,000 libFuzzer executions, the offline end-to-end test, and the documentation navigation check. make demo observes the local fixture, verifies it in Go and C, stops the origin, and completes extraction from evidence.

Inspect a single result by hand

bin/tw observe --url http://127.0.0.1:18080/product/sku-001 \
  --out var/demo --cas var/cas --allow-loopback

bin/tw verify --observation var/demo/observation.cbor --cas var/cas
bin/tw-verify-c var/demo/observation.cbor var/cas

# This command does not contact the origin.
bin/tw extract --observation var/demo/observation.cbor --cas var/cas \
  --adapter adapters/testorigin-product/adapter.json \
  --out var/demo/result.json

The --allow-loopback flag weakens the public network policy for local fixtures only. It must never become an option on a public service.

Evidence record

Commits and status
Evidence date2026-08-11
StatusLocal acceptance passed. Hosted CI has not executed.
Baseline commit6df221bde6f2f7e0535df178104e8b1a93c11bb8
Implementation commit tested1d17d5b541176fdb6b742caa48f0f55a14dfa206
Evidence commit40210f3cf73004d454733d8b09048c2c5391b4d4
Merge commitac4f9948ad21b319b11f9caeee9bd4e472c39780
Reportreports/gate-1-genesis.md

The report is committed after the implementation it describes, so its own commit identifier is intentionally not the tested implementation identifier.

Toolchain and host

Versions used for the recorded run
ComponentVersion
HostLinux 7.1.3-arch1-1, x86_64
Gogo1.26.5-X:nodwarf5 linux/amd64
GCC16.1.1 20260625
Clang22.1.8
Python3.14.6
Bash5.3.15(1)-release
MakeGNU Make 4.4.1
ShellCheck0.11.0
Git2.55.0

The repository has no go.sum, and this gate adds no third-party Go runtime dependency. A repository scan for common private-key, GitHub token, AWS access-key, and Slack token patterns returned no match outside generated directories and Git metadata.

Conformance totals

Test and conformance evidence
Evidence Passed Failed Notes
Named Go test events 940 7 tested packages; two command packages have no test files
Observation vectors in Go 160 2 accepted, 12 envelope rejects, 2 evidence rejects
Observation vectors in C 160 The same committed inputs and expectations as Go
Corrupted CAS checks 20 One Go check and one C check
Extraction vectors 110 5 accepted, 6 rejected
Network-policy tests 80 Local fixtures only
Offline end-to-end test 10 Extraction succeeds after the origin stops
Documentation navigation 10 Configuration parsed and all navigation targets existed

Static and hygiene checks

Race detector, go vet, gofmt, ShellCheck, Clang static analysis, secret scan, and the stopped-origin demonstration all passed. The C verifier was additionally built under both GCC and Clang with -Wall -Wextra -Werror -Wconversion -Wshadow -Wpedantic.

Fuzzing and sanitizers

Four Go fuzz targets and one C libFuzzer target ran clean. The independent verifier was compiled with -fsanitize=address,undefined -fno-omit-frame-pointer; ASan and UBSan emitted 0 findings. The parser-only C harness ran 5,000 mutations seeded by every shared observation vector without a crash or sanitizer finding. That harness performs no filesystem or network operation.

Go fuzz smoke-run executions
TargetExecutions
Observation parser138,620
JSON Pointer55,183
Manifest decoder83,640
Bounded extraction72,160

How to read these numbers

The execution counts are host- and scheduling-dependent. The gate is the absence of a panic or a failing invariant, not a throughput claim. Short fuzz runs over a small corpus do not prove parser correctness; they only fail to disprove it. This is unresolved risk R5 below.

Coverage

Statement coverage from go test -cover ./...
PackageCoverage
internal/adapter71.3%
internal/atomicfile56.8%
internal/cas63.0%
internal/cborlite61.3%
internal/jsonbounded76.5%
internal/observation56.1%
internal/safefetch76.7%

Command packages report 0% because they have no direct Go tests; their current path is exercised by the shell end-to-end test and the demonstration. Adding CLI error-path tests is unresolved risk R6.

Benchmark scope

BenchmarkResolveJSONPointer-16  271.7 ns/op  128 B/op  8 allocs/op

Recorded on AMD Ryzen 7 6800U, Linux/amd64, 16 logical workers.

What this figure is not

A narrow extraction primitive measured on one recorded host. It is not an end-to-end throughput figure and it is not evidence that TWIRX is faster than browser execution.

Hosted CI status Not proven

The public `genesis` job exists with runner_id 0 and no steps. A CI-only rerun produced the same account-level startup failure.

GitHub's exact annotation is: The job was not started because your account is locked due to a billing issue. Run: https://github.com/banga-agents/twirx-public/actions/runs/31507308068

Remaining cause: The GitHub account billing lock must be resolved by the account owner. The workflow registered correctly and no workflow correction is warranted.

Consequence

Complete local validation is the executed release evidence; hosted execution remains unavailable and is reported separately. Until a hosted runner executes the suite, no reader should treat E1 as independently reproduced. The evidence is real, it is reproducible from the commands above, and it has been produced on exactly one host by exactly one party. Independent reproduction is the next admission condition, not a formality.

What E1 does not prove

  1. That provider content, a semantic mapping, or a retrieval timestamp is objectively true.
  2. Publisher identity or authority.
  3. Arbitrary websites, HTML, JavaScript, browser execution, model output, writes, payments, registry operation, or multi-tenant service.
  4. Production DNS-rebinding resistance, egress isolation, or safe public arbitrary-URL deployment.
  5. Signatures, release provenance, external transparency, or protection against a host compromise that replaces code and evidence.
  6. The absence of parser defects. Finite tests and short fuzz runs cannot establish it.

Unresolved risks

Seven risks remain open against E1. They are published here in full and unedited because a risk register that only appears in a repository file is a risk register designed not to be read.

  1. URL and resolved-address checks are application-layer controls. Production deployment still needs separate worker and control networks, DNS and egress enforcement, metadata isolation, and quotas.
  2. Observation v1 records the request and final URL but not the redirect chain or selected transport headers. A later immutable transport-evidence artifact is needed without mutating v1.
  3. The adapter runtime has no independent second implementation. Its manifest and result formats remain pre-stable and unsigned.
  4. Atomic publication is per file, not a transaction spanning every file in an observation bundle. Destination directories and CAS roots are assumed to be trusted configuration, and filesystem durability semantics vary.
  5. The corpus is intentionally small and the fuzz durations in normal tests are smoke tests. Longer scheduled fuzzing and external review remain necessary.
  6. Direct command-package coverage is absent even though the shell workflow exercises their current happy path. CLI error-path tests should be added at the next maintenance gate.
  7. Local filesystem compromise can replace implementation and evidence together. Signed releases and external transparency are out of Gate 1.

R1 is expanded on the security page. R3 and R4 are admission conditions for later gates on the progress page.

E2 — Typed Provenance Lab Implemented

Implemented locally; immutable public Lab live

Local implementation acceptance passed. The typed read-only operation and bindings exist, and the HTTPS public Lab serves one admitted immutable snapshot through a loopback-only runtime. Fresh-origin execution remains constrained by explicit policy, route-bound work orders, and the production egress boundary.

E2 proves that one canonical operation definition can expose a real read-only resource to an agent through CLI, JSON Schema, OpenAPI, and MCP at once — including against a live external API, not only a fixture.

Catalog

Three reviewed catalog entries, 5 operations, one contract source
OriginKindOperations
TWIRX project status Publisher-authored project.getStatus, project.getEngineeringGateReport, project.listUnresolvedRisks
Controlled fixture origin Controlled fixture fixture.getOffer
World Bank Indicators API Live external official API development.getIndicator

Bindings generated from contracts/e2/contracts.json: CLI reference, JSON Schema, OpenAPI 3.1, MCP tool definitions.

ADR 003 — resolving the digest cycle

The original work order asked for a canonical result that binds both its own digest and the digest of a manifest that hashes that result — a cryptographic cycle.

content artifacts → result-core bytes → result digest → final manifest → bundle ID → API publication record

The result-core contains no self-digest. The bundle ID is the SHA-256 of the exact canonical manifest bytes. CLI, API, MCP, and UI wrappers expose both detached identifiers. Shared vectors explicitly reject missing, cyclic, substituted, malformed, symlinked, and trailing-byte manifests.

Conformance

E2 conformance and adversarial evidence
EvidenceValueScope
Named Go test passes154
0 failed
Full E1+E2 suite, one recorded host
Go fuzz targets7
passed
3 new E2 targets plus the 4 carried from E1
C libFuzzer executions10,000
5,000 + 5,000, two harnesses, 0 crashes
E1 observation harness plus a second E2 harness
Shared E2 bundle/artifact cases13
accept valid; reject corrupt, missing-manifest, symlinked, trailing-byte
Go and restricted C, same committed vectors
Concurrent identical publications16
passed under the race detector
One host
Catalog entries3
including one live external official API
TWIRX itself, a fixture, World Bank Indicators

Sample results

Fresh-mode invocations, this evidence run
OriginOperationFieldsResult digest
twirx-projectproject.getStatus4sha256:5b072d53786500d8ba16fb354d66f91f3444a2e19d0d83d6ec73c3b81dc6e495
world-bank-indicatorsdevelopment.getIndicator4sha256:7dd49166746e839f8a604b9757e87537dfda077ba3f31a9a42618089dec8d7e5

Controlled browser comparison

One controlled 156-byte local fixture only. Explicitly not a generalized or universal claim.

Chromium 150.0.7871.114, fresh profile, background features disabled, every non-loopback host mapped to NOTFOUND, compared against the promoted offline typed adapter for the same fixture.

scripts/compare-e2-browser.py
MeasureControlled browserPromoted typed adapterRatio
Wall time2.586759 s0.062731 s~41.2×
Peak child resident memory240,764 KiB22,908 KiB~10.5×
Agent-input representation320 bytes of dumped DOM191 bytes of compact typed values~1.7×
Network requests1 allowed loopback plus blocked background attempts0—
Evidence-bearing fields05—

Chromium still attempted built-in requests to three Google hosts even in this fixture-only run; the resolver rule blocked them. The full typed result including proof references is 3,674 bytes — larger than the dumped source, because it intentionally carries native and semantic views, transformations, mappings, and digest bindings. The 191-byte figure is the compact value view an agent would actually consume.

Load

Nominal: 20 requests at concurrency 8, 20 succeeded, 0 rate-limited, average 0.025419s, p95 0.059545s. Overload: a configured burst of 20 admitted exactly 20 successes and rejected 30 requests with HTTP 429. Host: AMD Ryzen 7 6800U, loopback, same host as client, no network origin latency.

Security

Rejects non-public addresses; constrains the initial URL and every redirect to the reviewed catalog hostname; bounds response bytes, redirects, and a strict representation-header allowlist.

Excluded from the trusted request path: Cookies, authorization headers, arbitrary headers, credentialed browser requests, browser execution, model calls, shell execution, plugins, cgo, and Go's unsafe package.

Gitleaks 8.30.1: zero items in 21 reachable commits and the full working tree. TruffleHog 3.96.0: zero verified items, one unverified heuristic hit — the intentional embedded-credential rejection fixture in internal/safefetch/safefetch_test.go.

The proposed Lab Caddy config was piped over SSH to the VPS's installed Caddy binary and validated without activating it. No Lab file, service unit, Caddy site, DNS record, or firewall rule was activated by this validation.

E2 unresolved risks

  1. The public Lab serves immutable snapshot state only. It cannot refresh origins or exercise the fresh-origin egress path.
  2. Application URL and DNS controls are not network isolation. A separate least-privilege worker/egress boundary, private-range and metadata blocking, network-layer redirect tests, quotas, monitoring, and incident/revocation procedures are still needed before public fresh-origin execution.
  3. In-memory rate limits reset on restart and are not distributed. There is no cache, origin-health probe, or circuit breaker; health is honestly reported as not_probed.
  4. An external provider can change content, schema, policy, or availability at any time. The committed replay fixture is evidence of one representation, not a claim of provider permanence.
  5. Restricted C validates canonical structure and digest relationships but does not independently execute JSON extraction and semantic transformation. A second adapter implementation remains future work.
  6. A sufficiently privileged local filesystem attacker can replace implementation and evidence together. Regular-file checks and rehashing narrow substitution but do not defeat host compromise.
  7. The E2 corpus covers publisher JSON, a controlled fixture, and one official JSON API. JSON-LD, Atom/RSS/XML, structured HTML, and real multi-origin coverage remain E3 work.
  8. Performance and load evidence comes from one local host and small fixtures, and excludes public TLS, VPS contention, distributed load, and general origin latency.
  9. Hosted GitHub CI still has no executed runner evidence.
  10. The fresh public repository excludes legacy private PR history and raw third-party archive bodies; reviewers cannot rebuild the two private-evidence integration cases without reacquisition or separately authorized evidence access.

Full report: reports/gate-e2-live-provenance-lab.md. Machine-readable: e2-lab.json.

E3 — Semantic Snapshot Implemented

E3 now connects the Atlas and admission boundary to a sealed archive acquisition, proof-linked semantic packets, immutable materialized views, typed queries and a real historical origin delta. It is a small local release, not a 500-origin live service.

Selected Atlas identities
500selection only
Completed policy decisions
3human-reviewed
Public packets
153 origins
Materialized views
2immutable snapshot
Origin deltas
1historical archive evidence
Runtime origin calls
0snapshot query path

Immutable release identity

sha256:54739822257ef617b136454285a8fd47802f0960c7cf53a49abd2d5d1f1389c5

The snapshot contains 20 packets in total: 15 from public-origin evidence and 5 controlled fixtures. The separate 25,018-packet capacity run is fixture-dominated and is never presented as a real public corpus.

Real two-period archive delta

Two sealed RFC Editor records preserve distinct source-native title values and emit one origin delta. No semantic or canon delta is emitted because neither the mapping nor canon changed. Inspect the complete trace.

Complete validation

Revision 2c85b56322d381409ca11001eacec8a8111d251d passed the offline suite, race detector, vet, 22 Go fuzz targets, shared Go/C conformance, ASan/UBSan and 3 independent C fuzz campaigns of 5,000 runs each.

Residual release limitations

  • The public Query Lab is an immutable snapshot edge, not a continuously refreshed origin service.
  • The sanitized source repository is public; retained raw archive bodies remain private by policy.
  • An encrypted Storage Box restore passes; a second versioned Object Storage release remains to be completed.
  • Raw archive evidence contains third-party page material; public redistribution requires an explicit treatment.
  • The protected deployed corpus is intentionally small. The larger Opportunity candidate demonstrates depth from one source family, not broad multi-source semantic coverage.

Reports: real archive evidence and FUTO readiness. Machine-readable: futo-release.json.

E4 — Opportunity Utility release candidate Implemented

The founder-approved one-shot Grants.gov observation now compiles into a large, privacy-safe, proof-linked Opportunity Universe. This gate demonstrates real source-derived semantic scale and useful typed retrieval; it remains a local release candidate until target-host resource and deployment admission.

Records accepted
83,087of 83,133
Packets
1,037,679real source-derived
Candidate mappings
747,783not canon
Opportunity frames
83,087proof-linked
Combined frames
83,122two universes
Runtime origin calls
0immutable query path

Authority and retrieval scope

The policy decision was reviewed at 2026-08-12T04:33:44Z and binds one exact bulk source, one manual execution and the proposal’s approved fields and limits. The acquisition used 75 bounded range requests for 77,910,428 bytes. The scheduler remained disabled. No additional route, file, retention class or execution was authorized.

Privacy boundary

The private projection excluded 247,382 contact fields and 83,130 descriptions. Because allowed eligibility prose contained contact-like material, 59,189 fields became proof-linked withheld states and the public release contains 0 eligibility lexical values. Raw acquisition bytes and the private projection are not public.

Verification scope

  • Every packet, mapping claim, frame, artifact digest, privacy invariant and frame-to-packet reference in the release candidate.
  • Complete Go release verification: 26.405 seconds on the recorded host.
  • Independent restricted-C verification: 132 deterministic artifacts — 63 packets, 63 mappings and 6 frames.
  • No full-C-corpus claim is made; the C evidence is explicitly a deterministic sample while Go verifies the complete release.

Typed query evidence

The recorded NSF query returned 20 proof-linked frames from 83,122 available frames with zero network, browser, live-source or model-authority calls. Across 1,000 warm local executions, p95 query-plus-trace-and-decode time was 3.107 ms. One local host, immutable 273165514-byte combined segment, warm in-process exact typed query plus trace and decode of 20 results; excludes process startup, public-network latency and origin retrieval.

Manifest identity: sha256:cbaaa1cd2b41f698f7b423a516727f5a7907bba56ac6c17136528f40f45d7690. Machine-readable status: e4-utility-release.json. Independent sample: sample manifest.