# avenic-site claims register (roadmap §8.13 operationalized): every data-claim id on the site
# → the SHIPPED capability backing it (path in D:\repos\avenic unless noted). lint.sh enforces:
# every data-claim id in *.html exists here; every path here exists on disk.
# id	claim (short)	source
C1	anonymous signup seeds 1,000 free receipts	crates/avenic-platform/src/packs.rs (FREE_GRANT_RECEIPTS=1_000) + sdk/openapi.yaml /v1/signup
C2	permalink = /r/sha384/{digest}, digest = SHA-384 of bundle bytes	docs/adr/0094-permalink-ratify-and-hosted-receipts.md D1
C3	sha384sum bundle.json reproduces the address	docs/design/self-serve-quickstart-2026-06-05.md step 3
C4	receipt page + bundle are public unauthenticated reads, verify never rate-limited	crates/avenic-platform/src/transport.rs json_router public routes + sdk/openapi.yaml
C5	pay only to produce; verification free	sdk/openapi.yaml info.description + docs/adr/0095-receipt-packs-and-self-serve-signup.md
C6	records hash-chained + hybrid Ed25519∧ML-DSA-65 signed	crates/avenic-verify/src/keys.rs (HybridVerifyingKey::verify, both families) + hash.rs chain_hash_v2
C7	receipt pages: no third-party calls, no scripts, no tracking	docs/adr/0094-permalink-ratify-and-hosted-receipts.md (closes-over-nobody page) + quickstart "what this never does"
C8	verifier re-derives all checks from bundle bytes alone, offline	crates/avenic-verify/src/bundle.rs verify_bundle (bytes-alone, no DB/keystore/network)
C9	unhost → 410 honest tombstone	crates/avenic-platform/src/hosted.rs + sdk/openapi.yaml DELETE /v1/hosted
C10	boundary canon: attests chain/signature/completeness only	crates/avenic-surface/src/copy.rs BOUNDARY_ATTESTS_BODY + BOUNDARY_NOT_ITEMS
C11	api_key shown once; only hash stored	sdk/openapi.yaml /v1/signup api_key description
C12	hosted link live immediately	docs/design/self-serve-quickstart-2026-06-05.md step 2
C13	record idempotent on decision_id; metered on success; 402 before recording	sdk/openapi.yaml /v1/record description + 402 response
C14	host:false per-call override; response states hosted	sdk/openapi.yaml /v1/record host property
C15	receipt page renders attests/not-attests + re-derivation instructions	crates/avenic-surface/src/copy.rs boundary panel + receipt.rs render
C16	410 tombstone; edge caches clear within a day	docs/adr/0094-permalink-ratify-and-hosted-receipts.md (max-age=86400 + ETag=digest)
C17	Free 1,000 at signup	crates/avenic-platform/src/packs.rs FREE_GRANT_RECEIPTS
C18	starter $25 / 2,500	crates/avenic-platform/src/packs.rs PACKS + docs/adr/0095 ladder
C19	builder $99 / 20,000	crates/avenic-platform/src/packs.rs PACKS + docs/adr/0095 ladder
C20	scale $299 / 100,000	crates/avenic-platform/src/packs.rs PACKS + docs/adr/0095 ladder
C21	packs prepaid totals, 24-month validity, not monthly	docs/adr/0095-receipt-packs-and-self-serve-signup.md (packs valid 24mo; no windowing)
C22	printed metric = billed metric (receipts produced, on success)	crates/avenic-platform/src/packs.rs SKU_RECEIPTS + ADR-0095 honest-metering rule
C23	402 pause; existing receipts + verification unaffected	sdk/openapi.yaml /v1/record 402 description
C24	Stripe-hosted checkout; exactly-once credit grant	docs/adr/0095-receipt-packs-and-self-serve-signup.md D (stripe_events ledger, sig-verified webhook)
C25	scoped verification verbs on every page	crates/avenic-surface/src/copy.rs scoped verbs consts
C26	page carries no scripts/third-party/tracking	same as C7
C27	address IS the SHA-384 of bundle bytes	docs/adr/0094-permalink-ratify-and-hosted-receipts.md D1 (cert hash = URL = ETag = verification target)
C28	bundle self-describing: records+chain+signatures+key registry; re-derives bytes-alone	crates/avenic-verify/src/bundle.rs (embedded key_bundle import; verify_bundle)
C29	SHA-384 chains/Merkle + hybrid both-must-verify	crates/avenic-verify/src/hash.rs + keys.rs verify (split at 64, ed_ok && ml_ok)
C30	failure registers never blurred: INTEGRITY FAILURE vs NOT READABLE AS A BUNDLE	crates/avenic-surface/src/copy.rs LOUD_WORD / REFUSAL_WORD (Z535 register)
C31	signup returns tenant+key once + free grant	sdk/openapi.yaml /v1/signup
C32	per-network signup rate limit 429; verify never rate-limited	docs/adr/0096-signup-rate-limit.md + sdk/openapi.yaml 429
C33	record semantics (idempotent, success-metered, 402-before)	sdk/openapi.yaml /v1/record
C34	takedown semantics	sdk/openapi.yaml DELETE /v1/hosted + ADR-0094 (410 tombstone)
C35	receipt page public projection, zero scripts	ADR-0094 D3 (public read unauthenticated BY DESIGN) + surface render
C36	address grammar permanent; new alg = new token, never /v2	docs/adr/0094-permalink-ratify-and-hosted-receipts.md D1 ({alg} additive registry)
C37	bundle bytes are the trust root; recompute = address	docs/adr/0094-permalink-ratify-and-hosted-receipts.md D1-D2 + quickstart step 3
