Eight PRs Merged by Hand and Loopkeep Went Live
On 2026-11-11, I merged eight PRs by hand to ship Loopkeep to bmdpat.com/play while the automated queue lane merged nothing for a fifth straight night.
Open full-size image (opens in new tab)
On 2026-11-11, I merged eight pull requests by hand to put Loopkeep live at bmdpat.com/play. The automated queue lane merged nothing for a fifth night in a row. My machines ran hundreds of loops and generated reports, but the only public code came from my own hands.
Why did the manual lane ship when automation stalled?
The manual lane shipped because human review bypassed the broken queue gate that held back deployment. I merged eight pull requests directly between 2026-11-09 23:04 UTC and 2026-11-11 07:41 UTC, ending with commit 357f5f3f as PR2151. That deploy cleared the byte pin blocking an approved October article for 20 days.
Automated pipelines fail quietly when a single classification step chokes. The automated QA lane spent the night stuck before its tests even started. CI cancelled during classification, so zero queue cards closed. Meanwhile, drive K stayed unmounted for day thirteen. I read every change from the QA lane receipt instead of git. When an agent loop stalls, you have to verify what an agent actually produced instead of trusting its pass flag.
The manual work also surfaced a major flaw. I filed bmdpat issue 2152 after seeing the Loopkeep leaderboard code. The leaderboard replays the wave, but it takes unlocks and bonus scrap straight from the client request. Any signed-in player can post a fake top run with one fetch. I shipped the game anyway, but now I have to patch the score validation before someone exploits it.
Why did thirteen blog publishes fail overnight?
The blog publish runner failed thirteen times because three draft posts pointed to missing assets while the review endpoint threw an error. Thirteen drafts were skipped because their approval flag was false. QA approved zero of three drafts because each one looked for an asset that returned a 404 response.
The system attempted thirteen publish passes and failed all thirteen. The Aymo review hit a 422 error. The cleanup sweep died on an identical pathspec error: 13,490 files sat staged, with 13,425 of them marked as deletions. The vault push reported a green noop status because no commit was ever created to send. When you run background workers, you must BMD, see what your agents actually did across the whole run.
| System component | Status on 2026-11-11 | Measured result |
|---|---|---|
| Blog publisher | 13 attempts, 0 posted | 13 drafts skipped on approval check |
| QA merge lane | Stalled, 5th night | 0 cards closed, CI cancelled |
| Doctor checks | YELLOW status | 81 expected, 8 fired, 52 paused |
| Security analyst | RED status | 5 P0, 30 P1, 41 P2, 0 issues opened |
| Loopkeep game | Deployed to /play | 8 PRs merged by hand, PR2151 live |
| ERIC stop order | Renewed as day order | 3 shares, stop market, 38/38 |
The preview budget job failed 18 out of 18 times. The brain worker sent no report, leaving 10 brain cards unread. In the last 24 hours on Loops, 144 human sessions produced 3 button clicks and 0 installs. That makes fifteen consecutive days at zero installs.
What happened to the broker stop order?
The broker cancelled the existing ERIC stop order at market close, forcing my position manager to renew it as a day order. The manager executed order 6af4dc05, selling 3 shares as a stop market order with 38/38 coverage and three green claims under commit 087be47693.
I wanted this order placed as good-til-cancelled. I have asked for three days to make it a GTC order, but the manager renewed it as a day order three times. It expires at dark, the broker cancels it, and the bot rebuilds it the next morning. It works, but it is fragile.
Other systems held together better on 2026-11-11. The position manager completed 12 runs on codex with 0 blocked runs. The vault logged 26 commits, and 20 of them were raw receipts. I built a denylist hook in config/hooks/approve_denylisted.py where my direct chat approval replaces the override flag. It stores the quote, the exact target files, and an expiration cap of 24 hours. That hook passed 58 tests in commit a9b408ffaa. To keep context clean, give an agent a file, not a memory. The morning wins email also returned after 19 days offline, delivering at 09:09 CT with commit fa268e7dad.
The money line moved and the proof line did not. The ledger reads 9 external assets in seven days against 825 reports, 75.0 per asset, and 23 of 31 done items carry no output anyone outside can see. Loopkeep is the exception, built by hand in two days while the automated lane stayed shut.
What should you do with this?
- Check your automated merge queue logs for silent pipeline cancellations before assuming your test suite passed.
- Replace static override flags with time-bound approval hooks that expire automatically within 24 hours.
- Audit client-submitted leaderboard and score payloads to verify gameplay state on your server before recording high scores.
Accompanying prompt
What the prompt does: Inspects staged git deletions and aborts any batch commit where pathspec mismatches or deletion counts exceed safe thresholds.
Copy/paste this prompt:
Copy-ready prompt
Paste the exact block into your coding agent.
No article chrome, no footnotes, no formatting drift.
This prompt and every other one we publish live in the free prompt library.
Copy the block above.
Weekly measured local runs: https://bmdpat.com/5090-reports
Get the Local AI Field Kit
Four copy-ready tools now, then one evidence-backed Local AI Lab Note on Friday when there is something worth sharing.
Try the free agent run check firstGet the requested artifact now, then at most one evidence-backed Local AI Lab Note on Friday when there is something worth sharing. One-click unsubscribe. No sponsored placements. Privacy.
Written by
Patrick Hughes
I build BMD and publish measured AI runs, failure reports, and reusable checks. Nashville, Tennessee.
More writing
- 5 min
Eleven Clean Runs and a Stop That Expired at Dark
On 2026-11-10, the manager ran eleven times without a fallback. The broker cancelled the stop order at 21:25 UTC anyway. Here is how you check it.
- 5 min
Ten Fallback Runs and Zero Broker Reads on 2026-11-09
On 2026-11-09, Claude ran ten times and failed ten times because cron jobs lack OAuth. Here is how unattended agents fail silently.
- 5 min
Three carried backlog items moved on 2026-11-06
On 2026-11-06, three carried items merged in thirty minutes. Red checks stayed open across doctor jobs, agent scans, and two stale autotrader keys.
- 5 min
The e2e run passed on 2026-11-07 after eleven red nights
On 2026-11-07, an eleven-night test streak cleared, nine lines unblocked the newsletter, and an agent cloned its own body under a new title.
- 5 min
A stop order closed REAL for 21.56% on 2026-11-05
A stop order closed REAL for 21.56% while my trade agent stalled on 2026-11-05. Overnight, 69 test cases stayed skipped and five alerts piled up.