docs: record Game8's events-summary block and the narrower h4 rule

Both files stated the h4 rule as a flat prohibition — an unrecognised h4
must never claim the event title — which is no longer what the code does.
They now state the narrower claim: an h4 may fill an empty event title but
never take one, with the reason each page needs it. Genshin's labels arrive
after its h3 has claimed the slot; Wuthering Waves' block sits under a
section heading that leaves the slot empty.

INGESTION.md gains the block as shape 9, and the part that is easy to get
wrong on the way back: its heading has to be *in* the section vocabulary
rather than merely fall through, because an unrecognised heading is read as
an event name and would spend the title on the section.

AGENTS.md also gains a bullet for where a missing blurb hides. Two
templates now put unlock conditions in the cell where a description
belongs, and in both the real prose is in a per-event section further down
the page — under an h3 on one and an h4 on the other.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
Lucas Winther
2026-08-20 22:38:54 +02:00
co-authored by Claude Opus 5
parent 67bbeaf28c
commit 9df558a54b
2 changed files with 31 additions and 8 deletions
+11 -2
View File
@@ -226,8 +226,17 @@ These come from how gacha games actually schedule things, and they cause most bu
between the calendar and a year of expired banners.
- **Check what fences a section off.** Inclusion is decided by headings, and the level varies: Persona
5 hides fifty finished events behind nothing but an `<h4>Finished Events</h4>` in a collapsed
accordion, while Genshin uses `h4` for sub-headings *inside* one event. So `h4` gates sections but
never names one — an unrecognised `h4` must leave the current event title alone.
accordion, while Genshin uses `h4` for sub-headings *inside* one event and Wuthering Waves titles
each event of its summary block with one. So `h4` gates sections, and names one only when nothing
else has: an unrecognised `h4` may **fill an empty event title but never take one**. Genshin's h3
has already claimed the slot before its labels arrive; Wuthering Waves' block sits under a
recognised section heading, so the slot is empty and the `h4` is the only name there is.
- **A blurb the listing table lacks is usually further down the page.** Two Game8 templates put
unlock conditions (`Reach Union Level 8`, `Unlocked by default`) in the cell where a description
belongs, and `isRequirementOnly` drops those rather than answer "what is this event?" with "how
do I qualify for it?". The real prose sits in a per-event section — under an `h3` on Persona 5's
page and an `h4` on Wuthering Waves'. `dedupe` blends it onto the better-dated copy and never
blends a date, so reading both shapes adds information and can never contradict any.
- **Prefer a source that states machine-readable times.** wiki.gg emits ISO timestamps with a timer
per server region, which is the only reason `regionEnds` carries real data anywhere.
- **Silent drops are the dangerous failure.** A date format the parser does not recognise makes
+20 -6
View File
@@ -250,17 +250,31 @@ several:
contains both column words, resolves, and puts the range at an index no data row has, so the
table yields nothing at all with no error. `readColumnTable` therefore decides the header by what
it produces — row 1 is tried **only when row 0 produced nothing**. *(Umamusume)*
9. **An events-summary block** — shape 7's idea one heading level down: a
`<h3>3.6 Events Summary</h3>` section whose every event is a sub-section titled by an `h4`, over
an `Event Duration` row and a paragraph of prose. The listing tables above it put *unlock
conditions* where a blurb would go, so this block is the only place on the page a description
exists, and two events are dated nowhere else. *(Wuthering Waves)*
Shapes 1, 2, 4, 5, 6, 7 and 8 are handled. Before assuming a new Game8 page will work, dump its heading/table
structure and check which shape it uses — and check **every** table, not just the obvious one.
Endfield was written off as undatable on a first pass that only inspected its `Duration` rows; its
two real events were in a table further down.
Shapes 1, 2, 4, 5, 6, 7, 8 and 9 are handled. Before assuming a new Game8 page will work, dump its
heading/table structure and check which shape it uses — and check **every** table, not just the
obvious one. Endfield was written off as undatable on a first pass that only inspected its
`Duration` rows; its two real events were in a table further down.
**Check what ends a section, too.** Headings decide inclusion and the level is not consistent: Persona
5 puts its whole finished back catalogue behind an `<h4>Finished Events</h4>` inside a collapsed
accordion, so a reader that ignores `h4` publishes fifty dead events. Genshin uses `h4` the opposite
way — for sub-headings *within* one event ("Availability Period") — so an unrecognised `h4` gates the
section but must never claim the event title.
way — for sub-headings *within* one event ("Availability Period"), while Wuthering Waves names
each event of its summary block with one. Both are served by the same rule: an unrecognised `h4`
may **fill an empty event title but never take one**. Genshin's event has already claimed the slot
by the time its labels arrive, so they cannot rename it; Wuthering Waves' block sits under a
*recognised* section heading, which leaves the slot empty for the `h4` that is the only name on
offer.
That last part is why `events summary` is in the section vocabulary rather than left to fall
through. An unrecognised heading is read as an event name, so falling through would spend the title
on the section and leave every `h4` beneath it unable to take it back — publishing
"3.6 Events Summary" as an event and dropping the ten real ones under it.
## Stage 1 — fetch