Synthesis: March 5, 2026
Projects active
- Authexis — First live prospect demo (Roland/Perform International), magic link auth fix cascade, briefing link fix, cold outbound email system, admin dashboard controls
- Eclectis — Newsletter issues tracking, learned preferences wired into all scoring prompts, Vercel/Sentry build fix, PostHog dual-write
- Paulos — Synthesis frontmatter fix, sentry triage production validation, reflect voice feedback
- Polymathic-h — Email signature overhaul (synthesis leak fix, Authexis sig variant, tagline update), social media cadence research
The throughline: the demo is the test
Today was the first time a real prospect sat next to Paul and used Authexis. Roland Zuehlke from Perform International clicked through the app, and every assumption that “worked in dev” broke in production: magic links pointed to localhost, briefing links required login, PKCE cookies didn’t survive email client browsers. Three separate bugs stacked on top of each other in the auth flow alone.
Meanwhile, Eclectis shipped the other side of the same coin — making the system genuinely smarter by wiring learned preferences into every scoring prompt, not just the one handler where it was originally built. And polymathic-h discovered that synthesis files were leaking into email signatures because nobody had specified a content_type field.
The pattern: systems that work in isolation break when they meet real users or compose with other systems. The magic link flow worked in dev. The synthesis pipeline worked standalone. The briefing emails worked when you didn’t click the links. Composition and real usage are the tests that matter.
Key accomplishments
- Authexis magic link auth fully fixed — three stacked bugs (build-time env var, Supabase dashboard persistence, missing PKCE code exchange) resolved. Auth works end-to-end in production.
- Authexis cold outbound email system shipped — 4-email drip with voice analysis, curated briefing, content ideas, and interview script. Root-cause attribution bug fixed (questions no longer say “you mention” to someone who hasn’t spoken to us).
- Eclectis learned preferences everywhere —
user_context.pyshared module injects learned preferences into RSS scanning, Google search scoring, briefing generation, and pre-score gate. Plus auto-generated search terms from engagement patterns. - Eclectis newsletter issues tracking — engine creates rows per email edition, web detail page groups articles by issue with status badges.
- Polymathic-h email signatures overhauled — synthesis leak fixed, Authexis sig variant built, tagline updated across both sigs.
- Paulos #181 closed —
/sum-upskill now requirescontent_type: synthesisin frontmatter.
Cross-cutting themes
Production is a different country. Authexis had three stacked auth bugs that never appeared in development. The NEXT_PUBLIC_SITE_URL was baked at build time with localhost. The Supabase dashboard reverted settings. The confirm route only handled legacy token flow, not PKCE. Each worked fine alone; together they created a dead end where magic links verified at Supabase but failed silently at the app.
Feedback loops are only as good as their reach. Eclectis had learned preferences working in one handler. Today it got wired into four. The learning was happening — it just wasn’t being applied everywhere it could help. Same pattern as yesterday’s “close the loop” theme, but the insight is more specific: building the loop isn’t enough if you only connect it to one output.
Metadata is a contract between systems. The synthesis content_type fix, the email signature section filter, the briefing link URL fix — all cases where one system’s output became another system’s input, and the assumptions didn’t match. Every pipeline you compose inherits the metadata assumptions of both.
Carry-over and risks
- Supabase Site URL instability — reverted to localhost at least once during Roland’s demo. Root cause unknown. If it happens again, magic links break for everyone.
- PKCE same-browser requirement — magic links only work if opened in the same browser that requested them. Email clients with built-in browsers will fail. May need non-PKCE flow or user guidance.
- Roland’s search terms overwritten — the refined 2028 festival terms from a previous session were lost during profile upsert. Need to redo.
- Paulos launchd agents not installed — day 2 of carry-over.
- Eclectis auto-generated search terms replace previous terms on each
user.learnrun. Poor model output could degrade results until the next cycle. - Apple Podcasts artwork — still unverified (day 3 of carry-over).
Next session priorities
- Authexis: Re-do Roland’s search terms. Prep/grind #785-#788 (RSS discovery, non-RSS monitoring). Consider PKCE vs implicit flow for magic links.
- Eclectis:
/grind 63(international search, ready-for-grind). Review backlog for milestoning. - Paulos: Install launchd agents. Start April milestone (#160 background mode or #119 Authexis content services).
- Polymathic-h: Verify Apple Podcasts artwork. Check edition 12 newsletter stats. Clean up stale worktrees.
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 first real user breaks everything
Your product works until someone actually uses it. The gap between 'works in dev' and 'works for a person' is where most systems fail — and most organizations avoid looking.
The loop nobody bothers to close
Most systems observe. Almost none learn. The difference is a feedback loop — and the boring cleanup work that makes it possible.
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.