Skip to content

Item 18: course SVG corpus → O2 flat-vector (mobile legibility floor 74/80 → 0) + blocking gate - #445

Closed
pftg wants to merge 32 commits into
masterfrom
course-svg-floor-item18
Closed

Item 18: course SVG corpus → O2 flat-vector (mobile legibility floor 74/80 → 0) + blocking gate#445
pftg wants to merge 32 commits into
masterfrom
course-svg-floor-item18

Conversation

@pftg

@pftg pftg commented Aug 12, 2026

Copy link
Copy Markdown
Member

Item 18 — Course SVG corpus → O2 flat-vector (mobile legibility floor: 74/80 → 0)

Clears the course-wide exhibit-SVG legibility defect: every hand-drawn SVG was drawn at viewBox 900-1000 with 10-18px fonts, rendering 4.5-8px at 390px — below the 9px mobile floor. All are redrawn to the O2 flat-vector spec (viewBox W=720, min font ≥17px → ≥9.21px@390) with meaning preserved.

Burn-down (4 sub-waves)

Sub-wave Batch Floor
SW-1 5 Mia walkthrough artifact-trails 46 → 41
SW-2 11 reference-deepdive + hire-track-map 41 → 29
SW-3 16 workflow/template (kit, friday-demo, five-tech-words, pre-launch, quickstart, faq, validation-tools, …) 29 → 13
SW-4 13 hiring/sales/ownership (hiring-map, scorecards, outreach, pivot, SOW, presale, token-bill, org-chart) 13 → 0

bin/check-svg-floor now reports: all 80 SVGs clear the 9px@390 floor.

The gate flip (fix the gate, not the instance)

The report-only net that enumerated this backlog is now the guard: bin/hugo-build runs check-svg-floor with SVG_FLOOR_BLOCK=1 and fails the build if any exhibit SVG regresses below the floor. Same pattern as the course-path/validator gates.

O2 discipline (per .okf/design/house-visual-spec.md)

White cards on #faf7f2, Space Grotesk titles, ruby = the one action/anti-pattern, green = money/success only, amber = warning, purple = alt-artifact/categorical, labels-inside-shapes, dash-not-em-dash. Two spec-endorsed "fewer nodes at W=720" simplifications (kit-sample-row 8→4 col, pre-launch-gates dropped illegible sub-bullets) — meaning kept, alt/aria rewritten.

Gates

  • bin/hugo-build: green (8/8 validators + the new blocking svg-floor gate).
  • Rendered review at 390px on 5 SVGs across diagram types (mom-test comparison, ownership-zones grid, kit tracker, pre-launch gates, pivot-wheel branching) — all legible, meaning preserved, O2-disciplined.
  • Pixel suite: N/A by designqtest --changed reports "no visual-affecting changes": the visual suite masks <img> SVGs (the very gap check-svg-floor was built to cover), so rendered review + the floor gate are the real gates, not bin/test/bin/dtest.
  • Rebased clean onto master (item 16); no overlap. Main-checkout write-leaks by executors were caught and reverted (main verified clean).

🤖 Generated with Claude Code

pftg and others added 30 commits August 12, 2026 23:31
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… (SW-2)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…(SW-2)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…(SW-2)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ctor (SW-2)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…Gs → O2 flat-vector (SW-2)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… (SW-2)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…or (SW-2)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ector (SW-2)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…r (SW-2)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…W-2)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… (SW-3)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…2 flat-vector (SW-3)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… flat-vector (SW-3)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…W-3)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… (SW-4)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…t-vector (SW-4)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…-vector (SW-4)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…> O2 flat-vector (SW-4)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…r (SW-4)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…(SW-4)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
item18 cleared the whole course SVG corpus to O2 flat-vector (74/80
under the 9px@390 mobile floor → 0 across SW-1..SW-4). bin/hugo-build now
runs check-svg-floor with SVG_FLOOR_BLOCK=1 and fails the build if any
exhibit SVG regresses below the floor. 'fix the gate, not the instance'
- the report-only net that enumerated the backlog is now the guard.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@pftg, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 58 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: e93208f1-7c48-400a-8967-44a334cc0f66

📥 Commits

Reviewing files that changed from the base of the PR and between 74b642b and c0b8dfa.

⛔ Files ignored due to path filters (46)
  • content/course/tech-for-non-technical-founders-2026/agency-ai-five-questions/scorecard-at-a-glance.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/ai-token-bill-dev-shop-pass-through-cost/invoice-loop.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/engineering-org-chart-non-technical-founder/reviewer-attention.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/fake-stripe-pre-sale-pieter-levels/dollar-presale-flow.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/faq/module-strip.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/kit-components.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/kit-sample-row.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/architecture-comparison.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/jargon-translator.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/refactor-check.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/catching-the-lie.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/demo-rule.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/friday-loop.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/friday-demo-template/friday-demo-timeline.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/hire-track-map.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/hiring-interview-script/scorecard-at-a-glance.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/interview-scorecard/scorecard-5-questions.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/module-1-walkthrough-mia/artifact-trail.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/module-2-walkthrough-mia/artifact-trail.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/module-3-walkthrough-mia/artifact-trail.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/module-4-walkthrough-mia/artifact-trail.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/module-5-walkthrough-mia/artifact-trail.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/outreach-sequence-template/bump-decision.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/outreach-sequence-template/message-channels.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/outreach-sequence-template/outreach-cadence.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/pivot-ledger.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/pivot-wheel.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/pre-launch-checklist/pre-launch-gates.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/quickstart/minimal-path.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/reference/hypothesis-sprint-full/sprint-timeline.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/reference/mom-test-full/good-vs-bad-answers.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/reference/must-have-survey-full/segment-isolation.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/reference/outbound-full/stage-cadence.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/reference/outcomes-not-features-full/feature-vs-outcome.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/reference/ownership-full/bad-vs-good-email.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/reference/ownership-full/ownership-zones.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/reference/product-brief-full/good-vs-bad-prd.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/reference/prototype-build-full/wireframe-strip.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/reference/smoke-test-channel-guide/channel-icp-matrix.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/reference/stripe-price-test-full/price-test-flow.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/self-serve-stack-walkthrough/walkthrough-milestones.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/sow-reading-guide/eight-clause-risk-map.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/three-questions-turn-standup-into-proof/daily-weekly-cadence.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/validation-tools-field-guide/tools-in-sequence.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/vibe-prd-template/vibe-prd-skeleton.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/hiring-region-map.svg is excluded by !**/*.svg
📒 Files selected for processing (10)
  • .okf/build/test-gates.md
  • .okf/log.md
  • bin/check-svg-floor
  • bin/hugo-build
  • content/course/tech-for-non-technical-founders-2026/module-1-walkthrough-mia/index.md
  • content/course/tech-for-non-technical-founders-2026/module-2-walkthrough-mia/index.md
  • content/course/tech-for-non-technical-founders-2026/module-3-walkthrough-mia/index.md
  • content/course/tech-for-non-technical-founders-2026/module-4-walkthrough-mia/index.md
  • content/course/tech-for-non-technical-founders-2026/module-5-walkthrough-mia/index.md
  • docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch course-svg-floor-item18

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 and others added 2 commits August 12, 2026 23:33
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@pftg

pftg commented Aug 13, 2026

Copy link
Copy Markdown
Member Author

Closing unmerged. Paul's review: the original hand-drawn exhibits look better than the O2 conversions AND better than careful style-preserving re-fits. Root cause: forcing 46 wide/dense hand-drawn reference exhibits into a 720-wide, >=17px mobile-legible box inherently degrades them (elegant single-row strips become grids, horizontal flows become tall stacks) - no 'preserve the style' survives the re-layout. The 9px mobile floor is not worth degrading good desktop-first exhibits. Master already carries the originals (never merged), so the live site is unaffected. check-svg-floor stays as a REPORT-ONLY advisory of the known mobile-legibility tech-debt; it must NOT be a blocking gate that forces redesign. Branch kept in history if any single exhibit is ever worth a bespoke redraw.

@pftg pftg closed this Aug 13, 2026
pftg added a commit that referenced this pull request Aug 13, 2026
…closed)

Co-Authored-By: Claude Opus 4.8 (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