What shipped today
- e73072f Rich Discord notifications with per-project branding — color and icon from workspace config
- c3b33f0 Pipeline summary: replay failure details instead of just showing count
- cb51f6b EOD backfill uses 24-hour commit window instead of calendar date
- 477b384 Revert EOD date logic to simple datetime.now() — no offset needed
- 45abca1 EOD date lookback: use 6-hour offset for robust calendar date resolution
- f46648f Pipeline notifications: add project name prominently, improve formatting
- 9f26249 EOD uses 23-hour lookback for date instead of datetime.now — safe for late-firing launchd/cron
- 0deb5be GH-96: Reset stale feature branches on dev retry instead of reusing them
- e94038f GH-96, GH-97: Fix pipeline dev no-commits loop and merge duplication bugs
- 300ff91 Add paulos sync-creds command — sync .env, .env.*, and master.key to pipeline server
- 7302c8d Replace custom SIGINT handler with KeyboardInterrupt for pipeline –loop Ctrl-C
- f8217bf Fix pipeline –loop Ctrl-C not stopping during inter-cycle wait
- 2280211 Update /start skill — detect changes to skills, docs, config since last session
- a306232 Update docs/PIPELINE.md — add pipeline orchestrator, model config, safety guards, output format
- 0576adc Don’t move issue to ready-for-qa when PR creation fails — leave as ready-for-dev for retry
- 338eb28 Fix heartbeat project attribution and ensure dev step pushes branch before PR
- ee3c3f3 Pipeline output UX: add project context, fix duplicates, verify commits before PR
- 62adc28 Pipeline output: streaming handler with real-time progress, noise suppression, heartbeat visibility
- 2d61210 Redesign pipeline command output — grouped display, suppressed noise, clean project summary
- 3bbea43 Add –steps filter to pipeline command for running step subsets
- 83acd5c Extract global model defaults to ~/.config/paulos/config.toml
- 5348512 Set pipeline model defaults — Opus 4.6 for prep/dev, GPT 5.3 Codex for qa/review
- 1d2ea37 Parallelize pipeline — concurrent projects + concurrent read-only steps (prep/qa/review) within each project
- ef7f6fd Stop appending agent stdout to pipeline success comments — only post clean deterministic messages
- 64fc4e0 Add notifications for every pipeline step completion (prep, dev, qa, review)
- d572291 Add –model flag to pipeline for provider selection (openai:gpt-4o, etc.) with per-role config support
- d657d4d Strip CLAUDECODE env var from spawned agent processes to prevent nested-session errors
- 61901bb Remove keyword parsing from pipeline — switch to exit-code-only agent signals
- b9893eb Fix pipeline signal parsing — scan first 20 lines for keywords instead of only line 1
- 6e3d7bb Add paulos pipeline and paulos install commands for launchd scheduling
- 24cb836 GH-45: Unify pipeline — ready-for-* labels, QA step, retire orchestrator
Completed
- Rich Discord notifications with per-project branding — color and icon from workspace config
- Pipeline summary: replay failure details instead of just showing count
- EOD backfill uses 24-hour commit window instead of calendar date
- Revert EOD date logic to simple datetime.now() — no offset needed
- EOD date lookback: use 6-hour offset for robust calendar date resolution
- Pipeline notifications: add project name prominently, improve formatting
- EOD uses 23-hour lookback for date instead of datetime.now — safe for late-firing launchd/cron
- GH-96: Reset stale feature branches on dev retry instead of reusing them
- GH-96, GH-97: Fix pipeline dev no-commits loop and merge duplication bugs
- Add paulos sync-creds command — sync .env, .env.*, and master.key to pipeline server
- Replace custom SIGINT handler with KeyboardInterrupt for pipeline –loop Ctrl-C
- Fix pipeline –loop Ctrl-C not stopping during inter-cycle wait
- Update /start skill — detect changes to skills, docs, config since last session
- Update docs/PIPELINE.md — add pipeline orchestrator, model config, safety guards, output format
- Don’t move issue to ready-for-qa when PR creation fails — leave as ready-for-dev for retry
- Fix heartbeat project attribution and ensure dev step pushes branch before PR
- Pipeline output UX: add project context, fix duplicates, verify commits before PR
- Pipeline output: streaming handler with real-time progress, noise suppression, heartbeat visibility
- Redesign pipeline command output — grouped display, suppressed noise, clean project summary
- Add –steps filter to pipeline command for running step subsets
- Extract global model defaults to ~/.config/paulos/config.toml
- Set pipeline model defaults — Opus 4.6 for prep/dev, GPT 5.3 Codex for qa/review
- Parallelize pipeline — concurrent projects + concurrent read-only steps (prep/qa/review) within each project
- Stop appending agent stdout to pipeline success comments — only post clean deterministic messages
- Add notifications for every pipeline step completion (prep, dev, qa, review)
- Add –model flag to pipeline for provider selection (openai:gpt-4o, etc.) with per-role config support
- Strip CLAUDECODE env var from spawned agent processes to prevent nested-session errors
- Remove keyword parsing from pipeline — switch to exit-code-only agent signals
- Fix pipeline signal parsing — scan first 20 lines for keywords instead of only line 1
- Add paulos pipeline and paulos install commands for launchd scheduling
- GH-45: Unify pipeline — ready-for-* labels, QA step, retire orchestrator
Carry-over
- (none)
Risks
- (none)
Next session
- (auto-generated from pipeline activity)
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 bottleneck moved
The constraint in knowledge work used to be execution. Now it's specification. Most organizations haven't noticed.
Dev reflection - February 23, 2026
I want to talk about pacing. Not productivity, not velocity — pacing. Because I think we're about to discover that a lot of what we called 'workflow' was actually a rhythm our brains depended on, a...
Universities missed the window to own AI literacy
In 2023 the question of who would own AI literacy was wide open. Universities spent two years forming committees while everyone else claimed the territory. Then a federal agency published the guidance higher education should have written.