Skip to content

feat(course): in-post visual refresh - mermaid house theme + 4 worst-SVG redesigns#361

Open
pftg wants to merge 13 commits into
masterfrom
course-visual-refresh
Open

feat(course): in-post visual refresh - mermaid house theme + 4 worst-SVG redesigns#361
pftg wants to merge 13 commits into
masterfrom
course-visual-refresh

Conversation

@pftg

@pftg pftg commented Jul 12, 2026

Copy link
Copy Markdown
Member

Summary

A design-critic triage of all ~70 in-post course visuals (44 SVGs + 22 mermaid diagrams) found the quality problems concentrate in two places; this PR fixes both. Comparisons were reviewed with the owner before shipping (old-vs-new montages in the linked session).

Mermaid: one systemic fix for all 22 diagrams

The critic's diagnosis was theme-wide, not per-diagram: the bare mermaid.initialize() shipped Mermaid's default hairline gray edges, floating edge labels, and a cursive-font-to-node-size mismatch (cavernous diamonds / crushed LR rows). baseof.html now sets the house theme as the global default — Caveat 20px, paper fills, ruby borders, 2.25px edges, chip-backed edge labels, node/rank spacing and padding. Per-diagram %%init%% directives still override where present. Verified before/after on the 5.1 decision tree.

SVGs: the 4 that scored "genuinely ugly", rebuilt

File Was Now
sean-ellis-gauge.svg (5.1) two flat rectangles + stray arrow, no actual gauge real semicircular meter: amber below / green above a bold 40% line, verdict cards each side
segment-isolation.svg (5.1) Venn of mutually-exclusive segments, muddy overlaps three cohort cards — blended 28% vs B2B 64% / solo 14% / agencies 0%, only the passer green, 40%-line on each bar
ph-vs-ih.svg (5.7) one shared axis for two different metrics (actively misleading) two independent stat cards, one-day-spike vs sustained-motion motifs, lesson takeaway bar
smoke-test-signal.svg (1.4) default-tool boxes, arbitrary colors banded 0–20%+ signal meter with the lesson's exact thresholds and the 6% go-line pointer

All facts lesson-verified; all four alt texts rewritten to describe the new art; the gauge footer reworded off a banned cost-anxiety phrase. Every render re-verified by the coordinator.

Also ships the reusable master design prompt for future in-post visuals: .stitch/prompts/course-inpost-visual-prompt.md (house family, semantic color rules, mermaid layout rules, quality gates).

Backlog deliberately NOT in this PR (critic-identified, next wave on request)

4 borderline SVGs (architecture-comparison, hypothesis-mad-libs, pivot-wheel hub, reviewer-attention), ~4 mermaids needing per-diagram layout rebuilds, and the cursive-vs-sans font-family cohesion decision.

Test evidence

  • bin/validate-course 8/8; bin/hugo-build green
  • bin/rake test:critical 46/46; bin/test (macOS) AND bin/dtest (Linux): 0 failures, 84 screenshots, no diffs each
  • All shipped SVGs rasterized and inspected; mermaid theme verified on rendered pages

🤖 Generated with Claude Code

https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V

Summary by CodeRabbit

  • New Features
    • Added more consistent inline lesson diagram rendering and improved Mermaid diagram font/theming for accurate label layout.
  • Documentation
    • Updated multiple course visuals, captions, and accessibility alt text; refreshed several decision diagrams and replaced some diagrams with static SVGs.
    • Refined worksheet/guidance content with clearer tables, thresholds, and routing instructions.
  • Style / Chores
    • Introduced worksheet card UI styling and tightened course reading typography for better spacing and legibility.

…SVG redesigns

Two design critics scored all ~70 in-post visuals (44 SVGs, 22
mermaids). Findings and fixes:

Mermaid (systemic - one site-level fix lifts all 22): the bare
mermaid.initialize() shipped default hairline edges, floating edge
labels, and a cursive-font-to-node-size mismatch. baseof.html now sets
the house theme as the global default (Caveat 20px, paper fills, ruby
borders, 2.25px edges, chip-backed edge labels, nodeSpacing/rankSpacing
/padding) - per-diagram %%init%% directives still win where present.

SVGs (the 4 that scored 'genuinely ugly', each rebuilt to the
informational-sketch family with lesson-verified facts):
- sean-ellis-gauge: was two flat rectangles + stray arrow claiming to
  be a gauge -> real semicircular meter, amber below / green above the
  bold 40% line, verdict cards each side
- segment-isolation: was a Venn of mutually-exclusive segments with
  muddy overlaps -> three cohort cards (blended 28% vs B2B 64% / solo
  14% / agencies 0%), only the passing card green, 40%-line on each bar
- ph-vs-ih: was one shared axis for two DIFFERENT metrics (misleading)
  -> two independent stat cards, spike vs sustained motifs, lesson
  takeaway bar
- smoke-test-signal: was default-tool boxes with arbitrary colors ->
  banded 0-20%+ signal meter with the lesson's exact thresholds and
  the 6% go-line pointer

All four alt texts rewritten to describe the new art; gauge footer
reworded off the banned cost-anxiety phrasing. Master design prompt for
future in-post visuals: .stitch/prompts/course-inpost-visual-prompt.md.

Gates: validators 8/8, build, test:critical, bin/test AND bin/dtest
green (0 diffs).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
@coderabbitai

coderabbitai Bot commented Jul 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: 57 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

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

Run ID: 66f74107-8505-4315-b0a7-80a305d1478b

📥 Commits

Reviewing files that changed from the base of the PR and between 32fec9a and fba9db2.

⛔ Files ignored due to path filters (25)
  • 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-persona-pre-validation-mom-test-prep/rehearsal-loop.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/channel-selection-before-outbound/channel-decision.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/clickable-prototype-validation-2-hour-lovable/prototype-build-strip.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/five-tech-words-stop-nodding-at/refactor-check.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/form-your-founding-hypothesis-90-minute-sprint/hypothesis-mad-libs.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/github-aws-database-ownership-checklist/ownership-zones.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/one-page-product-brief-vibe-prd/good-vs-bad-prd.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/vibe-prd-template-visual.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/price-hypothesis-on-smoke-test-page/stripe-payment-link.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/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/should-you-hire-2026-decision-tree/airbnb-test.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/smoke-test-landing-page-7-day-demand-test/channel-icp-matrix.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-coding-ceiling-signals/shed-house-skyscraper.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/weekly-dev-report-template-founders/five-sections.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/weekly-dev-report-template-founders/report-comparison.svg is excluded by !**/*.svg
📒 Files selected for processing (38)
  • .okf/log.md
  • .okf/workflows/review-swarm.md
  • .stitch/course-taste-design.md
  • content/course/tech-for-non-technical-founders-2026/_index.md
  • content/course/tech-for-non-technical-founders-2026/agency-ai-five-questions/index.md
  • content/course/tech-for-non-technical-founders-2026/agency-uses-ai-follow-up-questions/index.md
  • content/course/tech-for-non-technical-founders-2026/ai-persona-pre-validation-mom-test-prep/index.md
  • content/course/tech-for-non-technical-founders-2026/channel-selection-before-outbound/index.md
  • content/course/tech-for-non-technical-founders-2026/clickable-prototype-validation-2-hour-lovable/index.md
  • content/course/tech-for-non-technical-founders-2026/customers-leaving-churn-triage-not-acquisition/index.md
  • content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/index.md
  • content/course/tech-for-non-technical-founders-2026/first-ten-customers-network-list/index.md
  • content/course/tech-for-non-technical-founders-2026/first-ten-customers-outreach-message/index.md
  • content/course/tech-for-non-technical-founders-2026/first-ten-customers-send-track/index.md
  • content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/index.md
  • content/course/tech-for-non-technical-founders-2026/form-your-founding-hypothesis-90-minute-sprint/index.md
  • content/course/tech-for-non-technical-founders-2026/github-aws-database-ownership-checklist/index.md
  • content/course/tech-for-non-technical-founders-2026/hiring-interview-script/index.md
  • content/course/tech-for-non-technical-founders-2026/mom-test-interview-script/index.md
  • content/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/index.md
  • content/course/tech-for-non-technical-founders-2026/ownership-checklist/index.md
  • content/course/tech-for-non-technical-founders-2026/price-hypothesis-on-smoke-test-page/index.md
  • content/course/tech-for-non-technical-founders-2026/quickstart/index.md
  • content/course/tech-for-non-technical-founders-2026/reference/hypothesis-sprint-full/index.md
  • content/course/tech-for-non-technical-founders-2026/reference/smoke-test-channel-guide/index.md
  • content/course/tech-for-non-technical-founders-2026/reference/stripe-price-test-full/index.md
  • content/course/tech-for-non-technical-founders-2026/salvage-vs-rebuild-decision-tree/index.md
  • content/course/tech-for-non-technical-founders-2026/slopsquatting-ai-supply-chain-attack/index.md
  • content/course/tech-for-non-technical-founders-2026/smoke-test-build-page/index.md
  • content/course/tech-for-non-technical-founders-2026/smoke-test-landing-page-7-day-demand-test/index.md
  • content/course/tech-for-non-technical-founders-2026/smoke-test-wire-tracking/index.md
  • content/course/tech-for-non-technical-founders-2026/sow-reading-guide/index.md
  • content/course/tech-for-non-technical-founders-2026/three-questions-turn-standup-into-proof/index.md
  • content/course/tech-for-non-technical-founders-2026/validation-tools-field-guide/index.md
  • content/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/index.md
  • content/course/tech-for-non-technical-founders-2026/weekly-dev-report-template-founders/index.md
  • content/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/index.md
  • data/course_banned_strings.yaml
📝 Walkthrough

Walkthrough

Adds inline course visual authoring guidance, expands site-wide Mermaid styling, introduces a structured worksheet UI, updates course diagrams and image descriptions, revises instructional content and escalation thresholds, and adds an indexed OKF knowledge bundle with build, content, design, and workflow documentation.

Changes

Course visual system and worksheet presentation

Layer / File(s) Summary
Visual guidance and Mermaid rendering
.stitch/prompts/..., themes/beaver/layouts/baseof.html, content/course/..., docs/workflows/visual-scroll-gate.md
Defines inline diagram constraints, loads the Caveat font before Mermaid rendering, updates Mermaid defaults, and revises or replaces course visualizations.
Structured worksheet presentation
content/course/.../build-path-decision-worksheet/index.md, themes/beaver/assets/css/style.css
Replaces the text worksheet with structured cards, verdict choices, routing instructions, and responsive course-page styling.

Course instructional content

Layer / File(s) Summary
Thresholds, guidance, and references
content/course/.../*/index.md
Updates escalation timing, course thresholds, terminology, examples, cross-references, accessibility descriptions, and hiring/reference guidance.
Validation and content controls
data/course_banned_strings.yaml, .okf/content/...
Adds banned-string validation entries and documents course canon, voice rules, and rendered-text validation behavior.

OKF knowledge bundle

Layer / File(s) Summary
Build, design, and workflow documentation
.okf/{build,design,workflows}/..., .okf/index.md, .okf/log.md, CLAUDE.md, .gitignore
Adds the OKF index and operational playbooks for builds, test gates, PDF generation, typography, visual assets, render verification, review swarms, and bundle maintenance.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: a Mermaid house theme refresh plus four SVG redesigns.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch course-visual-refresh

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@themes/beaver/layouts/baseof.html`:
- Around line 111-125: Update the Mermaid initialization in the base layout so
the site-wide themeVariables.lineColor matches the established prompt guidance
and per-diagram init directives by using `#333`. Leave the other Mermaid theme
settings unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 62fcddcc-cb5d-4e33-94df-5c0327a0984e

📥 Commits

Reviewing files that changed from the base of the PR and between 583591c and 35343eb.

⛔ Files ignored due to path filters (4)
  • content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/sean-ellis-gauge.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/segment-isolation.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/ph-vs-ih.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/smoke-test-landing-page-7-day-demand-test/smoke-test-signal.svg is excluded by !**/*.svg
📒 Files selected for processing (5)
  • .stitch/prompts/course-inpost-visual-prompt.md
  • content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.md
  • content/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/index.md
  • content/course/tech-for-non-technical-founders-2026/smoke-test-landing-page-7-day-demand-test/index.md
  • themes/beaver/layouts/baseof.html

Comment thread themes/beaver/layouts/baseof.html
… diagrams

- lineColor default #453f3f -> #333 (CodeRabbit: diverged from the
  prompt guidance and every per-diagram init)
- validation-tools 'Why use validation tools' tree: merged the Catches
  capsules into the tool cards (they duplicated the table right below),
  dropped the volatile '$9 Starter' price hardcoded inside the diagram
  (de-hardcoding policy) - tree is now 3 rows instead of 5
- 2.3 'full journey': lone-column TD straggle (~1,500px of sparse
  stacked Step boxes) -> compact 6-node LR anchor strip above the
  numbered list that carries the detail

Gates: build green, test:critical 46/46; visual suites ran green after
the lineColor change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
@pftg

pftg commented Jul 12, 2026

Copy link
Copy Markdown
Member Author

Review round addressed in c881bfe:

  • CodeRabbit's lineColor finding — valid; the site default now uses #333, matching the design prompt and every per-diagram init.
  • Owner-flagged: validation-tools "Why use validation tools" tree — the three "Catches" capsules duplicated the blind-spot table directly below, and the diagram hardcoded a volatile "$9 Starter" price (de-hardcoding policy). Catches merged into the tool cards, price dropped — 3 rows instead of 5.
  • Owner-flagged: 2.3 "full journey" — the lone-column TD straggle (~1,500px of sparse stacked Step boxes) is now a compact 6-node LR anchor strip above the numbered list that carries the detail.

Gates: build green, test:critical 46/46, both visual suites green after the template change.

🤖 Generated with Claude Code

Paul Keen and others added 2 commits July 12, 2026 15:22
…26-07-12 reflection)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
… cover chip fact

Content fixes from the Module 4 re-review (two fixer waves, all verified
by re-render):

- 4.5 flowchart Bridge node: monthly cost corrected from the $8-15K
  scoping figure to the Fractional CTO retainer (~$1.6-2.6K / mo at
  5 hrs / week). Signal 4's one-off $8-15K scoping cost stays in prose.
- Ceiling-signal graduation rule unified to the 4.5 canon (two signals
  firing for 4+ weeks) across 4.3 rule 12, 4.2 build-phases (2 spots),
  and the stack walkthrough; walkthrough link repointed to 4.5.
- vibe-coding-ceiling-signals: duplicate closing line removed;
  signals-scoreboard.svg deleted (table + prose carry the content).
- hire-track: Basecamp customer count fixed, geography mermaid replaced
  with a decision table, 5-jobs list to table; cover chip "WHEN After
  50 customers" (fabricated threshold - page teaches a signal-based
  trigger) regenerated to "WHEN Ceiling signals red".
- ownership-checklist: 14-day domain-transfer buffer (ICANN 5-day
  window + registrar 60-day locks); opener reshaped.
- sow-reading-guide: stale "Module 5B" reference fixed; opener reshaped.
- where-to-hire: opener reshaped, rescue framing dropped.
- walkthrough: Lovable paid-plan price replaced with pricing-page
  pointer.

Gates: bin/hugo-build 8/8 validators, bin/rake test:critical 46 runs
0 failures. Bridge node + cover chip verified by own re-render.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
@pftg

pftg commented Jul 12, 2026

Copy link
Copy Markdown
Member Author

M4 re-review wave (commit 4e543a8)

Full Module 4 re-review (design critic + content/canon critic, fixes applied in two waves, every fixer claim re-verified by own render):

P1 - factual

  • 4.5 flowchart Bridge node claimed ~$8-15K/mo for the Fractional CTO bridge; canon (4.5 prose + hire-track) is $80-120/hr x 5 hrs/wk = ~$1.6-2.6K/mo. Fixed in the mermaid source; re-rendered - node text fits, no clipping. (Signal 4's one-off $8-15K scoping project cost is legit and stays in prose.)
  • hire-track cover chip said "WHEN After 50 customers" - a fabricated threshold; the page teaches a signal-based trigger. Cover regenerated: chip now reads "WHEN Ceiling signals red" (pixel-matched composite, Space Grotesk/Inter per design spec, siblings untouched).

P2 - consistency

  • Graduation rule appeared in 3 conflicting forms across 4.2/4.3/walkthrough. Unified to the 4.5 canon: two signals firing for 4+ weeks; walkthrough link repointed to 4.5.
  • vibe-coding: duplicate closing line removed; signals-scoreboard.svg deleted (redundant with the adjacent table; no dangling refs).
  • hire-track: Basecamp fact fixed; geography mermaid -> decision table; 5-jobs list -> table.
  • sow-reading-guide: stale "Module 5B" -> "Module 4 hire track".

P3 - polish: ICANN/registrar-accurate domain-transfer buffer, Lovable price -> pricing-page pointer, 3 openers reshaped off the repeated template (rescue framing dropped).

Gates: hugo-build 8/8 validators, test:critical 46 runs / 0 failures / 84 screenshots clean. Content+SVG+PNG only - no template/CSS changes this wave.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/index.md`:
- Line 161: Update the scale-warning guidance near the “4-week rule” references
to require two signals to remain active continuously for four consecutive weeks,
matching the canonical wording in vibe-coding-ceiling-signals/index.md. Replace
the “two consecutive monthly checks” condition while preserving the existing
routing destinations and surrounding guidance.

In
`@content/course/tech-for-non-technical-founders-2026/self-serve-stack-walkthrough/index.md`:
- Line 69: Update the “One Lovable account created” checklist item to make
upgrading from the free tier conditional on reaching free-tier limits or actual
usage/build-velocity needs, removing the fixed “around Phase 2” timing and
aligning with the companion Lovable/Supabase/Stripe guidance.

In
`@content/course/tech-for-non-technical-founders-2026/sow-reading-guide/index.md`:
- Line 37: Clarify the pronoun references in the opening story by explicitly
identifying the SaaS founder and general counsel in the sentence containing
“signed on his sign-off” and replacing the ambiguous “he” and subsequent “She”
with consistent, unambiguous references. Preserve the described sequence: the
founder addressed the liability cap and IP assignment, but missed the milestone
acceptance clause.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 6c0c87af-971d-46e6-adb9-f742945aae99

📥 Commits

Reviewing files that changed from the base of the PR and between 35343eb and 4e543a8.

⛔ Files ignored due to path filters (2)
  • content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/cover.png is excluded by !**/*.png
  • content/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/signals-scoreboard.svg is excluded by !**/*.svg
📒 Files selected for processing (12)
  • content/course/tech-for-non-technical-founders-2026/find-10-people-where-to-look/index.md
  • content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/index.md
  • content/course/tech-for-non-technical-founders-2026/ownership-checklist/index.md
  • content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/index.md
  • content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/index.md
  • content/course/tech-for-non-technical-founders-2026/self-serve-stack-walkthrough/index.md
  • content/course/tech-for-non-technical-founders-2026/sow-reading-guide/index.md
  • content/course/tech-for-non-technical-founders-2026/validation-tools-field-guide/index.md
  • content/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/index.md
  • content/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/index.md
  • docs/workflows/visual-scroll-gate.md
  • themes/beaver/layouts/baseof.html
🚧 Files skipped from review as they are similar to previous changes (1)
  • themes/beaver/layouts/baseof.html

The stack holds until it doesn't. Five specific signals tell you the ceiling is close. The next chapter ([Chapter 4.5 - Proactive Ceiling Signals](/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/)) walks through each one with the threshold to watch.

Quick preview: scale beyond roughly 5,000 users, complex data model that no longer fits a single Supabase project, real-time features the auto-generated REST API cannot serve, security or compliance scope that needs an external audit, AI inference at scale where per-request cost crosses pennies. When you see two of these, route to the [hire-track supplementary reference](/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/) or to a [Fractional CTO](/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/#the-fractional-cto-bridge) for the architecture call. Architecture does not collapse overnight; the warning shows up in the metrics before the customer sees it. Chapter 4.5 names the metrics.
Quick preview: scale beyond roughly 5,000 users, complex data model that no longer fits a single Supabase project, real-time features the auto-generated REST API cannot serve, security or compliance scope that needs an external audit, AI inference at scale where per-request cost crosses pennies. When two of these keep firing across two consecutive monthly checks (the 4-week rule from Chapter 4.5), route to the [hire-track supplementary reference](/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/) or to a [Fractional CTO](/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/#the-fractional-cto-bridge) for the architecture call. Architecture does not collapse overnight; the warning shows up in the metrics before the customer sees it. Chapter 4.5 names the metrics.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Preserve the continuous four-week requirement.

“Two consecutive monthly checks” does not prove that two signals stayed red for 4 consecutive weeks. The canonical rule in vibe-coding-ceiling-signals/index.md, Line 217, explicitly requires continuous persistence. Use that wording here to avoid routing founders too early or too late.

Suggested wording
-When two of these keep firing across two consecutive monthly checks (the 4-week rule from Chapter 4.5)
+When two of these remain red for at least 4 consecutive weeks (the 4-week rule from Chapter 4.5)

Also applies to: 191-191

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/index.md`
at line 161, Update the scale-warning guidance near the “4-week rule” references
to require two signals to remain active continuously for four consecutive weeks,
matching the canonical wording in vibe-coding-ceiling-signals/index.md. Replace
the “two consecutive monthly checks” condition while preserving the existing
routing destinations and surrounding guidance.

- [ ] **Validated Problem Statement filled in** ([template](/course/tech-for-non-technical-founders-2026/validated-problem-statement-template/))
- [ ] **[Build Path Decision Worksheet](/course/tech-for-non-technical-founders-2026/build-path-decision-worksheet/) verdict = Path 2 (Self-serve)**
- [ ] **One Lovable account created** (Free tier OK to start; upgrade to Pro $25 around Phase 2)
- [ ] **One Lovable account created** (Free tier OK to start; upgrade to a paid plan - check Lovable's pricing page - around Phase 2)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Make the paid-plan trigger demand-based.

“Around Phase 2” still reads as a fixed upgrade schedule. The companion guidance in self-serve-mvp-stack-lovable-supabase-stripe-2026/index.md, Line 95, correctly ties upgrading to build velocity. Make the trigger depend on free-tier limits or actual usage instead.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/self-serve-stack-walkthrough/index.md`
at line 69, Update the “One Lovable account created” checklist item to make
upgrading from the free tier conditional on reaching free-tier limits or actual
usage/build-velocity needs, removing the fixed “around Phase 2” timing and
aligning with the companion Lovable/Supabase/Stripe guidance.

Comment thread content/course/tech-for-non-technical-founders-2026/sow-reading-guide/index.md Outdated
… compact diagrams, reading typography

Executes the five approved design decisions plus two mid-sprint owner
directives:

1. build-path-decision-worksheet: six monospace ASCII blocks replaced
   with styled .ws-card HTML worksheet cards (paper slabs, real
   checkboxes, dashed verdict strips; green = advance, purple = path
   assignment). Copy verbatim. Template PDFs regenerated.
2. should-you-hire (4.1): decision-matrix.svg removed - it duplicated
   the adjacent 4-path table ("html table is fine").
3. Covers differentiated: 4.4 cover was byte-identical to 4.3 (wrong
   title baked in); rebuilt per design spec as "Build Phases" with a
   4-phase motif and Weeks 4-12 / Phases 4 chips. Walkthrough cover
   rebuilt with per-tool "5 sessions" sub-labels and Pace / Sessions 20
   chips. Alt texts updated to match.
4. Mermaid theme: clean-sans variant was shipped and REVERTED the same
   day - owner rejected it on sight ("typography is not handwritten"),
   and sans clipped labels worse than cursive. Handwritten family
   restored; kept the structural wins (Bridge node 5-line split, edge
   labels with nbsp slack, "Over" label reword, no metric themeCSS on
   .edgeLabel - it applies after mermaid measures).
5. hire-track: Week-1 onboarding wall-paragraph -> Day 0-28 table;
   "why these seven questions" bullets -> question-pair table.
6. ai-token-bill: oversized 9-node mermaid loop replaced with
   invoice-loop.svg - compact hand-drawn house-family card flow
   (~330px tall vs ~2400px, semantic green/amber, one glance = whole
   loop). Owner's four complaints (awkward, too big, colors, not
   handwritten) each addressed.
7. Course reading typography (course pages only, .section-course):
   body 22.4px/1.7 -> 20px/1.65, callouts 19px, tighter list rhythm.
   Lesson pages shorten ~14%, more content per screen, H3 landmarks
   regain contrast. Blog keeps its thoughtbot-anchored scale.
   Selectors mirror single-post.css specificity (0,3,2) - weaker
   course overrides silently lose.

Gates: bin/hugo-build 8/8, test:critical + bin/test + bin/dtest all
green (46 runs, 84 screenshots each). Corrupt blog/post.png baseline
from a raced run was restored, not committed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
@pftg

pftg commented Jul 12, 2026

Copy link
Copy Markdown
Member Author

Design sprint (commit 28fe55c) - the five deferred decisions + two owner directives

1. Worksheet redesign - the six ASCII blocks on build-path-decision-worksheet are now styled worksheet cards (paper slabs, real checkboxes, dashed verdict strips, semantic route colors: green = advance, purple = your path). Copy verbatim; PDFs regenerated; mobile-checked.

2. 4.1 matrix SVG dropped - it duplicated the adjacent table.

3. Covers differentiated - 4.4's cover was byte-identical to 4.3 (wrong title baked into the art). Rebuilt per the design spec: 4.4 = "Build Phases" + 4-phase motif + Weeks 4-12 / Phases 4 chips; walkthrough = per-tool "5 sessions" sub-labels + Pace Evenings OK / Sessions 20 chips. Family test passes side-by-side; alt texts updated.

4. Mermaid typography: sans tried, rejected, reverted same-day. The clean-sans theme both critics recommended shipped, the owner saw one rendered page and rejected it ("typography is not handwritten") - and empirically sans clipped labels worse (mermaid measures label boxes ~1 glyph short; wider sans glyphs overflow more). Handwritten family restored. Structural fixes kept: 5-line Bridge node, nbsp slack on %-ending edge labels, no metric CSS on .edgeLabel (it applies post-measurement). Convention documented in the in-post visual prompt.

5. hire-track density - Week-1 onboarding wall-paragraph → Day 0-28 table; "why these seven questions" → question-pair table.

6. ai-token-bill exemplar - the oversized 9-node mermaid loop (rendered ~2400px tall, all-red, clipping in the owner's browser) is now invoice-loop.svg: a compact hand-drawn card flow, ~330px tall, semantic green/amber, whole loop in one glance. This is the template for the remaining over-tall flowcharts.

7. Course reading typography (owner directive: "help the ICP maintain focus") - course pages only: body 22.4px/1.7 → 20px/1.65, callouts 19px, tighter lists. Lessons shorten ~14%, more content per screen, H3 scanning landmarks regain contrast. Blog keeps its thoughtbot-anchored scale. Gotcha for future edits: single-post.css wins at (0,3,2) specificity - weaker course overrides silently lose.

Gates: hugo-build 8/8; test:critical + bin/test + bin/dtest all green. A corrupt blog baseline from a raced run was caught and restored, not committed.

Paul Keen and others added 2 commits July 12, 2026 20:35
…e never names

The "2 of 4 or fewer" node said "run the oversight audit: standup +
report + spaceship" - three shorthands appearing nowhere on the page
(module-internal jargon, cryptic to the course reader). Node now names
the real escalation artifacts (Org Chart audit + red-flags checklist)
and a sentence under the flowchart links both. Caught by the render
sweep; re-rendered - node text sits inside the stadium border.

Cursive re-verification of the sweep's other findings: must-have
branch labels and outbound stage nodes render complete after the
theme revert (the clips were sans-only).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
… replaced

Rolls the invoice-loop treatment (compact hand-drawn house-family SVG)
onto the three worst remaining flowcharts, per the deferred sprint:

- friday-demo: 9-stadium ~2600px mermaid column -> friday-loop.svg
  (weekly card row with day chips, Wed-EOD replan side-note, dashed
  weekly loop, 4-Friday green/red fork; ~310px in-column). Page height
  drops ~1500px.
- github-aws ownership checklist: deep TD audit tree ->
  ownership-audit-flow.svg (4 numbered check cards, shared amber fix
  lane aligned per check, recovery clock, cooperate? fork to audit-clean
  / retain-a-lawyer). No longer duplicates the 12-row table.
- outbound: micro-text 6-node LR strip -> stage-cadence.svg (3x2 snake
  grid with numbered badges + cold/warm/conversion tint legend; labels
  legible at column width instead of ~10px).

All mermaid facts preserved verbatim in artwork + alt text. Built by
three parallel swarm designers against the house visual spec; every
render re-verified by the coordinator (one wording truncation fixed:
"that eve" -> "that evening").

Gates: bin/hugo-build 8/8, bin/rake test:critical 46 runs 0 failures.
Content + SVG only - no template/CSS changes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
@pftg

pftg commented Jul 12, 2026

Copy link
Copy Markdown
Member Author

Compact-SVG sprint (commit e6224ed) - the three remaining over-tall flowcharts

The invoice-loop treatment rolled onto the worst three, built by three parallel swarm designers against the house visual spec, every render re-verified by the coordinator:

  • friday-demofriday-loop.svg: the ~2600px 9-stadium column is now a weekly card row (MON·9AM → TUE-THU → FRI·4PM → FRI·LIVE) with the Wed-EOD replan side-note, a dashed weekly-loop return, and the 4-Friday green/red fork. ~310px in-column; the page shed ~1500px.
  • github-aws ownership checklistownership-audit-flow.svg: 4 numbered check cards (Code/Cloud/Secrets/Domain, question + pass condition), a shared amber fix lane aligned per check, the recovery clock, and the cooperate? fork (audit clean / retain a lawyer, $2K-$5K beats a stalled checkout). Stops duplicating the 12-row table.
  • outboundstage-cadence.svg: the micro-text 6-node strip is a 3×2 snake grid with numbered badges and a cold/warm/conversion tint legend - labels legible at column width instead of ~10px.

All mermaid facts preserved verbatim in artwork + alt text. Handwritten family throughout per the standing decision. One coordinator fix on review: a truncated "that eve" → "that evening".

Gates: hugo-build 8/8, test:critical 46 runs / 0 failures. Content + SVG only.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/index.md (3)

196-196: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Qualify the Shopify architecture example.

“Shopify serves millions of merchants on one Rails monolith” implies the entire platform is a single monolith. Shopify describes a large modular core monolith alongside separately extracted services; wording such as “Shopify’s core Rails monolith” would be more precise. (shopify.engineering)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/index.md`
at line 196, Update the Shopify example in the Rails justification to refer
specifically to Shopify’s “core Rails monolith” rather than implying the entire
platform is one monolith. Preserve the surrounding scale and small-team argument
while making the architecture wording precise.

109-109: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Use the Veracode statistic accurately.

The report says 45% of tested generation tasks introduced a known security flaw; it does not say 45% of generated code “ships an exploitable security flaw.” Please revise the wording and link the report to avoid overstating the evidence. (veracode.com)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/index.md`
at line 109, Revise the PR review text to accurately state that Veracode found
known security flaws in 45% of tested AI code-generation tasks, rather than
claiming 45% of generated code ships exploitable flaws. Add a hyperlink to the
Veracode GenAI Code Security Report using the provided report URL.

106-112: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Keep the Fractional CTO time budget consistent.

The fixed allocations already total five hours weekly: 1 + 2 + 1 + 1. “Vendor BS detection - As needed” appears to be additional time, conflicting with the stated five-hour engagement unless it is explicitly included in that budget.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/index.md`
around lines 106 - 112, The weekly time allocations in the table must remain
within the stated five-hour Fractional CTO budget. Update the “Vendor BS
detection” row to explicitly indicate that its as-needed work is included within
the existing five hours, or otherwise clarify which allocated hour covers it
without adding weekly time.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/index.md`:
- Around line 138-146: Rename the “Week 1 onboarding” heading above the table to
reflect that it covers both initial onboarding and the end-of-month checkpoint.
Keep the existing Day 0–Day 7 entries and End of Week 4 row together unless
restructuring them into a separate first-month checkpoint section.
- Around line 246-247: Update the table entries containing `.cursorrules` and
`slopsquatting` to briefly define each term at first use, or link each term to a
clear explanation, while preserving the existing workflow and risk descriptions.

---

Outside diff comments:
In
`@content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/index.md`:
- Line 196: Update the Shopify example in the Rails justification to refer
specifically to Shopify’s “core Rails monolith” rather than implying the entire
platform is one monolith. Preserve the surrounding scale and small-team argument
while making the architecture wording precise.
- Line 109: Revise the PR review text to accurately state that Veracode found
known security flaws in 45% of tested AI code-generation tasks, rather than
claiming 45% of generated code ships exploitable flaws. Add a hyperlink to the
Veracode GenAI Code Security Report using the provided report URL.
- Around line 106-112: The weekly time allocations in the table must remain
within the stated five-hour Fractional CTO budget. Update the “Vendor BS
detection” row to explicitly indicate that its as-needed work is included within
the existing five hours, or otherwise clarify which allocated hour covers it
without adding weekly time.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 5e1fd135-e3c6-4b9c-858b-70acc318fb96

📥 Commits

Reviewing files that changed from the base of the PR and between 4e543a8 and e6224ed.

⛔ Files ignored due to path filters (12)
  • 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/build-path-decision-worksheet/build-path-decision-worksheet.pdf is excluded by !**/*.pdf
  • content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/first-paying-customer-operating-kit.pdf is excluded by !**/*.pdf
  • 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/github-aws-database-ownership-checklist/ownership-audit-flow.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/mom-test-interview-script/mom-test-interview-script.pdf is excluded by !**/*.pdf
  • content/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/stage-cadence.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/ownership-checklist/ownership-checklist.pdf is excluded by !**/*.pdf
  • content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/cover.png is excluded by !**/*.png
  • content/course/tech-for-non-technical-founders-2026/self-serve-stack-walkthrough/cover.png is excluded by !**/*.png
  • content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/decision-matrix.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/validated-problem-statement-template/validated-problem-statement-template.pdf is excluded by !**/*.pdf
📒 Files selected for processing (14)
  • .stitch/prompts/course-inpost-visual-prompt.md
  • content/course/tech-for-non-technical-founders-2026/ai-token-bill-dev-shop-pass-through-cost/index.md
  • content/course/tech-for-non-technical-founders-2026/build-path-decision-worksheet/index.md
  • content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/index.md
  • content/course/tech-for-non-technical-founders-2026/github-aws-database-ownership-checklist/index.md
  • content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/index.md
  • content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.md
  • content/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/index.md
  • content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/index.md
  • content/course/tech-for-non-technical-founders-2026/self-serve-stack-walkthrough/index.md
  • content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md
  • content/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/index.md
  • themes/beaver/assets/css/style.css
  • themes/beaver/layouts/baseof.html
💤 Files with no reviewable changes (1)
  • content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md
🚧 Files skipped from review as they are similar to previous changes (5)
  • .stitch/prompts/course-inpost-visual-prompt.md
  • themes/beaver/layouts/baseof.html
  • content/course/tech-for-non-technical-founders-2026/self-serve-stack-walkthrough/index.md
  • content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/index.md
  • content/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/index.md

Comment on lines +138 to +146
**Week 1 onboarding:**

| Day | What happens |
|---|---|
| **Day 0** | Sign the MSA. |
| **Day 1** | Share the Validated Problem Statement and one-page brief. Add them to the private GitHub org with `Triage` repo permissions (can review pull requests but cannot merge code) - not `Admin`, not `Write`. |
| **Day 3** | First 30-minute architecture review. They write one paragraph in a shared Notion doc: "what I would change, what I would leave alone." |
| **Day 7** | First PR review. Their comments should be in plain English so you understand the trade-off. |
| **End of Week 4** | Ask them the Friday-coaching question: "Should I hire any contractors yet?" If the answer is hand-wavy, you have hired wrong; replace. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Do not label a four-week checkpoint as “Week 1 onboarding.”

This table includes Day 0 through Day 7 and an End-of-Week-4 decision. Rename the heading to reflect both onboarding and the first-month checkpoint, or move the final row into a separate section.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/index.md`
around lines 138 - 146, Rename the “Week 1 onboarding” heading above the table
to reflect that it covers both initial onboarding and the end-of-month
checkpoint. Keep the existing Day 0–Day 7 entries and End of Week 4 row together
unless restructuring them into a separate first-month checkpoint section.

Comment on lines +246 to +247
| **Workflow + cost (Q1, Q2)** | Has never set up a `.cursorrules` file or seen a personal Anthropic invoice | Silently runs your monthly AI bill from $200 to $4,800 in their first sprint |
| **Verification + slopsquatting (Q3, Q4)** | Outsources PR review to the model | Their name ends up next to the CSRF hole in your incident postmortem |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Gloss specialist terms at first use.

Define slopsquatting and .cursorrules briefly in the table or link them. As per coding guidelines, course content should use plain English and gloss terms at first use.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/index.md`
around lines 246 - 247, Update the table entries containing `.cursorrules` and
`slopsquatting` to briefly define each term at first use, or link each term to a
clear explanation, while preserving the existing workflow and risk descriptions.

Source: Coding guidelines

Paul Keen and others added 2 commits July 12, 2026 22:32
…cker tool, merged duplicate anecdote

Module 5 review (content critic), 11 adjudicated fixes:

- 5.1: the two sample-size callouts contradicted each other (denominator
  flipped 6 -> 10 -> 6; calibration threshold >=20 vs >=10). Step-5
  "Sample-size honesty" box is now the single numeric authority with
  under-10 bullets scoped to the 4-6 onramp users; top box keeps the
  reassurance and points forward.
- Operating kit: component 6 claimed an "Airtable base from Chapter
  5.7" - no lesson introduces Airtable; 5.5/5.7 teach a Google Sheet.
  Fixed in 5 markdown spots + the visible artwork text in
  kit-sample-row.svg (re-rendered, fits).
- Churn-triage: the R. anecdote was told twice as two different
  founders with byte-identical numbers; merged into one story, unified
  70% retention (was 70/71 drift), added the Mia-style composite
  disclosure line.
- Glosses at first mention for Sam: ICP (5.3 core path), CAC/SMB/MRR
  (churn-triage). Mermaid "rescue chapters" node renamed (off-ICP
  framing). Banned slogany flip and "Picture the situation" opener
  rewritten; "12 interviews" -> canon 10; 5.6 duplicate closing
  sentence deduplicated.
- Ratchet: 5 new signatures incl. path-scoped "Airtable" (legitimate
  elsewhere as the Concierge-MVP stack example).

Verified by coordinator: greps + own re-render of kit-sample-row.svg.
Gates: bin/hugo-build 8/8.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
… recolors, diagram + template alignment

Module 5 design review (scored critic pass), root-cause find first:

- The house diagram font was NEVER LOADED: no webfont link, no
  @font-face, no font files. Every mermaid rendered the platform's
  generic cursive (Apple Chancery on macOS, varies per visitor) - an
  identity lottery - and measured label boxes with one font while
  rendering another, the root cause of the recurring last-character
  clipping. Fix in baseof.html: load Caveat (gated on features.mermaid),
  startOnLoad off, render via document.fonts.ready so measurement and
  render use the same metrics; fallback stack now includes Comic Sans MS
  to mirror the in-post SVGs. All 23 per-diagram inits aligned.
  Verified: 5.1 and churn-triage trees now render true Caveat with
  complete labels.
- Bare diamonds -> labeled rects (house rule) in the 5.1 and
  churn-triage decision trees; both re-rendered, more compact.
- Green-for-money recolors (green was never used for actual money):
  free-vs-paid-pilot paid side, ph-vs-ih winning channel,
  artifact-trail signed-pilot card (also de-saturated to paper tone),
  stage-cadence deposit/conversion stages + legend ("Money lands").
- 5.7 cold-email variants: 3 stacked same-form blockquotes -> fenced
  code blocks (copy-paste affordance, matches 5.6's DPA treatment).
- Operating kit: DPA template now the same code-block treatment as 5.6
  (content diffed byte-identical); kit mermaid root de-saturated to
  paper tones.
- Artwork text sweep: em-dashes removed from sean-ellis-gauge (x2),
  segment-isolation, module-pipeline, report-comparison; "JT-rescue
  founders" rescue framing removed from free-vs-paid-pilot subtitle.

Every fixer render re-verified by the coordinator. Kit cover chip-count
observation ruled acceptable (motif samples 4 of 6, count stated
explicitly three times).

Gates: hugo-build 8/8; test:critical + bin/test + bin/dtest all green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
@pftg

pftg commented Jul 12, 2026

Copy link
Copy Markdown
Member Author

Module 5 review complete (commits 6518530 + c10acce)

Two-critic swarm review (content-canon + scored design critic) over the ten M5 pages, two fixer waves, every fix re-verified by the coordinator.

The root-cause find

The house diagram font was never loaded. No webfont link, no @font-face, nothing - every mermaid on the site has been rendering the platform's generic cursive (Apple Chancery on macOS, different per visitor), and measuring label boxes with one font while rendering another. That measurement mismatch was the root cause of the recurring "last character clipped" defects we kept patching per-label. Fixed properly: Caveat now loads (gated to mermaid pages), and mermaid renders only after document.fonts.ready so it measures with the font it draws. Verified in true Caveat with complete labels.

Content-canon wave (6518530)

  • 5.1's two sample-size callouts contradicted each other (denominator 6 → 10 → 6, threshold ≥20 vs ≥10); now one numeric authority.
  • The operating kit sold an "Airtable tracker from Chapter 5.7" - no lesson introduces Airtable; all teach a Google Sheet. Fixed in prose + inside the artwork.
  • Churn-triage told the same founder story twice as two people with identical numbers; merged + Mia-style composite disclosure added.
  • Sam glosses (ICP on the core path, CAC/SMB/MRR), rescue-framing removals, banned-flip rewrites, canon "10 interviews", 5 new ratchet signatures (path-scoped where needed).

Design wave (c10acce)

  • Bare diamonds → labeled rects in two decision trees (house rule).
  • Green-for-money restored across 4 assets that used purple/amber for the winning/revenue side (free-vs-paid, ph-vs-ih, artifact-trail, stage-cadence legend now "Money lands").
  • 5.7's three stacked same-form script callouts → fenced code blocks; the kit's DPA now matches 5.6's code-block treatment (content diffed byte-identical).
  • Artwork text sweep: em-dashes ×5 across four SVGs, "JT-rescue founders" subtitle de-rescued.

Per-page: 5.4, 5.5, and the Mia walkthrough were clean out of the gate; 5.3's network-buckets.svg is the module's exemplar asset. Backlog noted: kit's cramped 6-leaf mermaid (duplicates the list below it) is a future compact-SVG candidate; kit cover motif samples 4 of 6 components (count stated explicitly - ruled acceptable).

Gates on final state: hugo-build 8/8; test:critical + bin/test + bin/dtest all green (46 runs / 84 screenshots each).

…losses, SVG font-lottery fix

Content-canon fixes across 20 pages from the three-critic swarm review
(Going Further + M1/M2/reference + M3/chrome/supplementary):

- Cast canon: reviewer is Marcos/Priya everywhere (Marcus retired); PR #847
  = refund-branch story only; weekly-report/friday-demo admin-search and
  rate-limiting PRs renumbered (#843/#851) to stop cross-page collisions.
- Number contradictions: Lasso research April->March 2025; agency-ai
  walkaway threshold (two->three failed questions, matching its own
  scoring rule); FAQ + 5.6 footer deposit no longer "year-one ACV prepaid"
  (canon: 10-30% credited); fabricated 51% offer-acceptance stat dropped;
  where-to-hire Tier-2 city lists aligned; M2 walkthrough reply rate 40%->30%
  (inside 2.4's own band); 2.6 interview length 40->30 min; $62K dollar-anchor
  collision split ($54K in friday-demo-template); ai-token Devon table ref
  direction; channel-guide "~10% of cost" overstatement.
- Sam glosses at first mention: SOW, MSA, SLA, FTE, PLG, ARPU, MAU,
  RAG-status, 0day, net revenue retention.
- Dead-end refs: validation-tools Step-1/Step-4 labels retargeted to the
  hypothesis-sprint reference; Module 3 Product Brief links now hit the
  brief page; template good/bad examples disclose the 1-2-4 section skip.
- SVG font-lottery root-cause: 25 SVGs' cursive stacks lacked the
  'Comic Sans MS' fallback the exemplars carry - SVG-as-img cannot load
  webfonts, so they fell to the platform generic cursive. Fallback added;
  money values recolored green (m1 "6 buyers", m2 "$70-120") per house rule.
- Ratchet: 9 new banned strings; they immediately caught 3 extra instances
  the critics missed.
- .okf/ knowledge bundle (OKF v0.1, validated; .gitignore negation added)
  + CLAUDE.md consumption note; render-verification concept records the
  _dest/public-dev vs stale public/ trap that produced false missing-asset
  findings this session.

Gates: bin/hugo-build green (8 validators), test:critical 46 runs 0 failures
(84 screenshots clean). Content+SVG only - no template/CSS changes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 10

Note

Due to the large number of review comments, Critical, Major severity comments were prioritized as inline comments.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
content/course/tech-for-non-technical-founders-2026/validation-tools-field-guide/index.md (1)

49-51: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Add sources or qualify the tool timings and capabilities.

Lines 49-51 state approximate runtimes and specific blind spots each external tool catches. Link supporting sources in the surrounding prose, or label these as your observed estimates.

As per coding guidelines, Markdown assertions must have citations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/validation-tools-field-guide/index.md`
around lines 49 - 51, Qualify the runtime and capability claims in the Draft
diagram for VenturusAI, DimeADozen, and Preuve AI as observed estimates, or add
supporting citations in the surrounding prose. Ensure each stated timing and
“catches” claim is either sourced with links or explicitly identified as your
own observation.

Source: Coding guidelines

content/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/index.md (1)

41-41: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Source or label the detailed hiring anecdote.

Line 41 gives specific salary, hiring-speed, delivery, and replacement-cost outcomes as a real Q2 2026 case study without a citation or composite disclosure. Add a source or clearly mark it as an illustrative example.

As per coding guidelines, Markdown assertions must have citations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/index.md`
at line 41, Source the detailed hiring anecdote in the paragraph beginning “The
Monday you decide to hire” with a verifiable citation, or clearly label the
entire story as an illustrative/composite example. Ensure the salary, timeline,
delivery, and replacement-cost claims are not presented as an uncited real case
study.

Source: Coding guidelines

🟡 Minor comments (16)
.okf/log.md-4-4 (1)

4-4: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add provenance for the review-wave incident.

The path guidance is linked, but the claim that the 2026-07-13 review wave “lost a whole finding class” has no incident or review citation. Link the supporting record or remove that sentence.

As per coding guidelines, Markdown assertions must have citations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.okf/log.md at line 4, Update the render-verification entry in .okf/log.md
to add a citation linking the supporting incident or review record for the
2026-07-13 review wave claim; if no authoritative record exists, remove that
unsupported assertion while retaining the path guidance.

Source: Coding guidelines

.okf/build/hugo-build.md-21-23 (1)

21-23: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Cite the build-nondeterminism claim.

“Term-casing races” and “header partialCached race” are specific factual assertions without an incident, issue, or implementation citation. Link the supporting evidence or remove these claims.

As per coding guidelines, Markdown assertions must have citations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.okf/build/hugo-build.md around lines 21 - 23, Update the
build-nondeterminism note in the Hugo build documentation by adding citations
that directly support the “term-casing races” and “header partialCached race”
claims, or remove those specific assertions if no reliable evidence is
available; retain only adequately supported guidance.

Source: Coding guidelines

.okf/workflows/review-swarm.md-3-4 (1)

3-4: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Cite or remove unsupported claims.

The description calls this loop “proven,” and the failure-mode bullets describe specific prior incidents without citations. Either link the supporting evidence/incident record or use neutral, verifiable wording.

As per coding guidelines, Markdown assertions must have citations.

Also applies to: 27-33

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.okf/workflows/review-swarm.md around lines 3 - 4, Update the workflow front
matter description and the unsupported failure-mode assertions in the
review-swarm document: either add citations to the relevant evidence or incident
records, or replace the claims with neutral, directly verifiable wording. Keep
the documented review-loop behavior unchanged.

Source: Coding guidelines

.okf/content/voice-rules.md-16-18 (1)

16-18: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Gloss ICP on first use.

Line 16 uses ICP without a plain-words explanation, despite the rule immediately below requiring one. Use ideal customer profile (ICP) on first mention.

As per coding guidelines, every acronym/tool/term gets a plain-words parenthetical at first mention.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.okf/content/voice-rules.md around lines 16 - 18, Update the first
occurrence of “ICP” in the course voice rules to “ideal customer profile (ICP)”,
while preserving the existing wording and the later acronym usage.

Source: Coding guidelines

.okf/design/cover-pipeline.md-10-12 (1)

10-12: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Cite the cover-download constraint.

The claim that the original covers were Stitch-made and their downloads are auth-gated is operationally important but has no traceable source. Link the relevant decision, issue, or workflow record, or rephrase it as a current observed constraint.

As per coding guidelines, Markdown assertions must have citations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.okf/design/cover-pipeline.md around lines 10 - 12, Update the
cover-download constraint statement in the design document to include a
traceable citation linking the relevant decision, issue, or workflow record; if
no source exists, rephrase the claim explicitly as a current observed constraint
rather than an historical assertion.

Source: Coding guidelines

.okf/design/mermaid-theme.md-36-40 (1)

36-40: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Make the design decision traceable.

The claim that the owner rejected the clean-sans variant should link to the design review or be rewritten as the current house rule without the uncited anecdote.

As per coding guidelines, Markdown assertions must have citations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.okf/design/mermaid-theme.md around lines 36 - 40, Update the typography
rationale in the Mermaid theme documentation by either linking the owner’s
clean-sans rejection to a design review source or removing the uncited anecdote
and stating the requirement as the current house rule. Preserve the decision to
retain handwritten typography and address legibility structurally.

Source: Coding guidelines

.okf/design/house-visual-spec.md-21-32 (1)

21-32: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Cite or reframe the visual heuristics.

“Sweller split-attention rule” and “taller than 2x viewport read as a wall” are external or empirical claims. Add citations, or label both explicitly as house heuristics rather than research-backed rules.

As per coding guidelines, Markdown assertions must have citations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.okf/design/house-visual-spec.md around lines 21 - 32, Update the visual
heuristics in the design specification by either adding authoritative citations
for the “Sweller split-attention rule” and the “taller than 2x viewport” claim,
or explicitly labeling both as house heuristics rather than research-backed
rules. Preserve the existing guidance and apply the chosen attribution
consistently to both statements.

Source: Coding guidelines

.okf/design/mermaid-theme.md-12-20 (1)

12-20: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add evidence for the historical root cause.

“NEVER loaded,” the Apple Chancery fallback, and the clipping causal chain are stated as historical facts. Link the bug, commit, or rendering evidence that established this root cause.

As per coding guidelines, Markdown assertions must have citations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.okf/design/mermaid-theme.md around lines 12 - 20, Update the Mermaid
font-loading explanation in the design document to cite supporting evidence for
the claims that Caveat was never loaded, Apple Chancery was used as the macOS
fallback, and differing measurement/rendering metrics caused last-character
clipping. Link the relevant bug, commit, or rendering evidence directly from the
affected assertions without changing the documented fix details.

Source: Coding guidelines

content/course/tech-for-non-technical-founders-2026/slopsquatting-ai-supply-chain-attack/index.md-49-49 (1)

49-49: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use “zero-day” instead of “0day”.

This is the standard spelling for the security term and avoids a visible copy-quality defect.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/slopsquatting-ai-supply-chain-attack/index.md`
at line 49, In the attack description, replace the nonstandard “0day” spelling
with “zero-day” while preserving the surrounding sentence and meaning.

Source: Linters/SAST tools

content/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/index.md-36-36 (1)

36-36: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Qualify or source the Tier-2 India classification.

Line 36 presents the city list and “async-only” characterization as a factual market recommendation. Add a source or label these as internal examples; “async-only” is overly absolute and may mislead readers.

As per coding guidelines, Markdown assertions must have citations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/index.md`
at line 36, Update the Tier-2 India statement in the hiring guide to include a
supporting citation, or explicitly label the cities and characterization as
internal examples. Replace the absolute “async-only” wording with a qualified
description that accurately reflects the recommendation.

Source: Coding guidelines

content/course/tech-for-non-technical-founders-2026/channel-selection-before-outbound/index.md-133-133 (1)

133-133: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Cite or label the new channel thresholds.

Line 133 presents 7+ of 10 and 5+ as decision rules without supporting citations. Link the evidence or explicitly label these as internal heuristics.

As per coding guidelines, Markdown assertions must have citations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/channel-selection-before-outbound/index.md`
at line 133, Label the “7+ of 10” and “5+” channel thresholds in the fast-path
guidance as internal heuristics, or add supporting citations for each threshold.
Update the fast-path exit text without changing its worksheet-skipping behavior
or references to Part 3 and Ch 5.3.

Source: Coding guidelines

content/course/tech-for-non-technical-founders-2026/friday-demo-template/index.md-39-39 (1)

39-39: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Source or clearly frame the revised client anecdote.

The new $54K figure is presented as a factual case but has no citation or illustrative/composite framing. Cite an approved case-study source or remove the precise claim.

As per coding guidelines, **/*.{md,html}: “assertions must have citations.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/friday-demo-template/index.md`
at line 39, Revise the client anecdote in the Friday demo template so the
precise $54K figure and related factual claims either cite an approved
case-study source or are clearly labeled as illustrative/composite. If neither
is available, remove the unsupported $54K claim while preserving the anecdote’s
intended message.

Source: Coding guidelines

content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/index.md-45-45 (1)

45-45: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Cite the study and preserve its actual scope.

Veracode reports the 45% figure for evaluated generation tasks that introduced a known flaw—not code proven to be shipped or exploitable. (veracode.com)

Proposed fix
- Veracode's 2025 study found 45% of LLM-generated code shipped at least one exploitable security flaw
+ [Veracode's 2025 GenAI Code Security Report](https://www.veracode.com/blog/genai-code-security-report/) found that 45% of evaluated generation tasks introduced a known security flaw

As per coding guidelines, **/*.{md,html}: “assertions must have citations.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/index.md`
at line 45, Update the sentence containing “Veracode's 2025 study” to accurately
state that 45% of evaluated LLM-generated code samples or generation tasks
introduced a known flaw, without claiming the code was shipped or exploitable.
Add the provided Veracode URL as a citation supporting the assertion.

Source: Coding guidelines

content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/index.md-84-84 (1)

84-84: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Correct the NRR definition.

NRR includes retained revenue after churn and contraction plus expansion, and excludes new customers. The current parenthetical omits churn/contraction and may teach the metric incorrectly.

As per coding guidelines, Markdown assertions must have citations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/index.md`
at line 84, Update the NRR parenthetical in the “Right product, wrong pricing”
example to define net revenue retention as retained starting-customer revenue
after churn and contraction, plus expansion, while explicitly excluding
new-customer revenue. Add a citation supporting this Markdown assertion, using
the repository’s established citation style if available.

Source: Coding guidelines

content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/index.md-50-50 (1)

50-50: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Broaden the PLG definition.

“Users find and buy the product self-serve” is narrower than product-led growth and excludes sales-assisted conversions. Define PLG as product usage driving acquisition, activation, or expansion, and cite the definition.

As per coding guidelines, Markdown assertions must have citations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/index.md`
at line 50, Update the parenthetical PLG definition in the pivot-or-persevere
decision framework to describe product-led growth as product usage driving
acquisition, activation, or expansion, while allowing sales-assisted
conversions. Add a citation to the definition using the repository’s established
Markdown citation format.

Source: Coding guidelines

content/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/index.md-57-57 (1)

57-57: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Cite and soften the conversion claim.

“Conversion ... is a formality” is an unsupported near-guarantee. Add a citation and use less absolute wording, such as “conversion becomes easier to evaluate.”

As per coding guidelines, Markdown assertions must have citations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/index.md`
at line 57, Update the conversion claim in the pilot-wrap paragraph to use
qualified language such as “conversion becomes easier to evaluate” rather than
calling it a formality, and add an appropriate citation supporting the revised
assertion. Keep the surrounding explanation unchanged.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.okf/build/hugo-build.md:
- Around line 18-20: Update the ratchet scope description in the rendered HTML
guidance to state that it can detect banned strings in Mermaid labels and other
Markdown source text read by the validator, while text baked into external SVG
artwork remains outside the check and requires the visual scroll gate.

In @.okf/build/test-gates.md:
- Around line 13-15: Update the validation guidance in the command matrix and
surrounding “need only” wording so it is not presented as the complete gate.
Explicitly link or include the mandatory path-specific checks: Chrome DevTools
validation for HTML/CSS/JS changes, desktop/mobile visual review for
Markdown/SVG/image changes, and `/okf:validate .okf --strict` for `.okf/`
changes.

In @.okf/content/banned-strings-ratchet.md:
- Around line 17-19: Update the banned-strings ratchet documentation to remove
the unsupported exemption/rescue-framing claim, or implement the corresponding
exemption behavior in the validator and document its configuration. Keep the
documented per-page scope behavior aligned with the validator’s existing scope
filtering, and do not describe configuration fields the validator ignores.
- Around line 12-13: Update the banned-strings ratchet documentation around the
data/course_banned_strings.yaml and bin/hugo-build references to accurately
state that lib/course_validators.rb#check_banned_strings scans
content/course/**/index.md Markdown bodies, including Mermaid source, rather
than rendered course HTML; clarify that standalone SVG artwork is not inspected.

In @.okf/content/course-canon.md:
- Around line 13-23: Add inline citations or authoritative internal references
to every externally verifiable claim in the canonical table, including
thresholds, pricing ranges, research attributions, and especially the Sean Ellis
must-have test, AI token pass-through, paid pilot deposit, and slopsquatting
source rows. Preserve the existing table values while making each applicable
assertion traceable.

In @.okf/workflows/render-verification.md:
- Around line 23-46: Update the “Working capture recipe” and “The gate” sections
in render-verification.md to provide executable capture steps for exact 1280×800
desktop and 390×844 mobile viewport gates, including mobile emulation for the
narrow viewport. Ensure the documented commands support inspecting every
captured slice at both required dimensions and preserve the existing visual
scoring criteria.
- Around line 14-21: Update the capture command in the render-verification
workflow to use _dest/public-dev/ instead of public/, aligning the example with
the canonical bin/hugo-build output and avoiding stale artifact reviews.

In
`@content/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/index.md`:
- Line 320: Update the “If blocked” guidance in the deposit objection-handling
section so the year-one ACV credit is presented only when the DPA explicitly
defines the credit, timing, and applicable contract terms; otherwise use neutral
wording that does not promise a credit. Add the required citation for the
Markdown assertion, referencing the relevant DPA or contract-term source.

In
`@content/course/tech-for-non-technical-founders-2026/slopsquatting-ai-supply-chain-attack/index.md`:
- Around line 43-49: Update the opening slopsquatting paragraph and attack-chain
diagram caption to add direct citations for the “over 200” package finding, the
reported production installs, and the 11-day reproduction window. Use sources
that explicitly substantiate each claim; if no source supports the
production-install claim, rephrase or remove it rather than leaving it uncited.
Keep the existing Lasso Security and Infosecurity Magazine links where
applicable and ensure all factual security assertions in this section are cited.

In
`@content/course/tech-for-non-technical-founders-2026/validated-problem-statement-template/index.md`:
- Around line 155-156: Update the description of sections 3 and 5 in the
worked-examples paragraph: remove the claim that they are direct transcript
copying, and state that section 3 requires synthesized workarounds, failure
reasons, spend, and competitor data, while section 5 requires calculated scores
and the BUILD/PIVOT/KILL decision.

---

Outside diff comments:
In
`@content/course/tech-for-non-technical-founders-2026/validation-tools-field-guide/index.md`:
- Around line 49-51: Qualify the runtime and capability claims in the Draft
diagram for VenturusAI, DimeADozen, and Preuve AI as observed estimates, or add
supporting citations in the surrounding prose. Ensure each stated timing and
“catches” claim is either sourced with links or explicitly identified as your
own observation.

In
`@content/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/index.md`:
- Line 41: Source the detailed hiring anecdote in the paragraph beginning “The
Monday you decide to hire” with a verifiable citation, or clearly label the
entire story as an illustrative/composite example. Ensure the salary, timeline,
delivery, and replacement-cost claims are not presented as an uncited real case
study.

---

Minor comments:
In @.okf/build/hugo-build.md:
- Around line 21-23: Update the build-nondeterminism note in the Hugo build
documentation by adding citations that directly support the “term-casing races”
and “header partialCached race” claims, or remove those specific assertions if
no reliable evidence is available; retain only adequately supported guidance.

In @.okf/content/voice-rules.md:
- Around line 16-18: Update the first occurrence of “ICP” in the course voice
rules to “ideal customer profile (ICP)”, while preserving the existing wording
and the later acronym usage.

In @.okf/design/cover-pipeline.md:
- Around line 10-12: Update the cover-download constraint statement in the
design document to include a traceable citation linking the relevant decision,
issue, or workflow record; if no source exists, rephrase the claim explicitly as
a current observed constraint rather than an historical assertion.

In @.okf/design/house-visual-spec.md:
- Around line 21-32: Update the visual heuristics in the design specification by
either adding authoritative citations for the “Sweller split-attention rule” and
the “taller than 2x viewport” claim, or explicitly labeling both as house
heuristics rather than research-backed rules. Preserve the existing guidance and
apply the chosen attribution consistently to both statements.

In @.okf/design/mermaid-theme.md:
- Around line 36-40: Update the typography rationale in the Mermaid theme
documentation by either linking the owner’s clean-sans rejection to a design
review source or removing the uncited anecdote and stating the requirement as
the current house rule. Preserve the decision to retain handwritten typography
and address legibility structurally.
- Around line 12-20: Update the Mermaid font-loading explanation in the design
document to cite supporting evidence for the claims that Caveat was never
loaded, Apple Chancery was used as the macOS fallback, and differing
measurement/rendering metrics caused last-character clipping. Link the relevant
bug, commit, or rendering evidence directly from the affected assertions without
changing the documented fix details.

In @.okf/log.md:
- Line 4: Update the render-verification entry in .okf/log.md to add a citation
linking the supporting incident or review record for the 2026-07-13 review wave
claim; if no authoritative record exists, remove that unsupported assertion
while retaining the path guidance.

In @.okf/workflows/review-swarm.md:
- Around line 3-4: Update the workflow front matter description and the
unsupported failure-mode assertions in the review-swarm document: either add
citations to the relevant evidence or incident records, or replace the claims
with neutral, directly verifiable wording. Keep the documented review-loop
behavior unchanged.

In
`@content/course/tech-for-non-technical-founders-2026/channel-selection-before-outbound/index.md`:
- Line 133: Label the “7+ of 10” and “5+” channel thresholds in the fast-path
guidance as internal heuristics, or add supporting citations for each threshold.
Update the fast-path exit text without changing its worksheet-skipping behavior
or references to Part 3 and Ch 5.3.

In
`@content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/index.md`:
- Line 45: Update the sentence containing “Veracode's 2025 study” to accurately
state that 45% of evaluated LLM-generated code samples or generation tasks
introduced a known flaw, without claiming the code was shipped or exploitable.
Add the provided Veracode URL as a citation supporting the assertion.

In
`@content/course/tech-for-non-technical-founders-2026/friday-demo-template/index.md`:
- Line 39: Revise the client anecdote in the Friday demo template so the precise
$54K figure and related factual claims either cite an approved case-study source
or are clearly labeled as illustrative/composite. If neither is available,
remove the unsupported $54K claim while preserving the anecdote’s intended
message.

In
`@content/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/index.md`:
- Line 57: Update the conversion claim in the pilot-wrap paragraph to use
qualified language such as “conversion becomes easier to evaluate” rather than
calling it a formality, and add an appropriate citation supporting the revised
assertion. Keep the surrounding explanation unchanged.

In
`@content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/index.md`:
- Line 84: Update the NRR parenthetical in the “Right product, wrong pricing”
example to define net revenue retention as retained starting-customer revenue
after churn and contraction, plus expansion, while explicitly excluding
new-customer revenue. Add a citation supporting this Markdown assertion, using
the repository’s established citation style if available.
- Line 50: Update the parenthetical PLG definition in the pivot-or-persevere
decision framework to describe product-led growth as product usage driving
acquisition, activation, or expansion, while allowing sales-assisted
conversions. Add a citation to the definition using the repository’s established
Markdown citation format.

In
`@content/course/tech-for-non-technical-founders-2026/slopsquatting-ai-supply-chain-attack/index.md`:
- Line 49: In the attack description, replace the nonstandard “0day” spelling
with “zero-day” while preserving the surrounding sentence and meaning.

In
`@content/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/index.md`:
- Line 36: Update the Tier-2 India statement in the hiring guide to include a
supporting citation, or explicitly label the cities and characterization as
internal examples. Replace the absolute “async-only” wording with a qualified
description that accurately reflects the recommendation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2da9d825-0a44-45c5-ac37-945c565807b1

📥 Commits

Reviewing files that changed from the base of the PR and between e6224ed and 32fec9a.

⛔ Files ignored due to path filters (30)
  • content/course/tech-for-non-technical-founders-2026/clickable-prototype-validation-2-hour-lovable/wireframe-strip.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/faq/module-strip.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/first-ten-customers-network-list/network-buckets.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/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/hiring-interview-script/scorecard-at-a-glance.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/how-this-course-works/module-pipeline.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/must-have-segment-pmf-test/sean-ellis-gauge.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/segment-isolation.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/ph-vs-ih.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/stage-cadence.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/free-vs-paid-pilot.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/price-hypothesis-on-smoke-test-page/stripe-payment-link.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/slopsquatting-ai-supply-chain-attack/attack-chain.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/slopsquatting-ai-supply-chain-attack/hallucinated-vs-real.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/smoke-test-build-page/page-anatomy.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/smoke-test-wire-tracking/tracking-snippets.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/weekly-dev-report-template-founders/five-sections.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/weekly-dev-report-template-founders/report-comparison.svg is excluded by !**/*.svg
📒 Files selected for processing (57)
  • .gitignore
  • .okf/build/hugo-build.md
  • .okf/build/index.md
  • .okf/build/pdf-templates.md
  • .okf/build/test-gates.md
  • .okf/content/banned-strings-ratchet.md
  • .okf/content/course-canon.md
  • .okf/content/course-structure.md
  • .okf/content/index.md
  • .okf/content/voice-rules.md
  • .okf/design/course-typography.md
  • .okf/design/cover-pipeline.md
  • .okf/design/house-visual-spec.md
  • .okf/design/index.md
  • .okf/design/mermaid-theme.md
  • .okf/index.md
  • .okf/log.md
  • .okf/workflows/index.md
  • .okf/workflows/render-verification.md
  • .okf/workflows/review-swarm.md
  • CLAUDE.md
  • content/course/tech-for-non-technical-founders-2026/agency-ai-five-questions/index.md
  • content/course/tech-for-non-technical-founders-2026/agency-uses-ai-follow-up-questions/index.md
  • content/course/tech-for-non-technical-founders-2026/ai-persona-pre-validation-mom-test-prep/index.md
  • content/course/tech-for-non-technical-founders-2026/ai-token-bill-dev-shop-pass-through-cost/index.md
  • content/course/tech-for-non-technical-founders-2026/channel-selection-before-outbound/index.md
  • content/course/tech-for-non-technical-founders-2026/clickable-prototype-validation-2-hour-lovable/index.md
  • content/course/tech-for-non-technical-founders-2026/customers-leaving-churn-triage-not-acquisition/index.md
  • content/course/tech-for-non-technical-founders-2026/engineering-org-chart-non-technical-founder/index.md
  • content/course/tech-for-non-technical-founders-2026/faq/index.md
  • content/course/tech-for-non-technical-founders-2026/find-10-people-where-to-look/index.md
  • content/course/tech-for-non-technical-founders-2026/find-10-people-with-problem-outreach-2026/index.md
  • content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/index.md
  • content/course/tech-for-non-technical-founders-2026/first-ten-customers-network-list/index.md
  • content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/index.md
  • content/course/tech-for-non-technical-founders-2026/friday-demo-template/index.md
  • content/course/tech-for-non-technical-founders-2026/module-2-walkthrough-mia/index.md
  • content/course/tech-for-non-technical-founders-2026/mom-test-ask-about-past-not-future/index.md
  • content/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/index.md
  • content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.md
  • content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.md
  • content/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/index.md
  • content/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/index.md
  • content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/index.md
  • content/course/tech-for-non-technical-founders-2026/reference/smoke-test-channel-guide/index.md
  • content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md
  • content/course/tech-for-non-technical-founders-2026/slopsquatting-ai-supply-chain-attack/index.md
  • content/course/tech-for-non-technical-founders-2026/sow-reading-guide/index.md
  • content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md
  • content/course/tech-for-non-technical-founders-2026/three-questions-turn-standup-into-proof/index.md
  • content/course/tech-for-non-technical-founders-2026/validated-problem-statement-template/index.md
  • content/course/tech-for-non-technical-founders-2026/validation-tools-field-guide/index.md
  • content/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/index.md
  • content/course/tech-for-non-technical-founders-2026/weekly-dev-report-template-founders/index.md
  • content/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/index.md
  • data/course_banned_strings.yaml
  • themes/beaver/layouts/baseof.html
🚧 Files skipped from review as they are similar to previous changes (6)
  • content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md
  • content/course/tech-for-non-technical-founders-2026/find-10-people-where-to-look/index.md
  • content/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/index.md
  • content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.md
  • content/course/tech-for-non-technical-founders-2026/sow-reading-guide/index.md
  • content/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/index.md

Comment thread .okf/build/hugo-build.md
Comment on lines +18 to +20
- The ratchet only sees rendered HTML text. It CANNOT see inside SVG artwork
or mermaid diagram labels - defects there need the
[visual scroll gate](/workflows/render-verification.md).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Correct the banned-string ratchet scope.

lib/course_validators.rb:349-367 reads each course chapter source file with File.read(path). The ratchet can therefore see Mermaid labels written in Markdown; only text baked into external SVG artwork is outside this check.

Proposed wording
- The ratchet only sees rendered HTML text. It CANNOT see inside SVG artwork
- or mermaid diagram labels - defects there need the
+ The ratchet scans course chapter source files, so it can catch Mermaid labels
+ written in Markdown, but it cannot inspect text baked into SVG artwork;
+ defects in rendered visuals still need the
  [visual scroll gate](/workflows/render-verification.md).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- The ratchet only sees rendered HTML text. It CANNOT see inside SVG artwork
or mermaid diagram labels - defects there need the
[visual scroll gate](/workflows/render-verification.md).
- The ratchet scans course chapter source files, so it can catch Mermaid labels
written in Markdown, but it cannot inspect text baked into SVG artwork;
defects in rendered visuals still need the
[visual scroll gate](/workflows/render-verification.md).
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.okf/build/hugo-build.md around lines 18 - 20, Update the ratchet scope
description in the rendered HTML guidance to state that it can detect banned
strings in Mermaid labels and other Markdown source text read by the validator,
while text baked into external SVG artwork remains outside the check and
requires the visual scroll gate.

Comment thread .okf/build/test-gates.md
Comment on lines +13 to +15
| `bin/rake test:critical` | Critical Minitest suite (46 runs / 84 screenshots) | After every change, before every commit |
| `bin/test` | Visual regression on macOS host (baselines in `test/fixtures/screenshots/macos/`) | Any edit to `themes/`, `layouts/`, `*.css`, or post body HTML |
| `bin/dtest` | Same suite in Linux/Docker (baselines in `linux/`) - CI runs Linux | Same trigger as bin/test; skipping it ships green-locally / red-in-CI |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Do not present the command matrix as the complete validation gate.

The table and “need only” wording omit mandatory path-specific checks: HTML/CSS/JS changes require Chrome DevTools validation, Markdown/SVG/image changes require desktop/mobile visual review, and .okf/ changes require /okf:validate .okf --strict. Scope this document to command suites or link the additional gates explicitly.

As per coding guidelines, these path-specific validation requirements are mandatory for the affected file types.

Also applies to: 25-26

🧰 Tools
🪛 LanguageTool

[uncategorized] ~14-~14: The operating system from Apple is written “macOS”.
Context: ... regression on macOS host (baselines in test/fixtures/screenshots/macos/) | Any edit to themes/, layouts/,...

(MAC_OS)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.okf/build/test-gates.md around lines 13 - 15, Update the validation
guidance in the command matrix and surrounding “need only” wording so it is not
presented as the complete gate. Explicitly link or include the mandatory
path-specific checks: Chrome DevTools validation for HTML/CSS/JS changes,
desktop/mobile visual review for Markdown/SVG/image changes, and `/okf:validate
.okf --strict` for `.okf/` changes.

Source: Coding guidelines

Comment on lines +12 to +13
`data/course_banned_strings.yaml`. [bin/hugo-build](/build/hugo-build.md)
fails if it reappears in rendered course HTML.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Describe the actual scan target.

lib/course_validators.rb#check_banned_strings reads content/course/**/index.md and checks body.include?; it does not inspect rendered HTML. Mermaid source text in those Markdown files is scanned, while standalone SVG artwork is not. The current wording creates false confidence about the validator’s coverage.

Suggested wording
-[bin/hugo-build](/build/hugo-build.md)
-fails if it reappears in rendered course HTML.
+[bin/hugo-build](/build/hugo-build.md)
+fails if it reappears in source `content/course/**/index.md` files.
...
-- The ratchet reads rendered text only - it is blind to text inside SVG
-  artwork and mermaid labels.
+- The ratchet scans source Markdown, including Mermaid source text, but is
+  blind to text inside standalone SVG artwork.

Also applies to: 20-22

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.okf/content/banned-strings-ratchet.md around lines 12 - 13, Update the
banned-strings ratchet documentation around the data/course_banned_strings.yaml
and bin/hugo-build references to accurately state that
lib/course_validators.rb#check_banned_strings scans content/course/**/index.md
Markdown bodies, including Mermaid source, rather than rendered course HTML;
clarify that standalone SVG artwork is not inspected.

Comment on lines +17 to +19
- Entries support per-page scoping (e.g. "Airtable" is banned only on the
operating-kit page where it was a fabricated attribution) and exemptions
(rescue framing is allowed on Going Further rescue chapters).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Remove or implement the claimed exemption contract.

The supplied validator supports optional scope filtering, but no exemption field or rescue-framing exception. This documentation would cause maintainers to configure behavior the validator ignores.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.okf/content/banned-strings-ratchet.md around lines 17 - 19, Update the
banned-strings ratchet documentation to remove the unsupported
exemption/rescue-framing claim, or implement the corresponding exemption
behavior in the validator and document its configuration. Keep the documented
per-page scope behavior aligned with the validator’s existing scope filtering,
and do not describe configuration fields the validator ignores.

Comment on lines +13 to +23
| Founding Hypothesis score | ≥14/20 across four lenses |
| Smoke test traffic | 300 cold visitors |
| Interviews | 10 (from a 30-name list, expanded if replies run thin) |
| Build / pivot / kill gate | 7+ strong signals build · 4-6 pivot · under 4 kill |
| Prototype test subjects | 5 interview subjects |
| Sean Ellis must-have test | 40% - directional at ≥10 respondents, useful at 20+, sliceable at 30+ |
| Cold reply bands | 3-8% realistic; <5% stop and diagnose · 5-10% continue · >10% accelerate |
| Paid pilot deposit | $500+ refundable, via Stripe |
| Tracking tool | Google Sheet - never Airtable |
| AI token pass-through | disciplined $80-$120/dev/mo · undisciplined $300-$500; industry range $80-$300 |
| Slopsquatting source | Lasso Security research March 2025; "slopsquatting" coined by Infosecurity Magazine April 2025 |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Add citations to the canonical claims.

This source-of-truth table contains externally verifiable thresholds, pricing ranges, and research attributions without citations. Add an inline citation or authoritative internal reference for each applicable row, especially the Sean Ellis, pricing, and slopsquatting entries.

As per coding guidelines, Markdown assertions must have citations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.okf/content/course-canon.md around lines 13 - 23, Add inline citations or
authoritative internal references to every externally verifiable claim in the
canonical table, including thresholds, pricing ranges, research attributions,
and especially the Sean Ellis must-have test, AI token pass-through, paid pilot
deposit, and slopsquatting source rows. Preserve the existing table values while
making each applicable assertion traceable.

Source: Coding guidelines

Comment on lines +14 to +21
# Render from _dest/public-dev, NEVER public/

[bin/hugo-build](/build/hugo-build.md) outputs to `_dest/public-dev/` with
RELATIVE asset URLs (covers and SVGs work over file://). The repo-root
`public/` directory is a stale artifact of raw `hugo` runs or the dev
server (localhost:1717 or canonified production URLs baked in) - reviewing
it produces false "missing image / missing cover / nav overlap" findings.
The 2026-07-13 review wave lost a whole finding class to this.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n## .okf index\n'
sed -n '1,220p' .okf/index.md

printf '\n## render-verification workflow\n'
nl -ba .okf/workflows/render-verification.md | sed -n '1,220p'

printf '\n## related build doc\n'
nl -ba .okf/build/hugo-build.md | sed -n '1,220p'

Repository: jetthoughts/jetthoughts.github.io

Length of output: 847


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n## render-verification workflow (lines 1-120)\n'
sed -n '1,120p' .okf/workflows/render-verification.md | cat -n

printf '\n## hugo-build doc (lines 1-120)\n'
sed -n '1,120p' .okf/build/hugo-build.md | cat -n

printf '\n## search for public-dev/public references in .okf/workflows and .okf/build\n'
rg -n "public-dev|file:///path/to/public|file:///path/to/_dest/public-dev|1280x800|390x844|screenshot" .okf/workflows .okf/build

Repository: jetthoughts/jetthoughts.github.io

Length of output: 4926


Replace the public/ example with _dest/public-dev/. This workflow says public/ is stale, but the capture command still points there, conflicting with the canonical output directory and risking the false missing-asset findings this guide is meant to avoid.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.okf/workflows/render-verification.md around lines 14 - 21, Update the
capture command in the render-verification workflow to use _dest/public-dev/
instead of public/, aligning the example with the canonical bin/hugo-build
output and avoiding stale artifact reviews.

Comment on lines +23 to +46
# Working capture recipe (macOS)

Chrome never exits on its own - background it and kill after a sleep:

```bash
'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' \
--headless --disable-gpu --user-data-dir=$(mktemp -d) \
--hide-scrollbars --window-size=1280,20000 --virtual-time-budget=8000 \
--screenshot=page.png "file:///path/to/public/.../index.html" & P=$!
sleep 14; kill $P
```

- 390-wide window for mobile first-fold; raw headless is NOT full mobile
emulation.
- Slice for inspection: `magick page.png -trim +repage -crop 1280x2400 +repage p-%02d.png`
- Standalone SVGs: `rsvg-convert -w 1400 file.svg -o out.png` then inspect.
- Line-fraction crop estimates are unreliable (tables/code expand); iterate
crops or measure with getBoundingClientRect.

# The gate

Walk EVERY slice at 1280x800 and 390x844 and actually look at each one
before handback. Score new visuals on: great look / functional / earns the
next scroll / helpful. Any NO on the last two = rollback or redesign.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

Document executable steps for both required viewport gates.

The only command captures a 1280×20,000 canvas; it does not show an exact 1280×800 viewport or any 390×844 capture/emulation, while the document explicitly says raw headless is not full mobile emulation. The stated gate therefore cannot be reproduced from this playbook.

As per coding guidelines, edited Markdown content pages require the full visual scroll gate at 1280×800 and 390×844.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.okf/workflows/render-verification.md around lines 23 - 46, Update the
“Working capture recipe” and “The gate” sections in render-verification.md to
provide executable capture steps for exact 1280×800 desktop and 390×844 mobile
viewport gates, including mobile emulation for the narrow viewport. Ensure the
documented commands support inspecting every captured slice at both required
dimensions and preserve the existing visual scoring criteria.

Source: Coding guidelines

> **Next:** that is the core course complete - from a one-sentence hypothesis to a stranger's money in your account. Two ways to keep going: the optional [5.7 · Going Outbound Without a Sales Team](/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/) when your warm list runs dry, and the [Going further chapters](/course/tech-for-non-technical-founders-2026/#going-further-after-first-paying-customer) once your pilot converts. The [First-Paying-Customer Operating Kit](/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/) keeps the build honest through the pilot.
>
> **If blocked:** If the customer says "can we start free and convert later," reframe: the deposit is year-one ACV prepaid, not added cost. If they still say no, they are not in your must-have segment - move to the next lead.
> **If blocked:** If the customer says "can we start free and convert later," reframe: the deposit is credited toward year-one ACV, not added cost. If they still say no, they are not in your must-have segment - move to the next lead.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Make the ACV credit conditional on the agreement.

Lines 206 and 65 describe a variable deposit, but this line now promises it is credited toward year-one ACV. That should only be stated if the DPA explicitly defines the credit, timing, and applicable contract terms; otherwise it can create a billing dispute.

As per coding guidelines, Markdown assertions must have citations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/index.md`
at line 320, Update the “If blocked” guidance in the deposit objection-handling
section so the year-one ACV credit is presented only when the DPA explicitly
defines the credit, timing, and applicable contract terms; otherwise use neutral
wording that does not promise a credit. Add the required citation for the
Markdown assertion, referencing the relevant DPA or contract-term source.

Source: Coding guidelines

Comment on lines +43 to +49
In March 2025, Lasso Security published findings that AI assistants suggested over 200 package names across Rubygems, PyPI, and npm that did not exist. Attackers registered those names and waited. By the time the [Infosecurity Magazine writeup](https://www.infosecurity-magazine.com/news/ai-hallucinations-slopsquatting/) named the technique "slopsquatting" in April 2025, security teams had already logged the first installs of the proof-of-concept packages on real production systems. You paid $34K for an MVP. The most expensive line in the codebase was free. It was the one a model invented and a developer typed into a `Gemfile` without checking that the gem existed.

![A hand-drawn diagram of the slopsquatting attack chain in five steps: AI hallucinates a package name, attacker watches public prompt logs, attacker registers the name on Rubygems / PyPI / npm with a malicious payload, developer installs without review, damage runs in production. Annotated with the Lasso Security 11-day reproduction window.](attack-chain.svg)

## What slopsquatting is

LLMs invent package names that sound plausible but do not exist. The original [Lasso Security research from March 2025](https://www.lasso.security/blog/ai-package-hallucinations) tested GPT-4, Claude, and the open-source Code Llama against thousands of common developer prompts. About 5.2% of GPT-4's package suggestions and 21.7% of Code Llama's were hallucinated. [Snyk's slopsquatting write-up](https://snyk.io/articles/slopsquatting-mitigation-strategies/) cites follow-up research putting the overall rate at roughly one in five AI-suggested packages across models. Attackers then register the most-suggested hallucinated names as squatted packages, sometimes with a malicious payload (data exfiltration, credential theft, persistence backdoor), sometimes empty until a real victim shows up. Rubygems, PyPI, npm, Composer, and crates.io all have the same exposure. The attack does not need a 0day - just a developer who trusts a model without checking.
LLMs invent package names that sound plausible but do not exist. The original [Lasso Security research from March 2025](https://www.lasso.security/blog/ai-package-hallucinations) tested GPT-4, Claude, and the open-source Code Llama against thousands of common developer prompts. About 5.2% of GPT-4's package suggestions and 21.7% of Code Llama's were hallucinated. [Snyk's slopsquatting write-up](https://snyk.io/articles/slopsquatting-mitigation-strategies/) cites follow-up research putting the overall rate at roughly one in five AI-suggested packages across models. Attackers then register the most-suggested hallucinated names as squatted packages, sometimes with a malicious payload (data exfiltration, credential theft, persistence backdoor), sometimes empty until a real victim shows up. Rubygems, PyPI, npm, Composer, and crates.io all have the same exposure. The attack does not need a 0day (a secret, unpatched vulnerability) - just a developer who trusts a model without checking.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Add direct citations for the security claims.

The paragraph attributes the “over 200” finding to Lasso Security but does not link that source at the point of use. It also claims that security teams had already logged production installs and that the diagram shows an 11-day reproduction window; cite sources that explicitly support those claims or rephrase them.

As per coding guidelines, assertions in Markdown pages must have citations.

🧰 Tools
🪛 LanguageTool

[grammar] ~49-~49: Ensure spelling is correct
Context: ...me exposure. The attack does not need a 0day (a secret, unpatched vulnerability) - j...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/slopsquatting-ai-supply-chain-attack/index.md`
around lines 43 - 49, Update the opening slopsquatting paragraph and
attack-chain diagram caption to add direct citations for the “over 200” package
finding, the reported production installs, and the 11-day reproduction window.
Use sources that explicitly substantiate each claim; if no source supports the
production-install claim, rephrase or remove it rather than leaving it uncited.
Keep the existing Lasso Security and Infosecurity Magazine links where
applicable and ensure all factual security assertions in this section are cited.

Source: Coding guidelines

Comment on lines +155 to +156
Three worked examples for the sections founders most often get wrong - 1, 2, and 4. Sections 3 and 5 are direct transcript copying; the same specific-beats-vague rule applies.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Correct the description of sections 3 and 5.

They are not direct transcript copying: section 3 requires synthesized workarounds, failure reasons, spend, and competitor data, while section 5 requires calculated scores and the BUILD/PIVOT/KILL decision.

Proposed wording
-Sections 3 and 5 are direct transcript copying; the same specific-beats-vague rule applies.
+Sections 3 and 5 still require synthesis and calculation; the same specific-beats-vague rule applies.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Three worked examples for the sections founders most often get wrong - 1, 2, and 4. Sections 3 and 5 are direct transcript copying; the same specific-beats-vague rule applies.
Sections 3 and 5 still require synthesis and calculation; the same specific-beats-vague rule applies.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@content/course/tech-for-non-technical-founders-2026/validated-problem-statement-template/index.md`
around lines 155 - 156, Update the description of sections 3 and 5 in the
worked-examples paragraph: remove the claim that they are direct transcript
copying, and state that section 3 requires synthesized workarounds, failure
reasons, spend, and competitor data, while section 5 requires calculated scores
and the BUILD/PIVOT/KILL decision.

Paul Keen and others added 2 commits July 13, 2026 01:55
…nversions, structure upgrades

Design fixes from the five-critic swarm review (M1, M2, M3+chrome, misc
templates, Going Further), every fixer claim re-verified by own Chrome
renders:

- Handwritten identity: good-vs-bad-prd + vibe-prd-template-visual +
  hypothesis-mad-libs + channel-icp-matrix converted from Segoe sans to
  the Caveat stack (sizes re-tuned for Caveat metrics, no clipping).
- Orphan rescue: channel-icp-matrix was embedded on NO page - moved into
  reference/smoke-test-channel-guide (a 9-min read that had zero
  diagrams) as its Channel-by-ICP hero.
- New visuals: quickstart/minimal-path.svg (pure-text hero fixed),
  reference sprint-timeline.svg + price-test-flow.svg (pure-text ref
  heroes), three-questions/daily-weekly-cadence.svg (2.5 screens of
  unbroken prose broken).
- Structure: where-to-hire got the 4-region comparison table its copy
  promised; sow-reading-guide's 8 clause stacks converted to the
  Clause-4 Bad/Good table pattern; interview-script got its one visual
  break; landing Going-further list converted to trigger tables.
- Semantics: weekly-report Bad/Good examples now use the bq-bad/bq-good
  callout variants (they rendered identically red before); agency
  flowchart 3-4 conditional node green -> amber; salvage verdict labels
  colored KEEP green / FREEZE amber / REBUILD red; faq module-strip
  recolored to the per-module pipeline palette (viewBox extended to
  unclip the caption).
- Cast sweep inside artwork the ratchet cannot see: PR #847 -> #843 in
  both weekly SVGs; Marcus -> Marcos in ownership pages + zones SVG
  ("Marcus Liu" lead persona and the outreach recipient are distinct
  characters, left as-is); m1 trail 6.5% aligned with the 1.4 meter's
  green Promising band.

Gates: bin/hugo-build green (8 validators), test:critical 46 runs
0 failures (84 screenshots). Content+SVG only - no template/CSS changes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
…ross all 64 pages

Five taste critics re-scored every course page against the new Stitch
taste anchor (.stitch/course-taste-design.md - the course design language
encoded as a DESIGN.md with explicit anti-pattern bans). All prior-wave
fixes verified landed with zero regressions. This wave ships the residuals:

- Handwritten identity completed: ownership-zones, airbnb-test,
  shed-house-skyscraper (the last three sans conceptual diagrams)
  converted to the Caveat stack; orphaned hallucinated-vs-real.svg wired
  into slopsquatting's "What slopsquatting is" section.
- Wall-pattern regressions fixed: 2.2 rehearsal flow and 2.6 prototype
  build (tall single-column mermaids) replaced with compact horizontal
  strips; five-tech-words' bare-gray-diamond refactor flowchart replaced
  with a real-vs-fake two-lane strip; operating-kit's illegible
  6-component tree rebuilt as a legible hub + 6 cards.
- New decision-aid visuals for the weakest-scored pages: agency-ai gets
  the Q1-Q5 pass/fail scorecard it lacked (cloned from
  hiring-interview-script's model); channel-selection gets a
  channel-decision strip + its raw fill-in worksheet promoted to the
  cream ws-card family; validation-tools gets a 3-tools-in-sequence strip
  breaking its prose back half.
- Semantics: churn tree's green navigation nodes -> neutral cream, edge
  labels trimmed to 2 words; vibe-coding's off-palette blue node ->
  violet; trail money-climax cards -> mint (m1 Price test, m2 Money
  answer; taste-e confirmed the red-metric family convention is correct);
  emoji tics swept (checkmark/cross replaced with Bad/Good conventions
  and the bq-good variant).
- Structure: five-tech-words' 18-row acronym wall regrouped into 3
  themed sub-tables; sow Bad/Good headers inked red/green; where-to-hire
  region facts deduped (stated once, in the table, annualized figures
  folded in).
- Render-verified overflow fixes on fixer output the fixers missed:
  kit card titles wrapped, refactor webhook label shortened, tools strip
  card-1 margin, module-strip caption viewBox.
- Canon: templated "In April 2025 a security researcher" question carried
  the wrong Lasso research date on 3 pages - fixed + ratcheted.

Gates: bin/hugo-build green (8 validators), test:critical 46 runs
0 failures (84 screenshots). Content+SVG only - no template/CSS changes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
@pftg

pftg commented Jul 13, 2026

Copy link
Copy Markdown
Member Author

Full-course review sprint (3 commits): canon wave → design wave → taste re-review

Scope: every course page not verified this session — expanded per Paul to all 64 page units. 15 swarm agents total (3 canon critics, 5 design critics, 5 taste critics re-reviewing against a premium bar, plus 7 fixers), every fixer claim re-verified by the coordinator's own Chrome renders.

32fec9a — canon wave (66 files)

36 content fixes: Marcos/Priya cast unification + PR-number collisions, Lasso March/April date, agency-ai self-contradicting walkaway threshold, FAQ + 5.6 deposit ("year-one ACV prepaid" → credited toward), fabricated 51% stat dropped, M2 walkthrough reply-rate overshoot, 2.6 interview length, $62K dollar-anchor collision, dead-end Step-1/Step-4 refs, 10 Sam glosses (SOW, MSA, SLA, FTE, PLG, ARPU, MAU, RAG, 0day, NRR). Root-cause find: 25 SVGs' cursive stacks lacked the Comic Sans MS fallback — SVG-as-img can't load webfonts, so they rendered in the platform font lottery. Plus the .okf/ knowledge bundle + 9 ratchet entries (which immediately caught 3 instances the critics missed).

55b4403 — design wave (28 files)

Two PRD SVGs + FAQ module strip converted/recolored, quickstart pure-text hero fixed with a minimal-path strip, orphaned channel-icp-matrix rescued into the barren channel-guide reference, two new reference heroes, where-to-hire's promised region table, sow-reading-guide's 8 monotone clause stacks → Bad/Good tables, weekly-report Bad/Good examples wired to the bq-bad/bq-good variants, PR #843 renumber inside artwork the ratchet can't see.

f7d974e — taste re-review wave (38 files)

Five critics re-scored all pages against the new Stitch taste anchor (.stitch/course-taste-design.md): zero regressions from the prior waves. Shipped the residuals: last 3 sans conceptual diagrams converted, 2 tall mermaid walls → compact strips, agency-ai scorecard + channel-selection ws-cards (the two weakest pages), churn-tree semantic recolor, emoji sweep, 18-row acronym wall regrouped.

Gates on every commit: bin/hugo-build (8 validators) + test:critical (46 runs / 84 screenshots) green. Content+SVG only — no template/CSS changes, so visual-suite baselines untouched.

Known infra note: local reviews must render from _dest/public-dev/ — the repo-root public/ is a stale dev-server artifact that produced a whole class of false missing-asset findings (documented in .okf/workflows/render-verification.md). Stitch MCP screen generation timed out server-side both attempts; the taste-design skill's DESIGN.md anchor carried the Stitch role this round.

Deferred backlog (new-feature territory, not review fixes): body-brand strips for 4.3/4.4/self-serve-walkthrough, how-this-course-works per-module table color-coding, vibe-prd mono-wall paper cards, hire-track reference density, agency Q1-Q5 callout-form variety, sprint-timeline boustrophedon numbering, 📋 companion-line motif, restated-title-H2 pattern.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V

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