Work log — 2026-03-31
What shipped today
The orchestrate loop underwent a complete architectural overhaul, moving from persistent tmux sessions to immutable jobs. The old model kept long-running Claude Code sessions alive for every project — 15+ tmux sessions accumulating context rot, each one slowly degrading until it confused itself or hit limits. The new model treats every piece of work as a subprocess: claude -p runs in the project directory, loads context from the repo’s CLAUDE.md and skills, executes, and exits. No session state survives between jobs. Knowledge lives in the repos, not in memory.
This required two passes. The first built run_job() around ephemeral tmux sessions — create, execute, kill. Paul correctly pointed out this was still tmux, not the immutable execution atom he’d described. The second pass replaced the tmux lifecycle entirely with subprocess.run(["claude", "-p", prompt]). Only Charlie (the paulos session) retains a persistent tmux session for interactive work. Everything else is a subprocess that starts, works, and dies.
Along the way, the Airtable backend was ripped out entirely (dead code since the newsletter project was shut down), and run_eod() and run_rollover() were converted to use run_job() for their per-project steps. The test suite grew from 31 to 40 tests covering the new subprocess-based runner, gate functions, timeout handling, and the persistent/ephemeral split.
Completed
- Immutable job runner (
run_job+_run_cli) usingclaude -psubprocess - Rewired
run_cycle(),run_eod(),run_rollover()to userun_job() - Removed Airtable backend (airtable_client.py, activity_log integration, tests)
- Removed newsletter workspace from workspaces.toml
- Added Charlie/Synaxis identity to CLAUDE.md (COO framing, org chart)
- Killed all 15 stale tmux sessions
Release progress
- March 2026: 24/24 closed (complete)
- April 2026: 2/2 closed
Carry-over
- Cron for nightly EOD:
run_eodneeds to run at 11pm on speedy-gonzales. Paul said “not yet” — revisit next session. - Blog post “Kill your sessions”: draft in polymathic-h, needs Paul’s voice pass before publishing.
- Deploy to server: the new orchestrate code needs
git pullon speedy-gonzales to go live. - First real test: run
paulos orchestrate run -p authexisto watch theclaude -plifecycle in action.
Risks
- The
claude -ppath is untested in production. First real run will validate that skills load correctly when invoked via-pflag in a project directory. If skills don’t load, we’d need to pass the skill content explicitly in the prompt. - No automated EOD means work logs won’t be written unless someone runs
/closemanually or sets up the cron.
Flags and watch-outs
PERSISTENT_SESSIONS = {"paulos"}is the kill switch. If another project needs persistence temporarily, add it to the set.- The
_inject_and_waitpath still exists for Charlie’s tmux session — it’s not dead code, it’s the persistent-session path used by sum-up, reflect, and any direct paulos orchestrate work.
Next session
- Deploy updated orchestrate to speedy-gonzales (
ssh paul@speedy-gonzales... && git pull) - Test
paulos orchestrate run -p authexisend-to-end with theclaude -prunner - Set up nightly cron for EOD when Paul gives the green light
- Review and publish the “Kill your sessions” blog post draft
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 case for corporate amnesia
Most organizations worship institutional memory. But what if the thing they're preserving is mostly decay?
Your design philosophy is already written
Builders who work across multiple projects leave fingerprints everywhere. The same mind solves the same problem differently in every domain — and usually doesn't notice. You need someone to read it back to you.
The day nothing satisfying happened
The most productive day in an organization's life usually looks like nothing happened. No launches, no features, no announcements. Just people quietly making the existing work more honest.