Quote contract change packet

This packet audits the consumers of the quotation representation and matcher. It is consumed by migration acceptance and the final cleanup check.

Consumer or boundary Change and verification
Authoritative declarations Ingest type, source collection contract, analysis-result type and validation reference name unique occurrence and checked ranges. ADR draft records alternatives and limits.
Scope and enforcement Prose assertions, ingest extracts and analysis quotes share matching. Plain explanatory examples and the decommissioning legacy-review collection acquire no new source-verification obligation.
Resolvers and validators quote_verification.py, validation.py, agentic_analysis.py call the common matcher; prose and blockquote parsers emit Citation. The existing shape check reuses blockquote parsing.
Schemas No schema field value changes. Quote bodies are text, checked by code rather than duplicated regex schema constraints.
Emitters Grounding is the sole standing ingest-quote writer; its append template is updated. The corpus rewrite is temporary tooling, removed after its comparison is recorded.
Skills and procedures Grounding, writing and analysis instructions name uniqueness/containment; grounding-alignment reads blockquote bodies and attribution context. Call arguments and route-result literals are unchanged.
Collection and type templates Source collection, ingest type, analysis result type, and installed-project source template updated.
Control plane No root AGENTS or scaffold control-plane quote syntax exists to change.
Reference and ADRs Validation reference updated. Historical ADRs 073, 076 and 078 point to ADR 094; their historical text is retained.
Tests and fixtures Existing ingest fixtures use attributed blocks. Matcher, parser, range, source-binding, publication and source-kind tests exercise the shared contract.
Published views No ingest paths change. Proposal retirement adds a redirect and archive entry; workshop closure needs no redirect.
Byte pins Ingest/snapshot identities unchanged. Current analysis results have synchronized local copies, report hashes, result hashes, review hashes, run-state receipts and live comparison-table hashes. Frozen comparison reports and superseded runs remain historical observations.
Old spellings Searched Source extract, Source location, _quote_citations, INGEST_QUOTE_RE, normalize_text, and navigation-only range wording across runtime, tests, contracts and references. Historical proposals/ADRs and negative-test fixtures may retain old names.
Generated forms Editable installation refreshed after source-collection template change. No new entry point or dependency.
Fresh install Temporary-project probe receives the attributed-block source contract and validates a migrated ingest.
Existing installs Init preserves authored ingests, so an old-form ingest remains untouched and fails the new quote-shape check. Conversion is an explicit content migration, not an init side effect. Second init is byte-idempotent.
Diagnostics Occurrence failures report counts; supplied ranges enforce bounds and containment. Missing source bytes are source errors, not successful matches. Conditional ingest absence is informational.
Acceptance probe install-probe.json records fresh/existing init behavior. The publication fixture rejects an in-bounds wrong specialist range and publishes unranged quotations after correction.
Drift guard Tests compare three verifier outcomes for the same quote and region, inspect shared parser records, and check that attribution bytes and separate extracts cannot satisfy a note's quote.
Historical witnesses Superseded analyses, frozen comparison trials, archived proposals and amended ADRs keep their original evidence or syntax.
Identity conventions Ingests retain <slug>.ingest.md / .snapshots/<slug>.md pairing. Attribution code spans must name that exact snapshot and checksum.
Shared exclusions Resolvers retain their existing contract scope; ingests inspect Quotes only, and prose examples inside fenced blocks are excluded. No collection-wide verification is added to legacy reviews.
Relocation effects Only proposal archival changes a durable path. No quoted artifact is relocated.