Paul Welty, PhD AI, WORK, AND STAYING HUMAN

Work log: March 8, 2026

What shipped today

The session started with a full triage pass — 21 open issues classified and routed in batch auto mode. Several duplicates were caught and closed (#798, #801, #785 duplicated already-specced work in the scrape feed chain), and the rest were sorted into prep, decompose, backlog, or clarification buckets. This cleared a backlog that had been accumulating and gave the pipeline a clean queue to work from.

Four features shipped. The daily briefing email now includes an “upcoming social posts” section that shows the next 7 days of scheduled posts — platform badge, date, and content preview — so workspace owners can see what’s coming without opening the app (#803). Prospect stage tracking landed on workspaces (#794): a new prospect_stage column with a state machine (none → cold → outreach → warm → trial → customer), colored badges in the admin workspace list, a stage filter dropdown, and edit support in the workspace dialog. The database migration, server actions, and admin UI all shipped in one PR.

On the infrastructure side, a redirect bug was fixed where authexis.app was 307-redirecting to www.authexis.app, which stripped Authorization and X-API-Key headers from API requests (#818). The fix moved the redirect into Next.js middleware so API routes are exempted, and the Vercel domain was reconfigured via CLI to serve directly instead of redirecting. Finally, the blog queue got its automated publish handler (#817) — a new engine handler blog.publish_queue that generates Hugo frontmatter, pushes markdown to GitHub via REST API, and updates the blog_queue status. A matching blog_publish_now assistant tool was added so the chat interface can trigger publishing on demand.

Completed

  • #803 — Add upcoming social posts to daily briefing
  • #794 — Prospect state machine — cold to warm to customer
  • #818 — API redirect from authexis.app to www loses auth headers
  • #817 — Blog queue needs automated publish handler
  • #798, #801, #785, #808 — Closed as duplicates or resolved

Release progress

  • v2: 18/20 closed (due 2026-04-01). Two open: #797 (intro prompt cleanup), #742 (layout alternatives).
  • v1-outbound: 7/19 closed (due 2026-04-14). Today added prospect stage (#794). 12 open across prospect pipeline, admin UI, and email tooling.
  • v1.5: 3/5 closed. Dashboard redesign and marketing email system remain.

Carry-over

  • Blog publish handler needs Railway deploy to go live
  • Follow-up issues created: #814 (auto prospect stage transitions from email events), #815 (dashboard prospect funnel view), #816 (remote MCP transport)
  • Scrape feed chain (#804 → #805 → #806 → #807) is fully specced and ready-for-dev — good grind candidates

Risks

  • The Vercel domain change (authexis.app serving directly) was done via CLI remove+re-add. If DNS propagation or Vercel edge caching causes issues, the bare domain may temporarily not resolve. Verified working post-change.

Flags and watch-outs

  • The blog publish handler uses httpx for GitHub API calls. If the engine doesn’t have httpx in its deployed dependencies, the handler will fail on first invocation. Verified it’s available locally (0.28.1).
  • Content research file at /tmp/authexis-content-research.md was created for Paul — 49 in-progress content items across 4 workspaces.

Next session

  • Deploy engine to Railway so blog publish handler goes live
  • Grind the scrape feed chain: #804, #805, #806, #807 (all ready-for-dev, sequential dependency)
  • Prep remaining ready-for-prep issues: #816 (MCP remote transport), #815, #814, #809, #810, #793, #789, #790, #787
  • v2 is at 90% — consider closing out #797 (intro prompt) and #742 (layout) to finish the milestone

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 job you didn't know you were hiring for

Most organizations hire for tasks. The ones that survive hire for attention. And attention turns out to be the hardest thing to delegate.

The second project problem

Your system works. Then you try it somewhere else and it falls apart. The gap between 'works here' and 'works anywhere' is where most automation dies — and most organizations never look.

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.