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

Work log: Polymathic — March 12, 2026

What shipped today

A massive cleanup and infrastructure day for the blog. Nine issues closed in a single session, clearing the entire March 2026 milestone and leaving the issue queue nearly empty.

The biggest structural change was the podcast player refactor. Hardcoded audio player HTML was stripped from all 55 podcast posts (#105) after moving the player to a template-level component in single.html (#104). This means podcast posts are now pure markdown — the audio player renders automatically from frontmatter fields (audio_url, duration, file_size). A follow-up issue exists in paulos (#394) to update paulos podcast generate-audio so it stops injecting HTML into post content going forward.

The newsletter archive page (#106) got a significant template rewrite. The old approach sorted by post date, which broke when existing essays were repurposed as newsletters (edition 14 was an essay dated February 2 that got sent as a newsletter on March 10). The new template sorts by edition number and groups multi-article editions (editions 1-6 had multiple posts per edition) into collapsed entries instead of showing duplicate rows.

The rest was scout-generated cleanup: dead search JavaScript removed from baseof.html (#95), Bluesky and Mastodon added to JSON-LD sameAs (#96), stale newsletter HTML templates deleted (#97), footer contact info moved to hugo.toml params (#98), 10 posts with invalid content_type values fixed (#99), and a Procfile.dev added for consistent dev server flags (#110).

Completed

  • #94 — Fix 9 posts with invalid content_type values
  • #95 — Remove dead search JavaScript from baseof.html
  • #96 — Add Bluesky and Mastodon to JSON-LD sameAs array
  • #97 — Remove 3 stale newsletter HTML templates from repo root
  • #98 — Footer still hardcodes contact info instead of using hugo.toml params
  • #104 — Add template-level audio player to single.html
  • #105 — Strip hardcoded audio player HTML from all podcast posts
  • #106 — Newsletter archive ordering fix
  • #110 — Add Procfile.dev with –buildFuture –buildDrafts flags for dev server

Release progress

  • March 2026: 7/7 closed — milestone complete, ready to close
  • April 2026: 2/3 closed (1 open: #8 syndicated content, backlogged)

Carry-over

  • Close the March 2026 milestone (all issues done)
  • Verify security headers live: curl -I https://www.paulwelty.com/
  • Verify AI-DIVE talk post links after deploy
  • Check edition 13+14 delivery stats in Brevo
  • Update Brevo sender name to “Philosopher at Large”

Risks

  • paulos#394 (stop injecting HTML in paulos podcast generate-audio) is still open — any new podcast posts created before that lands will still get hardcoded HTML injected, requiring manual cleanup

Flags and watch-outs

  • The March milestone is fully closed but the milestone itself hasn’t been closed on GitHub yet
  • Only 2 open issues remain (#8 backlogged, #79 backlogged) — queue is nearly empty, good time for a /scout run or /feature planning

Next session

  • /milestone close "March 2026" to close the completed milestone
  • Run /scout --auto to replenish the issue queue
  • Consider /feature for the audio/podcast rethink (removing hardcoded HTML from the generation pipeline entirely)
  • Check Brevo for edition 13+14 stats and update sender name

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 machine is eating faster than you can feed it

Sixty-three issues closed across thirteen projects in one day. Four milestones completed. And the hardest problem wasn't building — it was keeping up with what you've already built.

The proxy problem

Every organization has this problem: knowledge locked inside one person's head. Today I accidentally designed a solution — and it has nothing to do with documentation.

True 1-to-1 outreach is finally possible with AI

The 1-to-1 personalization promise is thirty years old. It never worked because understanding each person was too expensive. AI changed the economics.