CSS Phase C sprint C3: page re-keying pilots - 27 semantic re-keys + dead-code sweep#374
Conversation
… prefixes Same mechanism as C2's testimonials-/cta-banner entries: semantic re-keys must not lose the accidental /^fl-node/ purge shield for runtime-only descendant classes. Added BEFORE the renames so each re-key commit stays a pure substitution. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only. Gate: all bundles byte-identical after guarded reverse substitution EXCEPT one cssnano selector-group reorder in the use-cases bundle (same rule, selectors alphabetized differently) - sorted-rule-set and last-wins winner map both identical. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
…gies Class rename only (incl. the leaked rule in shared technologies.css). Gate: canonical rule-set equality (selector groups comma-sorted) across all bundles - only cssnano alphabetization artifacts differ. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality (byte-identity modulo guarded reverse substitution and cssnano selector-group alphabetization). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality (byte-identity modulo guarded reverse substitution and cssnano selector-group alphabetization). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Class rename only; gate: converged builds, canonical rule-set equality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
…ted deletion) Each id verified to have ZERO rules in any live CSS (use-cases xfdrceov0hji; clients ywdijlprtzo2 + f14gkcmxeo5i - both keep their semantic ids; careers l6ztmq3h7fv2, rq3ws0n4gdmx, 0enadgf5wp84, 9v74jmuxkpdg, hm8u5ebytjw1). Class tokens removed from markup only; data-node attrs kept. Gate: all bundle fingerprints byte-identical. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
d09l8jp3qrgf, 7d9wg1x8ua5m, ncg61wov0ytq are referenced by NO layout anywhere (verified) - leftovers of retired FL exports, kept alive in compiled output only by the /^fl-node/ purge shield. Removed via bin/css-split across 12 files (8 critical + component-bundle, 404, homepage, fl-layout-grid). Gate: per-bundle decl-diff contains ONLY declarations under selectors carrying the dead ids - zero non-dead losses, zero extras. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
|
Warning Review limit reached
Next review available in: 11 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (22)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
What this is
Phase C sprint C3 (spec §Phase C): the three pilot pages move off
fl-node-<hash>classes, establishing the velocity basis for the C4 backlog. 31 commits, one node per commit, every one independently gated.Re-keys (27 nodes)
use-cases-hero/-technologies/-cta/-cta-box— including ther5xy9wufkc2erule that had leaked into sharedtechnologies.css, swept in the same commit.career-hero/-hero-col/-meta-item/-meta-label/-meta-value/-share-col/-share-label/-share-module/-body/-content-col/-form-col/-form-module— every node's twin rules incritical/single-careers.cssrenamed in the same commits (the audit flagged the orphan risk).clients-hero/-hero-col/-heading/-intro/-grid/-carousel/-cta-box/-cta-divider/-cta-heading/-cta-text/-cta-spacer— includes the two largest single re-keys of the phase (grid 114 + carousel 105 rules).Gate per re-key: converged double-builds; every bundle byte-identical after guarded reverse substitution, with one documented tolerance — cssnano alphabetizes selector groups when member names change, so equality is checked on canonical rule-sets (selector groups comma-sorted). Purge-safelist prep commit (
/^career-/,/^clients-/greedy) landed first, per the C2 lesson.Dead-code sweep
fl-nodeclasses dropped from templates (zero CSS rules each, verified; the two clients wrappers keep their semanticids). All bundle fingerprints byte-identical.d09l8jp3qrgf,7d9wg1x8ua5m,ncg61wov0ytq— referenced by no layout anywhere; alive in output only via the/^fl-node/purge shield). Removed across 12 files viabin/css-split; per-bundle decl-gate proved zero non-dead losses, zero extras. This is a real payload win on the critical/inline path.Verification
bin/dtest-all): EXIT=0, 119 screenshots, no failuresPhase C scorecard after this PR
Criterion 2 (no obfuscated artifacts): shared partials + 3 pilot pages fully semantic; zero hash-named files. Remaining
fl-nodemarkup: the C4 backlog pages (404, use-cases/single, page/services, services/single, about, home) at the velocity measured here (~2-3 min/node).🤖 Generated with Claude Code
https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V