Skip to main content
Paul Welty, PhD AI, WORK, AND STAYING HUMAN

Synthesis: March 22, 2026

Cross-project synthesis: March 22, 2026

Eleven projects active. The biggest day in the fleet’s history — the entire infrastructure migrated to a server, a marketing agency framework was designed and tested, and multiple products shipped architectural rewrites. The fleet is now 16 projects with 11 running on speedy-gonzales.

Authexis — Content model rewrite (38 commits)

The entire content data model was rebuilt. The old stage_data JSONB blob was flattened into 8 proper columns on the contents table, backfilled, dual-written by the engine, and read by the web with fallback. This unlocks Supabase realtime subscriptions on individual fields.

The stage machinery was completely replaced. The old system (stage + stage_status + stage configs + sequential field chaining + auto-approve logic) was a complex state machine that caused cascade bugs throughout the session. All replaced with a single status column with four values: generating, interview, review, final. Three new engine handlers replaced the old chain. Content creation simplified to length presets (short/medium/long) with style dropdown instead of content type picker.

A critical engine bug was found: two parallel agents both added dual-write logic to update_stage_field, causing double UPDATEs that created database locks. The duplicate was removed.

v2.0 (product simplification) and v2.1 (content model refactor) both completed — 30+ issues closed.

Dinly — Post-meal feedback + pantry system (17 commits)

Two scout passes identified and executed 18 issues in a single session. The biggest additions: a complete post-meal feedback loop (families rate meals 1-5 stars, skipped meals tracked, ranking engine adjusts) and a full pantry inventory system (CRUD, shopping list integration with “in pantry” badges, ranking engine boosts recipes with pantry-available ingredients).

Security hardening added ownership verification to all vote, onboarding, family CRUD, and cycle mutation actions. Error handling added to all 13 unchecked Supabase operations. Cron job N+1 queries eliminated. Test count doubled from 33 to 65. Issue queue is now empty.

Eclectis — Handler tests + security hardening (15 issues)

Two scout cycles with all issues executed. XSS vectors fixed in briefing and blog pages (DOMPurify). Stripe webhook fixed to return 500 on database failures instead of silently succeeding. Per-row inserts batched in rss_scan. Learned preferences surfaced in settings page. Website_scan had TWO NameErrors making it completely broken — fixed and batch-scoring pattern applied.

28 new handler tests added across article_add, briefing_generate, google_search_scan, newsletter_process, and daily_pipeline. Test suite: 135 → 163. Also filled out the marketing onboarding questionnaire for the Synaxis agency engagement.

Marketing — First NVN engagement

The marketing agency ran its first real engagement. Eclectis competitive analysis produced using the NVN atom: strategist role + guide + template + questionnaire inputs → deliverable. Seven alternatives mapped with verbatim hero copy, real pricing, and 28 buyer quotes from real sources. External AI review identified gaps (behavioral stickiness, gap validation, wedge), and all corrections flowed back into the strategist role, guide, and template. The methodology got smarter from its first client.

Paulos — Fleet migration + rollover + fleet.toml + marketing framework

The marathon day. Three major initiatives:

Fleet migration: 11 sessions now run on speedy-gonzales. Dev servers accessible via http://speedy.local:<port>. paulos setup server syncs skills, creds, and config. paulos setup fleet restores everything after crashes. Discord channel on the supervisor.

Rollover pipeline: Created for server-side daily log rotation. First run crashed (PATH issues), second run succeeded mechanically but sessions didn’t know the skill. Root cause: skills were copies, not symlinks. Fixed by replacing all 31 skills with symlinks to the paulos repo.

Fleet.toml consolidation: Single config file defines every project’s repo, path, port, orchestrate interval, and host. Launchd status, setup fleet, and workspace resolution all migrated. Five issues (#514-#518).

Infrastructure hardening: Briefing enhancements (synthesis scanner, git fallback, needs-clarification display). Scout skill expanded for Hugo/static sites. Orchestrate and sweep gain priority awareness. Security fixes (shell-escaping, fail-secure webhooks, JSON error handling). Marketing CLI built (engage, status, list-clients with NVN architecture).

30+ issues closed between server and laptop sessions.

Phantasmagoria — Narrative-first generation pipeline

The biggest architectural shift in the project’s history. The old roller-first approach (deterministic effects → AI writes text) was replaced with a three-phase narrative-first system: Phase 1 (AI writes story freely), Phase 2 (AI assigns matching effects), Phase 3 (deterministic assembly). Each event type got its own prompt template. Follow-up events redefined as inline resolution popups. AI model references moved to .env. Test harnesses work end-to-end for all three event types.

Prakta — Serve experience end-to-end (14 PRs)

The serve-don’t-show experience is now fully functional. /today rewritten as a four-state machine: energy check-in → serve one chunk → work with timer → feedback → next chunk or done. Energy tracking wired from check-in through to the serve endpoint’s stop condition. Feedback text input added between done/not-done. Not-done feedback re-ingested through AI parse pipeline.

Two scout runs found and fixed 10 more issues: 616 lines of dead cycle-planning code removed, rate limiting on all AI endpoints, prerequisite chain enforcement, missing database indexes for the serve hot path, enriched day-complete screen.

Scholexis — Security + test infrastructure from zero (75 tests)

IDOR vulnerability fixed in cascading deletes. Signup role validation added. Rate limiting on login/signup. Error handling overhauled across all 7 server action files and 12 client components. Dashboard queries parallelized from 12+ sequential to Promise.all(). Browser confirm() dialogs replaced with styled components.

Test infrastructure built from scratch: Vitest configured, CI job added, 52 validation schema tests + 10 week generation tests + 13 more = 75 tests. Dead code cleanup removed ~500 lines. Next.js port at 88/90 closed.

SimpleBooks — Next.js port complete

Final polish batch: error handling on all server actions, N+1 query fixes, confirmation dialogs, mobile-responsive sidebar, filename sanitization. Next.js port milestone complete (18/18). Repo renamed from simplebooks-next to simplebooks.

Skillexis — Idle

No activity. One issue (#172) remaining for the simulation practice milestone.

Synaxis-h — Dead code + accessibility (1,150 lines removed)

Scout pass #10 found what nine previous passes missed — three unused PDF layout templates (940 lines) and 80 orphaned CSS utilities (173 lines). Mobile nav got proper aria-hidden toggling and focus management. Total: ~1,150 lines removed.

Cross-cutting themes

Massive test infrastructure buildout. Scholexis went from 0 to 75 tests. Dinly doubled from 33 to 65. Eclectis added 28 handler tests. Every project that ran a scout found untested critical paths.

Security hardening across the fleet. Authexis, Dinly, Eclectis, Scholexis, and SimpleBooks all shipped ownership verification, rate limiting, or input sanitization. Multiple IDOR vulnerabilities found and fixed.

Architectural rewrites. Authexis rebuilt its content model. Phantasmagoria switched from roller-first to narrative-first generation. Prakta completed the serve-don’t-show experience. These aren’t incremental — they’re fundamental changes to how each product works.

Fleet infrastructure maturation. The migration to speedy, fleet.toml consolidation, rollover pipeline, and marketing agency framework represent the fleet evolving from “a bunch of tmux sessions” to a managed system with centralized config, automated daily operations, and a marketing capability.

The NVN atom. The marketing agency’s first real engagement proved the hermetically-sealed prompt architecture works. Role + guide + template + inputs → deliverable. The methodology improved from its first review cycle.

Carry-over

  • Rollover pipeline — disabled due to bugs (#546 decomposed into #547-#551). Manual rollover ran for this day.
  • Authexis — deprecated handlers still registered, guidepost prompt needs real-world testing, Sentry error on c.style column
  • Dinly — full planning flow still untested end-to-end in browser (carry-over since March 19!)
  • Eclectis — positioning brief next NVN move, PostHog/Sentry verification
  • Phantasmagoria — integrate narrative-first prompts into real generators (test harnesses work, production code doesn’t use them yet)
  • Prakta — deploy to production and smoke-test serve flow
  • Scholexis — 2 remaining issues need clarification (#64, #65)
  • SimpleBooks — clean npm install needed after repo rename

Risks

  • Authexis parallel agent conflict — two agents modified the same file independently, causing database locks. Need coordination protocol for shared files.
  • Rollover pipeline broken — manual workaround works but nightly automation is offline until #547-#551 land.
  • Dinly full flow untested — 4 days of carry-over. The planning flow may have regressions nobody has caught.

By the numbers

ProjectIssues closedTests addedMilestone status
Authexis30+v2.0 + v2.1 complete
Dinly1827 (38→65)All phases complete, queue empty
Eclectis1528 (135→163)All milestones closed
Marketing3First NVN engagement complete
Paulos30+March 24/24, fleet.toml migrated
Phantasmagoria1Narrative-first architecture working
Prakta14Serve experience end-to-end
Scholexis1375 (0→75)Next.js port 88/90
SimpleBooks5Next.js port complete
Skillexis01 issue remaining
Synaxis-h4+1,150 lines removed
Total~135130

~135 issues closed across 11 projects. 130 tests added. Three architectural rewrites. Fleet migrated to server. Marketing agency operational. The biggest single day in the fleet’s history.

Why customer tools are organized wrong

This article reveals a fundamental flaw in how customer support tools are designed—organizing by interaction type instead of by customer—and explains why this fragmentation wastes time and obscures the full picture you need to help users effectively.

Infrastructure shapes thought

The tools you build determine what kinds of thinking become possible. On infrastructure, friction, and building deliberately for thought rather than just throughput.

Server-side dashboard architecture: Why moving data fetching off the browser changes everything

How choosing server-side rendering solved security, CORS, and credential management problems I didn't know I had.

The work of being available now

A book on AI, judgment, and staying human at work.

The practice of work in progress

Practical essays on how work actually gets done.

When your agents start breaking each other's code

Two agents modified the same file independently and created database locks. The fleet hit 135 issues in one day — and the coordination problem that comes with it.

The removal tax

The most productive thing you can do with a product is take features away. Eighty-nine issues closed across eight projects, and the hardest lesson came from a pipeline that ran perfectly and produced nothing.

The product changed its mind

A product pivoted its entire philosophy mid-session — from 'here's your list' to 'here's your next thing.' The code shipped in the same conversation as the idea. That's not iteration. That's something else.