Paul Welty, PhD AI, WORK, AND STAYING HUMAN

What shipped today

No code changes — short session focused on reviewing the state of the Deflective Dan demo milestone. Ran /start to confirm the queue is empty (all 5 demo issues from yesterday’s grind are merged and closed). The carry-over from yesterday remains: the demo code is written but needs a live Supabase instance to test the full anonymous sign-in → chat → diagnostic feedback flow.

The milestone is 7 days out (Feb 28) and the code is complete. The remaining work is infrastructure setup and integration testing, not feature development.

Completed

  • Session start and status review — confirmed clean tree, zero open issues, all checks passing

Carry-over

  • Connect real Supabase instance with credentials in web/.env.local
  • Enable anonymous auth in Supabase dashboard (Authentication → Providers → Anonymous sign-in)
  • Run all migrations including demo workspace seed (20260220000001_demo_workspace.sql)
  • Full E2E test in Chrome incognito: marketing page → “Try Deflective Dan” → anonymous chat → diagnostic feedback → signup CTA

Risks

  • Demo flow still untested against a live Supabase instance — this is the only remaining risk before the Feb 28 deadline
  • Anonymous auth + demo workspace RLS interaction is the critical path that could surface issues

Flags and watch-outs

  • Next.js 16 deprecated middleware in favor of proxy (cosmetic warning)
  • 3 pre-existing useEffect dependency warnings in simulation chat components

Next session

  • Priority 1: Set up Supabase project (or connect existing one) — real URL and anon key in .env.local
  • Priority 2: Enable anonymous sign-in in Supabase dashboard, run migrations
  • Priority 3: Full E2E test of demo flow in Chrome incognito
  • If demo works: /scout for polish issues (error messages, loading states, edge cases)
  • If demo breaks: debug the anonymous auth + RLS interaction and fix

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 smartest code you'll ever delete

The most dangerous kind of waste isn't the thing that doesn't work. It's the thing that works beautifully and shouldn't exist.

The first real user breaks everything

Your product works until someone actually uses it. The gap between 'works in dev' and 'works for a person' is where most systems fail — and most organizations avoid looking.

The loop nobody bothers to close

Most systems observe. Almost none learn. The difference is a feedback loop — and the boring cleanup work that makes it possible.