fix(as-S6): the operator's rulings — sentence tagline, no side stripe, matte dot, stripe on ::before

Operator, 2026-09-28: "go with your recommendations".
- Tagline: 'held for review · wipes in {ttl}h unless kept', mono, muted,
  12px, sentence case ("ephemeral" goes, as agreed with booth-dev).
- 'Needs you' rows lose the 3px side stripe; the '? N OPEN' stamp says it.
  The flagged filmstrip frame keeps its bottom stripe.
- The brand dot is matte (glow = live power; a live bench keeps its glow).
- Wipe now and the armed bulk delete carry the hazard stripe on a 3px
  ::before, so the button's own background is honestly what sits under its
  text; the stripe renders as before.

Contract: as_antislop S6. Falsifiers: antislop.toml 49/49 proved (S1-S4, S6);
all 12 tables 329/329 proved on this tree.
This commit is contained in:
vh
2026-09-28 13:30:31 -07:00
parent 1d6821b732
commit ec807fe41b
5 changed files with 116 additions and 16 deletions
+46
View File
@@ -329,3 +329,49 @@ file = "booth/templates/base.html"
test = "tests/test_antislop_browser.py::test_doc_headings_step_by_size"
old = """.markdown-body h3{font-size:1.2em;font-weight:600}"""
new = """.markdown-body h3{font-size:1.08em;font-weight:600}"""
# ---- S6: the operator's rulings
[[mutation]]
label = "S6 the old tagline copy"
file = "booth/templates/base.html"
test = "tests/test_antislop.py::test_the_tagline_is_a_sentence"
old = """ <span class="tagline">held for review · wipes in {{ ttl_hours }}h unless kept</span>"""
new = """ <span class="tagline">ephemeral media · auto-wipes {{ ttl_hours }}h · kept boards don't</span>"""
[[mutation]]
label = "S6 the tagline in tracked capitals again"
file = "booth/templates/base.html"
test = "tests/test_antislop.py::test_the_tagline_is_a_sentence"
old = """ .tagline{font-family:var(--font-mono);font-size:var(--size-caption);font-weight:500;color:var(--text-muted)}"""
new = """ .tagline{font-family:var(--font-mono);font-size:var(--size-caption);font-weight:500;text-transform:uppercase;color:var(--text-muted)}"""
[[mutation]]
label = "S6 the needs-you side stripe back"
file = "booth/templates/base.html"
test = "tests/test_antislop.py::test_needs_you_rows_carry_no_side_stripe"
old = """ .desk-row.is-needs{box-shadow:var(--shadow-sm)}"""
new = """ .desk-row.is-needs{box-shadow:inset 3px 0 0 var(--warning),var(--shadow-sm)}"""
[[mutation]]
label = "S6 the brand dot glows again"
file = "booth/templates/base.html"
test = "tests/test_antislop.py::test_the_brand_dot_is_matte"
old = """ .brand .dot{width:8px;height:8px;border-radius:var(--radius-pill);background:var(--accent)}"""
new = """ .brand .dot{width:8px;height:8px;border-radius:var(--radius-pill);background:var(--accent);box-shadow:var(--glow-armed)}"""
[[mutation]]
label = "S6 Wipe now paints the stripe on its own background again"
file = "booth/templates/base.html"
test = "tests/test_antislop_browser.py::test_the_hazard_stripe_is_a_pseudo_element"
old = """ position:relative;overflow:hidden;background:transparent;
border:1px solid var(--danger);color:var(--danger-text);-webkit-backdrop-filter:none;backdrop-filter:none}"""
new = """ position:relative;overflow:hidden;background:var(--hazard-stripe) top / 100% 3px no-repeat,transparent;
border:1px solid var(--danger);color:var(--danger-text);-webkit-backdrop-filter:none;backdrop-filter:none}"""
[[mutation]]
label = "S6 the stripe layer lost (no ::before)"
file = "booth/templates/base.html"
test = "tests/test_antislop_browser.py::test_the_hazard_stripe_is_a_pseudo_element"
old = """ .wipe-lg button::before,.board-del-sel:not(:disabled)::before{content:"";position:absolute;"""
new = """ .wipe-lg button::after,.board-del-sel:not(:disabled)::after{content:"";position:absolute;"""