docs: drop the LLM extraction layer, document multi-source ingestion

Event data is parsed deterministically; there is no model call, API key or
per-run cost anywhere in the pipeline. A source that cannot be parsed
deterministically gets no adapter rather than an inference fallback.

Documents the parser/adapter/merge split, records that Game8 uses three
page templates, and adds Neverness to Everness.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
Lucas Winther
2026-08-15 00:11:08 +02:00
co-authored by Claude Opus 5
parent 493fc9f22a
commit 3ea7286f56
5 changed files with 215 additions and 488 deletions
+7 -5
View File
@@ -41,9 +41,11 @@ event, because a missing event sends them to a wiki while a wrong one makes them
| Wuthering Waves | `wuwa` |
| Arknights | `arknights` |
| Arknights: Endfield | `endfield` |
| Neverness to Everness | `nte` |
Adding a seventh game must require no schema change — only a new adapter. That is the test of
whether the data model is right.
Adding a game must require no schema change — only a `GameId` entry and a source registration.
That is the test of whether the data model is right. A game may have several sources; see
`docs/INGESTION.md` § Three layers.
### Features
@@ -106,8 +108,8 @@ The app's entire value is that the dates are right. Therefore:
- An event with an uncertain end date is published with `endsAt: null`, **not** with a plausible
guess.
- An event whose extraction confidence is below threshold is not published at all until a human
approves it.
- An event whose confidence is below threshold, or whose sources disagree, is not published at all
until a human approves it.
- Every event links to its source so a skeptical user can verify in one click.
An empty calendar is a recoverable disappointment. A confidently wrong end date is the failure this
@@ -120,4 +122,4 @@ product exists to prevent.
- Should events the user has hidden by game filter still count toward "ends soonest"?
(Assumption: no — the filter is global.)
- Is 6 hours the right refresh cadence? (Assumption: yes; events are announced days ahead, so
sub-hourly refresh buys nothing and costs API spend.)
sub-hourly refresh buys nothing and is rude to the sources.)