Synthesis: March 24, 2026
Eclectis — launch-ready in a single day
The biggest single-day push in the project’s history: 46 commits, 27 issues closed. A complete podcast feature shipped end-to-end — script generation from briefings, TTS audio with chunking across 11 OpenAI voices, per-user RSS feeds with iTunes extensions, voice selection, all gated to Pro plan. An AI provider gateway was built so all 9 engine handlers can be routed between Anthropic and OpenAI per-task via admin UI. The full stack from model routing to cost tracking to admin config landed in one day.
Briefing preferences (length and multi-language), skip tracking for the learning loop, and production hardening filled the rest of the day. A cascade of Vercel build fixes, env var issues, and JSONB parsing bugs were chased down. OG tags, empty states, and a full Playwright walkthrough of 81 use cases rounded out launch readiness. Two long-standing backlog items (#77 sort/filters, #376 per-source throttling) were closed as won’t-fix — scope decisions to keep the product focused.
Impression tracking could generate significant table growth at scale (each page visit creates ~20 rows). The AI gateway config caches for 60 seconds, so admin changes are slightly delayed.
Dinly — issue queue cleared to zero
The biggest single day of Dinly development: 16 PRs merged, 45 new tests written, 24 issues closed, and the entire open issue queue cleared to zero. The dashboard was redesigned with auto-created weekly cycles, a prominent “Tonight’s dinner” card, day-by-day meal list with today highlighted, and a “Rate it” link.
A comprehensive scout ran 6 parallel agents and surfaced 5 issues — all executed same-day: vote page queries parallelized, admin N+1 query fixed, error feedback added to 4 forms, and 81 hardcoded dark-theme color occurrences across 26 files converted to light+dark variants via a full theme system. Test coverage jumped from 87 to 132 tests. Four of five product vision items are now complete — only “AI assists with suggestions” remains, awaiting Paul’s input on LLM budget.
Authexis — stage_status elimination complete
The stage_status column was completely eliminated from the content pipeline — a 7-issue arc that removed all writes, migrated all reads, and dropped the column from the database. The pipeline now runs on a single status column with four clean states: generating, interview, review, final. The admin workspaces page was overhauled with active/inactive toggling enforced across the engine. Three new test suites shipped for content handlers. Command failure recovery was added so content no longer gets stuck in “generating” forever.
Risk: the column was dropped from production. If any deployed code still references it before Railway picks up the latest engine, queries will fail.
Prakta — accessibility and feedback re-ingestion
Two scout-triage-execute cycles cleared 13 issues across 10 PRs. The biggest feature gap closed was done-path check-in feedback re-ingestion — both complete and defer paths now mirror the same background parsing pattern. A deep accessibility pass shipped: Escape key dismiss + auto-focus for the Maya sidebar, ARIA attributes across 6 components, and a full radio group pattern conversion with arrow key navigation via a reusable useRadioGroup hook. Dead code cleanup removed 202 lines. Error handling was strengthened across the serve endpoint’s 4 unguarded DB operations. Active queue is now empty.
Scholexis — password reset and assignment detail
Two major features: a complete password reset flow (database table, Resend email integration, server actions with rate limiting and enumeration protection, frontend pages) and an assignment detail page with breadcrumbs, info card, and task list with inline status toggle. Code quality fixes included date validation, unused variable cleanup, and shared formatDate() extraction. 103 tests total. The Next.js port’s remaining 4 issues all require human decisions, not code.
Paulos — briefing parallelization and cleanup
The briefing pipeline’s 6 network-bound scanners were parallelized via ThreadPoolExecutor(max_workers=5), targeting 3-5x speedup across 11 workspaces. The _relabel_issues() function in the orchestrate loop was also parallelized. The utilities/.env fallback was retired (#574) — cli.py load_dotenv() is now the single path for env vars. Legacy workspace CRUD functions were removed (128 lines). Podcast content module went from zero to 16 tests.
Phantasmagoria — first testable build
The narrative-first pipeline produced its first playable output — 9 events generated through the full Phase 1/2/3 flow, validated, rendered, and output as a Stellaris mod. Getting there required fixing several validator mismatches (anomaly_fail format, effects requirements, follow-up slug regex). A second round of dead code cleanup removed 1,331 lines (combined 2,068 lines across two sessions). Paul needs to playtest the Windows build in Stellaris 4.3.
Synaxis-h — maintenance mode
Scout pass #13 found three minor items (orphaned SCSS variable, missing .gitignore entry, unnecessary SVG metadata) — all fixed in one PR. Scout pass #14 was intentionally skipped. After 13 passes, 76+ closed issues, and ~1,200 lines of dead code removed, the codebase is comprehensively clean. Three remaining issues all need Paul’s input. The project is in maintenance mode.
Skillexis — stalled
No code changes shipped. The orchestrate loop ran continuously but didn’t advance any issues. The grind queue has 7 ready-for-dev issues sitting idle. #172 (pass lesson context to simulation) has been in-progress for multiple days without visible progress.
Simplebooks — still blocked
Third consecutive day with no code progress. A scout pass correctly short-circuited since nothing changed. The entire backlog remains blocked on #1 (merge 16 feature branches into main).
Cross-cutting themes
Launch readiness convergence. Eclectis, Dinly, and Prakta all reached “active queue empty” status on the same day. Eclectis shipped a full podcast feature and 81-case Playwright walkthrough. Dinly cleared its entire issue queue to zero. Prakta’s active queue is empty. These projects are transitioning from build to launch — the remaining work is human decisions and deployment.
Column elimination as architectural courage. Authexis dropped stage_status from production after a systematic 7-issue migration. Removing a database column from a live system requires tracing every read and write across engine and web, migrating them, then dropping the column. Most teams leave dead columns forever. The payoff: a simpler data model where status is the single source of truth.
Theme systems and accessibility. Dinly converted 81 hardcoded dark-theme colors to light+dark variants. Prakta shipped a full radio group pattern with arrow key navigation. Scholexis added enumeration protection to password reset. Across projects, the fleet is independently maturing from “it works” to “it works well for everyone.”
The empty queue problem. Five projects now have empty or nearly-empty active queues. The remaining issues are all human decisions: LLM budget (Dinly), merge strategy (Simplebooks), deployment config (Scholexis), favicon assets (Synaxis-h). The bottleneck has fully shifted from machines to humans.
Carry-over
- Simplebooks #1 — merge strategy decision. Third day blocked. All 8 other issues depend on it.
- Skillexis #172 — in-progress for multiple days. May need intervention.
- Eclectis — production deployment needed.
NEXT_PUBLIC_SITE_URLmust be correct for podcast feeds. - Scholexis —
RESEND_API_KEYnot yet provisioned. Password reset won’t work without it. - Phantasmagoria — Paul needs to playtest the Windows build in Stellaris 4.3.
- Dinly #192 — AI recipe suggestions, needs Paul’s LLM budget decision.
Risks
- Authexis
stage_statusdrop — if Railway hasn’t deployed the latest engine, queries referencing the dropped column will fail. - Eclectis impression tracking — could generate significant table growth at scale (~20 rows per page visit).
- Dinly untested theme changes — 81 mechanical color replacements not visually verified in Chrome.
- Paulos parallel scanners — up to 30 concurrent subprocess/API calls when all scanners run simultaneously. Untested under real concurrent load.
By the numbers
| Project | Issues closed | Commits | Notable |
|---|---|---|---|
| Eclectis | 27 | 46 | Full podcast feature, AI gateway, 81-case Playwright |
| Dinly | 24 | 41 | Queue cleared to zero, 132 tests |
| Authexis | 13 | 27 | stage_status eliminated |
| Prakta | 13 | 8 | Accessibility pass, queue empty |
| Scholexis | 11 | 8 | Password reset, 103 tests |
| Paulos | 6 | 9 | Briefing parallelized, utilities retired |
| Phantasmagoria | 2 | 0 | First testable Stellaris build |
| Synaxis-h | 1 | 2 | Maintenance mode (13 scout passes done) |
| Skillexis | 0 | 1 | Stalled — 7 ready-for-dev idle |
| Simplebooks | 0 | 1 | Blocked on merge decision (day 3) |
| Total | 97 | 143 |
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.
Designed to learn, built to ignore
The most dangerous organizational failures don't throw errors. They look fine, return results, and quietly stay frozen at the moment of their creation.
The variable that was never wired in
The gap between having a solution and using a solution is one of the most persistent failure modes in organizations. You see the escaped variable. You see the risk register. You assume the work is done.
Your empty queue isn't a problem
Dropping a column from a production database is the organizational equivalent of admitting you were wrong. Five projects cleared their queues on the same day, and the bottleneck that emerged wasn't execution — it was taste.