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

Work log — 2026-03-22

What shipped today

Three major initiatives across a marathon dual-session day: fleet migration to speedy-gonzales, the marketing agency framework with first NVN engagement, and a massive infrastructure hardening pass from the server side.

Fleet migration to server

The entire fleet migrated from the local Mac to speedy-gonzales. 11 sessions now run on the server (supervisor with Discord channels, paulos dev, authexis, eclectis, prakta, dinly, skillexis, scholexis, simplebooks, polymathic-h, synaxis-h). Dev servers accessible remotely via http://speedy.local:<port>. All orchestrate plists installed and cycling. paulos setup server now syncs skills, creds, and Claude config in addition to code and launchd agents. paulos setup fleet command built for full crash recovery — creates all tmux sessions, launches Claude Code, optionally injects /start. Discovered and fixed: Intel path issues in plists (/opt/homebrew/usr/local), dev servers binding to localhost (need -H 0.0.0.0 on server), missing plists for dinly/prakta on speedy.

Discord channel working on speedy’s supervisor — Paul can reach the fleet from his phone.

Rollover pipeline

The rollover skill was created for server-side daily log rotation without stopping sessions. First run at 2am crashed (PATH not in launchd environment), fixed by calling pause/play functions directly instead of shelling out. The 3am retry succeeded mechanically but sessions didn’t recognize the skill — they’d been started before it was committed. Root cause: skills were copies in ~/.claude/skills/, not symlinks. Fixed by replacing all 31 skills with symlinks to the paulos repo. New skills are now automatically available everywhere.

Fleet.toml consolidation

A single config file now defines every project’s repo, path, port, orchestrate interval, and host (server vs. laptop). The launchd status, setup fleet, and workspace resolution all migrated from the scattered workspaces.toml. Issue #486, created yesterday and fully executed today through a chain of issues (#514-#518).

Marketing agency framework

Designed and built an AI marketing agency operating system from scratch. The core insight: the NVN atom (noun-verb-noun) is the minimal unit of work. Every engagement assembles four slots — role, guide, template, inputs — into a hermetically sealed prompt. The monad has no windows.

Framework structure: ARCHITECTURE.md defines the universal NVN pattern. agencies/synaxis/ namespaces Paul’s specific methodology (roles, guides, templates, playbooks, client work). Playbooks are workflow maps that chain NVN moves. The dependency resolver walks up the graph to find what’s missing. The review cycle captures Paul’s corrections. The training protocol improves roles from new material.

Fired the first NVN atom: strategist role + competitive analysis guide + template + Eclectis questionnaire → competitive analysis deliverable. External AI review identified gaps, all corrections flowed back into the role doc, guide, and template. The methodology got smarter from its first client.

Infrastructure hardening (server side)

The morning briefing got three enhancements: daily synthesis scanner (#494), git-based fallback (#496), and needs-clarification issue display (#499). The scout skill expanded to cover Hugo/static sites (#489) and public site reviews (#490). Orchestrate run now prioritizes by label — priority:urgent and priority:high + bug jump the queue (#492). Sweep gained the same priority awareness (#493). Security fixes: shell-escaping in SSH commands (#525), fail-secure webhook auth (#524), JSON error handling in prospect pipeline (#526). The assistant agent (pushover nag every 30 min) was unloaded after Paul flagged the noise (#513).

Completed

Paulos (server — issues closed)

  • #486 Consolidate fleet config into a single source of truth (via #514-#518)
  • #488 Suppress ’no project config found’ for fleet-level commands
  • #489 Scout skill: static site guidance
  • #490 Scout skill: public site review
  • #491 Start/serve: bind to 0.0.0.0 on server
  • #492 Orchestrate: prioritize by label
  • #493 Sweep: priority issue redirect
  • #494 Briefing: daily synthesis scanner
  • #495 Launchd status: last action column
  • #496 Briefing: git-based fallback
  • #499 Briefing: needs-clarification issues
  • #509-#511 CLI/launchd audit and cleanup
  • #514-#518 Fleet.toml migration (5 issues)
  • #524-#528 Security fixes and cleanup (5 issues)
  • #534-#539 Marketing CLI (6 issues)

Paulos (laptop — deliverables)

  • Marketing CLI: engage, status, list-clients commands
  • Dependency guard for NVN atoms
  • Setup server: skills + channels sync
  • Setup fleet: full crash recovery command
  • Notification silencing (pester-only)
  • Dinly/prakta orchestrate plists on speedy

Marketing

  • ARCHITECTURE.md (NVN atom, learning loop, dependency resolution)
  • PRODUCT.md, DECISIONS.md, CLAUDE.md
  • Strategist role doc, competitive analysis guide + template
  • Positioning brief guide + template
  • Onboarding questionnaire template + Eclectis filled version
  • All playbooks (launch sequence, review cycle, training, client onboarding, dependency resolver)
  • Eclectis competitive analysis (first NVN deliverable)
  • 5 blog ideas captured

Release progress

  • March 2026: 24/24 closed (complete)
  • April 2026: 2/2 closed

Carry-over

  • Rollover pipeline needs tonight’s run to verify end-to-end (sessions now have the skill via symlinks)
  • Eclectis positioning brief — guide and template ready, needs Paul’s review before firing NVN atom
  • Writer and launch manager roles need research + revision treatment
  • Marketing session on speedy has stale context — may write to wrong paths
  • Authexis refactor #1543 needs clarification on scope
  • Eclectis throttling #376 — created, needs prep
  • Assistant agent #513 — unloaded, needs purpose review
  • Marketing QA/reviewer role #545 — needs clarification
  • Authexis Sentry AUTHEXIS-14 (c.style column) fired 798 times

Risks

  • Dual-session editing on paulos repo caused merge conflicts. The server’s session built fleet.toml migration while the laptop built marketing. Need a coordination protocol.
  • Rollover untested at scale — tonight is the first real run with sessions that know the skill.
  • Authexis post-simplification stability — Sentry error suggests a query referencing a removed column.

Flags and watch-outs

  • Skills are now symlinks — if the paulos repo’s skills/ directory moves, all sessions break
  • Fleet.toml is the source of truth — workspaces.toml is deprecated
  • The paulos marketing engage command writes prompts to /tmp/nvn-{client}-{deliverable}.md — these accumulate
  • Speedy’s dev servers need -H 0.0.0.0 — the /serve skill was updated but existing sessions may not know this

Next session

  1. Verify rollover ran successfully at 2am
  2. Fix Authexis Sentry AUTHEXIS-14 — c.style column query
  3. Fire positioning brief NVN atom for Eclectis (Paul to review guide first)
  4. Establish coordination protocol for paulos repo — which session owns what
  5. Research + build writer role for marketing
  6. Generic role descriptions for marketing (alongside strategist-thinking.md)

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 removal tax

The most productive thing you can do with a product is take features away. Eighty-nine issues closed across eight projects, and the hardest lesson came from a pipeline that ran perfectly and produced nothing.

The product changed its mind

A product pivoted its entire philosophy mid-session — from 'here's your list' to 'here's your next thing.' The code shipped in the same conversation as the idea. That's not iteration. That's something else.

Your project management tool was made for a non-human (AI) factory, not for you

Every project or task management tool on the market descends from Frederick Taylor's factory floor. The assumptions were wrong then. They're catastrophic in the Age of AI.