-
Notifications
You must be signed in to change notification settings - Fork 0
Vibe Code Rescue: 2026 client-acquisition operating system + JTBD customer profile #387
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
23 commits
Select commit
Hold shift + click to select a range
f3d090f
docs(rescue): build 2026 client-acquisition operating system + sprint…
c6823ec
docs(rescue): add JTBD customer profile + Four Forces of Progress
caa032e
chore(gitignore): ignore claude-flow-generated agent category dirs
64af6c0
docs(rescue): add Shape Up executive summary pitch
7051104
docs(rescue): move operation to docs/projects/2607-vibe-code-rescue +…
d3187ad
docs(claude): carve out docs/projects/<YYMM-slug>/ for major initiatives
344b2f5
docs(rescue): add market analysis + estimations with sourced numbers
616c7bd
docs(business): split company layer from the rescue project
a924536
docs(2607): groom T4/T5 (3-agent brainstorm + votes) + F5Bot Reddit fix
4ddd7f0
docs(2607): add atomic executable backlog (P1-P9), decompose T4/T5
d86f286
docs(2607): T8 discovery kit done (call script + audit template), T9 …
7b41bf0
docs(2607): scaffold prospects/ output stubs + RUN.md copy-paste prompts
53afea5
docs(2607): point backlog at kanban-md board for live status
a110cec
docs(2607): complete P1-P7 prospect sourcing + T9 objection bank
7393fda
docs(2607): quality review fixes - remove failing rows, fix VoC speak…
405b8d5
docs(2607): P8 merge - 25 deduped prospect rows + VoC phrase bank
0e970fe
docs(2607): A2 pricing confirmed + P9 outbound openers (25 personalized)
f89f802
updates backlog
4f94529
docs(2607): rescue demand sprint — async audit pivot + quality fixes
e4bc885
docs(2607): polish opener tones + sync VoC phrase bank
8bbd832
docs(2607): pre-send review fixes — routing, gate, tracking sheet
3d26f07
docs(2607): sync stale offer pricing + board range + opener voice fix
7eafbad
docs(2607): browser-agent send/monitor prompts + F5Bot blocker root c…
pftg File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| # JetThoughts - Business (company layer) | ||
|
|
||
| This folder is the **company**, not any single project. It holds the durable things that persist across every opportunity we pursue. Individual bets (like validating the Vibe Code Rescue opportunity) live under [`docs/projects/`](../projects/) and are governed by what's here. | ||
|
|
||
| ## The three company documents | ||
|
|
||
| | File | What it is | | ||
| |---|---| | ||
| | [`vision-mission.md`](vision-mission.md) | Who JetThoughts is, what we do, and the durable positioning - independent of any one go-to-market wedge. | | ||
| | [`operating-system.md`](operating-system.md) | How we run: EOS-lite (accountability chart, quarterly OKR, rocks, weekly scorecard, issues, pipeline, cadence). Runs whatever the active bet is. | | ||
| | [`opportunity-portfolio.md`](opportunity-portfolio.md) | The bets we're making, how we validate / kill / scale each, and which one is active now. | | ||
|
|
||
| ## Current focus | ||
|
|
||
| - **Active portfolio bet**: [Vibe Code Rescue validation](../projects/2607-vibe-code-rescue/) - project #1, proving one opportunity end to end (1 signed client by Nov 30, 2026). | ||
| - **How it connects**: the company OS drives that project this quarter; when it's validated (or killed), the same OS picks up the next bet in the portfolio. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,108 @@ | ||
| # JetThoughts Operating System (lean) | ||
|
|
||
| **Scope**: this is the **company** operating system - how JetThoughts runs across every opportunity, not just the current one. It is the durable cadence (accountability chart, quarterly OKR, rocks, weekly scorecard, issues, pipeline). The **active bet it currently drives** is the [Vibe Code Rescue validation project](../projects/2607-vibe-code-rescue/) (portfolio bet #1); when the next opportunity becomes active, the same OS runs it with a new OKR/rocks. | ||
| **Company layer**: [`index.md`](index.md) (front door) · [`vision-mission.md`](vision-mission.md) (who we are) · [`opportunity-portfolio.md`](opportunity-portfolio.md) (the bets, and how we validate/kill/scale them). | ||
| **Purpose**: the smallest cadence that reliably ships the current company objective - right now, **1 Vibe Code Rescue client by Nov 30, 2026** (the active portfolio bet). | ||
| **Owner**: Paul Keen | **Created**: 2026-07-21 | **Review**: weekly | ||
| **Model**: EOS-lite (accountability chart + quarterly OKR + weekly scorecard + rocks + issues), sized for a founder + white-label delivery + AI execution. | ||
|
|
||
| --- | ||
|
|
||
| ## 0. Current state & where to start (fresh session) | ||
|
|
||
| **As of 2026-07-21**: foundation is set. A0 assumptions register ✓, G0 white-label partner ✓ (locked per CEO), offer/kit/booking drafts ✓, T1 trigger taxonomy ✓, T2 sourcing pipeline ✓. | ||
| **Active sprint**: Rescue Demand Sprint — populate the prospect list (agent) so Paul can send + book calls. | ||
| **Next agent work**: `T4/T5` (build the list) → `T6` dedupe → `T7` openers; `T8` discovery kit in parallel. | ||
| **To execute**: open [`operation-runbook.md`](../projects/2607-vibe-code-rescue/operation-runbook.md) → **▶ START HERE** block → take the next Ready task. That runbook is the shared state across sessions; this file is the weekly cadence over it. | ||
| **Paul's desk (human-only)**: booking page (~5 min), confirm price band (✅ done: $2,500 triage / $7,500 rescue / $10,000 foundation reset), review + send the outreach, take the calls, close. Optional: Gmail consent (warm lane), Apollo $79/mo + Hunter key (paid cold funnel). | ||
|
|
||
| --- | ||
|
|
||
| ## 1. Accountability chart (who owns what) | ||
|
|
||
| | Seat | Owner | Owns | | ||
| |---|---|---| | ||
| | **CEO / Sales / Trust layer** | Paul | Discovery calls, offer, pricing, the founder relationship, fractional-CTO oversight | | ||
| | **Delivery** | White-label partner | The rescue build (Rails), under JT brand, to JT quality bar | | ||
| | **Marketing / Content / Ops engine** | Claude Code (+ Paul review) | Content, SEO, landing, lead magnets, LinkedIn drafts, pipeline tracking, this OS | | ||
|
|
||
| One person can hold several seats - but every seat has exactly one accountable owner. | ||
|
|
||
| ## 2. Quarterly OKR (Q3->Q4 2026) | ||
|
|
||
| **Objective**: Land the first Vibe Code Rescue client and prove the machine. | ||
|
|
||
| | Key Result | Target | Status | | ||
| |---|---|---| | ||
| | KR1 - Offer + white-label partner live | Rescue Audit priced, partner signed, landing CTA live | 🟢 partner signed ✓; offer priced ✓ ($2,500 / $7,500 / $10,000); landing deferred | | ||
| | KR2 - Discovery calls booked | 8-12 by Nov 15 | 🔲 | | ||
| | KR3 - Audits delivered | 3-5 paid Rescue Audits | 🔲 | | ||
| | KR4 - Rescue signed | **1 engagement by Nov 30** | 🔲 | | ||
|
|
||
| ## 3. Rocks (90-day priorities = roadmap milestones) | ||
|
|
||
| 1. **Offer + partner locked** (Aug) - the machine can't sell without these. | ||
| 2. **Landing = booking machine** (Aug) - offer, proof, one CTA. | ||
| 3. **Demand-gen live on all channels** (Aug->Sep) - LinkedIn 3-4/wk, rescue SEO cluster, paid pilot. | ||
| 4. **First audit -> first signing** (Oct). | ||
|
|
||
| ## 4. Weekly scorecard (leading metrics, review every week) | ||
|
|
||
| | Metric | Owner | Target/wk | | ||
| |---|---|---| | ||
| | LinkedIn posts published | Paul/Claude | 3-4 | | ||
| | LinkedIn qualified replies/DMs | Paul | >=3 | | ||
| | New email subs from magnets | Claude | trend up | | ||
| | Blog posts shipped (rescue/ICP-E) | Claude | 2-3 | | ||
| | **Discovery calls booked** | Paul | trend to 8-12 by mid-Nov | | ||
| | Rescue Audits sold | Paul | cumulative -> 3-5 | | ||
| | Rescues signed | Paul | -> 1 | | ||
|
|
||
| Green = hit target, Red = missed. Any red 2 weeks running becomes an Issue (section 6). | ||
|
|
||
| ## 5. Meeting cadence | ||
|
|
||
| - **Weekly ops review (~30 min)**: scorecard (5 min) -> rock progress (5 min) -> pipeline | ||
| walk (10 min) -> IDS the top issues (10 min). Update the scorecard + OKR statuses in this file. | ||
| - **Monthly strategy check (~45 min)**: is the wedge still right? adjust roadmap; refresh | ||
| market scan if signals shift. | ||
| - **Per-deal**: discovery call -> audit -> proposal, tracked in the pipeline (section 7). | ||
|
|
||
| ## 6. Issues list (IDS: Identify, Discuss, Solve) | ||
|
|
||
| Rolling list of the top blockers. Solve the highest-leverage one each week; don't let it grow. | ||
|
|
||
| | # | Issue | Owner | Status | | ||
| |---|---|---|---| | ||
| | 1 | White-label delivery partner (runbook G0) | Paul | ✅ Resolved 2026-07-21 (locked per CEO). Standing validation: confirm a paid trial rescue hits the quality bar + a fallback partner is named before the first real signing. | | ||
| | 2 | Prospect list populated — 25 deduped rows merged in P8 | Claude | ✅ Resolved 2026-07-22 (P8 complete) | | ||
| | 3 | Price band confirmed — A2 set at $2,500 triage / $7,500 rescue / $10,000 foundation reset | Paul | ✅ Resolved 2026-07-22 (A2 confirmed) | | ||
|
|
||
| ## 7. Pipeline (simple funnel, no CRM needed yet) | ||
|
|
||
| Track each lead as a row: **Source -> Discovery call -> Audit sold -> Proposal -> Signed**. | ||
| Stages: `Lead` -> `Call booked` -> `Audit sold` -> `Proposal out` -> `Won` / `Lost (reason)`. | ||
| Keep it in a single sheet (or a section here) until volume justifies a real CRM. | ||
| **Leads originate from** the populated target list in [`rescue-sprint/warm-intro-referral-kit.md`](../projects/2607-vibe-code-rescue/rescue-sprint/warm-intro-referral-kit.md) (agent-built via runbook T4-T7); once Paul sends, each contacted row becomes a pipeline `Lead`. | ||
|
|
||
| ## 8. Tooling map | ||
|
|
||
| | Function | Tool | | ||
| |---|---| | ||
| | Site / blog | Hugo (`bin/hugo-build`), content in `content/blog/` | | ||
| | Content ops | Blog pipeline (`docs/workflows/blog-pipeline.md`), voice guide 90.11 | | ||
| | LinkedIn | LinkedIn pipeline (`docs/workflows/linkedin-post-pipeline.md`) + ICP validation plan | | ||
| | Discovery scheduling | NeetoCal (per outreach template) | | ||
| | Pipeline tracking | Sheet / this doc section 7 until CRM is justified | | ||
| | OKR spine | `lark-okr` skill for structuring quarterly OKRs | | ||
| | Weekly OS loop | `eos-lite` skill (`Skill(eos-lite) weekly`) — runs scorecard/OKR/rocks/issues/pipeline over this doc | | ||
| | Step-by-step execution | [`operation-runbook.md`](../projects/2607-vibe-code-rescue/operation-runbook.md) — ordered task cards + Incremental agent backlog; **▶ START HERE** for any fresh session | | ||
| | Foundational premises | [`rescue-sprint/assumptions-register.md`](../projects/2607-vibe-code-rescue/rescue-sprint/assumptions-register.md) — ICP/trigger/channel/pre-validation, voted, with kill-criteria (runbook rule 7) | | ||
| | Sprint artifacts | `rescue-sprint/` — offer, warm-intro kit, booking spec, trigger taxonomy, sourcing pipeline (see runbook START HERE artifact index) | | ||
|
|
||
| ## 9. Definition of "operating" (are we actually running the system?) | ||
|
|
||
| - Scorecard updated weekly, with real numbers. | ||
| - Every rock has a next action and an owner. | ||
| - The Issues list is short because we solve the top one each week. | ||
| - Discovery-calls-booked moves up week over week from Sept. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| # JetThoughts - Opportunity Portfolio | ||
|
|
||
| **Owner**: Paul Keen (CEO) | **Scope**: company-level | **Updated**: 2026-07-22 | ||
| **What this is**: the bets JetThoughts is making to grow, which one is active, and how we decide to validate, kill, or scale each. Every bet becomes a project under [`docs/projects/`](../projects/) and is run by the [operating system](operating-system.md). | ||
|
|
||
| --- | ||
|
|
||
| ## How a bet moves through the portfolio | ||
|
|
||
| Each opportunity is a **falsifiable hypothesis**, not a plan we commit to. It moves through four states, and it can be killed at any gate on evidence. | ||
|
|
||
| | State | Meaning | Exit gate | | ||
| |---|---|---| | ||
| | **Candidate** | An idea worth a look; not yet resourced. | A one-page thesis + a market signal worth testing. | | ||
| | **Validating** | The active bet. We run a real go-to-market and measure. | The pre-validation tests pass (real buyers pay / book), OR a kill-criteria fires. | | ||
| | **Scaling** | Validated - now build the repeatable machine. | Predictable pipeline + unit economics that hold. | | ||
| | **Killed / Parked** | Evidence said no, or it's on hold. | Documented reason so we don't re-litigate it. | | ||
|
|
||
| Discipline: **one bet is Validating at a time.** Spreading the company across several unvalidated bets is how a small firm dies. The assumptions and kill-criteria for the active bet live in that project's assumptions register. | ||
|
|
||
| --- | ||
|
|
||
| ## The portfolio | ||
|
|
||
| | # | Opportunity | State | Project | Thesis (one line) | Kill-criteria (short) | | ||
| |---|---|---|---|---|---| | ||
| | 1 | **Vibe Code Rescue** | 🔵 **Validating** | [`2607-vibe-code-rescue`](../projects/2607-vibe-code-rescue/) | Funded non-technical founders will pay a fixed price to rescue a broken AI/dev-shop MVP and get ownership back. | 0 booked calls in 2 weeks of warm outreach → re-open the ICP bet ([assumptions register](../projects/2607-vibe-code-rescue/rescue-sprint/assumptions-register.md)). | | ||
|
|
||
| **Parking lot (candidates, not resourced)**: none yet. Add a row here when a new wedge earns a one-page thesis; do NOT start validating it while bet #1 is still open. | ||
|
|
||
| --- | ||
|
|
||
| ## Why Vibe Code Rescue is the active bet | ||
|
|
||
| - **Timing**: the AI-app-builder wave (Lovable, Cursor, Bolt, Replit) manufactured a large, founder-heavy pool of broken, funded MVPs - measured, not guessed ([market analysis](../projects/2607-vibe-code-rescue/10-19-research/market-analysis-2026.md)). | ||
| - **Fit**: Rails rebuild is JT's home turf; the ownership/trust wedge is JT's durable positioning made concrete. | ||
| - **Provability**: a single signed client proves the whole motion (demand → call → audit → signing) and produces the first case study - a clean validation gate. | ||
| - **Reversibility**: delivered via a white-label partner, so the bet is testable without over-committing the firm. | ||
|
|
||
| Full plan: [executive summary](../projects/2607-vibe-code-rescue/executive-summary.md) · [strategy](../projects/2607-vibe-code-rescue/strategy.md) · run it via the [operating system](operating-system.md). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| > DRAFT - company identity for Paul to review. Grounded in verifiable JT facts; keep claims defensible. | ||
|
|
||
| # JetThoughts - Vision, Mission, Positioning | ||
|
|
||
| **Owner**: Paul Keen (CEO) | **Scope**: the company, independent of any single go-to-market wedge | **Reviewed**: draft 2026-07-22 | ||
|
|
||
| --- | ||
|
|
||
| ## What JetThoughts is | ||
|
|
||
| A Ruby on Rails engineering firm, shipping production software since 2011. Verifiable track record: 4.8/5 from 32 clients, ~95% client retention, five-year average client relationships, developers averaging 8+ years of experience. We work with founders, not enterprises. | ||
|
|
||
| ## Mission | ||
|
|
||
| Help founders build and keep control of software they actually own and understand - and rescue them when someone else's build has taken that control away. | ||
|
|
||
| ## Vision | ||
|
|
||
| Be the engineering partner a non-technical founder trusts with the truth about their software. Not the shop that talks over their head and holds the code hostage - the one that hands back a working product, the accounts, and a plain-English understanding of what they have. | ||
|
|
||
| ## Positioning (the durable part) | ||
|
|
||
| **Trust and transparency is the product; the code is how we deliver it.** A founder's deepest pain is not a missing feature - it is not knowing whether they are being told the truth, and not owning what they paid for. JetThoughts sells that certainty: a senior engineer who reads the actual code, tells the founder straight, and hands back ownership at every step, with Paul on the call as the fractional-CTO translation layer. | ||
|
|
||
| This positioning is stable across whatever specific service we lead with. The **current expression** of it is the Vibe Code Rescue wedge (see the portfolio); the identity underneath - Rails engineering, ownership, radical transparency - does not change when the wedge does. | ||
|
|
||
| ## Who we serve (ICP) | ||
|
|
||
| Non-technical founder, pre-seed to Series A, whose product was built by a dev shop, a freelancer, or an AI tool and who has lost confidence or control. Full profile: [`docs/90-99-content-strategy/strategy-analysis/90.10-icp-primary-website-target.md`](../90-99-content-strategy/strategy-analysis/90.10-icp-primary-website-target.md). | ||
|
|
||
| ## What we will not be | ||
|
|
||
| - Not a body shop selling hours we can't tie to an outcome. | ||
| - Not a black box - if the founder can't understand what we did, we haven't finished. | ||
| - Not the cheapest option. We compete on trust and ownership, not price. | ||
|
|
||
| --- | ||
|
|
||
| **Note for Paul**: this is a working draft assembled from the documented ICP, positioning, and verifiable stats. Adjust the vision/mission wording to your voice before it becomes canon. |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work on this, Paul. The operating-system structure is solid — anchoring the cadence around one concrete bet (1 signed client by Nov 30, 2026) gives it real teeth. One thought on the client-acquisition side: the biggest bottleneck I've seen for technical debt/rescue services is that JTBD research tends to stay ad-hoc, so pipeline quality swings week to week. Systematizing that research — a repeatable interview loop tied to a fixed set of client triggers — usually does more for hitting a deadline like this than adding more outbound volume. Happy to discuss further or open a follow-up PR if that would help.