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

2026-04-01 — The big build-out

What shipped today

Today was the largest single-day build in the project’s history — 18 commits across three themes: methodology completion, engine architecture, and a major architectural pivot.

Methodology matured into a complete deliverable system. The morning started with frontmatter on all guide files and an auto-generated methodology map (map.html) that visualizes the entire skill/deliverable/persona structure from the filesystem. Four new deliverable types shipped: voice docs, retrospectives, launch checklists, and email sequences — each with a guide and template. The skill file structure was normalized so every skill follows the {name}/prompt.md convention. The methodology now covers the full agency workflow from intake through post-engagement learning.

The engine went through a full architectural cycle in one day. We built it up — Railway deployment, Brevo inbound email webhook with Notion comms logging, persona scheduling via launchd/systemd/cron, Haiku-based evaluation for Trina’s should-I-respond logic, and a tick loop that invoked Trina as PM. Then we tore the persistent parts back down. The realization: stateless invocation via claude -p (the same pattern Skopos uses) is simpler and more reliable than a persistent server process. The engine was stripped to webhook-only, and then the tick loop, server.py, scheduling infrastructure, and persistent persona code were all removed. What remains is clean: an inbound email webhook that routes to the right client context, and everything else runs as ephemeral Claude subprocesses dispatched by paulos orchestrate agency.

Issue triage brought clarity. 28 issues were closed — a mix of completed work (#32 map generation, #33 dead code removal, #17 email sequence guide) and superseded engine issues (#6 tick loop, #7 persistent hosting, #34-36 structured actions) that no longer apply after the architectural pivot. The backlog is now honest: 10 open issues, mostly architecture exploration and the blocked Slack apps work.

Completed

  • #33 — Remove dead engine code: server.py, tick loop, scheduling, persistent persona infrastructure
  • #32 — Auto-generate methodology/map.html from filesystem
  • #30 — Make engine deployable to Railway
  • #29 — Inbound email webhook: receive [email protected]
  • #28 — Persona startup: launchd/systemd/cron for scheduled start/stop
  • #25 — Unified dispatch: merge dev-loop and agency work under one orchestrate loop
  • #24 — Run agency personas via claude -p like Skopos
  • #23 — Rename project folder from marketing to synaxis-ai
  • #22 — Add YAML frontmatter to all guide.md files
  • #21 — Clean up skill file structure
  • #20 — Voice doc: create deliverable folder, guide, and template
  • #19 — Retrospective: write guide and template
  • #18 — Launch checklist: write guide and template
  • #17 — Email sequence: write guide.md
  • #12 — Trina: evaluation model optimization (Haiku for should-I-respond)
  • Closed as superseded: #1, #2, #3, #4, #5, #6, #7, #13, #27, #31, #34, #35, #36

Release progress

  • Phase 1: Internal clients — 0/0 closed (milestone exists but no issues assigned yet)

Carry-over

  • #38 — Fix CI — open, needs investigation
  • #37 — Subtask tracking per deliverable — design question, needs Paul’s input
  • #26 — Create Slack apps for Maya, Sydney, Igor, Alex — blocked on Slack app creation (requires manual dashboard work)
  • #14 — Run a real end-to-end engagement — the litmus test for the whole system, sitting in backlog

Risks

  • The engine pivot means the inbound email webhook is the only deployed infrastructure. If Brevo webhook delivery fails, there’s no fallback path for client email intake.
  • No CI is passing (#38) — merged code isn’t being validated.

Flags and watch-outs

  • The architectural pivot from persistent engine to stateless dispatch is the right call, but the DECISIONS.md and ARCHITECTURE.md entries need to stay in sync as this stabilizes. The engine section in PRODUCT.md was updated but other docs may still reference the old architecture.
  • Backlog has several “Architecture:” exploration issues (#8, #9, #10, #11, #15) that are good thinking but aren’t blocking anything. Don’t let them accumulate without resolution.

Next session

  • Fix CI (#38) — immediate priority, get the build green
  • Run end-to-end engagement (#14) — the system is complete enough to attempt a real cycle through Eclectis. This is the most important validation.
  • Subtask tracking (#37) — decide whether deliverables need subtask support or if the current flat structure is sufficient
  • Assign issues to Phase 1 milestone — the milestone exists but has no issues, making it impossible to track progress

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.

Delegation without comprehension is just prayer

The organizations that survive won't be the ones that automated the most. They'll be the ones that figured out what to stop delegating.

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.