Paul Welty, PhD AI, WORK, AND STAYING HUMAN

Synthesis: March 3, 2026

Projects active

  • Authexis — Apple app navigation fix, social queue pipeline, API data model cleanup, RLS security, form UX
  • Eclectis — Full launch: landing page, Stripe billing, analytics, error tracking, SEO
  • Paulos — New social command replacing broken Zapier pipeline
  • Polymathic-h — Milestone closure, newsletter delivery, RSS timestamp cleanup

The throughline: closing loops

Four projects, one pattern: finishing things. Eclectis went from “works locally” to deployed and billable. Authexis closed four milestones worth of accumulated work. Polymathic-h closed its Feb enhancements milestone — 17 issues, clean board. Paulos replaced a broken pipeline with something testable. Every project today was about converting accumulated work into completed, shippable state.

This isn’t cleanup. It’s the organizational act that turns progress into accomplishment. The blog post Paul promoted today — “Your biggest problems are the ones running fine” — was literally the thesis of the engineering work happening in parallel. Systems that look fine but aren’t. The Authexis API was silently concatenating fields in a way that made character budgets fragile. Polymathic-h had 35 posts with midnight timestamps because AI-generated frontmatter never bothered with real times. The Zapier pipeline had been broken and nobody noticed because the workaround (doing nothing) was silent.

Cross-cutting themes

LLMs can’t count, but they can be corrected

The paulos social pipeline hit a fundamental limitation: LLMs cannot reliably count characters. Prompting with “stay under 300 characters” produced ~50% over-limit posts regardless of how the instruction was phrased. The solution — generate first, measure programmatically, then re-prompt with “shorten to exactly N characters” — worked immediately. This is the pattern: don’t ask the LLM to do what it structurally can’t. Verify and correct. The same approach could apply to any constrained-output generation (structured data, form filling, API payloads).

API design surfaces at the boundary

Authexis #748 is a small issue with a big lesson. The social-posts endpoint was concatenating content + URL + hashtags into a single field, which seemed fine from the server’s perspective but made the caller’s job impossible — you can’t budget characters for something you don’t control. The fix (store separately, assemble at publish time) is obvious in retrospect. The pattern: when two systems meet, the one that publishes should own assembly. The one that creates should own content. Mixing those responsibilities creates invisible coupling.

Parallel agents need isolation

Eclectis launched by running four grind agents in parallel for infrastructure issues (analytics, error tracking, usage tracking, SEO). The agents produced good work but on shared branches — no worktree isolation — requiring manual cherry-picking to untangle. The work itself was correct; the process was fragile. If parallel agents are going to be a regular pattern, worktree isolation needs to actually work, or the parallelism strategy needs to change.

Milestone closure is a forcing function

Three projects closed milestones today. The act of closing forces a reckoning: what’s actually done, what’s pretending to be done, what was never going to happen. Authexis discovered it had four fully-closed milestones that nobody had formally closed. Polymathic-h’s “Feb enhancements” was 17/17 but still sitting open. The milestone isn’t done when the last issue closes — it’s done when someone says it’s done. (The blog post wrote itself today.)

Status snapshot

ProjectMilestonesState
Authexisv1-apple, v1, v1-marketing, v2 ready to close; v1.5 3/4; v2-apple 4/9Closing wave, then v2-apple push
EclectisM1-M4 all closed (28/28 issues)Launched, needs production config
PaulosMarch 2026: 10/12Near close
Polymathic-hFeb enhancements closed; April 2026: 0/1Clean board

Risks

  • Eclectis production is live but not wired. Stripe keys, service role key, Sentry, PostHog — none configured in Vercel yet. The site is up but billing and webhooks won’t work. This is the highest-priority carry-over across all projects.
  • Authexis engine deploy needed. The social publisher assembles content + URL + hashtags per platform, but that code change hasn’t been deployed to Railway yet. Social posts will queue but may not publish correctly.
  • Paulos social pipeline is caller-side only. If Authexis’s publisher doesn’t assemble posts the way paulos assumes (content + \n\n + url + \n\n + hashtags), character limits will be wrong.

Carry-over

  • Eclectis: production env vars, Stripe webhook registration, billing migration, smoke test
  • Authexis: deploy engine to Railway, close 4 milestones, test Zapier → publish flow
  • Paulos: social run end-to-end for remaining 4 blog posts, server-side .env verification
  • Polymathic-h: verify newsletter delivery, check CF build speed, Apple podcast artwork propagation

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.

Your process was built for a different speed

When work changes velocity, governance systems don't just fall behind. They become theater. And theater is worse than nothing—it gives you the feeling of control without any of the substance.

The difference between shipping and finishing

Shipping is mechanical. Finishing is a judgment call. And most organizations have quietly made it impossible to tell the difference.

Nothing is finished until you say it is

Continuous delivery removed the endings from work. That felt like progress. But without formal completion, you lose the ability to say what you actually accomplished — and more importantly, what you're done thinking about.