AcmeTest reference consumer · Bank integrator API

External consumer verdict

Can a separate AcmeTest-shaped client request fixed forms, an adaptive pool, or a legacy import and receive an assignable Platform3-native bank without authoring or scoring locally?

DO NOT ADOPT
The HTTP contract is honest and secure, but zero of three required adoption journeys completes. Every fresh write stops at a typed 424 release gate before an operation or assignable Platform3 bank exists.

Published HTTP contract

PASS

Auth, validation, tenant routing, typed errors, list behavior, docs availability, and the stable JSON envelope matched the published surface.

AcmeTest adoption job

0 / 3

Fixed, adaptive, and legacy requests all return typed 424 before creating an operation.

Security boundary

PASS

Anonymous access and tenant-header override are denied. A real tenant-B operation is readable by its owner and indistinguishable from an absent ID to tenant A.

Upstream reality

NO FRESH PROOF

The fresh consumer operations emitted zero upstream receipts. Historical receipts are labeled non-certifying context.

Consumer-run suite

The reusable client in consumer/client.mjs called the stable production URL with an environment-only reviewer JWT. The suite retains safe status and problem fields, never the token, answer keys, item bodies, or upstream credentials.

JourneyRequired adoption resultObservedVerdict
Five parallel fixed forms202 → ready; five equivalent Platform3 form IDs424 dependency_contract_unavailable at content/register_fixed_forms; no operationFAIL
Adaptive pool202 → ready; reconciled adaptivePool and Platform3 bank ID424 dependency_contract_unavailable at qti/register_adaptive_pool; no operationFAIL
Legacy TimeBack import202 → ready; authoritative all-17 provenance424 dependency_contract_unavailable at qti/resolve_legacy_qti_identity; no operation. The 17-ID shape probe uses synthetic UUIDs and is not claimed as provenance.FAIL

Cross-module and upstream proof

Fresh production result: no consumer operation was created, so there are no fresh attributable calls to CASE, Incept, QTI, or Content. This is negative evidence, not integration proof.

The approved implementation evidence is fingerprinted in provenance.json. It contains historical real-wire receipts, but the current fixed record is a 424 negative probe, adaptive was repaired from stored ready to public failed, and legacy is failed. None certifies a currently assignable bank; none is attributed to this run.

Security and load

Cross-tenant result: PASS.

Anonymous tenant-data access returned 401; a caller-supplied mismatched tenant header returned 403. A real tenant-B operation returned 200 to its owner and the same 404 body as an absent control to tenant A. Twelve concurrent authenticated list requests verify JSON-envelope stability and record p50/p95/max latency in the machine-readable run.

Rollback route

The earliest in-repo correction is Bank / integrator_api / implementation@mastery_gate. This run uses the Bank implementation’s own pinned production smoke test_spec d2f2a326-c77a-4dc1-83d6-88430e218611. Bank must rerun and certify its fixed, adaptive, and legacy conformance chain; external Platform3 and Incept gaps remain explicitly tracked and must not be replaced locally. Exact quote-anchored routing is published in failure-routing.json.

Certification bar

The OpenID Foundation Certification program is the comparison bar: independently runnable conformance evidence against a live implementation, with certification withheld when the required profile does not pass. This report matches that evidence discipline and intentionally grants no adoption certificate. The timestamped fetch and content fingerprint are in benchmark.json.

Evidence and rerun

consumer-run.json provenance.json run.log failure-routing.json benchmark.json client.mjs run.mjs artifact verifier package.json Published Bank docs

set -a; source .env.local; set +a; npm --prefix loop/bank/artifacts/integrator_api/integration run run