Tooling
Mirai Guide: extraction with a human veto
The ingestion pipeline that turns approved public sources into reviewed structure — and why booth codes are immutable.
Mirai Guide’s catalog is not scraped into production. It moves through a typed pipeline where every stage proposes and a human disposes. The stages are ordered so that each one can only reference structure the previous one already approved.
The six stages
- Events. Discovery extracts exactly one yearly edition plus its locations, location days, venues, venue-day selections or time overrides, and typed source links. The admin reviews the complete hierarchy; approval creates pending sources but never starts a crawl.
- Sources. A source’s role (
vendor_list,vendor_map,vendor_catalog, …) is kept separate from its fetch mode (html,browser, ormanual). Every source is explicitly scoped to reviewed structure — an unresolved location or venue link cannot be extracted. - Vendor lists are the only extraction authority for booth identity. Candidates are reviewed grouped by location and venue, vendors are reconciled at edition level, and booth codes are corrected before approval. Approved booth codes are immutable: a later correction supersedes the assignment instead of editing it, so history never rewrites.
- Maps belong to one venue and may only position already-approved booth-assignment IDs. Map extraction cannot create or rename a booth.
- Vendor catalogs are extracted once per vendor with all of that vendor’s active booth assignments in context. Products default to every booth unless reviewed evidence restricts availability; applying goods creates one explicit offer per booth assignment and cannot mutate vendors, venues, or booth codes.
- Review queue. Each typed proposal is validated against the exact server-owned context and content hash used at extraction time. Stale proposals, or IDs outside that context, are rejected outright.
What the ordering buys
Each stage has a single authority. Booth identity can only come from vendor lists; positions can only come from maps; offers can only come from catalogs. When a source page changes after extraction, the hash check catches it — the reviewer is never approving against content they haven’t seen. And because approval is the only path to publication, the failure mode of a bad extraction is a rejected proposal, not a wrong map in an attendee’s hand.