Forty minutes left of a two-week event is under half a tick, so the
meter rounded it down to an empty strip. The most urgent rows and the
headline looked like events that were already over.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
They are reasoning for whoever touches the interface next, which is
what docs/ holds, and the table in AGENTS.md is how an agent finds it.
The design tooling resolves both from docs/ without configuration.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Captures the shipped visual system as it is, so new screens extend it
rather than drift: the two colour axes, both themes' tokens, the two
typefaces' roles, flat surfaces lit only by meaning, and the meter, row
and timeline bar. The sidecar carries what the token format cannot hold.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Design tooling reads this before touching the interface. It names the
owner as the primary user, cross-game coverage as the core claim with
date discipline as its floor, and leaves the accessibility standard
open rather than inventing one.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
It records only this machine's consent to the design hook, so it has no
business in the shared history; the design sidecar beside it does.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On a phone a single truncated line cut most titles mid-word, and the
title is what a reader scans the list for.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The fullwidth plus is in neither Chakra Petch nor Public Sans, so it fell
back to whatever font the device had and showed as an empty box on some.
It is now an SVG stroked like the other icons.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
readableHue returned every dark hue untouched on the claim that all of
them already cleared 4.5:1 there. Five did not, and Fate's navy was
1.8:1, so its name under the headline deadline was nearly invisible.
Those five are now lifted in lightness only, keeping hue and saturation;
the fifteen that pass are unchanged. The owner approved relaxing the
"dark theme does not move" rule to this, and AGENTS.md and PRD F15 say so.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Record lastConfirmedAt in snapshot metadata when a source is confirmed (200 or 304). This ensures git-committed snapshot metadata reflects when sources like wiki.gg were successfully pulled even when page HTML did not change, avoiding false pull overdue notices on downstream builds like GitHub Pages.
Document the forge responsibilities across AGENTS.md, README.md, ARCHITECTURE.md, INGESTION.md, and the CI workflow headers: GitHub Actions only builds and serves (Pages deployment) without fetching data sources, while Gitea Actions exclusively runs the scheduled refresh and publishes the container image.
When sources return 304, no git commit is created, but the cache holds updated confirmation timestamps. Publish the refreshed feed unconditionally on non-dry runs so CI rebuilds events.v1.json with fresh confirmation dates.
Derive source pull date from confirmation and recent content updates, preventing recently updated sources from displaying as pulled never or pull overdue.
The Blue Archive Wiki (bluearchive.wiki/wiki/Events) redesigned its
schedule, replacing the per-version MediaWiki tabber with a unified
#eventtable displaying JP and Global periods side-by-side.
- Parse #eventtable resolving GL Period, event titles, and article links
from .event-region-gl, with fallback to .event-region-jp.
- Maintain backwards compatibility with legacy tabber schedule format.
- Add pinned fixture fixtures/ba/bawiki-events-2026-09-17 and tests.
- Update snapshot, AGENTS.md, ARCHITECTURE.md, and INGESTION.md.