›Steven Murray/ Personal OS
livelast signal · 30 oct

I make AI less about chatting and more about doing.

I am an entrepreneur, builder, and recovering tab-hoarder currently building and learning in public. Each week I sift the AI-verse by actually doing — and send back signals: from what the vibe coders are shipping, and what it unlocks for whatever you're building.

Read the signalsSubscribe
2022
vibing since
weekly
signal cadence
in public
how I ship
//Latest signal
~/radar

Today on the radar

full radar

WHOOP CEO Will Ahmed discusses 50 billion hours of 24/7 health data from 4 million members, and argues that data moat — not the hardware — is the core competitive asset as they build AI health products.

YC's Winter 2027 batch pitch highlights the 'air-gapped economy' — defence, hospitals, banks, nuclear — where data can never leave the building, blocking cloud AI entirely. On-prem frontier AI for these sectors is largely untouched.

OpenAI now includes API credits in ChatGPT Pro and Business plans — up to $500/month for Pro subscribers, and per-seat credits pooled for Business teams.

~/changelog

What I learned this week

full log
learnedFour checks in one build could never fail.The AI wrote them and the AI reviewed them, and reading the code didn't catch a single one. What caught every one was a reviewer building the exact thing the check was meant to reject: a red square instead of the logo, a word missing its last letter.
learnedA tool that reports success can still have done nothing.I wired Google's CLI into my research step and it came back saying SUCCESS with an empty answer, twice, for two different reasons. Once a permission was silently denied, once it ran out of time mid-thought. If I had trusted the status field I would have built a design on nothing. Now every call passes a gate that checks the answer is actually there.
learnedThree weeks of green tests while the pipeline quietly produced nothingMy content engine reported success every ten minutes for three weeks and shipped nothing. The queue query fetched the ten oldest jobs, all already done, so new work was never picked up. Slack was handed a bare video link it never renders, so finished videos sat unseen. A browser upgrade removed the binary one job needed. Every one of those failures looked exactly like a quiet day. Tests passing tells you the code does what you wrote, not that the system is doing anything at all.
learnedForty-five profitable days that proved nothingMy trading bot has been profitable for 45 days, and that told me almost nothing. All seven of its cycles were the same trade into a market that only went up, so the leg that actually loses money has never once run. I was reading a number as validation when it was really just a rising market.
learnedMy deploy had been broken for two weeks and nothing told me.A cron job pulls my code onto a server every ten minutes. Someone changed how it authenticates, the pull started failing, and the job carried on running the old code perfectly happily. No error anywhere I'd look, because a thing that fails quietly and keeps working looks identical to a thing that's fine. I only found it because I went to deploy something. Two weeks of "working" that wasn't.
~/building

Things I’m building

all work
~/activity

Live from the workshop

hybrid-aHybrid Athleticism: Block 7 regenerate is Steven's: /data/blocks/new → Continue this one → Generate → check…active Block 7 regenerate is Steven's: /data/blocks/new → Continue this one → Generate → check it is no longer 'Post-Pneumonia Rebuild' → approve; then discard the dead HYBRID Block 6 (10-24) the wizard offers next. Fix f98961f is live; Block 7 deactivated 10-26 with 0 sessions logged. recent_training_activity swim row (2x/wk) is an estimate — only 1 swim logged since 09-23; Steven to confirm. Injuries need a review date/expiry (schema change) so staleness doesn't depend on opening the wizard. Retro snapshots for HYPERTROPHY Block 4 + STRENGTH Block 3 still hold 'Unknown 0→0' recalibrations (Block 6's repaired). feat/medication-timeline: commits unpushed (89e9f9e, 089715b, 4e7a1a2, a922124, 5c2f797) — branch is now behind main by f98961f; rebase before merge. Steven views /data/timeline, then 'merge and push'. Garmin: built (c3bdb62) but never connected — blocked by Garmin email-code 2FA. Park unless 2FA is built or the library changes. Supabase keep-alive ping still not built — project auto-paused a third time (~10-21). Carried: coach_notes has no owner/clearing step; close-block nudge keyed off GENERATED end_date; nextSetRecommendation → WorkoutLogger.
hybrid-aHybrid Athleticism: HYBRID Block 6 (10-24→12-04) created but NOT approved (is_active=false, checked 10-24).active HYBRID Block 6 (10-24→12-04) created but NOT approved (is_active=false, checked 10-24). Approve before week 1 exists. feat/medication-timeline: 4 commits unpushed (89e9f9e docs, 089715b timeline, 4e7a1a2 hydration fix, a922124 readability fix). Steven views /data/timeline logged in, then 'merge and push' → deploy. Garmin: built in Plan 3 (c3bdb62 — unofficial garmin-connect password login, Vault creds, 07:00 cron) but never connected: 0 credentials, 0 garmin_daily rows. Blocked by Garmin's email-code 2FA, which is unsupported. Park unless 2FA is built or the library changes. Supabase keep-alive ping still not built — project auto-paused a third time (~10-21). Carried: coach_notes has no owner/clearing step; close-block nudge keyed off GENERATED end_date; nextSetRecommendation → WorkoutLogger.
PostsWhy benchmarks miss customer trust, and the eval flywheel that fixes it• My customer defines success, not me • An agent that works 80% of the time is more work for my customer • I tell customers what my product can't do Full talk: https://www.youtube.com/watch?v=Emo5FGGY-wM
personal-osSteven Personal OS: ✅ WORKSPACE HUB COMPLETE (2026-09-29): send-as live for steve@dig-in.io +…active ✅ WORKSPACE HUB COMPLETE (2026-09-29): send-as live for steve@dig-in.io + incubatepro@gmail.com, both SPF/DKIM/DMARC-verified; 2,241 contacts imported; Multiple Inboxes panels + Spam done. Detail: [[project_steven_personal_os_workspace_hub]] ▶ SIXTY4SIXTY is the monetisation answer and is BUILDING (2026-08-14). Tracker LIVE at https://sixty4sixty.vercel.app/tracker.html; domain attached. Detail: [[project_sixty4sixty]] SIXTY4SIXTY — Steven owes DNS at GoDaddy: CNAME `sixty4sixty` -> `cname.vercel-dns.com`. ⚠ Do NOT touch the apex A or the www CNAME. SIXTY4SIXTY — Steven owes the start date, or the 06:30 morning-nudge timer cannot compute the day number; it is written but NOT installed without it. SIXTY4SIXTY — the 3-day manual pilot GATES all further build. Run it before writing more code. NEWSLETTER SEQUENCING IS AN OPEN CALL. Spec `2026-07-24-newsletter-launch-design.md` Phase 2 does DAILY radar first, WEEKLY second. Recommendation on the table, unanswered: invert it — the weekly (curated best-of + Steven's take) is the differentiated product, ships to a list of one, needs no per-subscriber batching. ⚠ Real subscriber count is ZERO — the single row is a bot signup. Judge any monetisation or newsletter plan against that. The highest-leverage growth action (point 7,775 LinkedIn followers at the signup) currently sits LAST in the sequence, behind a product that cannot send. Newsletter: Steven to click the confirm link and check inbox-vs-spam. Double-opt-in is E2E verified but first-send placement is unproven — the root domain's DMARC is now `p=none` (was `p=reject`; verified 2026-09-11). ⚠ DMARC `rua=` points at GoDaddy's address, not Steven's, so he receives NO failure reports. ⚠ Resend free tier is 3,000/mo and 100/day — a daily mailer to a real list breaks that.
hybrid-aHybrid Athleticism: ⚠ Block 5 (HYBRID, 4 wks) CREATED BUT NOT APPROVED — still a preview (is_active=false,…active ⚠ Block 5 (HYBRID, 4 wks) CREATED BUT NOT APPROVED — still a preview (is_active=false, checked 09-27); Steven must hit Approve before week 1 exists. Reboot after ~7-wk layoff + late-Aug pneumonia; TRT started 2026-09-23. Watch week-2 generation: first run of the 09-23 fixes (block-scoped session mix, availability write-through, block length + TMs in head-coach prompt). First check-in still unsubmitted (athlete_self_reports = 0). After Steven's week-1 check-in, verify getReadiness stops returning UNKNOWN. Separate session: medications → coach context (medical_events is read only by the doctor report + health snapshot; TRT is invisible to programming). Same session: Supabase keep-alive ping — project auto-paused 09-07 and 09-23. Profile is still 7 days × 75 min. Block 5 predates the write-through, so weeks 2-4 allocate across 7 days — Steven chose to keep that. Carried: coach_notes has no owner/clearing step; close-block nudge keyed off GENERATED end_date; nextSetRecommendation → WorkoutLogger; Garmin OAuth re-pair.
hybrid-aHybrid Athleticism: ⚠ Block 5 (HYBRID, 4 wks) CREATED BUT NOT APPROVED — still a preview (is_active=false,…active ⚠ Block 5 (HYBRID, 4 wks) CREATED BUT NOT APPROVED — still a preview (is_active=false, checked 09-27); Steven must hit Approve before week 1 exists. Reboot after ~7-wk layoff + late-Aug pneumonia; TRT started 2026-09-23. Watch week-2 generation: first run of the 09-23 fixes (block-scoped session mix, availability write-through, block length + TMs in head-coach prompt). First check-in still unsubmitted (athlete_self_reports = 0). After Steven's week-1 check-in, verify getReadiness stops returning UNKNOWN. Separate session: medications → coach context (medical_events is read only by the doctor report + health snapshot; TRT is invisible to programming). Same session: Supabase keep-alive ping — project auto-paused 09-07 and 09-23. Profile is still 7 days × 75 min. Block 5 predates the write-through, so weeks 2-4 allocate across 7 days — Steven chose to keep that. Carried: coach_notes has no owner/clearing step; close-block nudge keyed off GENERATED end_date; nextSetRecommendation → WorkoutLogger; Garmin OAuth re-pair.
~/newsletter

One AI signal newsletter a week.
Zero hype, mostly.

What the vibe coders are building and what AI is unlocking for builders and operators. Written for people who ship.

No spam · unsubscribe whenever, no hard feelings