Declaration-only typed references on live GitHub and Stripe test mode
On Stripe test mode the preregistered form failed and passed only after a driver change; on GitHub a bare issue number was held when unobserved and allowed when observed, with 0 core lines changed and 41 upstream tools hidden.
Mixed resultDoes it work?Working note
- Designed for
- Built to test whether a declaration alone, with no core change, lets the guard restore typed references and enforce derivability against live services whose identifiers are bare numbers.
What was tested
A scripted MCP client, no language model, talked through the guard’s proxy to GitHub’s and Stripe’s MCP servers, one episode per threshold. A domain declaration was the only change; provider state was read by direct REST calls bypassing the proxy. Thresholds were fixed in a plan beforehand.
What we observed
Stripe failed in the preregistered form: its server could not be expressed until the declaration driver gained two generic read forms, and it passed only after that approved change. On GitHub, an unobserved duplicate-of number was held for approval under the provenance rule and not executed, while an observed one was allowed and executed; provider state matched. The core changed by 0 lines. The client saw 3 declared tools; 41 undeclared upstream tools stayed hidden.
What this means for Heimdall
This asks whether a declaration alone lets the guard enforce derivability on live services. On GitHub it did; on Stripe it did not in the preregistered form, because the declaration driver, not the core check, lacked two generic read forms.
Limits
Single scripted episodes; a non-restricted test key; reproduction uses an earlier codebase and an unpinned upstream; tool counts are that day’s and were not re-measured.
What remains open
Rerun the GitHub arm on today’s proxy with pinned upstreams.