Skip to content

feat(course): Module 3 v2 (Design from Evidence) + whole-course validity review fixes#352

Merged
pftg merged 14 commits into
masterfrom
module-3-design-from-evidence
Jul 10, 2026
Merged

feat(course): Module 3 v2 (Design from Evidence) + whole-course validity review fixes#352
pftg merged 14 commits into
masterfrom
module-3-design-from-evidence

Conversation

@pftg

@pftg pftg commented Jul 10, 2026

Copy link
Copy Markdown
Member

Summary

Module 3 (Design from Evidence) migrated to the v2 lesson format, plus a whole-course 4-lens validity review with all confirmed findings fixed.

Module 3 v2 (plan: TASK-TRACKER §Module 3, confirmed 2026-07-09)

  • 3.1 One-Page Product Brief (ea8943ec): v2 template (Lesson header, Progress chain, Done/You-have-now/Next/If-blocked footer), hook tightened, "Artifact Style blog pages #4 of 6" hardcoded index retired, "Chapter 2.1 synthesis" renumber leftovers fixed, Maven cohort price de-hardcoded.
  • 3.2 Quality-check Your Brief (4a2ff457): v2 template + the three 40.06-grounded improvements - hook answers the recorded "why rewrite Section 3?" objection, no-AI manual fallback under the AI critic block, explicit module gate in the Done footer.
  • Module 3 Mia walkthrough (453fc5be): new page; See-it-in-action links added same commit; in-lesson Tomas & Mia case blocks removed per 30.03 §2.7; ratchet scope extended to M3.
  • vibe-prd-template companion (95a5c23e): M2-style Input/Output header, cover wired into frontmatter, 45-min vs 90-min contradiction resolved.
  • SVG-internal defects (3220e2f2, 498974ca): "Chapter 2.1" inside vibe-prd-template-visual.svg + pivot-ledger.svg, 45-min subtitle, wrong-direction "spaceship above" - all caught by chrome-devtools visual QA (the ratchet does not scan SVGs).

Course-wide sweeps (found while migrating)

  • 2.1→2.5 synthesis mislabels + Maven $1,000 hardcodes across 4.1/4.3a/5.1/worksheet/companion (ea8943ec).
  • 2.4 goal wording in course_sequence.yaml (dangling from the M2 sprint).

Whole-course 4-lens review (user request; report: 40.15)

Verdict: course is VALID - spine matches research base, 10.04 competitor recommendations absorbed, module boundaries chain Input/Output cleanly, gate canon consistent. 13 finding-classes fixed (46b3f0a4):

  • Stale "manage-your-team" Chapter 5.2-5.5 banners on 4 Going Further pages (collided with the live 5.x spine); DPA 5.3→5.4 mislabel; friday-demo-template repointed.
  • 3 "Sam" internal-persona leaks → second person; quickstart notes optional 2.2.
  • Volatile price/plan-limit hardcodes de-hardcoded in 7 M4/M5 files (Lovable, Supabase, Apollo, Smartlead, Loom, Sales Navigator, Porkbun, Resend, Sentry, Hunter, WorthBuild).
  • OpenHunts 3.1%/23.1%/89% stats repointed to the verified primary source; unsourced precision stats softened; 35→30 outreach canon (prose + SVG); "directional KILL" retired; 4.2 glued-blockquote render defect.
  • Doc hygiene: 10.02 marked SUPERSEDED, 10.08 gap statuses corrected, YC Startup School named on landing.

Gates

  • 8/8 course validators green (ratchet grew 25→63 signatures this sprint; caught 4 live instances outside review scope).
  • bin/rake test:critical: 46 runs, 124 assertions, 0 failures; 84 screenshots, no diffs.
  • Production build link sweep: 0 missing internal hrefs across all course pages.
  • Chrome DevTools visual QA at 1280×800 + 390×844: no overflow, mermaids compact, covers verified current, first-fold visual hook present on both lessons.
  • No template/CSS/layout files touched (content + data + docs only), so no visual-baseline updates needed.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V

Summary by CodeRabbit

  • New Features

    • Added a new Module 3 walkthrough covering creation and validation of a one-page product brief.
    • Added clearer template guidance, constraints, no-go decisions, and practical quality checks.
  • Documentation

    • Updated course navigation, chapter references, worksheets, and learning paths.
    • Refined guidance for validation, outreach, paid pilots, MVP building, hiring, and team management.
    • Replaced volatile pricing, quotas, and performance figures with current-check reminders or general guidance.
    • Improved formatting, terminology, examples, and course instructions throughout.

Paul Keen and others added 9 commits July 9, 2026 23:30
…label and Maven price sweep

3.1: v2 lesson header (Module 3 · Lesson 3.1 · CORE) + Progress chain,
hook tightened to 3 sentences, Done/You-have-now/Next/If-blocked footer
(hardcoded 'Artifact #4 of 6' index retired), Ch 2.5 synthesis
attribution fixed (2 body leftovers), Maven cohort de-hardcoded
(price + review score -> capability language).
Sweep: same defect classes fixed in 5.1, 4.1, 4.3a,
build-path-decision-worksheet, vibe-prd-template (incl. doubled-word
typo). 6 ratchet signatures added in this commit; 8/8 validators green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
v2 header (Module 3 · Lesson 3.2 · CORE) + Progress chain; hook now
answers the recorded Sam objection ('why rewrite Section 3?') up front
(40.06); manual no-AI fallback added under the AI critic block; Done
footer states the explicit module gate (outcome-shaped Section 3 +
clean quality-check pass); Jump-to/Skip-to duplicate callouts merged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
New module-3-walkthrough-mia page (brief drafted from M2 transcripts,
price-on-profile finding promoted to requirement, failed-then-passed AI
quality check). In-lesson Tomas & Mia case blocks removed from 3.1/3.2
per 30.03 §2.7; See-it-in-action links added same commit; case-study
ratchet scope expanded to M3 bundles.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
M2-companion blockquote header (Input from 2.5 synthesis + 2.6
vocabulary, Output = filled brief), existing cover.png wired into
frontmatter/og tags, 45-min vs 90-min time-budget contradiction
resolved to one 90-minute sitting.

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

vibe-prd-template-visual.svg said 'copy from Chapter 2.1' and 'Fill in
45 minutes' (contradicting the 90-minute canon); pivot-ledger.svg
credited the validated problem to Chapter 2.1. Caught by chrome-devtools
visual QA - the banned-string validator does not scan SVGs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
'the spaceship above' pointed the wrong way (SVG renders below the
paragraph); caught in chrome-devtools visual QA.

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

Spec: stale 'manage-your-team' Chapter 5.2-5.5 banners on 4 Going
Further pages relabeled (collided with live 5.x spine); operating-kit
DPA mislabel 5.3→5.4; friday-demo-template repointed by name.
ICP: 3 'Sam' persona leaks → second person; quickstart notes optional
2.2 on the fast path.
Voice/claims: volatile price+plan-limit hardcodes de-hardcoded across
4.1/4.3a/4.3b/4.4/5.2/5.3b/5.5 (Lovable/Supabase/Apollo/Smartlead/
Loom/SalesNav/Porkbun/Resend/Sentry/Hunter/WorthBuild); OpenHunts stats
repointed to primary source (openhunts.com, verified); unsourced 60%/
30-40%/80% precision stats softened; 35→30 outreach-list canon (prose +
airbnb-test.svg + worksheet); 'directional KILL' vocabulary retired;
two fake-specific 47s varied; 4.2 glued blockquote fixed.
Curriculum: 10.02 marked SUPERSEDED; 10.08 gap table statuses updated
(5 of 6 shipped); YC Startup School alternative named on landing.
32 ratchet signatures added; ratchet immediately caught 2 more live
instances outside review scope (worksheet + 4.1). 8/8 validators green.

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

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

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

Next review available in: 54 minutes

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

How can I continue?

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

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 752a7497-60a1-4e14-bf53-c8270a9053d9

📥 Commits

Reviewing files that changed from the base of the PR and between e854b3d and dd8bab1.

📒 Files selected for processing (5)
  • CLAUDE.md
  • docs/projects/2605-tech-for-non-technical-founders/30-39-architecture-design/30.03-course-format-requirements-for-creators.md
  • docs/projects/2605-tech-for-non-technical-founders/40-49-review/40.13-retrospective-review-churn-2026-07-10.md
  • docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md
  • docs/workflows/visual-scroll-gate.md
📝 Walkthrough

Walkthrough

The PR revises the 2026 course’s Module 3 lessons and templates, aligns chapter navigation and references, generalizes volatile pricing and usage claims, expands banned-string checks, fixes markdown formatting, and records curriculum review and sprint status.

Changes

Module 3 lesson and artifact refresh

Layer / File(s) Summary
Module 3 lesson and artifact refresh
content/course/tech-for-non-technical-founders-2026/how-this-course-works/index.md, module-3-walkthrough-mia/index.md, one-page-product-brief-vibe-prd/index.md, stop-specifying-features-start-outcomes/index.md, vibe-prd-template/index.md, quickstart/index.md
Module 3 framing, brief requirements, quality checks, no-go constraints, walkthrough content, template metadata, authentication examples, and completion guidance are revised.

Curriculum references and navigation alignment

Layer / File(s) Summary
Curriculum references and navigation alignment
content/course/tech-for-non-technical-founders-2026/_index.md, build-path-decision-worksheet/index.md, must-have-segment-pmf-test/index.md, should-you-hire-2026-decision-tree/index.md, *founder*.md, first-paying-customer-operating-kit/index.md, friday-demo-template/index.md
Chapter references, navigation labels, outreach targets, lesson sequencing, and course-positioning copy are aligned with the current curriculum.

Outbound guidance and volatile claim updates

Layer / File(s) Summary
Outbound guidance and volatile claim updates
content/course/tech-for-non-technical-founders-2026/channel-selection-before-outbound/index.md, outbound-without-sales-team/index.md, self-serve-mvp-stack-*/index.md, paid-pilot-charge-before-ship/index.md, first-ten-customers-outreach-message/index.md, vibe-coding-ceiling-signals/index.md
Pricing, credits, quotas, conversion rates, coverage percentages, and external-source references are generalized or updated across outbound and self-serve guidance.

Content quality and rendering controls

Layer / File(s) Summary
Content quality and rendering controls
data/course_banned_strings.yaml, content/course/tech-for-non-technical-founders-2026/github-aws-database-ownership-checklist/index.md, find-10-people-where-to-look/index.md
Banned-string coverage is expanded, a database-password subsection’s markdown structure is corrected, and troubleshooting wording is refined.

Curriculum review records

Layer / File(s) Summary
Curriculum review records
docs/projects/2605-tech-for-non-technical-founders/10-19-research/*, docs/projects/2605-tech-for-non-technical-founders/40-49-review/*, docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md
Research status, shipped validation-tool items, whole-course review results, completed fixes, deferred work, and Module 3 progress are documented.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: Module 3 v2 migration plus fixes from the whole-course validity review.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch module-3-design-from-evidence

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Paul Keen and others added 5 commits July 10, 2026 00:06
…, cohort-structure leftover

Scroll-through review at 1280x800 caught: 2-forks mermaid text clipped
in every node (labels shortened, now renders clean); vibe-prd SVG
subtitle + 3 example lines overflowed the notebook-card border
(user-reported); Maven table still said 'spends 2 of 4 weeks'.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Old cover carried the stale 'Curriculum 06/30' counter badge purged
from spine covers in May; since the file is now wired as og:image,
regenerated from the family template: 5-section panel, 90-minute chip,
Lovable/Cursor hand-to, Curriculum 2026 badge.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V
Boundary: walkthrough quality-check story made coherent (messaging was
already no-go; calendar sync now resolves; feature-noun pair maps to
her actual Section 3); credentials restored to profile canon; HTCW M3
time reads as calendar-vs-work; 4.1's '2.4 prototype' cite -> 2.6.
Quality: 3.2 rubric self-contradiction removed (fail = cut item OR 2+
outside no-go); 5-10 -> 5-8 no-go canon; 90-minute write budget aligned
in 3.1; sentence-level rewrite framing; SVG alt count claim dropped;
why-now added to Section 1 description.
ICP: magic-link/OAuth/CSV/Lovable/Cursor/MRR/SOW glossed at first
mention; NPS dropped; 3.2 callout stacks broken up (Skip-to-action +
cheap-fix + Optional now prose); Input line de-nested.
Voice: 'Most first-timers' cohort dodge fixed in all 4 Stuck boxes;
Sarah 17-toggle anecdote single-sourced to 3.1 (template cites it,
collision de-duped, currency unified to $); 'nothing left to invent'
tic varied; cross-page aphoristic closer reshaped; second 17 removed.
6 ratchet signatures added; 47-button entry documents 3.2 ownership.
8/8 validators green.

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

New canonical doc docs/workflows/visual-scroll-gate.md (protocol, per-
view defect checklist, numeric probes, reporting format), wired into
CLAUDE.md (visual verification section + workflow pointers), 30.03 §7
QA checklist, and 40.13 process rules. Grounded in the 2026-07-10 M3
pass: five rendered-output defect classes text validators cannot see.

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 14

Caution

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

⚠️ Outside diff range comments (1)
content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md (1)

135-141: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Fix the AI critic prompt/rubric mismatch.

The prompt asks for five things “NOT in Section 5's no-go list.” Any legitimate Section 3 requirement also satisfies that condition, so the critic is guaranteed to produce five apparent failures. Ask for additions that are neither required by Section 3 nor explicitly excluded by Section 5.

-Imagine you are a contractor reading this brief to build the product. Based ONLY on Section 3, name 5 things you would build that are NOT in Section 5's no-go list. Be specific - feature names, not categories.
+Imagine you are a contractor reading this brief to build the product. Based ONLY on Sections 3 and 5, name up to 5 concrete features or assumptions you would add that are neither explicitly required by Section 3 nor explicitly excluded by Section 5. Be specific - feature names, not categories.

Update the matching explanation in module-3-walkthrough-mia/index.md Line 35 so it uses the same definition.

🤖 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/stop-specifying-features-start-outcomes/index.md`
around lines 135 - 141, The AI critic prompt currently treats any item absent
from Section 5 as a failure, including legitimate Section 3 requirements. Update
the prompt and its surrounding explanation in
`stop-specifying-features-start-outcomes/index.md` to request additions that are
neither required by Section 3 nor explicitly excluded by Section 5, then update
the matching explanation in `module-3-walkthrough-mia/index.md` to use the
identical definition.
🤖 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/build-path-decision-worksheet/index.md`:
- Line 192: Update the Path 1 failure-mode threshold in the worksheet’s
failure-mode section to match the 30-name outreach target, changing “0 of 35
click” to “0 of 30 click”; alternatively, consistently restore the target in the
Path 1 row to 35.

In
`@content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.md`:
- Around line 83-85: Update the guidance around Section 3 and its companion
template, including the relevant example, to explicitly permit and require
stating authentication constraints when they affect the MVP. Remove the blanket
prohibition on authentication strategies while preserving the ban on unrelated
implementation details, and clarify that the brief should specify the chosen
authentication approach and any scope or storage constraints.
- Around line 38-40: Fix the blockquote in the introductory section by removing
the blank line between the “Progress” and “TL;DR” lines to satisfy MD028, and
change “one page Module 4 builds from” to “one-page Module 4 builds from.”

In
`@content/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/index.md`:
- Line 140: Update the “Apollo free-tier reality” guidance to remove the fixed
“Sales Navigator trial (free for 1 month)” claim; replace it with wording such
as “if a trial is available” and, if appropriate, direct readers to current
vendor terms.
- Line 212: Revise the funnel paragraph to avoid presenting reply, demo, and
paid-pilot counts as expected outcomes. Label the figures as an illustrative
example with non-guaranteed conversion rates, or replace the fixed counts with
instructions to measure actual results at each stage.
- Around line 95-97: Remove all fixed pricing promises and plan/fee claims
surrounding the tools table, including the “under $100/month” pipeline language
and adjacent row wording. Keep pricing guidance non-specific and direct readers
to verify current provider pricing, including for LinkedIn Sales Navigator,
Apollo.io, and Loom.

In
`@content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/index.md`:
- Line 108: Replace the fixed “roughly $10/year” domain estimate in the
deployment instruction and the “First ship” cost-table row with “check registrar
pricing,” preserving the existing registrar link and surrounding guidance.
- Line 85: Revise the no-code path guidance to warn against applying
AI-generated Supabase RLS policies without review. In the instructions
surrounding the Claude/ChatGPT audit prompt, require manual inspection of the
proposed SQL and a two-user test verifying that each user can only read and
write their own rows before applying it in Supabase.

In
`@content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/index.md`:
- Line 109: Qualify the cost and effort claims in the paragraph around
Supabase’s generated API and auth: describe replacing Auth0/Clerk spend and RLS
replacing contractor work as illustrative, workload-dependent examples rather
than typical outcomes, especially for production authorization and audit
requirements.
- Line 99: The Lovable pricing paragraph makes an unsupported claim about what
most paying-MVP founders choose. Replace that sentence with neutral, usage-based
guidance directing readers to select a tier based on build velocity, usage, and
current pricing, while keeping the pricing link and avoiding population-level
adoption claims.

In
`@content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md`:
- Around line 65-73: Update all remaining references to 35 prospects on this
page to 30, including the “Two paying buyers” sentence and the decision matrix
near the cited section, so every outreach example and failure criterion
consistently uses 30 prospects.
- Line 154: The Q1 validation criterion is inconsistent with the rest of the
decision tree because it permits a 5%+ Stripe-click. Update the Q1 definition in
the “problem validated?” section to use 6%+ as the canonical Stripe-click
threshold, matching the flowchart and self-serve gate.

In
`@content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md`:
- Around line 39-40: Remove the blank lines inside the blockquotes in the
completion callouts, including the additionally referenced section, or prefix
those lines with ">"; ensure each blockquote remains contiguous and passes
MD028.

In `@docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md`:
- Around line 308-310: Synchronize the tracker’s active-sprint status: update
the parent status near the “M2 is the active sprint” statement to identify
Module 3 as the current sprint, or explicitly label that M2 statement as
historical, while preserving the Module 3 status in the referenced progress
entry as the authoritative current state.

---

Outside diff comments:
In
`@content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md`:
- Around line 135-141: The AI critic prompt currently treats any item absent
from Section 5 as a failure, including legitimate Section 3 requirements. Update
the prompt and its surrounding explanation in
`stop-specifying-features-start-outcomes/index.md` to request additions that are
neither required by Section 3 nor explicitly excluded by Section 5, then update
the matching explanation in `module-3-walkthrough-mia/index.md` to use the
identical definition.
🪄 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: a9233077-9ae5-4086-904e-4c3164546afd

📥 Commits

Reviewing files that changed from the base of the PR and between 0e6a899 and e854b3d.

⛔ Files ignored due to path filters (4)
  • content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/vibe-prd-template-visual.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/pivot-ledger.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/airbnb-test.svg is excluded by !**/*.svg
  • content/course/tech-for-non-technical-founders-2026/vibe-prd-template/cover.png is excluded by !**/*.png
📒 Files selected for processing (30)
  • content/course/tech-for-non-technical-founders-2026/_index.md
  • content/course/tech-for-non-technical-founders-2026/build-path-decision-worksheet/index.md
  • content/course/tech-for-non-technical-founders-2026/channel-selection-before-outbound/index.md
  • content/course/tech-for-non-technical-founders-2026/engineering-org-chart-non-technical-founder/index.md
  • content/course/tech-for-non-technical-founders-2026/find-10-people-where-to-look/index.md
  • content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/index.md
  • content/course/tech-for-non-technical-founders-2026/first-ten-customers-outreach-message/index.md
  • content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/index.md
  • content/course/tech-for-non-technical-founders-2026/friday-demo-template/index.md
  • content/course/tech-for-non-technical-founders-2026/github-aws-database-ownership-checklist/index.md
  • content/course/tech-for-non-technical-founders-2026/how-this-course-works/index.md
  • content/course/tech-for-non-technical-founders-2026/module-3-walkthrough-mia/index.md
  • content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.md
  • content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.md
  • content/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/index.md
  • content/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/index.md
  • content/course/tech-for-non-technical-founders-2026/quickstart/index.md
  • content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/index.md
  • content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/index.md
  • content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md
  • content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md
  • content/course/tech-for-non-technical-founders-2026/three-questions-turn-standup-into-proof/index.md
  • content/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/index.md
  • content/course/tech-for-non-technical-founders-2026/vibe-prd-template/index.md
  • content/course/tech-for-non-technical-founders-2026/weekly-dev-report-template-founders/index.md
  • data/course_banned_strings.yaml
  • docs/projects/2605-tech-for-non-technical-founders/10-19-research/10.02-curriculum-sequence-synthesis.md
  • docs/projects/2605-tech-for-non-technical-founders/10-19-research/10.08-validation-tools-analysis-2026.md
  • docs/projects/2605-tech-for-non-technical-founders/40-49-review/40.15-whole-course-review-2026-07-10.md
  • docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md

| Path | Choose when | First action this week | Cost |
|---|---|---|---|
| **1. Validate without code** | Q1 = No, OR Q3 = less than 4 months | Ship Carrd page + Stripe checkout + Notion FAQ. Send to 35 ICP prospects. | $0 - $300 in tools + optional $100-200 in paid ads |
| **1. Validate without code** | Q1 = No, OR Q3 = less than 4 months | Ship Carrd page + Stripe checkout + Notion FAQ. Send to your 30-name outreach list. | $0 - $300 in tools + optional $100-200 in paid ads |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Keep the outreach count consistent with the Path 1 failure mode.

Path 1 now requires a 30-name outreach list, but the failure-mode text at Line 198 still says “0 of 35 click.” Update the downstream threshold to 30 or restore the path target to 35.

Proposed fix
-- Path 1 -> 0 of 35 click. Pivot the pitch or the problem.
+- Path 1 -> 0 of 30 click. Pivot the pitch or the problem.
🤖 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/build-path-decision-worksheet/index.md`
at line 192, Update the Path 1 failure-mode threshold in the worksheet’s
failure-mode section to match the 30-name outreach target, changing “0 of 35
click” to “0 of 30 click”; alternatively, consistently restore the target in the
Path 1 row to 35.

Comment on lines +38 to 40
> **Progress:** M3 · 1 of 2 · Results so far: a validated problem statement (2.5) + a prototype pass/fail with user vocabulary (2.6) - this page turns them into the one page Module 4 builds from

> **TL;DR:** One page, five sections. The problem (verbatim from interviews), the user's 60-second context, the one workflow, the one metric, and what you're NOT building. Hand it to Lovable or a contractor tomorrow morning.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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

Fix the blockquote formatting and hyphenation.

The blank line at Line 39 triggers MD028, and “one page Module 4 builds from” should be “one-page Module 4 builds from.”

-> **Progress:** M3 · 1 of 2 · Results so far: a validated problem statement (2.5) + a prototype pass/fail with user vocabulary (2.6) - this page turns them into the one page Module 4 builds from
-
+> **Progress:** M3 · 1 of 2 · Results so far: a validated problem statement (2.5) + a prototype pass/fail with user vocabulary (2.6) - this page turns them into the one-page brief Module 4 builds from
📝 Committable suggestion

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

Suggested change
> **Progress:** M3 · 1 of 2 · Results so far: a validated problem statement (2.5) + a prototype pass/fail with user vocabulary (2.6) - this page turns them into the one page Module 4 builds from
> **TL;DR:** One page, five sections. The problem (verbatim from interviews), the user's 60-second context, the one workflow, the one metric, and what you're NOT building. Hand it to Lovable or a contractor tomorrow morning.
> **Progress:** M3 · 1 of 2 · Results so far: a validated problem statement (2.5) + a prototype pass/fail with user vocabulary (2.6) - this page turns them into the one-page brief Module 4 builds from
> **TL;DR:** One page, five sections. The problem (verbatim from interviews), the user's 60-second context, the one workflow, the one metric, and what you're NOT building. Hand it to Lovable or a contractor tomorrow morning.
🧰 Tools
🪛 LanguageTool

[grammar] ~38-~38: Use a hyphen to join words.
Context: ...2.6) - this page turns them into the one page Module 4 builds from > TL;DR: ...

(QB_NEW_EN_HYPHEN)

🪛 markdownlint-cli2 (0.22.1)

[warning] 39-39: Blank line inside blockquote

(MD028, no-blanks-blockquote)

🤖 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/one-page-product-brief-vibe-prd/index.md`
around lines 38 - 40, Fix the blockquote in the introductory section by removing
the blank line between the “Progress” and “TL;DR” lines to satisfy MD028, and
change “one page Module 4 builds from” to “one-page Module 4 builds from.”

Source: Linters/SAST tools

Comment on lines 83 to +85
What goes in it: one paragraph that names the smallest end-to-end thing a user can do. Verb-led. Mentions the inputs the user provides and the output they get back. No feature list, no tech stack instructions, no mention of microservices or auth strategies.

Example: *A web app where the founder pastes a Stripe payout CSV and the app returns a QuickBooks-compatible journal entry CSV they can import in one click. The first version supports USD only, one Stripe account per user, and no multi-currency. The user authenticates with email + magic link. We never store the CSV after the conversion completes.*
Example: *A web app where the founder pastes a Stripe payout CSV (a plain spreadsheet-style file exported from Stripe) and the app returns a QuickBooks-compatible journal entry CSV they can import in one click. The first version supports USD only, one Stripe account per user, and no multi-currency. The user authenticates with email + magic link (they type their email and click a one-time sign-in link - no password to build or store). We never store the CSV after the conversion completes.*

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Allow explicit authentication constraints in Section 3.

Line 83 says not to mention authentication strategies, but this example and the companion template at Line 136 explicitly require an authentication choice. That contradiction can cause builders to invent security-sensitive defaults.

-What goes in it: one paragraph that names the smallest end-to-end thing a user can do. Verb-led. Mentions the inputs the user provides and the output they get back. No feature list, no tech stack instructions, no mention of microservices or auth strategies.
+What goes in it: one paragraph that names the smallest end-to-end thing a user can do. Verb-led. Mentions the inputs, output, and any load-bearing v1 constraints such as authentication, storage, and scope. No feature list or microservice instructions.
📝 Committable suggestion

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

Suggested change
What goes in it: one paragraph that names the smallest end-to-end thing a user can do. Verb-led. Mentions the inputs the user provides and the output they get back. No feature list, no tech stack instructions, no mention of microservices or auth strategies.
Example: *A web app where the founder pastes a Stripe payout CSV and the app returns a QuickBooks-compatible journal entry CSV they can import in one click. The first version supports USD only, one Stripe account per user, and no multi-currency. The user authenticates with email + magic link. We never store the CSV after the conversion completes.*
Example: *A web app where the founder pastes a Stripe payout CSV (a plain spreadsheet-style file exported from Stripe) and the app returns a QuickBooks-compatible journal entry CSV they can import in one click. The first version supports USD only, one Stripe account per user, and no multi-currency. The user authenticates with email + magic link (they type their email and click a one-time sign-in link - no password to build or store). We never store the CSV after the conversion completes.*
What goes in it: one paragraph that names the smallest end-to-end thing a user can do. Verb-led. Mentions the inputs, output, and any load-bearing v1 constraints such as authentication, storage, and scope. No feature list or microservice instructions.
Example: *A web app where the founder pastes a Stripe payout CSV (a plain spreadsheet-style file exported from Stripe) and the app returns a QuickBooks-compatible journal entry CSV they can import in one click. The first version supports USD only, one Stripe account per user, and no multi-currency. The user authenticates with email + magic link (they type their email and click a one-time sign-in link - no password to build or store). We never store the CSV after the conversion completes.*
🤖 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/one-page-product-brief-vibe-prd/index.md`
around lines 83 - 85, Update the guidance around Section 3 and its companion
template, including the relevant example, to explicitly permit and require
stating authentication constraints when they affect the MVP. Remove the blanket
prohibition on authentication strategies while preserving the ban on unrelated
implementation details, and clarify that the brief should specify the chosen
authentication approach and any scope or storage constraints.

Comment on lines +95 to +97
| LinkedIn Sales Navigator | Filter buyers by title, company size, funding signal, role tenure | Paid single-user plans - check LinkedIn pricing |
| Apollo.io (Starter / free tier) | Cheaper alternative to Sales Nav for B2B email + filters | Free tier available; paid plans for scale |
| Loom | 90s product walkthrough + you on camera | Free tier available |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Remove the remaining fixed pricing promises around this table.

The table now says to check current pricing, but the surrounding section still promises an “under $100/month” pipeline and retains fixed plan/fee claims in the adjacent rows. That leaves readers with conflicting volatile guidance.

🤖 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/outbound-without-sales-team/index.md`
around lines 95 - 97, Remove all fixed pricing promises and plan/fee claims
surrounding the tools table, including the “under $100/month” pipeline language
and adjacent row wording. Keep pricing guidance non-specific and direct readers
to verify current provider pricing, including for LinkedIn Sales Navigator,
Apollo.io, and Loom.

You should be left with 30-50 clean names. Hold the bottom 20 for a later batch and send the top 30 in the first batch.

> **Apollo free-tier reality.** Apollo's free tier is credit-based (~100 email credits + ~10 EXPORT credits per month). The "pull 100-150 raw rows" instruction is achievable on the free tier only if you spread it across 10+ months OR use LinkedIn DM for batch 1 and reserve Apollo exports for batch 2+. Recommended sequence for free-tier founders: (1) build batch 1 from your existing LinkedIn 1st-degree connections + Sales Navigator trial (free for 1 month, no Apollo needed); (2) start Apollo on month 2 with the credits dripping in over time; (3) upgrade to Apollo Pro ($49/mo) only when you have a working reply-rate signal that justifies the spend.
> **Apollo free-tier reality.** Apollo's free tier is credit-based (a small monthly allowance of email and export credits). The "pull 100-150 raw rows" instruction usually exceeds one month of free credits, so either spread it over time OR use LinkedIn DM for batch 1 and reserve Apollo exports for batch 2+. Recommended sequence for free-tier founders: (1) build batch 1 from your existing LinkedIn 1st-degree connections + Sales Navigator trial (free for 1 month, no Apollo needed); (2) start Apollo on month 2 with the credits dripping in over time; (3) upgrade to a paid Apollo tier only when you have a working reply-rate signal that justifies the spend.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Remove the fixed one-month Sales Navigator trial claim.

“Free for 1 month” is still a time-sensitive plan allowance, contrary to the generalized pricing guidance. Say “if a trial is available” or link readers to current vendor terms.

🤖 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/outbound-without-sales-team/index.md`
at line 140, Update the “Apollo free-tier reality” guidance to remove the fixed
“Sales Navigator trial (free for 1 month)” claim; replace it with wording such
as “if a trial is available” and, if appropriate, direct readers to current
vendor terms.

The free tier comfortably covers early-stage usage - [check Supabase's pricing page](https://supabase.com/pricing) for current limits. Most pre-seed founders never outgrow the first paid tier before they hit the architectural ceiling.

Supabase auto-generates a REST API and a JavaScript client on top of any table you create, which is what Lovable calls when it needs to read or write a row. [Supabase's 2026 pricing](https://supabase.com/pricing) lists the bands clearly. The auth product replaces 80% of what founders used to pay Auth0 or Clerk for; the row-level security policies replace what a contractor would have hand-coded over two weeks.
Supabase auto-generates a REST API and a JavaScript client on top of any table you create, which is what Lovable calls when it needs to read or write a row. [Supabase's 2026 pricing](https://supabase.com/pricing) lists the bands clearly. The auth product replaces most of what founders used to pay Auth0 or Clerk for; the row-level security policies replace what a contractor would have hand-coded over two weeks.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win

Qualify the auth-cost and implementation estimate.

The rewrite removes the old percentage but still claims Supabase replaces “most” Auth0/Clerk spend and that RLS replaces two weeks of contractor work. Those are highly workload-dependent, especially for production authorization and audit requirements; label them as illustrative rather than typical.

🤖 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-lovable-supabase-stripe-2026/index.md`
at line 109, Qualify the cost and effort claims in the paragraph around
Supabase’s generated API and auth: describe replacing Auth0/Clerk spend and RLS
replacing contractor work as illustrative, workload-dependent examples rather
than typical outcomes, especially for production authorization and audit
requirements.

Comment on lines +65 to +73
The 2026 version of the Airbnb test takes one afternoon: a Carrd page with a Stripe checkout for an annual plan, a Notion FAQ that explains exactly what the buyer gets, and the link sent to the 30 people from your [Find 10 People With the Problem](/course/tech-for-non-technical-founders-2026/find-10-people-with-problem-outreach-2026/) outreach list. The result you are watching for is in the next paragraph.

![A 3-step illustration of the Airbnb test: Carrd page with Stripe checkout (Step 1), send link to 35 ICP prospects (Step 2), refund non-buyers and build only what you sold (Step 3). A sticky note at the bottom warns: if 0 of 35 click, the problem is real but your pitch is wrong, rewrite the page.](airbnb-test.svg)
![A 3-step illustration of the Airbnb test: Carrd page with Stripe checkout (Step 1), send link to 30 ICP prospects (Step 2), refund non-buyers and build only what you sold (Step 3). A sticky note at the bottom warns: if 0 of 30 click, the problem is real but your pitch is wrong, rewrite the page.](airbnb-test.svg)

The signal you are looking for is small. Two paying buyers from 35 cold outreach hits is enough to flip the build switch.

We know a B2B SaaS founder who sold five annual contracts at $1,800 each via a Stripe link and a Notion doc before she wrote a line of code. By the time her contractor delivered the v1 web app eight weeks later, she had $9,000 in pre-revenue and a customer-feedback loop already running. The build was constrained by what she had already promised the five buyers, which is the cheapest scope-control mechanism that exists.

Zero clicks from 35 prospects is brutal in the other direction. The problem might be real (you validated it in [Decide What's Next](/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/)) but your pitch is wrong, your price is wrong, or the timing is wrong. Find out for $200 instead of $30,000.
Zero clicks from 30 prospects is brutal in the other direction. The problem might be real (you validated it in [Decide What's Next](/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/)) but your pitch is wrong, your price is wrong, or the timing is wrong. Find out for $200 instead of $30,000.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Align every outreach reference to 30 prospects.

The changed text and figure use 30 prospects, but Line 69 still says “35 cold outreach hits,” and the decision matrix at Line 87 also retains 35. This gives learners conflicting sample sizes and failure criteria.

Update the remaining 35-prospect references in this page to 30.

🤖 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/should-you-hire-2026-decision-tree/index.md`
around lines 65 - 73, Update all remaining references to 35 prospects on this
page to 30, including the “Two paying buyers” sentence and the decision matrix
near the cited section, so every outreach example and failure criterion
consistently uses 30 prospects.

| **Hire a team (Q2=Yes OR Q5=full team)** | Backend-heavy OR runway gives you 12+ months. Material monthly burn. Read the SOW first. | [SOW reading guide](/course/tech-for-non-technical-founders-2026/sow-reading-guide/) before signing anything |

**Q1 ("problem validated?")** counts as yes only if you have 10+ Mom Test interviews showing strong past-behavior signal, a smoke test that cleared the 6%+ "Promising" band (or a 5%+ Stripe-click), and a 2.4 prototype run with 4 of 5 testers reaching the right screen.
**Q1 ("problem validated?")** counts as yes only if you have 10+ Mom Test interviews showing strong past-behavior signal, a smoke test that cleared the 6%+ "Promising" band (or a 5%+ Stripe-click), and a Ch 2.6 prototype run with 4 of 5 testers reaching the right screen.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

file='content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md'

echo '--- lines 88-160 ---'
sed -n '88,160p' "$file" | cat -n

echo
echo '--- threshold mentions in file ---'
rg -n 'Promising|Stripe-click|6%|5%' "$file"

Repository: jetthoughts/jetthoughts.github.io

Length of output: 11400


🏁 Script executed:

#!/bin/bash
set -euo pipefail
file='content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md'
sed -n '90,160p' "$file" | cat -n
echo '---'
rg -n 'Promising|Stripe-click|6%|5%' "$file"

Repository: jetthoughts/jetthoughts.github.io

Length of output: 10867


Align the Q1 threshold across the decision tree.

This line allows a 5%+ Stripe-click, but the flowchart and self-serve gate only allow 6%+. Make 6%+ canonical here or add the Stripe-click exception everywhere else.

🤖 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/should-you-hire-2026-decision-tree/index.md`
at line 154, The Q1 validation criterion is inconsistent with the rest of the
decision tree because it permits a 5%+ Stripe-click. Update the Q1 definition in
the “problem validated?” section to use 6%+ as the canonical Stripe-click
threshold, matching the flowchart and self-serve gate.

Comment on lines 39 to 40

> **TL;DR:** Rewrite every feature noun as an outcome-shaped job story. "Build a CSV export" becomes "When I prepare the weekly report, I want to grab the top 5 metrics in 30 seconds." The engineer has nothing left to invent.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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

Remove blank lines inside blockquotes.

These blank lines trigger MD028 and can split the completion callouts during Markdown rendering. Remove the blank lines or prefix them with >.

Also applies to: 187-188

🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 39-39: Blank line inside blockquote

(MD028, no-blanks-blockquote)

🤖 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/stop-specifying-features-start-outcomes/index.md`
around lines 39 - 40, Remove the blank lines inside the blockquotes in the
completion callouts, including the additionally referenced section, or prefix
those lines with ">"; ensure each blockquote remains contiguous and passes
MD028.

Source: Linters/SAST tools

Comment thread docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md
@pftg
pftg merged commit 9212a78 into master Jul 10, 2026
3 checks passed
@pftg
pftg deleted the module-3-design-from-evidence branch July 10, 2026 04:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant