Paul Welty, PhD AI, WORK, AND STAYING HUMAN

Work log: paulos social pipeline

What shipped today

The broken Zapier pipeline that turned blog posts into social media blurbs is now a proper CLI command. paulos social handles the full lifecycle: parse the RSS feed, generate platform-tuned blurbs using the LLM with Paul’s voice guidelines, and push them to Authexis for scheduling. Each step is independently runnable for debugging, or chained with paulos social run for automation.

The interesting engineering problem was character limits. Bluesky (300 chars) and Mastodon (500 chars) have hard ceilings, and those limits apply to the assembled post — content plus URL plus hashtags. LLMs fundamentally cannot count characters, so prompting alone produced ~50% over-limit posts. The fix: generate first, then programmatically measure and re-prompt with an explicit “shorten to N characters” instruction. Nuclear fallback truncates at the last sentence boundary. After that, every post came in under limit.

The blurb generation also surfaced a useful pattern around Authexis’s API design. The v2 social-posts endpoint was concatenating content, source_url, and hashtags into a single content field server-side, which made character budgeting from the caller’s side fragile and error-prone. Filed authexis#748 and it was resolved same-session — the API now stores them as separate fields and lets platform adapters handle assembly.

Completed

  • paulos social command group (fetch, generate, push, run –dry-run)
  • authexis#748 — social-posts API field separation

Release progress

  • March 2026: 10/12 closed

Carry-over

  • Social blurbs generated and pushed for “Your biggest problems are the ones running fine” — 4 other unprocessed RSS entries remain
  • paulos social run not yet tested end-to-end (individual steps verified)
  • Bluesky character limit enforcement could still occasionally miss by a few chars on the shorten retry — worth monitoring

Risks

  • Authexis platform adapters need to correctly assemble content + URL + hashtags per platform when publishing. If the adapter logic doesn’t match what we assume (content + \n\n + url + \n\n + hashtags), posts could still exceed limits or look wrong.

Flags and watch-outs

  • The AUTHEXIS_SOCIAL_API_KEY is in the local .env — make sure it stays out of git
  • VOICE.md dependency: blurb generation reads ~/Projects/polymathic-h/VOICE.md at runtime. If that file moves, generation falls back to a minimal prompt.

Next session

  • Run paulos social run end-to-end for remaining 4 unprocessed blog posts
  • Verify posts appear correctly in Authexis queue with proper platform assignments
  • Test the full pipeline on the server (ssh deploy is done, but need to confirm .env has the key there too)
  • Consider adding paulos social to a cron or scheduled trigger for automation

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.