Course exhibits M2-M5 → O2 flat-vector (17 SVGs) + legibility-floor gate - #434
Merged
Conversation
…2 flat-vector Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… -> O2 flat-vector Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-vector Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…VG -> O2 flat-vector Funnel data byte-preserved: 30 sent, 20-30% reply, ~7 replied, ~50%+ show, 2-3 booked, plus the under-10%/10-20%/20-30% reply-rate guardrail. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…le SVG -> O2 flat-vector Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…lat-vector Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… -> O2 flat-vector Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… -> O2 flat-vector Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e-2026 SVG -> O2 flat-vector Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… flat-vector Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ctor Redraw the Sean Ellis gauge as a horizontal O2 signal meter (the smoke-test-signal archetype): under-40% amber = product problem, 40%+ green = must-have user, ruby 40% threshold line = the one actionable reading. Same 40% canon; alt text updated to match. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…flat-vector Redraw channel-fit-canvas as an O2 rubric: four dimension score cards (price fit / buyer type / time budget / signal, 1-3 each) + a 3-tier gate (9+/12 green commit, 7-8 amber pilot top two, 6 or less ruby re-read transcripts). Fill-in worksheet stays in the linked PDF per the house-spec phone-worksheet ceiling. Same scoring + gate canon; alt updated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…lat-vector Redraw network-buckets as four neutral numbered O2 cards (priority 1-4) with counts + one-line definitions and a send-order strip. Drops the O1 heat-colour coding (semantic colours reserved under O2) and the fabricated conversion stat; keeps 5/10/15/20 = 50 canon and the champions-first order. Alt updated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…O2 flat-vector Redraw network-audit-grid as an O2 audit table (name / last contact / warm-intro path) with one worked example + fill rows, plus three mapping cards turning last contact into opener warmth (recent hot, 6-24mo warm, no path cold/drop in ruby). Same audit + warmth rule; alt updated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…t-vector Redraw send-day-rhythm-card as three numbered O2 day cards (Day 1 champions+hot, Day 2-3 warm, Day 4+ cold) + a green success gate (10+ replies, 3-5 demos; expect 15-25 from 50). Same rhythm + gate canon; existing alt already matches. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-vector Redraw free-vs-paid-pilot as an O2 two-bar comparison (free ~12% ruby, paid ~65% green = money) with a deposit-terms note band: $500+, 10-30% of year-one ACV, forfeited if the customer cancels early, 100% refund if you cancel - matching the DPA canon. Drops the O1 fabricated-cohort caption; basis marked illustrative. Alt updated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ector Redraw ph-vs-ih as two O2 separate-metric stat cards: Product Hunt 3.1%/launch (ruby, one-day-spike motif, 387 launches, 89% would not launch again) vs Indie Hackers 23.1%/engaged post (green, sustained- motion motif). Same OpenHunts 2024 canon + takeaway; existing alt matches. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…20%-slot); 46-SVG burn-down for the deferred wave Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (17)
📒 Files selected for processing (16)
📝 WalkthroughWalkthroughThe PR adds a Ruby checker for SVG font-size legibility at 390px and expands alt text for course images. Documentation records the checker’s rollout status and deferred SVGs. ChangesSVG legibility and image accessibility
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
✨ 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 |
pftg
added a commit
that referenced
this pull request
Aug 1, 2026
…n wave Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
pftg
pushed a commit
that referenced
this pull request
Aug 8, 2026
Tranche 5 (JD hygiene) + the OKF log entry for the whole simplification: - SAFLA corpus archived: 76-safla-neural-xp-coordination/ (7 files, 6,382 lines, zero external inbound, bare-76 invalid JD area) moved under 70-79-ai-intelligence/_ARCHIVED_76-safla.../ + the 75.01-75.04 set prefixed _ARCHIVED_ (README links updated). It described claude-flow machinery that is not installed. - docs/30-39-architecture/ (7 CSS-era files, no README, zero inbound, colliding with the sanctioned 30-39-architecture-design/) folded into 2509's archives as 30-39-architecture-css-era/. - 80-89: Jekyll patterns archived (this is a Hugo site) + the ruby-expert validation report archived (report-file ban). - docs/visuals/ dissolved: the Excalidraw SVG guide archived into design-system/ with a supersession banner (O2 flat-vector + .okf/design/house-visual-spec.md replaced it in W3/#434); running-case-studies re-homed to 90-99. - design-system/course-landing-components-2026-08.md moved into 2605's 30-39-architecture-design/ (project material in a site-wide area); both inbound links repaired. - docs/adr/ double-0001 fixed (second file renamed 0002-) + README declaring adr/ the ONE site-wide ADR home, project ADRs stay in project trees. - READMEs added where their absence caused misfiling: 70-79-templates-boilerplates (documents the tolerated 70-79 range collision + internal 70.08 duplicate) and linkedin-posts/course-promo (mirrors the icp-validation entry point). - .okf/log.md: dated entry with the six durable lessons from tranches 1-5 (config-documents-only-installed-tools, supreme-authority-must- resolve, keep-lists-arent-existence-proofs, generated-not-asserted indexes, trackers-are-queues, per-file inbound checks on cohort archives). Deferred deliberately (documented in the OKF entry): the 60.xx duplicate renumbering + 60-69->20-29 testing-doc moves (M effort, inbound risk); .junie//GEMINI.md/QWEN.md mirrors (other tools' files). Gates: docs-only; course validators 8/8 green; inbound-link sweeps clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LtDh9gdEPMZjaFKauRaRRs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
M2–M5 exhibit rollout to O2 flat-vector (17 SVGs) + a floor-check gate
Extends the O2 flat-vector exhibit system (shipped for Module 1 in W3 #433, per Paul's style call) across the Module 2–5 lesson spine. Content-scoped (SVGs + alt rewrites); no shared CSS, no templates — campaign-safe.
Why this is a fix, not a repaint
Sprint-Y (W3) measured that 4 of 5 M1 SVGs failed the ≥9px@390px mobile legibility floor. A re-audit (grooming) confirmed the defect is course-wide: 74 of 80 course SVGs were failing — the whole hand-drawn set. This PR converts the 17 numbered-lesson SVGs in M2–M5, every one of which failed. After: all 17 clear the floor (smallest text 9.21px vs the old 4.5–8px).
What shipped (3 sub-waves, one branch)
All to one template (W=720, Space Grotesk / JetBrains Mono, white card on #faf7f2, 4px radius, fill=data/stroke=structure, ruby=the one reading, green=money-only, amber=warning). SVG
<title>/<desc>+ lesson alt text rewritten per exhibit; no other prose touched.Bonus quality win: the redraws removed two fabricated-cohort stats baked into the old SVGs (5.3's "60-70% / 3-5 conversations", 5.6's "4 founders we worked with… 2026" caption) — unsupported claims gone, consistent with the voice guide.
20%-slot:
bin/check-svg-floor(O7b)A build-time legibility gate: parses each SVG's viewBox width vs its smallest font-size and flags anything rendering <9px@390. The whole defect shipped because the only visual gate masks
<img>— this is the root-cause net. Report-only today (SVG_FLOOR_BLOCK=1to block); flips to a build gate once the rest converts. Confirms all 17 rollout + 6 M1 SVGs clear; enumerates the 46 reference/walkthrough SVGs still failing — the precise burn-down for the deferred follow-on wave.Verification & gates
bin/hugo-build8/8 every commit; all SVGs render in_dest;bin/check-svg-floorclean on the 17.img, so these<img>-embedded SVGs are NOT captured by the pixel suite — verification is rendered-review + source-consistency + the new floor gate (same masking on Linux → no course baseline moves). Honestbin/dtestfrom main: 34/34 green, zero failures (first run flaked on a transient env abort; clean re-run fully green). SVGs img-masked → no course baseline moved.Deferred (own PR, next wave)
The 46 remaining under-floor SVGs — reference/continuation pages + the 5 Mia walkthroughs (incl. the M1-walkthrough straggler) — same defect, enumerated by
bin/check-svg-floor. Not smuggled in here.🤖 Generated with Claude Code
Summary by CodeRabbit
Accessibility
Documentation
Quality Improvements