Five systems, one direction of travel. Data flows left to right and never comes back.
PUBLIC COLLECTION STORAGE USES
SOURCES
organisation +--------------+ +--------------+ +---------------+
websites -->| scraper |------>| packages |--->| public |
| | | one folder | | directory |
archived | verifies the | | per organi- | | (this site) |
pages -->| quote | | sation | +---------------+
+--------------+ +------+-------+
| +---------------+
+----------->| SourceLink |
| | (partner |
| | directory) |
| +---------------+
v
+--------------+ +---------------+
| RAG |--->| chatbot |
| indexed DB | | answers with |
+--------------+ | its sources |
+---------------+
| site (public) | What you are reading. Generated HTML only. No sources, no raw data, no secrets. |
| scraper | Collection and verification. Produces the packages. This is the repo that carries the citation guarantee. It also holds the generator for this site. |
| rag | Indexes the packages and searches them. Answers a question with passages and their sources. |
| chatbot | The public conversation interface and its orchestration. |
| dashboard | Internal tracking and correction tool. Not exposed. |
| taxonomy | The category reference, shared with the review partners. Private, and it stays private. |
| stack | The compose file that starts everything on one machine. |
The package is the pivot format. Everything downstream reads packages: this site, the partner directory, the RAG. Nothing downstream calls back to the scraper. Change the package format and you change the whole system at once.
The direction of travel is a guarantee, not a habit. The public repository receives generated output and nothing else, so what is visible is never an accident.
Some pieces are frozen. The category reference and the extraction step are not changed casually. The Contribute page says why.