Skip to content

Add /friday-report/ — the sample Friday report page the CTAs pointed at - #511

Merged
pftg merged 4 commits into
masterfrom
sample-friday-report
Aug 20, 2026
Merged

Add /friday-report/ — the sample Friday report page the CTAs pointed at#511
pftg merged 4 commits into
masterfrom
sample-friday-report

Conversation

@pftg

@pftg pftg commented Aug 20, 2026

Copy link
Copy Markdown
Member

2608 Phase 3. Built by a swarm lane, reviewed twice.

Why

The weekly plain-English report is JetThoughts' strongest differentiator, and
the design system points at it repeatedly — the homepage prototype's hero says
"See a real Friday report". No such page existed. Verified before building:
ls content/pages/ plus a repo-wide grep found only the homepage teaser
partial (whose CTA goes to /free-consultation/), so nothing was duplicated.

Honesty — the constraint that shaped the page

We do not have a publishable real client report, so the sample is a composite,
labelled three times
: a ruby-bordered disclaimer band under the hero, a second
line stating no client is named, and a COMPOSITE EXAMPLE pill on the card
head. A skimmer cannot reach the sample without crossing a full-width
disclaimer. No person, company, industry or outcome metric appears; the demo
login uses the reserved .test TLD so it cannot resolve.

Cold-eyes' framing: it claims less than we can verify, rather than the
"names changed, numbers accurate" form relabelled earlier today.

One claim was removed, not reworded — "the server sits on your card from the
first milestone" had no in-repo source. Note the reviewer's own suggested fix
would have preserved the unsourced assertion in nicer words; removal was the
right call and a code comment records why, so it cannot be reinstated by
someone who thinks it reads better.

Review

  • Cold-eyes ICP / voice / honesty: CHANGES REQUESTED (5 blocking, 8 non-blocking) → all applied → APPROVED on re-read.
  • Correctness: closed by the coordinator after three review agents died on a credit limit. The two shared-file changes were the only collision risk, and the over-match concern was verified independently on master, not from the author's grep: zero friday-/cta-friday classes or selectors exist anywhere else, so postcss.config.js:63 is inert outside this page. bin/qtest:47 is one additive entry.

The third commit is a latent-bug fix worth reading

Two sections 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. Zero visual delta today (both are #ffffff), which is
exactly why it would have sat there — and it detonates the moment a --surface
token moves off white, leaving a half-recoloured page. Fixed with the
id+class form new-page.md prescribes.

Gates

bin/hugo-build green (1175 pages, 8 validators) · marketing_copy_test green
· both new tests green · bin/test --smoke 17/17 with baselines untouched ·
stylelint 0 warnings · rendered 1440×900 (4,193px) and 390×844 (6,059px), zero
overflow, zero console errors, no paragraph over 5 rendered lines, contrast
≥5.07:1.

Screenshot baselines deliberately not recorded here — Lane A's site-wide
recolour will churn them; they belong on the integrating PR.

Known, not caused by this PR

bin/qtest <page> rewrites a rotating client-page baseline per run (a different
file each time, none on this diff's pages). It will abort a qtest run on the
dirty-baseline guard and read as a regression. bin/test --smoke is unaffected.

🤖 Generated with Claude Code

pftg and others added 3 commits August 20, 2026 22:50
The homepage hero, the report section and the rescue page all promise "a real
Friday report". Nothing existed to point at: content/pages/ had no such page,
and the homepage partial's own CTA fell through to /free-consultation/.

Builds the page those CTAs should target. Structure is lifted from
/services/vibe-code-rescue/ - proof chips in fold one, one repeated CTA,
artifact instead of stock photography, a decode section that lets the reader
place themselves, ~4,200px - because that structure is what makes that page
good and it is palette-independent (ADR-0003). Palette is the resolved LIGHT
system: ink ramp, warm surfaces, ruby accent, neon purple once, and exactly
one dark band spent on the strongest proof (ownership).

HONESTY: the report body is a COMPOSITE and says so three times - a
ruby-bordered box above the card, a second line inside that box, and a
"COMPOSITE EXAMPLE" pill in the card head. A skimmer cannot reach the card
without crossing the disclaimer. No client, company, industry, individual or
outcome metric appears anywhere; demo@yourapp.test uses the reserved .test TLD
so it cannot resolve. We have no redacted engagement cleared for publication,
so the page claims LESS than we can verify rather than the "names changed,
numbers accurate" form relabelled on 2026-08-20.

Company figures are canon-only: 4.8/5 with the Clutch profile linked, 5-year
average relationship, and tenure derived from site.Params.foundingYear.
An earlier draft said the server "sits on your card from the first milestone"
- a billing claim with no in-repo source. Replaced with the sourced phrasing
from page/vibe-code-rescue.html:102/:114. A claim with no in-repo source is a
defect, not a detail.

Own bundle, no shared CSS touched: foundations/ and components/ are untouched,
and the page uses no --color-primary, so the concurrent site-wide recolour
cannot collide with it.

Reviewed by a cold-eyes ICP + voice reviewer: 5 blocking + 8 non-blocking
findings applied, then APPROVED on re-read. Highest-value finding was 17
uncontracted forms - a page arguing for plain English was written in the
register of a legal notice, which no mechanical gate in this repo can see.

Gates: bin/hugo-build green, marketing_copy_test 3/3, bin/test --smoke 17/17
with baselines untouched. Rendered and read at 1440x900 and 390x844 - zero
console errors, zero asset 404s, no horizontal overflow, no paragraph over 5
rendered lines at either width, all text contrast >= 5:1.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PAGE_TESTS maps pages/friday-report.css -> /friday_report/ so a touch on the
page CSS selects its own tests. qtest treats a zero-match filter as a failure,
so the mapping needs a test in BOTH suites, not just desktop.

Both tests are behaviour-focused: they assert the four report blocks render,
that the composite disclaimer is present, and that the CTA repeats. The
disclaimer assertion is the load-bearing one - it fails if anyone ever
relabels or drops the honesty box, which is the defect class the 2026-08-20
testimonial purge existed to catch.

No assert_stable_screenshot yet, deliberately: the 2608 site-wide recolour is
mid-flight and would churn a new baseline immediately. Recorded on the
integrating PR instead, on both platforms together.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…h trap)

Zero visual delta today. The page background was set on .friday-page, which
ties on specificity with legacy-theme-skin's .fl-page-content and loses on
cascade order because that file ships after the page slice. Both resolve to
#ffffff right now, so nothing looked wrong - and that is exactly why it would
have gone unnoticed.

Two sections carry no background of their own (the composite disclaimer and
"What each part is for"). They inherit the page background, so if --surface
ever moves off #ffffff - which ADR-0003 contemplates, it specifies three light
surfaces - those two would have stayed hardcoded white while every other
section followed the token. A half-recoloured page, from a file nobody edited.

Fixes it the way new-page.md prescribes for this trap: id+class
(#fl-main-content.friday-page) so the token-driven rule actually wins.
Found by reading computed styles rather than the source - the disclaimer and
how-to sections compute to rgba(0,0,0,0), so the white underneath them was
never mine.

Verified after: page #ffffff, hero blush #fdf5f4, dark band #14110f, no
horizontal overflow, no paragraph over 5 rendered lines, 4,193px.
bin/hugo-build green, friday_report tests green, bin/test --smoke 17/17 with
baselines untouched, stylelint 0 warnings.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@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: e44bc830-8266-4158-b361-3e6d6499a404


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.

`PavedPathGuardTest#test_every_page_css_is_in_the_ownership_map` was failing
with `Expected ["friday-report"] to be empty` - the new page bundle was wired
into bin/qtest (PAGE_TESTS line 47) but not into
css-bundle-ownership-map.md, which is the other half of what
docs/workflows/new-page.md step 6 requires. The guard exists to catch exactly
this half-wiring.

Described as born-semantic on the vibe-code-rescue precedent: the only two
`fl-` hits in the bundle are a comment and a `#fl-main-content.friday-page`
specificity override against legacy-theme-skin, not FL modules. Noted the
override in the row so the next reader does not treat it as migration debt.

bin/rake test:unit: 279 runs, 0 failures.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@pftg
pftg merged commit e361c69 into master Aug 20, 2026
5 checks passed
@pftg
pftg deleted the sample-friday-report branch August 20, 2026 21:32
pftg added a commit that referenced this pull request Aug 20, 2026
…ster run (#515)

Two gate rules sharpened after a six-PR merge pass. Both are increments on
rules the bundle already had, added to the existing concepts rather than as
new ones.

ci-gates already said "re-run, don't raise the cap" and "if the job got past
checkout it is a real failure". Necessary, not sufficient. On #511 `Unit Tests`
read `fail 10m2s` - the stall signature exactly - and "known flake, merge it"
was the tempting call. The fresh run got past checkout and failed again in
1m48s on a genuine defect: PavedPathGuardTest caught friday-report.css wired
into bin/qtest but missing from css-bundle-ownership-map.md. Same check, same
PR, two unrelated causes. Rule: a slow failure and a fast failure are different
failures, and the first red's explanation must never carry over to the second.

test-gates gains the local-vs-master rule. Verifying #511, `bin/qtest --changed`
went red pointing at services/fractional-cto - a page it never touched - and the
available story was that its postcss.config.js edit had shifted CSS site-wide.
It had not: that edit only ADDS purgecss safelist entries, and safelisting more
can only preserve more CSS, never remove any. The check that settled it was the
same system test on clean origin/master on this macOS host: 34 runs, 6 failures,
8 of 77 screenshots mismatched. The suite is red on master here, so the local leg
could not answer the question; CI's native-Linux Screenshot Tests passed #511 in
16m15s and was right.

Validated: okf_validate --strict conformant, 0 errors (the 70 warnings are the
pre-existing house log-heading convention). bin/hugo-build green.

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