Lex is six published repositories, not one. The split is deliberate: publisher evidence, the derived dataset, the product and the authority that signs releases have different lifetimes, different licences and different people who may write to them.
What is published
| Repository | Holds | Role |
|---|---|---|
lex |
The applications (Lex.Ingest, Lex.Mcp.Stdio, Lex.Web, Lex.Ask), the legal model, the index reader, the MCP tool core, the site, the golden suite, the spec and this dossier. |
The product. Everything here is code and documentation; it contains no law and no index. |
lex-corpus-lu-legilux |
Luxembourg publisher evidence and the provisions derived from it, as human-readable JSON under works/, plus a manifest.json. |
One corpus repository per publisher. The tree carries the legislative history and git log carries the ingest history, deliberately not the same axis. |
lex-corpus-eu-eurlex |
The same structure for EUR-Lex. | Keeping publishers apart means a bad ingest from one can never rewrite the other, and each carries its own licence and attribution. |
lex-articles |
The per-article dataset with catalog.json, generation.json, a schema and worked examples. |
The consumable output, published under CC-BY for retrieval systems that must filter by validity before similarity. |
lex-ops |
Publication workflows, the fleet scripts and the assistant evaluation publisher. | Release authority, held apart from the product it releases. The signing key lives here on disk and is never committed. |
lex-git-lu |
A generated demonstration artifact: the Luxembourg corpus replayed as one markdown file per work with its history. | A downstream derivative, regenerated from the corpus. It is a demonstration of the data, not an evidence source, and is never cited as one. |
Why the product repository holds no data
The corpus is evidence and the index is a build output, so neither belongs beside the code that
reads them. The index pair is roughly 1.25 GiB, is gitignored, and is baked into the container
image at build time from the verified release assets. A container built from this repository alone therefore mounts zero indexes and must
answer no_corpus_mounted rather than an empty list, which is the difference between saying
nothing is held and saying nothing exists.
Working directories that are not repositories
Several sibling directories look like repositories and are not: git worktrees of lex and of the
operations repositories checked out on feature branches, plus local build outputs with no remote,
index databases, provision exports and release staging. None of them is published, and none should
be cited as a source.
Separation of authority
The evaluation that gates a release is authored in lex and published from lex-ops, by a
different identity, against a catalog whose exact bytes the project owner has signed. That is
separation from the catalog author, not third-party review or external audit, and the
release page states it in those terms. The same boundary is why the signing key
sits in the operations repository and the product repository can neither read nor produce a
signature.