feat(github): give readers two issue forms and link to them
Nothing a reader marks, types or ticks ever leaves their browser, so there is no account and no server-side record to look anything up in after a report arrives. Whatever the form captured is all there will ever be — which is the argument for structured forms over a blank box, and for the bug form carrying the footer's "event data last refreshed" line as a prefill. A stale calendar and a genuinely wrong parse are indistinguishable from outside, eight sources cannot be fetched from CI at all, and that line is the only thing that separates the two cases. The feature form states the three constraints up front, because "sync across my devices" and "have a model read the page" both have settled answers and a reader deserves them before typing rather than after. It also points source requests at the assessed-and-declined table: the loudest feedback on the first release was that the game list is too short, so that is the request that arrives most, and a wiki that forbids automated access or only archives finished events cannot be used no matter how often it is asked for. Blank issues stay enabled. A form that turns someone away loses the report, not the noise. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
32a0683824
commit
02dd7b3ed4
@@ -114,7 +114,7 @@ src/client/ React app, service worker, manifest
|
||||
lens.ts — who sees which rows (focus, outstanding, next-to-expire); pure
|
||||
scripts/ build-feed.ts, build-static.ts, parse-fixture.ts (offline), refresh-sources.ts (fetches)
|
||||
serve.ts static server + /api/health
|
||||
test/ 480 tests
|
||||
test/ 494 tests
|
||||
fixtures/<game>/ raw HTML + .expected.json per source — pinned, kept forever
|
||||
snapshots/ current page per source, rewritten by refresh — see its README
|
||||
```
|
||||
@@ -252,6 +252,11 @@ A source whose ToS forbids automated access does not get an adapter. Flag it and
|
||||
| `bluearchive.fandom.com` | **Declined.** Fetches and parses fine; the page is the problem. Its `Event/Event_List` is a JP-server archive whose newest entry ended 2026-02-18, so all 88 rows are history and it yields **zero** live or upcoming events. An adapter would put an empty lane on the calendar and, because the runner rejects a body that parses to nothing, report a broken source forever. Same failure as the Infinity Nikki Game8 page, further along |
|
||||
| `bluearchive.wiki`, `prydwen.gg`, `gametora.com` | **Cleared, unbuilt.** `User-agent: *` allows the paths we would want. prydwen sets `Crawl-delay: 10`, far below our one-per-6h. `bluearchive.wiki` is the live Blue Archive source worth building — `Name (EN) \| Name (JP) \| Start date \| End date` with ISO dates, current to 2026-09-15 — but note it is Miraheze and its `robots.txt` **disallows** `/w/` and `/*?action=`, so the API route is closed there and only the rendered `/wiki/Events` page is permitted. It also lists JP and Global in separate tables, which is the akwiki hazard: publishing the wrong server's date |
|
||||
|
||||
`.github/ISSUE_TEMPLATE/feature_request.yml` points readers at that table by heading, so a source
|
||||
request can be checked against it before anyone writes it up — the loudest feedback on the first
|
||||
release was "not enough games" (`docs/FEEDBACK.md`), which makes this the request that arrives most.
|
||||
Keep the heading if the section moves.
|
||||
|
||||
wiki.gg hosts (`arknights`, `endfield`) carry `Content-Signal: search=yes, ai-train=no, use=reference`
|
||||
with `Allow: /`, and disallow `ClaudeBot` and other AI crawlers by name. Our fetcher is neither: it
|
||||
trains nothing, and no LLM reads the page content — constraint 2 is what keeps that true, so it is
|
||||
|
||||
Reference in New Issue
Block a user