feat(course): in-post visual refresh - mermaid house theme + 4 worst-SVG redesigns#361
feat(course): in-post visual refresh - mermaid house theme + 4 worst-SVG redesigns#361pftg wants to merge 13 commits into
Conversation
…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
|
Warning Review limit reached
Next review available in: 57 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (25)
📒 Files selected for processing (38)
📝 WalkthroughWalkthroughAdds 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. ChangesCourse visual system and worksheet presentation
Course instructional content
OKF knowledge bundle
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
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
⛔ Files ignored due to path filters (4)
content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/sean-ellis-gauge.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/segment-isolation.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/ph-vs-ih.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/smoke-test-landing-page-7-day-demand-test/smoke-test-signal.svgis excluded by!**/*.svg
📒 Files selected for processing (5)
.stitch/prompts/course-inpost-visual-prompt.mdcontent/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.mdcontent/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/index.mdcontent/course/tech-for-non-technical-founders-2026/smoke-test-landing-page-7-day-demand-test/index.mdthemes/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
|
Review round addressed in c881bfe:
Gates: build green, test:critical 46/46, both visual suites green after the template change. 🤖 Generated with Claude Code |
…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
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
P2 - consistency
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. |
There was a problem hiding this comment.
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
⛔ Files ignored due to path filters (2)
content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/cover.pngis excluded by!**/*.pngcontent/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/signals-scoreboard.svgis excluded by!**/*.svg
📒 Files selected for processing (12)
content/course/tech-for-non-technical-founders-2026/find-10-people-where-to-look/index.mdcontent/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/index.mdcontent/course/tech-for-non-technical-founders-2026/ownership-checklist/index.mdcontent/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/index.mdcontent/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/index.mdcontent/course/tech-for-non-technical-founders-2026/self-serve-stack-walkthrough/index.mdcontent/course/tech-for-non-technical-founders-2026/sow-reading-guide/index.mdcontent/course/tech-for-non-technical-founders-2026/validation-tools-field-guide/index.mdcontent/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/index.mdcontent/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/index.mddocs/workflows/visual-scroll-gate.mdthemes/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. |
There was a problem hiding this comment.
🎯 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) |
There was a problem hiding this comment.
🎯 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.
… 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
Design sprint (commit 28fe55c) - the five deferred decisions + two owner directives1. 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 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. |
…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
Compact-SVG sprint (commit e6224ed) - the three remaining over-tall flowchartsThe 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:
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. |
There was a problem hiding this comment.
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 winQualify 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 winUse 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 winKeep 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
⛔ 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.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/build-path-decision-worksheet/build-path-decision-worksheet.pdfis excluded by!**/*.pdfcontent/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/first-paying-customer-operating-kit.pdfis excluded by!**/*.pdfcontent/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/friday-loop.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/github-aws-database-ownership-checklist/ownership-audit-flow.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/mom-test-interview-script/mom-test-interview-script.pdfis excluded by!**/*.pdfcontent/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/stage-cadence.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/ownership-checklist/ownership-checklist.pdfis excluded by!**/*.pdfcontent/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/cover.pngis excluded by!**/*.pngcontent/course/tech-for-non-technical-founders-2026/self-serve-stack-walkthrough/cover.pngis excluded by!**/*.pngcontent/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/decision-matrix.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/validated-problem-statement-template/validated-problem-statement-template.pdfis excluded by!**/*.pdf
📒 Files selected for processing (14)
.stitch/prompts/course-inpost-visual-prompt.mdcontent/course/tech-for-non-technical-founders-2026/ai-token-bill-dev-shop-pass-through-cost/index.mdcontent/course/tech-for-non-technical-founders-2026/build-path-decision-worksheet/index.mdcontent/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/index.mdcontent/course/tech-for-non-technical-founders-2026/github-aws-database-ownership-checklist/index.mdcontent/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/index.mdcontent/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.mdcontent/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/index.mdcontent/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/index.mdcontent/course/tech-for-non-technical-founders-2026/self-serve-stack-walkthrough/index.mdcontent/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.mdcontent/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/index.mdthemes/beaver/assets/css/style.cssthemes/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
| **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. | |
There was a problem hiding this comment.
🎯 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.
| | **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 | |
There was a problem hiding this comment.
📐 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
…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
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 findThe 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 Content-canon wave (6518530)
Design wave (c10acce)
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
There was a problem hiding this comment.
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 winAdd 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 winSource 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 winAdd 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 winCite 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 winCite 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 winGloss
ICPon first use.Line 16 uses
ICPwithout a plain-words explanation, despite the rule immediately below requiring one. Useideal 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 winCite 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 winMake 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 winCite 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 winAdd 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 winUse “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 winQualify 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 winCite or label the new channel thresholds.
Line 133 presents
7+ of 10and5+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 winSource or clearly frame the revised client anecdote.
The new
$54Kfigure 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 winCite 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 flawAs 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 winCorrect 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 winBroaden 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 winCite 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
⛔ Files ignored due to path filters (30)
content/course/tech-for-non-technical-founders-2026/clickable-prototype-validation-2-hour-lovable/wireframe-strip.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/engineering-org-chart-non-technical-founder/reviewer-attention.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/faq/module-strip.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/kit-sample-row.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/first-ten-customers-network-list/network-buckets.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/architecture-comparison.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/jargon-translator.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/catching-the-lie.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/demo-rule.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/hiring-interview-script/scorecard-at-a-glance.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/how-this-course-works/module-pipeline.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/module-1-walkthrough-mia/artifact-trail.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/module-2-walkthrough-mia/artifact-trail.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/module-3-walkthrough-mia/artifact-trail.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/module-4-walkthrough-mia/artifact-trail.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/module-5-walkthrough-mia/artifact-trail.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/sean-ellis-gauge.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/segment-isolation.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/ph-vs-ih.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/stage-cadence.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/free-vs-paid-pilot.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/pivot-ledger.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/pivot-wheel.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/price-hypothesis-on-smoke-test-page/stripe-payment-link.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/slopsquatting-ai-supply-chain-attack/attack-chain.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/slopsquatting-ai-supply-chain-attack/hallucinated-vs-real.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/smoke-test-build-page/page-anatomy.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/smoke-test-wire-tracking/tracking-snippets.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/weekly-dev-report-template-founders/five-sections.svgis excluded by!**/*.svgcontent/course/tech-for-non-technical-founders-2026/weekly-dev-report-template-founders/report-comparison.svgis 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.mdCLAUDE.mdcontent/course/tech-for-non-technical-founders-2026/agency-ai-five-questions/index.mdcontent/course/tech-for-non-technical-founders-2026/agency-uses-ai-follow-up-questions/index.mdcontent/course/tech-for-non-technical-founders-2026/ai-persona-pre-validation-mom-test-prep/index.mdcontent/course/tech-for-non-technical-founders-2026/ai-token-bill-dev-shop-pass-through-cost/index.mdcontent/course/tech-for-non-technical-founders-2026/channel-selection-before-outbound/index.mdcontent/course/tech-for-non-technical-founders-2026/clickable-prototype-validation-2-hour-lovable/index.mdcontent/course/tech-for-non-technical-founders-2026/customers-leaving-churn-triage-not-acquisition/index.mdcontent/course/tech-for-non-technical-founders-2026/engineering-org-chart-non-technical-founder/index.mdcontent/course/tech-for-non-technical-founders-2026/faq/index.mdcontent/course/tech-for-non-technical-founders-2026/find-10-people-where-to-look/index.mdcontent/course/tech-for-non-technical-founders-2026/find-10-people-with-problem-outreach-2026/index.mdcontent/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/index.mdcontent/course/tech-for-non-technical-founders-2026/first-ten-customers-network-list/index.mdcontent/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/index.mdcontent/course/tech-for-non-technical-founders-2026/friday-demo-template/index.mdcontent/course/tech-for-non-technical-founders-2026/module-2-walkthrough-mia/index.mdcontent/course/tech-for-non-technical-founders-2026/mom-test-ask-about-past-not-future/index.mdcontent/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/index.mdcontent/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.mdcontent/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.mdcontent/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/index.mdcontent/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/index.mdcontent/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/index.mdcontent/course/tech-for-non-technical-founders-2026/reference/smoke-test-channel-guide/index.mdcontent/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.mdcontent/course/tech-for-non-technical-founders-2026/slopsquatting-ai-supply-chain-attack/index.mdcontent/course/tech-for-non-technical-founders-2026/sow-reading-guide/index.mdcontent/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.mdcontent/course/tech-for-non-technical-founders-2026/three-questions-turn-standup-into-proof/index.mdcontent/course/tech-for-non-technical-founders-2026/validated-problem-statement-template/index.mdcontent/course/tech-for-non-technical-founders-2026/validation-tools-field-guide/index.mdcontent/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/index.mdcontent/course/tech-for-non-technical-founders-2026/weekly-dev-report-template-founders/index.mdcontent/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/index.mddata/course_banned_strings.yamlthemes/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
| - 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). |
There was a problem hiding this comment.
🎯 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.
| - 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.
| | `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 | |
There was a problem hiding this comment.
🎯 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
| `data/course_banned_strings.yaml`. [bin/hugo-build](/build/hugo-build.md) | ||
| fails if it reappears in rendered course HTML. |
There was a problem hiding this comment.
🎯 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.
| - 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). |
There was a problem hiding this comment.
🎯 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.
| | 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 | |
There was a problem hiding this comment.
🗄️ 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
| # 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. |
There was a problem hiding this comment.
🗄️ 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/buildRepository: 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.
| # 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. |
There was a problem hiding this comment.
📐 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. |
There was a problem hiding this comment.
🎯 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
| 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. | ||
|
|
||
|  | ||
|
|
||
| ## 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. |
There was a problem hiding this comment.
🔒 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
| 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. | ||
|
|
There was a problem hiding this comment.
🎯 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.
| 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.
…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
Full-course review sprint (3 commits): canon wave → design wave → taste re-reviewScope: 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 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 ( 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 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 |
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
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.htmlnow 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
sean-ellis-gauge.svg(5.1)segment-isolation.svg(5.1)ph-vs-ih.svg(5.7)smoke-test-signal.svg(1.4)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-course8/8;bin/hugo-buildgreenbin/rake test:critical46/46;bin/test(macOS) ANDbin/dtest(Linux): 0 failures, 84 screenshots, no diffs each🤖 Generated with Claude Code
https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Summary by CodeRabbit