# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Versioning note: the repository tag versions **the contract** (file set, key names, case ids, disposition semantics). Each JSON file additionally carries its own `"version"` field, bumped when that file changes. ## [0.1.0] — 2026-08-10 Initial extraction. Runtime-neutral detection data, the finding contract, and a conformance corpus, extracted from the `llm-security` Node implementation and a Python guard **without behaviour change** — that invariant is the release, not a caveat on it. What the tag is worth resting on: seven of the eight JSON artefacts were rebuilt from the commons file alone and diffed against their source implementation, three of them against the source module at a pinned commit. The eighth says `verified: false` about itself. The corpus holds 83 cases on which both seeding runtimes were measured agreeing exactly. What it is not: `spec/decode-pipeline.md` does not exist, and the corpus constrains one of the seven data files. Both absences are named in *Not included* rather than papered over. ### Added - `conformance/` — **83 cases, one per injection-lexicon pattern**, plus `manifest.json`. Each case is a directory holding `input.txt` (the exact bytes, no trailing newline) and `expected.json` (the findings, named by commons pattern `id`). Both seeding runtimes were measured producing the **same lexicon finding set on all 83**, through their public entry points — `scanForInjection()` at `b0de0ca` and `scan_output(source=OUTPUT)` at `0bf0729` — with labels mapped to commons ids through the lexicon's own `aliases` block. Not through rebuilt regex tables: a table-level comparison yields a number that describes neither runtime, which is the mistake the divergence document had to retract. **The 13 divergent patterns are in, unmarked, and that is the substantive result.** Their divergence was measured on witness inputs — an attribute run padded past 256 characters, an interior `<`, an unclosed `