Tech for Non-Technical Founders 2026: Sprint 1 ships first 3 modules + course infra#339
Tech for Non-Technical Founders 2026: Sprint 1 ships first 3 modules + course infra#339pftg wants to merge 2 commits into
Conversation
… course infra Sprint 1 deliverables (3 chapters of the 26-post course): - Module 0.1 - Where Are You? + Self-Assessment Worksheet artifact - Module 1.1 - Find 10 People with the Problem (2026 outreach stack) + Outreach Sequence Template - Module 1.2 - The Mom Test + Mom Test Interview Script Course infrastructure: - Stub landing page at /blog/tech-for-non-technical-founders-2026/ (build-in-public mode) - 8 artifacts moved from docs/.../lead-magnets/ to public Hugo URLs at /blog/<slug>/ - Strategy + execution scaffolding under docs/projects/2605-tech-for-non-technical-founders/ Team-mode pipeline that ran: - Writer (general-purpose agent) -> mechanical gates -> voice critic + cold-eyes verifier (parallel where independent) -> editor revisions where needed -> ship - WIP=1 sequential discipline maintained across all 3 Sprint 1 chunks Doctrine in scope (memory feedbacks): - Pure lead magnet (zero JT service CTAs; authorship credit only) - Viral shareability (contrarian hook + tweetable insight + weekly tactic + artifact) - KISS - simplest method on main path; frameworks in Advanced sidebars only - Course-as-journey (input/output/checkpoint/artifact per module) - No length caps; cut test per section - >=3 handmade infographics per post (Mermaid + sketchy SVG mix) - Rails / Django / Laravel default tech stack; no React/Node/Java as lead Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
📝 WalkthroughWalkthroughThis PR establishes a comprehensive 26-post "Tech for Non-Technical Founders 2026" free course for non-technical founders, including research-backed curriculum design, production blog posts with lead-magnet artifacts, execution runbooks for writer dispatch and content review, and distribution playbooks. It also updates writing governance for voice-quality escalation. ChangesVoice Policy & Review Governance
Course Research, Strategy & Planning
16 Course Blog Posts & Landing Page
Execution Runbooks, Audits & Distribution
LinkedIn ICP Validation Series
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
✨ Finishing Touches🧪 Generate unit tests (beta)
|
There was a problem hiding this comment.
Actionable comments posted: 3
Note
Due to the large number of review comments, Critical 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 (4)
docs/projects/2605-tech-for-non-technical-founders/GOAL-AT-A-GLANCE.md (2)
1-128:⚠️ Potential issue | 🟠 Major | 🏗️ Heavy liftNew file path conflicts with docs creation policy
This introduces a new markdown file under
docs/projects/..., but new docs are
restricted todocs/workflows/. Please migrate this content into an existing
docs/projects/...file or move the new document underdocs/workflows/.As per coding guidelines
docs/**/*.md: “New docs allowed only under
docs/workflows/— else edit existing files”.🤖 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 `@docs/projects/2605-tech-for-non-technical-founders/GOAL-AT-A-GLANCE.md` around lines 1 - 128, This new GOAL-AT-A-GLANCE.md file for project 2605-tech-for-non-technical-founders violates the docs rule that new docs must live under docs/workflows/; either merge the content into an existing docs/projects/... file or move the entire document under docs/workflows/ (e.g., create a workflow doc containing the Goal At-A-Glance content), update any internal nav references (PROJECT-INDEX.md and any links listed under "NAVIGATION") to point to the new location, and commit with a message noting "move GOAL-AT-A-GLANCE.md to docs/workflows per docs policy" so the repo stays policy-compliant.
1-128:⚠️ Potential issue | 🟠 Major | 🏗️ Heavy liftMarkdown documentation rules need normalization
The file has multiple lines above 80 chars (e.g., Line 16, Line 20, Line 24,
Line 43, Line 71) and does not consistently use the required symbolic
documentation vocabulary. Please reflow and normalize per repo standards.As per coding guidelines
**/*.md: “Use symbolic vocabulary… Each line in
documentation: max 80 chars”.🤖 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 `@docs/projects/2605-tech-for-non-technical-founders/GOAL-AT-A-GLANCE.md` around lines 1 - 128, The doc violates repo markdown rules: many lines exceed 80 characters and the required symbolic documentation vocabulary isn't applied consistently. Reflow all paragraphs and long headings (e.g., "🎯 THE GOAL (30-second summary)", "JT positioning", the metric table rows, and long bullets) so every line is ≤80 chars, wrap long sentences into logical 80-char lines, and normalize symbolic vocabulary and callouts to match repo conventions (e.g., use the standard module callout style and filename-symbol tokens like feedback_curriculum_is_pure_lead_magnet.md, PROJECT-INDEX.md, TASK-TRACKER.md). Ensure lists, tables, and code/filename mentions follow the repo's Markdown style guide and run the repository's markdown linter/formatter before committing.docs/projects/2605-tech-for-non-technical-founders/20-29-strategy/20.01-course-modules.md (2)
1-246:⚠️ Potential issue | 🟠 Major | 🏗️ Heavy liftNew docs location violates docs policy
This adds a new file under
docs/projects/..., but repository policy only allows
new docs underdocs/workflows/. Please move this into an existing doc in
docs/projects/...(or relocate this new doc underdocs/workflows/).As per coding guidelines
docs/**/*.md: “New docs allowed only under
docs/workflows/— else edit existing files”.🤖 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 `@docs/projects/2605-tech-for-non-technical-founders/20-29-strategy/20.01-course-modules.md` around lines 1 - 246, The new markdown "Course Modules - Tech for Non-Technical Founders 2026" was added under docs/projects which violates the repo rule that new docs must live under docs/workflows; fix by moving the content into an allowed location: either (A) merge this content into an existing docs/projects file (edit an existing file rather than adding a new one) or (B) create the new doc under docs/workflows/ instead; update any references/TOC entries that point to the new doc so they use the new path and ensure the commit removes the original docs/projects/20-29-strategy/20.01-course-modules.md entry; use the document title "Course Modules - Tech for Non-Technical Founders 2026" and module headings (e.g., "Module 0 - Where Are You?", "Module 1 - Validate the Problem") to locate and place the content when merging.
1-246:⚠️ Potential issue | 🟠 Major | 🏗️ Heavy liftDocumentation format rules are not followed across this file
Multiple lines exceed 80 chars (for example Line 4, Line 16, Line 140, Line
237), and the required symbolic vocabulary style is not applied consistently.
Please wrap lines to ≤80 and normalize prose per the symbol vocabulary rule.As per coding guidelines
**/*.md: “Use symbolic vocabulary… Each line in
documentation: max 80 chars”.🤖 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 `@docs/projects/2605-tech-for-non-technical-founders/20-29-strategy/20.01-course-modules.md` around lines 1 - 246, The doc violates the repo markdown rules: many lines exceed 80 chars and the required "symbolic vocabulary" style isn't applied consistently; fix by reflowing all paragraphs, tables, and code blocks to ≤80 characters per line and normalizing terms to the project's symbolic vocabulary everywhere (e.g., headers and posts like "Module 0 - Where Are You?", "Module 1 - Validate the Problem", "Pure-lead-magnet positioning", and the "Viral-shareability requirements" section); ensure table cells in the 10-question routing chart wrap to 80 chars, long post lists (e.g., posts under Module 5 and Module 4B) are wrapped and use the canonical symbol names, and enforce consistent kebab/camel/symbol style used by the repo across all post slugs (like `1.1`, `4A.1`, `7.2`) so the document passes the `**/*.md` lint rule.
🟠 Major comments (27)
content/blog/salvage-vs-rebuild-decision-tree/index.md-25-25 (1)
25-25: 🛠️ Refactor suggestion | 🟠 Major | 🏗️ Heavy liftWrap markdown lines to 80 characters max.
This file has many lines over 80 chars (examples above), which violates the
repo markdown formatting rule.As per coding guidelines: “
**/*.md: Each line in documentation: max 80
characters”.Also applies to: 29-31, 35-37, 43-46, 73-75, 90-93, 104-106
🤖 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/blog/salvage-vs-rebuild-decision-tree/index.md` at line 25, Several lines in the markdown (for example the paragraph starting with "📋 Template companion to Module 6 of the [Tech for Non-Technical Founders 2026 course]..." and the other ranges called out) exceed the repo rule of 80 characters per line; reflow those paragraphs so each line is ≤80 chars, keeping links and inline markup intact and not breaking words or link syntax, and apply the same wrapping to the other long sections cited (lines 29-31, 35-37, 43-46, 73-75, 90-93, 104-106) to ensure all documentation lines conform to the “**/*.md: max 80 characters per line” guideline.content/blog/salvage-vs-rebuild-decision-tree/index.md-35-38 (1)
35-38:⚠️ Potential issue | 🟠 Major | 🏗️ Heavy liftAdd citations (or mark examples as illustrative) for factual/numeric claims.
Line 35-38, Line 86, and Line 100 present concrete numbers and outcome
claims without sources. For this repo’s blog rules, these need citations (or a
clear “illustrative/composite example” label).As per coding guidelines: “Zero tolerance for unsupported claims in content —
all assertions must have citations”.Also applies to: 86-86, 100-100
🤖 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/blog/salvage-vs-rebuild-decision-tree/index.md` around lines 35 - 38, The paragraph containing the concrete numeric claims ("$95K and fourteen months", "38,000 lines of Ruby on Rails", "0% test coverage", "three different consultants", "scored a 2 out of 6", "30-minute review" and the 30/60/90 rebuild plan) must either include verifiable citations supporting those figures or be explicitly marked as an "illustrative/composite example"; update the text in content/blog/salvage-vs-rebuild-decision-tree/index.md to add footnote links or source references for each concrete claim (or prepend/append a clear label like "Illustrative/composite example") and ensure the other numeric claims later in the article (the ones around the review and scoring) are handled the same way.content/blog/salvage-vs-rebuild-decision-tree/index.md-74-74 (1)
74-74:⚠️ Potential issue | 🟠 Major | ⚡ Quick winReplace relative markdown links with canonical blog slug paths.
Lines 74 and 109 use
./ownership-checklist.md, which resolves to a non-existent file in the parent directory. The target exists atcontent/blog/ownership-checklist/index.md. Hugo does not serve markdown files; use/blog/ownership-checklist/instead to match the format used elsewhere in this file (e.g.,/blog/dev-shop-red-flags-checklist/).Change:
- Line 74:
[GitHub / AWS / database checklist](./ownership-checklist.md)→[GitHub / AWS / database checklist](/blog/ownership-checklist/)- Line 109:
[ownership checklist](./ownership-checklist.md)→[ownership checklist](/blog/ownership-checklist/)🤖 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/blog/salvage-vs-rebuild-decision-tree/index.md` at line 74, Replace the two relative markdown links pointing to ./ownership-checklist.md in content/blog/salvage-vs-rebuild-decision-tree/index.md with the canonical Hugo blog slug /blog/ownership-checklist/; specifically update the link with text "[GitHub / AWS / database checklist]" (currently on the line with the “FREEZE and stabilize.” bullet) and the link with text "[ownership checklist]" (the later reference) so they point to /blog/ownership-checklist/ instead of ./ownership-checklist.md.content/blog/ownership-checklist/index.md-107-107 (1)
107-107:⚠️ Potential issue | 🟠 Major | ⚡ Quick winReplace the 14-day minimum claim with accurate ICANN policy details.
The statement "A domain transfer takes a minimum of 14 days under ICANN rules" is inaccurate. Per ICANN's Inter-Registrar Transfer Policy, the procedural timeframes are: the losing registrar has up to 5 calendar days to respond after registry notification, and the authorization must be sent to the domain holder within 24 hours. In practice, registrars report transfers complete within 6 days. The 60-day lock applies to eligibility (when you can transfer), not the transfer duration itself. Revise to reflect actual ICANN policy windows and practical timelines, and cite the ICANN source.
🤖 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/blog/ownership-checklist/index.md` at line 107, Replace the incorrect "A domain transfer takes a minimum of 14 days" sentence in content/blog/ownership-checklist/index.md with a concise paragraph that reflects ICANN's Inter-Registrar Transfer Policy: state that the losing registrar has up to 5 calendar days to respond after registry notification, that authorization must be sent to the registrant within 24 hours, note that transfers commonly complete in ~6 days in practice, and clarify the 60-day lock is an eligibility restriction (not a transfer duration); add a citation/link to the ICANN policy.docs/projects/2605-tech-for-non-technical-founders/10-19-research/10.03-2026-ecosystem-research-ru-source.md-1-220 (1)
1-220:⚠️ Potential issue | 🟠 MajorMove research document to
docs/workflows/to comply with documentation guidelines.The coding guidelines explicitly state: "New docs allowed only under
docs/workflows/— else edit existing files." This file is newly added (2026-05-12) and currently located underdocs/projects/2605-tech-for-non-technical-founders/10-19-research/, which violates the guideline. While the project structure exists and the learnings mention project-scoped research scaffolding, the documented guideline takes precedence. Either relocate this research document todocs/workflows/or update the guideline to formally allow project-specific research directories.🤖 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 `@docs/projects/2605-tech-for-non-technical-founders/10-19-research/10.03-2026-ecosystem-research-ru-source.md` around lines 1 - 220, This document titled "Комплексное исследование экосистемы 'Tech for Non-Technical Founders': Стратегии, ресурсы и определение самого эффективного образовательного курса на 2026 год" is a new research file added under a project-specific path which violates the rule "New docs allowed only under docs/workflows/"; fix by either moving this markdown (the file with the heading used in the diff / original filename "Курс для нетехнических основателей 2026.md") into the canonical docs/workflows/ directory and updating any internal links/references, or alternatively update the repository documentation guideline to explicitly permit project-scoped research directories and record that policy change in the docs (so future additions like this file are compliant).docs/projects/2605-tech-for-non-technical-founders/50-59-execution/mechanical-audit-checklist.md-1-1 (1)
1-1:⚠️ Potential issue | 🟠 Major | 🏗️ Heavy liftFile placement conflicts with docs creation policy.
This is a new docs file under
docs/projects/..., which is outside the allowed
location for newly created docs.As per coding guidelines,
docs/**/*.md: “New docs allowed only under
docs/workflows/— else edit existing files”.🤖 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 `@docs/projects/2605-tech-for-non-technical-founders/50-59-execution/mechanical-audit-checklist.md` at line 1, This new markdown file "Mechanical Audit Checklist" under docs/projects/2605-tech-for-non-technical-founders/50-59-execution/mechanical-audit-checklist.md violates the docs policy that new docs must be created only under docs/workflows; either move this file into docs/workflows (rename or relocate the file and update any links) or instead incorporate its content into an existing allowed docs file under docs/projects by editing that existing file (search for the related project or execution section and merge the "Mechanical Audit Checklist" content there), and ensure commit message and PR description note the chosen approach.content/blog/mom-test-ask-about-past-not-future/index.md-39-39 (1)
39-39:⚠️ Potential issue | 🟠 Major | ⚡ Quick winAdd citation or internal-source qualifier for the signup/churn numbers.
Line 39 asserts specific performance numbers but provides no source.
As per coding guidelines,
content/blog/**/*.md: “Zero tolerance for
unsupported claims in content — all 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/blog/mom-test-ask-about-past-not-future/index.md` at line 39, The sentence asserting "Three signups by Friday. Two churned in 14 days." is an unsupported quantitative claim; either add a citation (external source link or internal analytics report reference) immediately after the sentence as a footnote or in-line parenthetical, or change the text to a qualified/internal statement (e.g., "in our experience" or "according to our internal metrics") and add a brief internal source note; locate and update the sentence beginning "Three signups by Friday. Two churned in 14 days." in the post to include the citation/qualifier.content/blog/mom-test-interview-script/index.md-31-31 (1)
31-31:⚠️ Potential issue | 🟠 Major | ⚡ Quick winSupport the quantified case-study claim with a source note.
Line 31 gives exact interview/sign-up/churn numbers without citation context.
As per coding guidelines,
content/blog/**/*.md: “Zero tolerance for
unsupported claims in content — all 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/blog/mom-test-interview-script/index.md` at line 31, The paragraph starting "An ed-tech founder we picked up last quarter ran 11 customer interviews..." uses specific interview/sign-up/churn numbers without a citation; add a supporting source note or citation immediately after that sentence (or convert the exact figures to a clearly labeled anonymized/internal case study) pointing to the interview transcript source or internal report so the claim is verifiable. Ensure the citation follows the site's content citation pattern (a footnote or bracketed source link) and include an internal reference ID or author/date so editors can validate the original interview data.content/blog/five-tech-words-stop-nodding-at/index.md-4-5 (1)
4-5:⚠️ Potential issue | 🟠 Major | ⚡ Quick winFuture publish date likely prevents Sprint 1 “live now” behavior.
Line 4 is set to July 1, 2026 while the Sprint 1 launch target is current-cycle.
Please align date/draft with intended go-live timing.🤖 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/blog/five-tech-words-stop-nodding-at/index.md` around lines 4 - 5, The frontmatter for this post currently sets date: 2026-07-01 and draft: false which prevents it from going live now; update the frontmatter fields in content/blog/five-tech-words-stop-nodding-at/index.md—either set date to today’s date and keep draft: false to publish immediately, or keep date as-is and set draft: true to keep it unpublished—make the change to the date and/or draft fields accordingly.CLAUDE.md-105-105 (1)
105-105:⚠️ Potential issue | 🟠 Major | ⚡ Quick winWrap Line 105 to satisfy markdown line-length policy.
Line 105 is over the allowed width for markdown documentation lines.
As per coding guidelines,
**/*.md: “Each line in documentation: max 80
characters”.🤖 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 `@CLAUDE.md` at line 105, The markdown line starting with "**Mandatory self-critique on voice-sensitive content (BLOCKING)**: For any draft or revision..." exceeds the 80-character line-length rule; wrap that long bolded rule into multiple lines so no line exceeds 80 characters (preserve the bold markup and the exact wording/ordering, e.g., break after clauses like "(BLOCKING):" and before "When failing..." or similar), keeping the same content and punctuation; update the single long line (the one beginning with "**Mandatory self-critique on voice-sensitive content (BLOCKING)**") in CLAUDE.md so each resulting line is ≤80 characters.content/blog/friday-demo-template/index.md-4-5 (1)
4-5:⚠️ Potential issue | 🟠 Major | ⚡ Quick winPublish date conflicts with “live after merge” objective.
Line 4 sets
2026-05-13while this PR is targeting live rollout on May 12, 2026.
Withdraft: false, this can miss immediate publication timing.🤖 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/blog/friday-demo-template/index.md` around lines 4 - 5, The frontmatter date (date: 2026-05-13) conflicts with the intended live rollout on May 12 while draft is false; update the date field to 2026-05-12 so the post publishes immediately on merge (or if you intend to hold it, set draft: true and keep the future date). Edit the frontmatter fields "date" and "draft" in the post (e.g., the date: and draft: entries in index.md) to reflect the desired publish behavior.docs/projects/2605-tech-for-non-technical-founders/50-59-execution/distribution-prep.md-1-1 (1)
1-1:⚠️ Potential issue | 🟠 Major | 🏗️ Heavy liftNew docs file location violates docs-path policy.
This file is newly added under
docs/projects/..., but policy allows new docs
only underdocs/workflows/.As per coding guidelines,
docs/**/*.md: “New docs allowed only under
docs/workflows/— else edit existing files”.🤖 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 `@docs/projects/2605-tech-for-non-technical-founders/50-59-execution/distribution-prep.md` at line 1, New docs file "distribution-prep.md" was added under the projects docs tree, which violates the rule that new documentation must be created only under docs/workflows; either relocate this new file into the docs/workflows area or merge its content into the appropriate existing workflows Markdown file. Update any internal references or TOC entries that point to "distribution-prep.md" so they reflect the new location/name and ensure the commit removes the duplicate/new file from the projects branch to comply with the docs-path policy.content/blog/friday-demo-template/index.md-35-35 (1)
35-35:⚠️ Potential issue | 🟠 Major | ⚡ Quick winAdd citation (or explicitly label as internal case data) for the $62K claim.
Line 35 asserts a specific timeline/cost incident without a source marker.
As per coding guidelines,
content/blog/**/*.md: “Zero tolerance for
unsupported claims in content — all 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/blog/friday-demo-template/index.md` at line 35, The sentence containing "four months and $62K into a six-week MVP" must either include a verifiable citation or be explicitly labeled as internal case data; edit the sentence text (the line containing "$62K") and either add a markdown citation/footnote pointing to the source (e.g., [^1] with a footnote or an inline URL) or append a clear parenthetical like "(internal case data)" and add a brief footnote explaining that it is proprietary/internal; ensure the chosen marker appears next to the "$62K" claim so the doc complies with the content/blog/**/*.md citation rule.content/blog/mom-test-ask-about-past-not-future/index.md-4-5 (1)
4-5:⚠️ Potential issue | 🟠 Major | ⚡ Quick winPublish date is too far ahead for current launch intent.
Line 4 is set to July 15, 2026; if this PR is intended to ship live content now,
date/draft should reflect that.🤖 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/blog/mom-test-ask-about-past-not-future/index.md` around lines 4 - 5, The frontmatter has a future publish date ("date: 2026-07-15") and draft:false which prevents immediate publish; update the frontmatter fields in content/blog/mom-test-ask-about-past-not-future/index.md by either changing "date" to today's date (or removing the future date) and keeping "draft: false" for immediate publish, or set "draft: true" if you intend to keep this unpublished—modify the "date" and "draft" keys in the file accordingly.content/blog/mom-test-interview-script/index.md-4-5 (1)
4-5:⚠️ Potential issue | 🟠 Major | ⚡ Quick winScheduled date is out of current sprint window.
Line 4 is July 15, 2026 while Sprint 1 is being shipped now; this risks the post
not being immediately live as planned.🤖 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/blog/mom-test-interview-script/index.md` around lines 4 - 5, The frontmatter date is set to "date: 2026-07-15" which is outside the current Sprint 1 window; update the frontmatter (the date field) to a publish date within the current Sprint 1 window or mark the post as draft by setting "draft: true" so it won't go live prematurely; locate the frontmatter lines containing "date: 2026-07-15" and "draft: false" in the post and change the date value to an in-sprint date or flip draft to true as appropriate.content/blog/five-tech-words-stop-nodding-at/index.md-33-33 (1)
33-33:⚠️ Potential issue | 🟠 Major | ⚡ Quick winCite or qualify the $51K/14-month anecdote.
Line 33 contains precise factual claims but no citation or internal-source label.
As per coding guidelines,
content/blog/**/*.md: “Zero tolerance for
unsupported claims in content — all 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/blog/five-tech-words-stop-nodding-at/index.md` at line 33, The sentence "Refactoring had cost her $51K and a year of runway." in the post must be supported or softened: either add a citation pointing to an internal case study or source that documents the $51K/14-month figure (include a footnote or parenthetical with the source), or change the claim to a qualified statement (e.g., "cost her an estimated $51K and about a year of runway" or "cost her an estimated five-figure sum and roughly a year of runway") and remove the exact dollar figure; update the sentence in content/blog/five-tech-words-stop-nodding-at/index.md accordingly and ensure the Markdown footnote or parenthetical follows the project's citation style.docs/workflows/linkedin-post-pipeline.md-363-363 (1)
363-363:⚠️ Potential issue | 🟠 Major | ⚡ Quick winWrap Line 363 to respect the 80-char markdown limit.
Line 363 exceeds the max line width rule for markdown files.
As per coding guidelines,
**/*.md: “Each line in documentation: max 80
characters”.🤖 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 `@docs/workflows/linkedin-post-pipeline.md` at line 363, The markdown line beginning with "- [ ] If the user flags the same draft as "AI", "sales-y", "fluffy", or "not human" a SECOND time, spawn multi-critic review (Editing methodology §3) BEFORE iterating again. Solo revision past the second user pushback consistently misses pattern-level tells (cinematic beat-marking, omniscient framing, copywriter shape) that single-pass review keeps missing — observed on the 2026-05-11 Monday Jira-not-progress post, which needed 5 solo passes after the AI rubric scored 0/10." exceeds 80 chars; wrap it into multiple lines under the 80-char limit by breaking at natural clause boundaries and after commas, preserving the leading list marker "- [ ]" and markdown punctuation, e.g., split the sentence into two or three continued lines with the same list item (indented subsequent lines by two spaces), and ensure no line is longer than 80 characters while keeping the original wording and parentheses intact.docs/projects/2605-tech-for-non-technical-founders/50-59-execution/sprint-1/cover-image-specs.md-1-1 (1)
1-1:⚠️ Potential issue | 🟠 Major | 🏗️ Heavy liftNew docs location violates repository policy.
This is a newly added docs file outside
docs/workflows/, which conflicts with
the current docs placement rule.As per coding guidelines: “docs/**/*.md: New docs allowed only under
docs/workflows/— else edit existing files.”🤖 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 `@docs/projects/2605-tech-for-non-technical-founders/50-59-execution/sprint-1/cover-image-specs.md` at line 1, The new file "docs/projects/2605-tech-for-non-technical-founders/50-59-execution/sprint-1/cover-image-specs.md" (titled "Sprint 1 Cover Image Specs") violates the repo rule that new docs must live under docs/workflows/; either move this file into an appropriate subfolder under docs/workflows/ or incorporate its contents into an existing markdown file under docs/workflows/ and delete this new file. Update any internal links or TOC entries that referenced the original path and ensure the commit message notes the migration.content/blog/self-assessment-worksheet/index.md-32-33 (1)
32-33:⚠️ Potential issue | 🟠 Major | ⚡ Quick winAdd citations for specific story + metric claims.
The line includes named scenario classes plus a dollar figure but no source
anchor. This needs a citation trail or a softened/non-quantified rewrite.As per coding guidelines: “Zero tolerance for unsupported claims in content —
all 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/blog/self-assessment-worksheet/index.md` around lines 32 - 33, The paragraph claiming "Three founders we picked up in Q2 2026..." with scenario labels and the "$29K of monthly burn" lacks a source; either add inline citations or a footnote linking to verifiable evidence (e.g., internal case notes, anonymized invoice/contract, or an aggregate metrics report) for the specific stories and the $29K figure, or soften/remove the quantified claim (e.g., "tens of thousands in combined monthly burn" or "a significant monthly burn") and mark the vignettes as illustrative rather than asserted facts; update the sentence in index.md accordingly so the named scenarios and dollar amount are either cited or rewritten to be non-quantified and clearly anecdotal.content/blog/agency-ai-five-questions/index.md-33-35 (1)
33-35:⚠️ Potential issue | 🟠 Major | ⚡ Quick winCitations are missing for several factual claims.
Anecdotal and generalized assertions in these lines are presented as fact but
not sourced. Keep the narrative, but add explicit citation links for each
non-obvious claim.As per coding guidelines: “Zero tolerance for unsupported claims in content —
all assertions must have citations.”Also applies to: 63-64, 83-84
🤖 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/blog/agency-ai-five-questions/index.md` around lines 33 - 35, The paragraphs containing the anecdote beginning "A founder we picked up in Q1 2026..." and the sentence "Most agencies in 2026 are not malicious about AI..." (and the other claim locations noted at lines 63-64 and 83-84) make factual assertions without sources; add inline citation links or footnotes to reputable sources for each non-obvious claim (e.g., security incidents involving leaked API keys, average OpenAI billing examples, industry adoption stats, or a primary interview/source for the founder anecdote) and, if the anecdote is proprietary, mark it clearly as an attributed anecdote or anonymize with a source note; ensure each edited sentence includes a citation anchor (URL or footnote) matching the claim.content/blog/course-map-self-assessment-non-technical-founder-2026/index.md-33-33 (1)
33-33:⚠️ Potential issue | 🟠 Major | ⚡ Quick winQuantified opener needs a source.
Line 33 includes a concrete burn-rate claim and cohort statement without a
citation. Please attach a source note or remove the quantified assertion.As per coding guidelines: “Zero tolerance for unsupported claims in content —
all 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/blog/course-map-self-assessment-non-technical-founder-2026/index.md` at line 33, The sentence in the paragraph that reads "Three founders we picked up recently... $29K of combined monthly burn" contains an unsupported quantified claim; either add a verifiable citation (a source note or footnote) directly after "$29K of combined monthly burn" or remove/qualify the numeric assertion and cohort wording. Update the paragraph in content/blog/course-map-self-assessment-non-technical-founder-2026/index.md (the block beginning "Three founders we picked up recently...") to include the citation text or to rephrase to a non-quantified statement and ensure the updated line adheres to the guideline banning unsupported claims.content/blog/tech-for-non-technical-founders-2026/index.md-145-147 (1)
145-147:⚠️ Potential issue | 🟠 Major | ⚡ Quick winTrim service-marketing language to match course doctrine.
“Rails-first dev shop… rescued… 20 years” and “next rescue client” reads as a
service pitch. Doctrine for this course says authorship credit only.🤖 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/blog/tech-for-non-technical-founders-2026/index.md` around lines 145 - 147, The two sentences containing promotional language ("Rails-first dev shop… rescued… 20 years" and "reduce your odds of being our next rescue client") should be replaced with a neutral authorship line that only credits authorship; remove service-sales phrases and any mention of rescuing clients or years of service, and keep a succinct credit such as "Built by JetThoughts" or "Authored by JetThoughts" and an optional single sentence that clarifies the course does not sell services (e.g., "This course does not sell JetThoughts services; authorship only").content/blog/tech-for-non-technical-founders-2026/index.md-79-79 (1)
79-79:⚠️ Potential issue | 🟠 Major | ⚡ Quick winLive-post count is inconsistent with the module table.
Line 79 says “6 of 26 posts live,” but the module rows shown sum to 7 live
posts (1+2+1+1+2). Please fix one side.🤖 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/blog/tech-for-non-technical-founders-2026/index.md` at line 79, The "Status (2026-07-15): 6 of 26 posts live" line is inconsistent with the module table which sums to 7 live posts (the module rows showing 1+2+1+1+2). Either update the status line to "7 of 26 posts live" or correct the module row counts so they sum to 6; locate the literal "Status (2026-07-15): 6 of 26 posts live" and the module table rows in content/blog/tech-for-non-technical-founders-2026/index.md and make the counts consistent.content/blog/reading-sow-clause-by-clause/index.md-33-39 (1)
33-39:⚠️ Potential issue | 🟠 Major | ⚡ Quick winAdd citations for narrative claims and quantified assertions.
Line 33 and Line 63-66 include specific monetary and runway claims without a
source trail; policy here is citation-required for assertions.As per coding guidelines: “Zero tolerance for unsupported claims in content —
all assertions must have citations.”Also applies to: 63-66
🤖 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/blog/reading-sow-clause-by-clause/index.md` around lines 33 - 39, The paragraph quoting "Vendor shall be deemed to have delivered a milestone upon deployment to the Client-accessible staging environment." and the numeric claim about "a SaaS founder ... had $78K of milestone invoices" (and the assertions in lines 63–66) need verifiable citations; update the markdown around that quoted sentence and the $78K/runway claims by adding inline citations or footnotes linking to primary sources (e.g., anonymized client billing records or an internal case study, a signed SOW extract, or a public article/post that documents the incident) and/or reputable industry reports that support the quantified assertions; ensure each specific numerical or factual claim has a corresponding citation marker and a bibliographic entry or link in the references section so readers can verify the claims.content/blog/three-questions-turn-standup-into-proof/index.md-31-31 (1)
31-31:⚠️ Potential issue | 🟠 Major | ⚡ Quick winEvidence claims need citations.
These lines contain specific counts and quantified rescue patterns without
source references. Add citations or restate as opinion/experience without hard
numbers.As per coding guidelines: “Zero tolerance for unsupported claims in content —
all assertions must have citations.”Also applies to: 45-45, 61-61
🤖 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/blog/three-questions-turn-standup-into-proof/index.md` at line 31, The paragraph containing the quoted example ("Yesterday I worked on the order flow...") plus the numeric claims (“$25K/month project for nine weeks”, “47 standups in”, and the other quantified lines flagged) makes specific evidence claims without citations; either add reliable citations that support those exact figures or reword the sentences to present them as anecdote/opinion (e.g., “in our experience” or “we observed”) and remove hard numbers. Locate and update the exact text snippets in index.md (the quoted sentence and the nearby numeric claims) and the other flagged instances noted in the review by replacing hard counts with cited sources or non-quantified language.content/blog/find-10-people-with-problem-outreach-2026/index.md-33-39 (1)
33-39:⚠️ Potential issue | 🟠 Major | 🏗️ Heavy liftAdd citations for quantitative/market claims
Several numeric and performance claims are presented as facts (reply rates, cost
ranges, timelines, outcomes) without citations. This is a hard compliance miss
for this content path and weakens trust.As per coding guidelines, "content/blog/**/*.md: Zero tolerance for unsupported claims in content - all assertions must have citations."
Also applies to: 65-69, 79-80, 116-117, 124-125, 136-141, 185-186
🤖 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/blog/find-10-people-with-problem-outreach-2026/index.md` around lines 33 - 39, The post contains numeric and outcome claims (e.g., "12 calls booked by Thursday afternoon", the "2026 outreach stack costs $200 to $500", the Y Combinator manifesto quote, and other reply-rate/cost/timeline assertions referenced under the "Why this matters in 2026" section and nearby paragraphs) that need supporting citations; add credible sources (benchmarks, studies, User Interviews receipts, Reddit/Apollo/Smartlead case data, or internal experiment writeups) inline as footnote-style links or parenthetical citations for each claim noted (including the image caption/outreach funnel claim), and append a References section or add inline links for the other flagged ranges (lines 65-69, 79-80, 116-117, 124-125, 136-141, 185-186) so every quantitative assertion has a verifiable citation. Ensure the quote attributed to Y Combinator includes a proper citation or removal if unverifiable.content/blog/find-10-people-with-problem-outreach-2026/index.md-4-5 (1)
4-5:⚠️ Potential issue | 🟠 Major | ⚡ Quick winFuture publish date conflicts with “live now” rollout
Line 4 sets
date: 2026-07-08, which is in the future relative to this PR window.
With typical Hugo settings, that can keep the post out of production even with
draft: false. If this module must be live on merge, use today/past date.Suggested fix
-date: 2026-07-08 +date: 2026-05-12🤖 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/blog/find-10-people-with-problem-outreach-2026/index.md` around lines 4 - 5, The frontmatter sets a future publish date ("date: 2026-07-08") which may prevent the post from going live despite "draft: false"; update the frontmatter "date" value to today's or a past date (keep "draft: false") so the Hugo build treats the post as publishable on merge, ensuring the "date" field is not in the future relative to the deployment.
🟡 Minor comments (11)
content/blog/salvage-vs-rebuild-decision-tree/index.md-25-25 (1)
25-25:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winReplace em dashes with hyphens in blog copy.
Line 25 and Line 112 use
—; project rule requires-.Proposed patch
-📋 Template companion to Module 6 of the [Tech for Non-Technical Founders 2026 course](/blog/tech-for-non-technical-founders-2026/). Run alone Friday afternoon. Send the score to one independent reviewer for a paid 30-minute call. +📋 Template companion to Module 6 of the [Tech for Non-Technical Founders 2026 course](/blog/tech-for-non-technical-founders-2026/). Run alone Friday afternoon. Send the score to one independent reviewer for a paid 30-minute call. -Built by JetThoughts as part of the free Tech for Non-Technical Founders 2026 curriculum. See the full curriculum at [/blog/tech-for-non-technical-founders-2026/](/blog/tech-for-non-technical-founders-2026/). +Built by JetThoughts as part of the free Tech for Non-Technical Founders 2026 curriculum. See the full curriculum at [/blog/tech-for-non-technical-founders-2026/](/blog/tech-for-non-technical-founders-2026/).As per coding guidelines: “Zero tolerance AI language patterns in blog posts …
and use-not—for all dashes”.Also applies to: 112-112
🤖 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/blog/salvage-vs-rebuild-decision-tree/index.md` at line 25, The blog copy contains em dashes (—) in the sentence starting "Template companion to Module 6 of the [Tech for Non-Technical Founders 2026 course]..." and again at the occurrence around line 112; replace each em dash character with a plain hyphen (-) to comply with the project rule; open the file content/blog/salvage-vs-rebuild-decision-tree/index.md, search for the snippet "Template companion to Module 6..." and the text near the other reported occurrence, and replace any Unicode em dash (—) with the ASCII hyphen (-), then save and run a quick grep/preview to confirm no remaining em dashes.content/blog/ownership-checklist/index.md-35-35 (1)
35-35:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winUse a different case study in this post — the fintech founder story already anchors the sibling post
founders-guide-hiring-dev-shop.Per the blog clustering guidelines, each post in a topic cluster must own a distinct proof signal. The B2B fintech founder case (4,200 users, $180K, 3-week recovery) currently anchors both this post and the sibling post. Pick a different incident for this post to distribute proof signals across the cluster.
🤖 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/blog/ownership-checklist/index.md` at line 35, The paragraph beginning "A B2B fintech founder we picked up in Q1 2026..." in index.md duplicates the case study used by the sibling post founders-guide-hiring-dev-shop; replace that fintech case study with a different, unique incident (different sector, user count, dollar figures and outcome) so this post has its own distinct proof signal, and update any internal references or anchors in the same file that mention the fintech story to avoid cross-post duplication.docs/projects/2605-tech-for-non-technical-founders/50-59-execution/distribution-prep.md-96-96 (1)
96-96:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd language identifiers to fenced code blocks.
Lines 96, 113, and 123 should use fenced languages (e.g.,
text ormd) to
satisfy markdown lint and improve tooling behavior.Also applies to: 113-113, 123-123
🤖 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 `@docs/projects/2605-tech-for-non-technical-founders/50-59-execution/distribution-prep.md` at line 96, Replace the three fenced code blocks that currently use bare triple backticks (search for standalone "```" occurrences in the document) with language-tagged fences (for example ```md or ```text) so each code block has an explicit language identifier to satisfy markdown lint and improve tooling; update the fences at the three existing empty/backtick-only blocks to use an appropriate language tag consistent with the block content.content/blog/three-questions-turn-standup-into-proof/index.md-81-81 (1)
81-81:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winFriday Demo companion link appears mis-targeted.
The copy references a dedicated Friday Demo companion/template but links to
/blog/dev-shop-red-flags-checklist/. This likely routes users to the wrong
asset.As per coding guidelines: “when writing a blog post and looking for internal
links, always use claude-context search first; never guess slugs.”Also applies to: 84-84
🤖 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/blog/three-questions-turn-standup-into-proof/index.md` at line 81, The internal link in the paragraph referencing the Friday demo currently points to the wrong slug `/blog/dev-shop-red-flags-checklist/`; use claude-context search to find the correct Friday Demo companion/template slug and replace the URL in the markdown text (the inline link that reads "Friday demo") as well as the other occurrence noted around the same para (referring lines ~81–84), ensuring the anchor text stays the same but the href is the correct internal slug.content/blog/reading-sow-clause-by-clause/index.md-43-43 (1)
43-43:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winFix the companion guide slug mismatch.
Line 43 and Line 77 label the link as “SOW Reading Guide” but point to
/blog/dev-shop-red-flags-checklist/. This likely breaks navigation and
conflicts with the course artifact naming.Suggested fix
-The full annotated SOW with sample language, flags, and rewrite text lives in the [SOW Reading Guide](/blog/dev-shop-red-flags-checklist/) (the lead magnet companion to this post). +The full annotated SOW with sample language, flags, and rewrite text lives in the [SOW Reading Guide](/blog/sow-reading-guide/) (the lead magnet companion to this post). ... -The companion [SOW Reading Guide](/blog/dev-shop-red-flags-checklist/) holds the full annotated sample SOW with rewrite language for every clause. +The companion [SOW Reading Guide](/blog/sow-reading-guide/) holds the full annotated sample SOW with rewrite language for every clause.As per coding guidelines: “when writing a blog post and looking for
internal links, always use claude-context search first; never guess slugs.”Also applies to: 77-77, 83-83
🤖 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/blog/reading-sow-clause-by-clause/index.md` at line 43, Find the markdown links with anchor text "SOW Reading Guide" in content/blog/reading-sow-clause-by-clause/index.md (there are three occurrences) and replace the incorrect href "/blog/dev-shop-red-flags-checklist/" with the correct companion-guide slug discovered via claude-context search; keep the link text the same, update all occurrences, and verify the new slug resolves to the intended internal page.linkedin-posts/icp-validation/week1-tue-staging-question.md-54-54 (1)
54-54:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winHashtag line is parsed as a heading (MD018).
Line 54 triggers markdownlint because it’s ATX heading syntax. Escape hashtags
(or wrap this line in a non-heading-safe format) so lint passes.Suggested fix
-#founders `#startups` `#leadership` +\#founders \#startups \#leadership🤖 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 `@linkedin-posts/icp-validation/week1-tue-staging-question.md` at line 54, The line "#founders `#startups` `#leadership`" is being parsed as an ATX heading (MD018); to fix it, escape the hashes or wrap the whole token in a non-heading-safe format so lint stops treating it as a heading — e.g., change the line to "\#founders \#startups \#leadership" or to an inline code span "`#founders `#startups` `#leadership``" so the hashtags remain visible but are no longer treated as a heading.docs/projects/2605-tech-for-non-technical-founders/PROJECT-INDEX.md-78-78 (1)
78-78:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winFuture date reference in documentation.
Line 78 references "moved 2026-07-15" but the current PR date is 2026-05-12 according to the PR objectives and task tracker. This appears to be either:
- Aspirational/planned date documentation written in advance, or
- A date error
If this is planned future work, consider marking it clearly as "(planned)" or "(target date)". If it's an error, correct to the actual date or remove the date reference.
🤖 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 `@docs/projects/2605-tech-for-non-technical-founders/PROJECT-INDEX.md` at line 78, Update the ambiguous future date mention "moved 2026-07-15" in PROJECT-INDEX.md: if this is planned work, change the text to explicitly label it as "(planned)" or "(target date: 2026-07-15)" next to that phrase; otherwise correct it to the actual migration date or remove the date entirely. Locate the string "moved 2026-07-15" in the PROJECT-INDEX.md entry that lists the moved artifacts and update it accordingly so the intent is unambiguous.content/blog/outreach-sequence-template/index.md-182-186 (1)
182-186:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winConsider qualifying the £100-£200 paid traffic budget and 5% signup threshold.
Lines 182 and 184 make specific claims:
- "Drive £100 to £200 of paid traffic"
- "5%+ email signup rate" as the success threshold
These numbers lack context on:
- What 200-500 visitors costs varies wildly by industry/keyword competitiveness
- The 5% benchmark—is this from internal JT data, industry research, or a rule of thumb?
Consider adding one sentence citing where these thresholds come from or acknowledging they vary by market.
As per coding guidelines: Zero tolerance for unsupported claims in content—all 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/blog/outreach-sequence-template/index.md` around lines 182 - 186, The claims "Drive £100 to £200 of paid traffic" and "5%+ email signup rate" need context or citation; update the paragraph to either (a) add a brief citation/source for these benchmarks (e.g., internal JT data or an industry study) or (b) append one sentence qualifying that costs and conversion benchmarks vary by industry/keyword competitiveness and are rule-of-thumb estimates. Reference the exact phrases "Drive £100 to £200 of paid traffic" and "5%+ email signup rate" when making the change so the reader sees the citation/qualifier adjacent to those claims.content/blog/outreach-sequence-template/index.md-63-77 (1)
63-77:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winUpdate pricing and add trade-off guidance for tool selection.
Clay pricing is incorrect: there's no "Starter" tier. Current tiers are Free, Launch ($185/mo), Growth ($495/mo), and Enterprise (custom). Apollo's range doesn't match current tiers either: Basic is $49/user/month, Professional is $79/user/month, with custom enterprise above that. Update both to reflect current 2026 pricing.
Additionally, the six filter dimensions lack trade-off acknowledgment. The guidance doesn't address: what to do if you can't filter on all dimensions simultaneously, when Apollo's database is sufficient despite fewer enrichment sources, or when Clay's cost isn't justified by marginal data quality. Add brief guidance on these trade-offs to help founders make context-specific choices.
🤖 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/blog/outreach-sequence-template/index.md` around lines 63 - 77, Update the Clay and Apollo pricing rows in the table to reflect 2026 tiers (replace "Clay (clay.com) | ~$149/mo Starter" with the current tiers/free and correct monthly amounts such as "Free, Launch ($185/mo), Growth ($495/mo), Enterprise (custom)" and update "Apollo (apollo.io) | $49-$149/mo" to the accurate per-user tiers like "Basic $49/user/mo, Professional $79/user/mo, Enterprise (custom)"), and append a short trade-off note immediately after the "Filter on six dimensions" list explaining how to prioritize dimensions when you can’t filter on all six, when Apollo’s dataset is sufficient despite fewer enrichment sources, and when Clay’s higher cost isn’t justified by marginal data quality so founders can choose by sample size needs, budget, and required enrichment depth.docs/projects/2605-tech-for-non-technical-founders/20-29-strategy/20.01-course-modules.md-176-208 (1)
176-208:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd a language identifier to the fenced block
Line 176 opens a fenced block without a language. Set it to
textto satisfy
markdown linting.🤖 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 `@docs/projects/2605-tech-for-non-technical-founders/20-29-strategy/20.01-course-modules.md` around lines 176 - 208, The fenced code block containing the module diagram (starting with "Module 0: Where Are You?" and the ASCII flow) lacks a language identifier; update the opening triple-backtick fence to include the language tag `text` (i.e., change ``` to ```text) so markdown linters recognize it as plain text and preserve formatting.content/blog/find-10-people-with-problem-outreach-2026/index.md-136-138 (1)
136-138:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winUse one currency system in the execution steps
This section switches to
£100 to £200while surrounding guidance uses USD.
For a US-default audience and consistent operator math, keep one currency (or
show both explicitly).🤖 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/blog/find-10-people-with-problem-outreach-2026/index.md` around lines 136 - 138, The paragraph starting "Drive £100 to £200 of paid traffic..." uses GBP while the rest of the guide uses USD; change that sentence to a single consistent currency (prefer USD for a US-default audience) or show both explicitly (e.g., "$100–$200 (≈£80–£160)"), and update any nearby numeric examples if they depend on the currency; locate and edit the sentence "Drive £100 to £200 of paid traffic from Google Ads or LinkedIn Ads..." in the blog content and replace the currency to match the guide's USD convention or add the equivalent GBP in parentheses.
| --- | ||
| title: "Outreach Sequence Template: 10 Customer Interviews by Friday" | ||
| description: "Reddit + LinkedIn + Clay + Lindy + paid panels = 10 ICP interviewees booked in one morning. The 2026 stack with copy-pasteable email + DM templates." | ||
| date: 2026-07-08 | ||
| draft: false | ||
| author: "JetThoughts Team" | ||
| slug: outreach-sequence-template | ||
| keywords: | ||
| - founder cold outreach template | ||
| - Clay Apollo Lindy founder | ||
| - book customer interviews 2026 | ||
| - validation outreach sequence | ||
| - non technical founder outreach | ||
| tags: | ||
| - founders | ||
| - non-technical-founder | ||
| - template | ||
| - course-companion | ||
| - validation | ||
| categories: ["Templates"] | ||
| canonical_url: "https://jetthoughts.com/blog/outreach-sequence-template/" | ||
| related_posts: false | ||
| --- |
There was a problem hiding this comment.
Missing required course frame in frontmatter section.
Per coding guidelines and integration rules in PROJECT-INDEX.md rule #3, every course post must carry the course frame with a top callout immediately after frontmatter. This post is missing:
> **Module X · Step N of M** · [Tech for Non-Technical Founders 2026](/blog/tech-for-non-technical-founders-2026/) free course.
> Input: [what reader brings]. Output: [deliverable].The callout on Line 25 is present but this appears to be a standalone template/artifact page rather than a numbered module post. If this is Artifact 2 per the AI summary, clarify whether artifacts need the full course-frame or a simplified version.
As per coding guidelines: always include course frame per PROJECT-INDEX.md integration rule #3.
🤖 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/blog/outreach-sequence-template/index.md` around lines 1 - 23, This
post's frontmatter (title: "Outreach Sequence Template: 10 Customer Interviews
by Friday", slug: outreach-sequence-template) is missing the required course
frame that must appear immediately after the YAML frontmatter; insert the
standard callout exactly as specified: a top-line like "Module X · Step N of M ·
[Tech for Non-Technical Founders
2026](/blog/tech-for-non-technical-founders-2026/) free course." followed by
"Input: [what reader brings]. Output: [deliverable]." using the placeholders,
and ensure it sits before the existing callout on line ~25; if this page is an
Artifact (Artifact 2 per AI summary), confirm with the author/maintainer whether
artifacts should use the full course-frame or a simplified variant and then
apply the agreed version consistently.
| ## What to do after | ||
|
|
||
| - **Score responses Wednesday afternoon.** Aim **30%+ reply rate** by mid-week. If you're under 10%, the Day-0 subject line is generic - rewrite it referencing a specific public post and resend Thursday morning. | ||
| - **By Friday, hold 10 booked calls across the next 2 weeks.** Cold outreach should give you 5-7 of them. Paid panel fills the other 3-5. The smoke-test landing page is a signal track, not a booking track. | ||
| - **Move to the Mom Test interview script (Module 1.2).** The script tells you what to ask once they're on the call. The wrong questions waste the conversations you just booked. The [Mom Test reference at momtestbook.com](https://www.momtestbook.com/) is the anchor; Module 1.2 ships the JT-curated 5-question script. | ||
|
|
||
| --- | ||
|
|
||
| Built by JetThoughts as part of the free Tech for Non-Technical Founders 2026 curriculum. See the full curriculum at [/blog/tech-for-non-technical-founders-2026/](/blog/tech-for-non-technical-founders-2026/). |
There was a problem hiding this comment.
Missing required "Continue the course" navigation section.
Per PROJECT-INDEX.md integration rule #3, every course post must include a bottom section before "Further reading":
## Continue the course
This is Step N of Module X in the free **[Tech for Non-Technical Founders 2026](/blog/tech-for-non-technical-founders-2026/)** course.
| # | Module | Output you walk away with |
...9-row table...
**In Module X**: [list this module's posts; current post marked `← you are here`].This post jumps directly to the footer without the navigation section. If this is a template/artifact companion rather than a numbered module post, clarify the expected structure.
As per coding guidelines: course frame mandatory per PROJECT-INDEX.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 `@content/blog/outreach-sequence-template/index.md` around lines 206 - 214, Add
the required "Continue the course" navigation block before the footer/"Further
reading" section: insert a "## Continue the course" heading that states the Step
N / Module X line referencing the Tech for Non-Technical Founders 2026 course,
include the 9-row summary table as specified by PROJECT-INDEX.md, and add the
"In Module X" list of this module's posts with the current post marked "← you
are here"; if this file (index.md) is a template or companion rather than a
numbered module post, explicitly state that and provide the appropriate
alternate frame (e.g., "This is a template — not a numbered step") so it
satisfies the course-frame requirement.
| --- | ||
| title: "Tech for Non-Technical Founders 2026" | ||
| description: "A free 26-post course for non-technical founders. Idea to first paying users without hiring engineers you don't need. Course is being built in public - new posts ship every week." | ||
| date: 2026-07-01 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify future-dated content and Hugo future-build setting
rg -n '^date:\s*2026-' content/blog/**/index.md
rg -n 'buildFuture|buildfuture' hugo.* config.* **/*.toml **/*.yaml **/*.ymlRepository: jetthoughts/jetthoughts.github.io
Length of output: 3241
🏁 Script executed:
# Find Hugo config files
fd -e toml -e yaml -e yml | grep -i config | head -20Repository: jetthoughts/jetthoughts.github.io
Length of output: 182
🏁 Script executed:
# Read the file being reviewed to understand context
head -50 content/blog/tech-for-non-technical-founders-2026/index.mdRepository: jetthoughts/jetthoughts.github.io
Length of output: 2378
🏁 Script executed:
# Check Hugo build script to understand buildFuture behavior
cat bin/hugo-build 2>/dev/null || echo "Not found at bin/hugo-build"
ls -la bin/ | head -20Repository: jetthoughts/jetthoughts.github.io
Length of output: 2084
🏁 Script executed:
# Check Hugo configuration for buildFuture setting
cat config/_default/hugo.toml | head -100Repository: jetthoughts/jetthoughts.github.io
Length of output: 3180
🏁 Script executed:
# Check production config
cat config/production/hugo.toml | head -100Repository: jetthoughts/jetthoughts.github.io
Length of output: 885
🏁 Script executed:
# Read more of the file to see content around line 30 and beyond
sed -n '25,80p' content/blog/tech-for-non-technical-founders-2026/index.mdRepository: jetthoughts/jetthoughts.github.io
Length of output: 3276
🏁 Script executed:
# Check development and test Hugo configs for buildFuture
cat config/development/hugo.toml | head -100Repository: jetthoughts/jetthoughts.github.io
Length of output: 1804
🏁 Script executed:
# Count live posts in the table - look for 🟢 count
sed -n '50,100p' content/blog/tech-for-non-technical-founders-2026/index.md | grep '🟢' | wc -lRepository: jetthoughts/jetthoughts.github.io
Length of output: 79
🏁 Script executed:
# Get all 🟢 entries to manually count
sed -n '50,100p' content/blog/tech-for-non-technical-founders-2026/index.md | grep '🟢'Repository: jetthoughts/jetthoughts.github.io
Length of output: 577
🏁 Script executed:
# Check if buildFuture is set anywhere in the repo
rg 'buildFuture|buildfuture' --type toml --type yamlRepository: jetthoughts/jetthoughts.github.io
Length of output: 125
Date 2026-07-01 prevents publication in production until that date arrives.
With buildFuture = false in production config (the Hugo default), this file won't be published to the live site until 2026-07-01. But the content says "Last updated: 2026-07-15" and describes the course as "in progress" / "live now," which is misleading if readers can't access it yet. Either move the date to today or update the copy to say when the course will launch.
🤖 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/blog/tech-for-non-technical-founders-2026/index.md` at line 4, The
frontmatter date field (date: 2026-07-01) will prevent publication until that
future date; either set the frontmatter date to today's date or change the post
copy that references "Last updated: 2026-07-15" and states the course is "in
progress" / "live now" to instead indicate the actual launch date or that the
content is scheduled—update the `date` frontmatter or the "Last updated" line
and course status text so the published state and timestamps are consistent.
|
Consolidated into #345 — single PR for the full Tech for Non-Technical Founders 2026 course (9 modules, 30 chapters, 12 artifacts, 118 files). Per the user's directive to ship the course as one reviewable diff instead of a 7-PR chain. The commits from this branch are linearly preserved on the consolidated branch |
Summary
/blog/<slug>/.docs/projects/2605-tech-for-non-technical-founders/(Johnny Decimal).What's live after this PR
/blog/course-map-self-assessment-non-technical-founder-2026//blog/find-10-people-with-problem-outreach-2026//blog/mom-test-ask-about-past-not-future//blog/five-tech-words-stop-nodding-at//blog/reading-sow-clause-by-clause//blog/engineering-org-chart-non-technical-founder//blog/three-questions-turn-standup-into-proof/Plus 8 public template artifacts at
/blog/<slug>/: self-assessment-worksheet, outreach-sequence-template, mom-test-interview-script, friday-demo-template, ownership-checklist, salvage-vs-rebuild-decision-tree, agency-ai-five-questions, sow-reading-guide.Plus the landing page at
/blog/tech-for-non-technical-founders-2026/.Course doctrine
Team-mode pipeline
Each chapter ran through: Writer (general-purpose agent) → mechanical gates → voice critic + cold-eyes verifier (parallel where independent) → editor revisions if needed → ship. WIP=1 sequential discipline maintained.
Test plan
bin/hugo-buildsucceeds against master+this branchbin/test(macOS) +bin/dtest(Linux) green for the new posts🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Documentation
Chores