From c71e8ae1f1e5e5c484158c1cbad771f0dc85e01f Mon Sep 17 00:00:00 2001 From: Lucas Winther Date: Wed, 19 Aug 2026 04:50:29 +0200 Subject: [PATCH] docs: assess marisaimpact.com for Honkai Impact 3rd, and decline it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Its conduct is the cleanest of anything looked at here — a robots.txt of pure comments, no directive, no Content-Signal, and a plain 200 to our own User-Agent — so the reason not to build it is entirely in the data, and is worth writing down rather than re-deriving next time the URL is offered. The calendar prints no year anywhere, and heads its only date row "Estimated date for Regional Servers" over a page that says the schedule is the CN server's. Every date it could publish would therefore be a guess twice over: a year we inferred, on a boundary the page itself declines to stand behind. The week-column grid also rounds an end to a bucket rather than to a printed day, and the URL carries the version number, so a SOURCES entry pinned to calendar89 would be publishing history from tomorrow. The markup is recorded anyway, because it is readable and that is not the problem — if the site ever states a year and a real regional schedule, the work is a positional parser and nothing else. Co-Authored-By: Claude Opus 5 (1M context) --- AGENTS.md | 1 + docs/SOURCES.md | 64 ++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 62 insertions(+), 3 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 30d710d..b698947 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -315,6 +315,7 @@ re-litigated each pass: | `guardian-tales.fandom.com` | **Declined.** Parses fine and contains no 2026 date at all — newest dated entry is 2025. The `bluearchive.fandom.com` failure again: parses cleanly to nothing live | | `blhx.fandom.com`, `azurlane-archive.fandom.com` | **Declined.** The two Fandom alternatives to the declined koumakan wiki are dead archives — `Event_Calendar` stops in **2021**, and the archive wiki's headings have nothing under them. Azur Lane still has no source | | Aether Gazer | **Do not build.** The developer confirmed no further content updates after 23 July 2026, with store listings removed 17 October 2026. The wiki dates nothing anyway — `Event_Guide_List` is an image gallery. A lane that will be empty by winter | +| `marisaimpact.com` (Honkai Impact 3rd) | **Declined** (2026-08-19). Conduct is clear — its `robots.txt` is comments only, with no directive and no `Content-Signal`, and the page answers our own `User-Agent` with a `200`. The data is the problem: the schedule is a grid of week columns headed `Estimated date for Regional Servers` under a page that says `Based on CN server`, it states **no year anywhere**, and it lives at a per-version URL — `/calendar89` is v8.9 and expires on 20 August, with no stable route to the current one. `docs/SOURCES.md` § 13 | | game8.co hubs for Black Beacon, Brawl Stars, Destiny: Rising, Diablo Immortal, Epic Seven, Fire Emblem Shadows, Gundam UC Engage, Mongil: Star Dive, Pokémon Champions, Pokémon UNITE, Tower of Fantasy | **Declined** (2026-08-19). All thirteen hubs in that sweep exist and answer `200`; these eleven have no usable schedule. Six are abandoned wikis whose newest page is 2021–2025 — the Infinity Nikki failure mode, a source that parses perfectly and publishes history. Gundam's calendar prints ends with no starts, so no event ID; Pokémon UNITE is fresh but its template fails `canParse`, which is the check working. Per-game evidence in `docs/SOURCES.md` § 12 | | `game8.co/games/MementoMori`, `game8.co/games/fire-emblem-heroes` | **Assessed, not yet built** (2026-08-19) — the two live finds of that sweep, and proposals rather than decisions. MementoMori parses today with no parser change; FEH has the freshest page of any source here and needs a ninth Game8 column shape plus a ruling on the 180-day rule, which one real seven-month banner breaks. See `docs/SOURCES.md` §§ 12a–12b | diff --git a/docs/SOURCES.md b/docs/SOURCES.md index 5a111ce..73850b8 100644 --- a/docs/SOURCES.md +++ b/docs/SOURCES.md @@ -1,7 +1,8 @@ # SOURCES.md — event sources for the games still missing A source assessment for the games named in `docs/FEEDBACK.md` § P1 that still have no adapter, -plus § 12, a sweep of thirteen Game8 hubs asked for separately on 2026-08-19. +plus § 12, a sweep of thirteen Game8 hubs, and § 13, one URL offered for Honkai Impact 3rd — +both asked for separately on 2026-08-19. Written 2026-08-18. **Acted on 2026-08-19**: four of the games below were built, one turned out to be blocked rather than merely awkward, and the rest were declined. Each section keeps its original reconnaissance and carries its outcome at the top, because the reasoning is what stops the next pass @@ -619,6 +620,58 @@ worth keeping: and only two rows are dated at all; everything else is recurring or permanent. The back catalogue under `List of Past Events` is the rowspan Start/End shape and is correctly fenced by its heading. +## 13. Honkai Impact 3rd — assessed 2026-08-19 on request; decline + +**Source:** `https://marisaimpact.com/calendar89` — Marisa Impact, a fan site for HI3, whose +`Supply and Boss Timeline` is the only calendar this game has been offered here. Not a P1 game: this +section answers a direct request to add that URL, and HI3 has no `GameId` today. + +**Conduct is clear, and it is the only part of this that is.** `robots.txt` answers our own +`User-Agent` with a `200`, and its 1248 bytes are **entirely comments** — Cloudflare's +content-signals preamble with no `User-agent` line, no `Disallow` and no `Content-Signal` at all. By +clause (c) of the text it ships with, a use with no signal is "neither granted nor restricted", so +nothing here refuses us the way `koumakan`'s `ai-input=no` does. There is no `Crawl-delay`. The site +is Cloudflare-fronted but serves us the page itself with a plain `200`, so this is not the Fandom +challenge or the `uma.moe` gate either. The page is server-rendered SvelteKit and the whole schedule +is in the HTML; the route's `__data.json` carries an `ogImage` and nothing else, so the rendered page +is the only surface and there is no API to prefer. + +**Four things kill it, and the first two on their own are enough.** + +- **The dates are estimates, and the page says so twice.** Under the title: *"Based on CN server. + Schedule might be different for Regional servers."* And the first column of both grids is headed + *"Estimated date for Regional Servers"*. This is the `akwiki` CN-column hazard with nothing to fall + back to — there is no Global row to publish and a CN row to skip, there is one CN schedule with an + estimate drawn over it. Putting that behind a countdown is the confidently wrong date this product + exists to prevent, and it would be wrong on the honest side of the page's own disclaimer. +- **No year appears anywhere.** Weeks read `Jun 25 - July 3`, `Aug 14 - 20`; stripping the tags from + either version's page and grepping for `20\d\d` returns nothing at all. `dates.ts` infers a missing + year for no source and must not start here, and the start's day is half of every event ID this game + would ever have. +- **The unit is a week column, not an event boundary.** A bar spans whole weeks, so its end is the + end of a bucket rather than a date anyone published. That is *not* the day-precision reading Game8 + and Infinity Nikki get: there we publish the date the page printed, and here the page printed a + week. +- **The URL is per-version and there is no stable route to the current one.** `/calendar89` is + version 8.9, `Jun 25 - Aug 20` — it expires the day after this was written. Version 9.0 is at + `/calendar90` and runs `Aug 20 - Oct 22`. The version picker is client-side, the nav links only + *earlier* versions (`/calendar88`, `/calendar89`), and the page's own `og:url` and canonical + (`/valk/calendar89`) is a scheme that already 404s at `/valk/calendar90`. A `SOURCES` entry pinned + to `calendar89` would be publishing history inside a day — § 11's failure mode on a six-week clock — + and nothing on the site names the live version at a fixed address. + +**The markup is fine, which is worth recording so nobody re-derives it.** Each row is a +`
`; cell 1 is the row label (`BATTLESUIT SUPPLY A`, `EVENT 3`) +and every bar carries `col-span-N`, with bare `
` spacers standing in for +an offset start. So a bar's start week is `1 + Σ` the spans before it and its length is its own span, +and the week columns are in the header row. A parser would be positional rather than textual and is +perfectly writable. The blocker is what the numbers mean, not how to read them. + +**What would change this:** the site stating a year, and stating a real regional schedule rather than +an estimate over the CN one — plus a stable URL for the current version, or an index page naming it. +Any two of the three still leaves the other. No alternative HI3 source was looked for in this pass, so +the game is unsourced rather than declined outright. + ## What every one of these costs, beyond the source Adding a game is never only a `SOURCES` entry: @@ -649,8 +702,8 @@ both been made. What is queued is the two live finds of the § 12 sweep: across every fixture and snapshot as Umamusume's was. Below that, in descending order of value: re-check `grayravens.com` if it ever puts its schedule in -a table, and re-check Azur Lane if `koumakan` ever drops `ai-input=no`. Neither is worth a pass -until something changes upstream. +a table, re-check Azur Lane if `koumakan` ever drops `ai-input=no`, and re-check `marisaimpact.com` +if it ever prints a year (§ 13). None is worth a pass until something changes upstream. ## Appendix — reproducing the checks @@ -666,6 +719,8 @@ curl -sS -A "$UA" https://iopwiki.com/wiki/GFL2_Events > gfl2.htm curl -sS -A "$UA" https://stellasora.miraheze.org/wiki/Main_Page > stellasora.html curl -sS -A "$UA" 'https://nikke-goddess-of-victory-international.fandom.com/api.php?action=parse&page=Event&prop=text&formatversion=2&format=json' > nikke.json curl -sS -A "$UA" https://game8.co/games/Chaos-Zero-Nightmare/archives/559899 > czn.html +curl -sS -A "$UA" https://marisaimpact.com/robots.txt # comments only, no directive +curl -sS -A "$UA" https://marisaimpact.com/calendar90 > hi3-v90.html # the § 12 sweep: hubs first, then the schedule page each one turned out to have. # `--rate 30/m` keeps one request every 2s to a single host, per AGENTS.md § Scraping conduct. @@ -697,3 +752,6 @@ Facts stated above that a future reader may want to re-check, with how they were | The FEH page is unreadable by shape, not by two header words | `columnLayout` finds no range column at all — `Availability` is a start and `End` is its own column, and `readStartEndTable` wants the rowspan `Start`/`End` pair | | Game8's structural check rejects the Pokémon UNITE page | `game8Parser.canParse` → `false`; the page has 25 `a-table` matches and zero `a-header--3` | | A hub's nav is not an index of its pages | the UNITE, Champions, Gundam and Black Beacon schedule pages exist and are linked from none of the hub navigation scanned; found by web search | +| `marisaimpact.com` states no year on any calendar | stripped tags from `/calendar89` and `/calendar90` and grepped the text for `20\d\d` — zero matches on either | +| Its calendar URL is per-version, with no stable alias | `/calendar90` is `200` and covers `Aug 20 - Oct 22`; `/valk/calendar90` — the scheme its own `og:url` uses — is `404`; the nav links only `/calendar88` and `/calendar89` | +| Its schedule is not behind an API | `GET /calendar90/__data.json` returns 144 bytes: an `ogImage` URL and nothing else |