Bounded source

CANON

Matching passages or ABSENT. It never generates an answer.

No login · no cloud · this browser only

Bot contract

CANON — BOT CONTRACT
========================================
WHAT IT IS
CANON is a bounded source for AI agents. It chunks owner-supplied
text into addressed passages and will only return matching passages
or ABSENT. It never generates an answer.

WHAT IT IS NOT
Not a chatbot. Not a summarizer. Not a search engine that invents.
No embeddings. No confidence scores. No generated answers. No login.

BOUNDARIES
No login. No accounts. No cloud. No analytics beacons.
No data leaves this browser. Packs live in localStorage on this origin.

INGEST
Paste text, optionally attach a .txt / .md file, or load a pack JSON.
CANON chunks at paragraph boundaries into passages of about 500–900
characters and assigns stable IDs (C-0001, C-0002, …) from a hash of
the normalized passage text. Same text keeps the same ID.

QUERY
Enter keywords. CANON returns the top matching passages as ID plus
the exact quote, using case-insensitive keyword overlap only.
If no token overlaps, CANON returns the single word:
ABSENT

ABSENT means: do not invent. Stop that claim.

OWNER RULE
The owner accepts only answers that cite passage IDs from this page.

HOW AGENTS SHOULD OPERATE
1. Load or ingest the owner’s source.
2. For each claim you need, query CANON.
3. If hits, quote the IDs.
4. If ABSENT, say ABSENT and stop that claim.
5. Do not answer from memory when the pack missed.

SHIPPED PACK
Title: Sample ops bound
Three passages about a staging-login bug are already loaded.
Query immediately. Do not wait.
A timid bot may query “staging login” for a hit, or
“launch the nuclear protocol” for ABSENT.

Pack

3 passages · 2489 characters

Created 2026-09-21T00:00:00.000Z

Query

Result

No query yet. The sample pack is loaded.

Ingest

Accepts .txt, .md, or a CANON pack .json

Passages

  1. C-3596

    STAGING-LOGIN FAULT — SCOPE On 14 March the staging login form at staging-login.internal:8443 began returning HTTP 503 for every fresh session. The failure started immediately after auth-gateway 2.4.1 was rolled to the staging cluster. The public production login at login.example.com continued to issue sessions without error. Gateway access logs show cookie stg_sid is written, then dropped on the next hop because the cookie domain was set to .prod.internal instead of .staging.internal. Ticket OPS-4419 is the tracker. Do not file this as a customer-facing outage. Do not page the production on-call. Reproduction: open a private window, go to /staging/session/start, submit any valid staging fixture user. Expected: 200 and a stg_sid cookie scoped to .staging.internal. Actual: 503, no usable session.

  2. C-2156

    WORKAROUND AND ROLLBACK RULES Until auth-gateway 2.4.2 is tagged, staging auth must use the previous cookie writer. Set STAGING_COOKIE_DOMAIN=.staging.internal on the staging cluster only. Restart the staging auth-gateway pods one at a time. Confirm /staging/session/start returns 200 before calling the rollback complete. Do not copy this environment variable onto production hosts. Do not restart production auth-gateway as part of this ticket. QA sign-off requires three private-window logins in a row, each showing stg_sid with domain .staging.internal. If the 503 returns after the restart, leave the cluster on the prior image (auth-gateway 2.4.0) and re-open OPS-4419 with the new pod logs. This workaround is staging-only. It is not a change to production identity, production cookie policy, or production TLS.

  3. C-3631

    HARD BOUNDARY Never change production settings. The staging-login bug is isolated to the staging cluster and to cookie domain misconfiguration in auth-gateway 2.4.1. Production login, production cookie domain, production TLS certificates, and production feature flags are out of scope for OPS-4419. Operators who receive a request to "just flip the same domain on prod" must refuse. There is no production equivalent of STAGING_COOKIE_DOMAIN in this incident. If production login error rates rise, open a new ticket; do not reuse OPS-4419 and do not apply the staging workaround on production hosts. The owner of this pack will only accept actions that keep production settings untouched. Staging may be recycled. Production may not. Record every staging restart in the ops log with the image tag and the time. Do not record a production change against this ticket.

Query log

Empty.

Export

Hash URL pending.