Skip to content

A flag shows what measures it, and hints clear AA everywhere - #14

Merged
Ssebv merged 3 commits into
mainfrom
feat/measured-by
Aug 17, 2026
Merged

Ssebv merged 3 commits into
mainfrom
feat/measured-by

Conversation

@Ssebv

@Ssebv Ssebv commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Closes the visibility loop the experiments feature opened. Segments already name their referencing flags on the edit screen — this repo's stated principle that the blast radius should be visible where the edit happens. Flags under experiment now get the same treatment:

  • GET /flags/{key} returns FlagWithUsage (flattened, additive): measured_by lists the experiments whose arms are this flag's variants, as environment/key, in any lifecycle state — a draft still pins deletion and its counters still name the variants.
  • The flag page shows a callout naming them and why it matters (renaming a variant mid-run orphans its counters), and the danger zone explains the delete it no longer offers instead of offering one that would 409.

Along the way, the first axe pass ever run against the flag detail page caught a real pre-existing AA miss: .hint on sunken surfaces (the preview panel, card footers) sat at 4.37:1. Hints now wear --text-muted; the hierarchy step survives in the font size. That recolours hints everywhere, so the whole gallery is regenerated in one pass, per house rule.

Verified in a real browser: the pinned flag shows the callout and no delete button, an unmeasured flag shows neither, and axe reports zero WCAG A/AA violations on both.

🤖 Generated with Claude Code

Ssebv and others added 3 commits August 17, 2026 11:50
Segments already name their referencing flags on the edit screen — the
blast radius visible where the edit happens, not discovered in a
refusal afterwards. Flags under experiment now get the same treatment:
GET /flags/{key} carries `measured_by`, the flag page says which
experiments own its variants and why renaming one mid-run hurts, and
the danger zone explains the delete it no longer offers instead of
offering one that would 409.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
.hint wore --text-subtle, which clears 4.5:1 on cards but lands at
4.37:1 on the sunken preview panel and card footers. Muted instead;
the hierarchy step below body text survives in the font size. Found by
running axe against the flag detail page for the first time — every
earlier pass had audited other screens.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
One pass over a fresh seed, as always. flag-rules.png now also shows
the measured-by callout on the seeded flag.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Ssebv
Ssebv merged commit 6595857 into main Aug 17, 2026
10 of 12 checks passed
@Ssebv
Ssebv deleted the feat/measured-by branch August 17, 2026 16:08
@Ssebv Ssebv mentioned this pull request Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant