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

Synthesis: April 4, 2026

Synthesis: April 4, 2026

Nine projects shipped today. Diktura went from a port to a deployed product. Security hardening swept through three projects simultaneously. The agency backlog went from 22 to 5 issues. The blog pipeline produced seven drafts across two voices. And underneath all of it, the fleet’s observability infrastructure finally closed its loops — Sentry, Vercel costs, PostHog events, all connected and reporting.

The day’s volume is staggering: roughly 80+ issues closed across the fleet, hundreds of lines of security fixes, a product launched to production, a monorepo migration completed, and four interconnected essays drafted on the dissolution of knowledge work. This was the fleet running at full capacity with Paul actively dispatching.

Diktura — From port to deployed product

The standout project of the day. 40 commits, 30+ issues closed, and diktura.com is live on Vercel for the first time. The session started with deployment (#101), hit two production bugs immediately (Next.js env var inlining and Supabase auth redirect), fixed both, and kept building.

The morning built workspace management (create, switch, edit profile, change password), then the support system from scratch (schema with RLS, list/detail pages, widget endpoint, 9 tests), then knowledge base (articles + categories, dashboard CRUD, public help center at /help/[subdomain]), then unified inbox (aggregated activity + customer timeline).

The afternoon built widget v2 with configurable multi-module architecture (feedback, support, roadmap, KB search, AI chat), an AI chat endpoint with streaming Claude responses grounded in KB articles, inbound email webhook receiver, branding, nav reorganization, and integrations placeholder. 119 tests total.

The product vision shift from yesterday — “unified customer interaction platform” — was backed up with features today. PRODUCT.md now lists 17 built features. The product went from zero to deployed in two days.

Synaxis AI — Backlog blitz and blog production

Started with 22 open issues, ended with 5. Closed 5 superseded architecture issues from the pre-skills era, 7 completed issues, and then the dev-loop ground through the ready-for-prep queue: client notifications (#60), loop batching (#62), agency-ask hardening (#64), PRODUCT.md staleness (#70), dead deliverables (#73), webhook auth deployment (#76), outbound email utility (#77), map.html generator (#55), T3 guide template (#81), credential management (#78), CLI integration (#79).

Infrastructure shipped: webhook endpoint authentication (token deployed to Railway, Brevo URL updated), error handling on the webhook handler (Notion outages no longer crash it), outbound email utility (send as any persona via Brevo). The engagement and deliverable catalogs were created — ENGAGEMENTS.md lists 3 built + 14 prospective types, DELIVERABLES.md lists 14 built + ~25 prospective.

Three blog posts went through editorial: “I ran my AI agency’s first real engagement” (near-final), “The agency in 2026” (full editorial pass), “How to design your AI agent org chart” (brainstormed, written, one editorial round). All at draft: true.

Authexis — Sentry zero, Vercel optimized

The Sentry backlog reached zero unresolved for the first time. The dev-loop triaged 10 issues (8 stale, 1 false positive, 1 to backlog), then a second scout bulk-resolved all 27 remaining across both Sentry projects. The correct sentry-cli syntax (-i flag) was discovered — the dev-loop skill had it wrong.

Vercel optimization completed across all four Vercel projects (authexis, eclectis, prakta, dinly). Paul applied the Standard machine + exit 0 settings to the remaining three projects. Estimated monthly savings: ~$96/mo.

Security: anthropic Python SDK upgraded from 0.86.0 to 0.89.0, patching two CVEs (memory tool path validation sandbox escape). The curated briefing feature (#1916) went through a full clarification cycle, course-corrected (article curation belongs in Eclectis, not Authexis), and all authexis issues were closed with a single eclectis issue filed.

Eclectis — PostHog instrumented

PostHog was broken since initial setup — the API key had zeros where there should have been capital O’s. Fixed across all Vercel environments and then instrumented the entire product in one session: impressions dual-write (#673), error boundary events (#675), onboarding funnel with 7 milestones (#671), session replay (#674), and feature adoption events across feeds, search, settings, briefings, exports (#672). Created trackProductEvent helper for PostHog-only analytics.

Scout findings: pipeline query parallelization (#667) and composite index on processed_posts (#670) both shipped. Sentry investigation found both unresolved errors were browser noise — resolved.

Dinly — Security sweep

12 issues closed in a single day, nearly all security and error-handling. The critical find: an open redirect vulnerability in the auth callback (#370) — the next parameter was used without validation. Four lines of validation plus 5 tests closed it.

Email notifications now use Promise.allSettled so one Brevo failure doesn’t kill remaining sends (#365). The cadence-nudge cron had 4 silently-ignored Supabase query errors (#372). Two forms had try/finally without catch (#375). Recipe forms got error display (#368). Input validation added across 3 input types (#373). Performance: unbounded query capped (#371), composite indexes added (#374), parallel writes in finalizePlan (#376). Tests: 327 → 341.

Prakta — Security hardening

11 issues closed. The Stripe checkout route was accepting arbitrary price IDs — now validates against an allowlist. Checkout redirect URLs used a client-controlled origin header — now uses server-side config. Stripe webhook handler had null-check issues on customer fields. @anthropic-ai/sdk upgraded for a sandbox escape CVE. Onboarding route validated. Config PATCH filtered against a 7-field allowlist. Serve route consolidated Supabase clients and parallelized queries. Terms/privacy pages unblocked from auth middleware.

Two scout runs identified all the work. Zero dead code found — clean codebase. The concern: zero automated tests. Every fix was verified by tsc --noEmit only.

Phantasmagoria — Monorepo merge, Forge World archived

Forge World was merged into Phantasmagoria. The session discovered that the render pipeline and AI generators belong together — Paul’s insight led to a 9-task migration plan, all executed: dead code cleanup, file copy, AI pipeline restructured into phmg/, generator package moved, all imports fixed across 20+ files, docs rewritten. 29 web tests + 24 engine tests + CLI dry-run all pass. Forge World repo archived, Vercel and Railway relinked.

Before the merge: security headers expanded (#82), CSP header added (#83), desktop nav active route highlighting (#87). After: Supabase/auth stripped from v1 (1,950 lines deleted, 65 → 29 tests), scout found 5 issues, render feature fully designed and speced.

Then the test suite repair: 27 root test files had stale imports after restructure. Fixed all, 436/451 passing (15 pre-existing).

Polymathic-h — Four-essay series

Paul’s “post-AI conversation” from February became a four-essay series through live collaborative editing. The core thesis: knowledge work artifacts are lossy coordination protocols between minds that can’t sync directly. AI doesn’t automate knowledge work — it eliminates the cognitive limitation that made it exist.

Essay 1 (“Knowledge work was never work”) is near-publishable — the “PowerPoint is the shittiest API ever built” framing. Essay 2 (“What was the firm for?”) has the most philosophical ambition — cognitive scarcity, Keynes comparison, sufficiency as three distinct claims. Essay 3 (“The overhead economy”) self-implicates (“I run a consultancy… I’m building things whose reason to exist is disappearing”). Essay 4 (“The machine-self has no machine to run on”) connects to Paul’s book — the identity argument. Publication sequence matters: 1→2→3→4.

Charlie’s freetime session independently discovered stigmergy and drafted a companion piece (“Coordination is a property of the room”) — the theoretical framework for why the fleet’s architecture works.

Paulos — Observability and governance

Sentry pipeline fully connected: scout skill upgraded with sentry-cli triage and resolve-as-you-go, authexis Sentry triaged (16 trash resolved, 10 real issues filed). Auth boundary documented as hard rule in CLAUDE.md and PRODUCT.md — subscription for interactive, API for automation. Social pipeline decoupled from /reflect (#674). #659 and #564 closed (resolved by existing architecture / wrong direction post-ToS). Two-category framework for periodic jobs documented in #675.

Cross-cutting themes

Security hardening across the fleet

Three projects (dinly, prakta, authexis) independently ran security-focused scout passes today, finding and fixing: open redirect, Stripe validation, SDK CVEs, auth callback issues, input validation, silent error swallowing. The fleet is getting harder simultaneously — scout runs propagate the same security consciousness across every project.

Vercel cost discipline

All four Vercel projects (authexis, eclectis, prakta, dinly) now on Standard machines with manual-only deploys. ~$96/mo saved. Every CLAUDE.md updated with the new deploy workflow. This was a two-day effort that started with one audit and spread fleet-wide.

Observability loops closing

PostHog fixed and instrumented on eclectis. Sentry at zero unresolved on authexis. Paulos scout skill now includes Sentry triage. The fleet went from “errors accumulate silently” to “errors create GitHub issues automatically” in two days.

Writing as thinking

Seven blog drafts across two voices. Paul’s four-essay series is the most ambitious writing since the book. Charlie’s stigmergy piece provides the theoretical foundation. The Synaxis engagement posts provide the concrete evidence. Together they form a publication corpus that establishes the intellectual framework for what the fleet is demonstrating in practice.

Max plan quota

15% used by Saturday with a Friday reset. The global model setting (all sessions run Opus) means quota management is about session discipline — kill idle loops, drive work manually — not model routing. This is the fleet’s first real resource constraint.

Carry-over

  • Diktura production testing — deployed but untested against real Supabase. AI chat needs ANTHROPIC_API_KEY on Vercel. 5 clarification issues blocking.
  • Blog publication sequence — 7 drafts (4 Paul essay series, 2 Synaxis engagement pieces, 1 Charlie stigmergy). Order matters. Editorial suggests Synaxis pieces first.
  • Authexis product launch engagement (#66) — 9 deliverables, the real stress test.
  • Phantasmagoria render feature (#270) — spec written, needs implementation plan. The core product feature.
  • Prakta has zero tests — 11 security fixes shipped with only type-checking.
  • Max quota — monitor daily burn, adjust session management if trending over 14%/day.

Risks

  • diktura.com deployed with zero integration tests — 119 unit tests, all mocked. First real user = first real test.
  • Prakta zero test coverage — security fixes verified by tsc only.
  • Max plan quota — 15% in one day. Sustainable if most days are lighter; unsustainable if every day is a 9-project fleet day.
  • Railway deployments — synaxis-ai server.py updated but Railway may not have auto-redeployed. Webhook auth may not be live.
  • Phantasmagoria AI pipeline — restructured but not exercised end-to-end.

By the numbers

ProjectIssues closedKey metric
diktura30+Deployed to production, 17 features, 119 tests
synaxis-ai2722→5 open issues, 3 blog posts edited, engagement catalogs
authexis20+Sentry zero, Vercel optimized, SDK CVEs patched
dinly12Security sweep, open redirect patched, 341 tests
eclectis12PostHog fully instrumented, pipeline optimized
prakta11Security hardening, Stripe validation, auth fixes
phantasmagoria10+Monorepo merge, Forge World archived, render speced
polymathic-h0 (4 essays)Four-essay series on knowledge work dissolution
paulos3Sentry pipeline, auth boundary docs, scout upgraded
Total~125+9 projects, hundreds of commits

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.

The bottleneck moved and nobody noticed

When execution becomes nearly free, the bottleneck shifts from doing the work to deciding what work to do. Most organizations are optimized for the wrong constraint.

The inbox nobody reads is the one that matters

Every organization has a monitoring system that works perfectly and reports to nobody. The gap between having information and acting on it is where most failures actually live.

The best customers are the first ones you turn against

Every subscription makes a bet that most customers won't use what they're paying for. The customer who closes that gap becomes a problem to be managed.