Skip to content

OKF: site-palette concept (+ verify the #504 compaction was non-lossy) - #505

Merged
pftg merged 4 commits into
masterfrom
okf-site-palette
Aug 20, 2026
Merged

pftg merged 4 commits into
masterfrom
okf-site-palette

Conversation

@pftg

@pftg pftg commented Aug 20, 2026

Copy link
Copy Markdown
Member

Bundle-only. From a scheduled /okf:okf maintain tick, after the session
resumed onto a master that had moved by four PRs.

First: verified the compaction didn't drop anything

#504 compacted the bundle 359KB → 191KB by lifting log-only rules into
concepts. Checked today's knowledge against it before adding anything — the
token layer, img-cropped's mobileWidth/mobileSizes params, the blog-list
traps, bin/record-baselines, and the GA browser-channel distinction all
survived in concepts rather than only in the log. That's the outcome the
compaction was aiming for.

Then: one real gap, in the section read first for visual questions

design/ had no site-palette concept. house-visual-spec is in-post SVG
artwork and cover-pipeline is covers, so "what palette does the site use?"
resolved to nothing there — while the LIGHT decision lived in
docs/adr/0003 and (since the previous tick) architecture/css-pipeline.

design/site-palette.md adds:

  • The decision and the reasoning that predicts future calls — dark
    marketing belongs to products bought by developers evaluating a tool; light
    belongs to services bought on trust
  • The token table — ruby primary, purple secondary (gradient partner and
    small marks only), warm ink ramp, three light surfaces
  • The three places dark stays deliberate — blog cover art, one dark band
    per page, and /services/vibe-code-rescue/ as a dark variant campaign page
    — so nobody later "fixes" those into light
  • --color-primary / #0066d6 flagged as deprecations in progress, with
    "all the !importants retire" as Phase 1a's success signal

bin/hugo-build green; OKF conformant under --strict.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Aug 20, 2026 •

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 214f606d-b537-4934-9561-679868f293a8


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@pftg
pftg force-pushed the okf-site-palette branch from 23e3d9e to d879421 Compare August 20, 2026 20:34
pftg and others added 4 commits August 20, 2026 23:10
Lane A halted its codemod rather than recolour brand assets and the reason
corrects the ADR. After deleting --color-primary the only #1a8cff left in
built output was SVG assets - logo-dark.svg contains exactly one hex value,
no brand definition' was overstated: true of the documented design system,
false of the actual logo.

The decision survives with a better reason - a mark colour is not a UI
accent. The logo identifies, the accent directs; promoting the mark's blue to
'primary' is what put blue bands, blue tags and blue links on a ruby site.
The three logo files stay blue and are OUT OF SCOPE for every design-system
phase, not deferred.

Also records the trap that produced the finding: SVG assets cannot read CSS
custom properties, so ~29 hardcoded icons are invisible to token work and a
recolour must sweep them separately. 20.02 counted CSS references and
literals but never SVG assets - a gap in my plan, not in the execution.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…k role

Three corrections, all surfaced by the agent executing the plan rather than by
me writing it.

1. The success signal 'delete all 55 !important workarounds' was wrong and
   dangerous. 55 counted every !important in four files; only ~19 are
   anchor-attributable - the rest are @media print rules and legacy
   heading-margin fights, so chasing the number would have deleted print
   styles to hit it. Replaced with the falsifiable version: every !important
   whose comment cites the anchor rule must go, and no other may be touched.
   The trap generalises - blog-single.css's comment says 'same class of fight
   ... both die in Phase 1a'. Same class, different cause.

2. #0066d6 is also an accessibility fix, not only a specificity monster: it
   replaced #1a8cff in Sprint #2 because the brand blue measured 3.37:1 and
   failed AA. Retiring it means landing the replacement at AA or better, not
   merely 'not blue'.

3. Body links decided - --ink-900 text with a --color-ruby underline. Not ruby
   text: ruby is the action colour and a body full of ruby links stops links
   being distinguishable from buttons. WCAG 1.4.1 requires more than colour to
   mark a link, so the underline carries the affordance and the text stays
   calm for long-form reading. Recorded with a do-not-simplify note.

Also adds the SVG-asset row the original measured-surface table omitted (50
files: 47 icons swept, 3 logos deliberately untouched).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Two durable findings from the 3-lane redesign swarm.

architecture/css-pipeline.md - computed style, not source, proves the paint.
Two sections of the new /friday-report/ page computed to
background-color rgba(0,0,0,0): the white behind them was
legacy-theme-skin.css's hardcoded .fl-page-content, which ships after the
page slice and wins on cascade order. Zero visual delta today because both
are #ffffff - which is exactly why it would have sat undetected - and it
detonates the moment a --surface token moves off white, leaving a
half-recoloured page caused by a file nobody touched. Records the detection
method and the id+class fix from new-page.md. Same family as the uppercase
#1A8CFF that survived a case-sensitive sweep.

workflows/review-swarm.md - review agents failed 4 of 6, all on a Fable
credit limit, because work agents carried an explicit opus override while the
reviewers they spawned inherited the default. The asymmetry is the hazard:
work completes and reports success while its gate quietly does not run.
Brief size looks causal rather than incidental - the three that died had long
briefs, the one that returned a verdict had the tightest, and a
consumption-based limit means the sprawling thorough-looking brief is LESS
likely to produce a review. Rules: dead reviewer is not a passed review; idle
is ambiguous so ask for the verdict; pass model opus explicitly; a
coordinator closing a leg itself must say so and invite contradiction.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
#508 un-marked page_view and #495 marked contact_cta_click, closing the
Phase 0.1 GA4 items this plan still described as outstanding and which I had
been reporting to Paul as blocked.

Carries the caveat that outlives the fix: un-marking is NOT retroactive, so
the ~4,063 historical page-view 'key events' remain in the data and any
before/after read spanning 2026-08-13 to 08-20 compares a polluted before
against a clean after. Date-bound keyEvents queries or read the underlying
event names.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@pftg
pftg force-pushed the okf-site-palette branch from 3a973ed to 62deb6f Compare August 20, 2026 21:11
@pftg
pftg merged commit 2572c15 into master Aug 20, 2026
4 checks passed
@pftg
pftg deleted the okf-site-palette branch August 20, 2026 21:23
pftg added a commit that referenced this pull request Aug 20, 2026
Remove two verification screenshots committed to the repo root

`lanea-blogbody-04-after-1a3.png` and `lanea-services-03-after-1a3.png` (392KB)
landed at the repo root via #505. That PR's body never references them, so they
are strays rather than intended artifacts - it is about the OKF site-palette
concept, not about shipping captures.

Every other screenshot in this repo lives under `docs/projects/<project>/`
(2604's `sprint3-screenshots/` and `sprint3-verification/` are the precedent).
Deleting rather than relocating: they are point-in-time "after" captures whose
verification already happened in the PR itself, and binary at the repo root is
the kind of thing the next session copies because it looks sanctioned.

Flagged before #505 merged; the removal could not ride that PR because pushing
to another session's in-flight branch was not permitted, so it lands here.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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