predictor · Domain-agnostic trend-detection pipelinepredictor.explorer · Cytoscape-based living map of a field — provenance on every edgepredictor.ingest-pipeline · Daily curated ingestion + LLM extraction behind quality gates, batch-AP…predictor.daily-timers · Three domains read themselves every morning — film 06predictor.two-lens-model · Landscape vs Moverspredictor.quality-gates · Zero-token CPU checks on every LLM outputpredictor.shadow-mode · A cheaper understudy model silently re-runs primary-model jobs; disagre…predictor.calibration-reports · Rolling 7-day gate pass-rate + quality-drift reporting; thresholds tune…predictor.epoch-boundary · Scores never compare across a restartpredictor.domain-agnostic-boundary · Framework/domain separation enforced by a grep audit test — domains are…predictor.domain-template · New domain onboarding from scaffoldpredictor.chatter-source-policy · Ingest-only mode for short-form sources — count mentions, skip extracti…predictor.dev-prod-split · Two clones, one data planepredictor.playwright-harness · Self-contained web testspredictor.ontology-page · Specialist-facing taxonomy reference generated from domain profilesagent-platform · Multi-agent platformagent-platform.director · Director agent — coordinates the crew, human approval in the loop, per-…agent-platform.director.telegram · Telegram-native command surfaceagent-platform.director.morning-brief · An ambient 07agent-platform.sysadmin · Reads the server's own health every morning at 06agent-platform.scout · Wanders the box unprompted at 05agent-platform.scout.session-ingest · Twelve thousand turns of agent session log, stripped to query/progress/…agent-platform.scout.leads-ledger · An append-only story queue the Scout may add to but never edit — 324 le…agent-platform.writer · Drafts field notes from a claimed lead, in a voice loaded from bottled…agent-platform.wire-editor · Triage desk for inbound wire items, with a chief's shadow pass scoring…agent-platform.ask-assistant · One assistant per solution page, each given the same facts that built t…agent-platform.blog-pipeline · Content + marketer agents drafting and shipping posts to blog.uzelhub.c…agent-platform.decision-trace · Every agent writes structured what-ran/what-it-decided/what-it-cost row…agent-platform.health-monitor · The platform checks its own pulse hourly and pages a human when it stopsagent-platform.ops-calendar · Ops calendar as code — .ics in the repo carrying drills, kickoffs, pric…agent-platform.ops-desk · Operator surfaces behind one capability URLagent-platform.n8n-stack · n8n as the automation substrate — workflows, webhook surface via ngrok,…ops.backup-system · Layered backupsops.notify-telegram · One shared Telegram channel for all agents — [AGENT]-prefixed, outbound…ops.safe-reboot · Reboot as orchestrationops.truth-map-practice · _host/README.md as cross-project source of truth with dated corrections…ops.security-architecture · The box's exposure written down and then audited against itself on a da…ops.docker-hygiene · Disk-bounded Dockerweb.studio · Editorial site — 'a manifesto disguised as a portfolio'; literary regis…web.marketing-generator · Decision-free page productionweb.field-notes · True stories from operating the systems, drafted from the lead queue, r…web.apex-sandbox · A throwaway rebuild of the whole apex, every page in reading order with…web.agents-page · The crew introduced in plain language, each with what it does, a receip…web.sister-site-doctrine · Two sites, same truths, different attention budgets — parity without ap…web.translation-patterns · Editorial→marketing translation as a studied craftweb.coverage-tripwire · Dropped-ideas tripwireweb.promotion-inventory · The box documents itselfweb.register-gradient · Five-step register gradientweb.voice-ledger · The site's voice recorded as dictated rather than inferred — one entry…web.publishing-drip · One or two URLs a week, real dates never backdated, one promotion momen…web.cycle-canvas · Hand-tuned canvas animation on the editorial home (orbit glow, delivere…method.4cs · Converse, Constrain, Construct, Curate — the working method behind ever…method.human-ai-collaboration · 100% human-AI collaboration, zero manual coding/tests, zero hardcoded d…method.dated-amendments · Docs never silently rewritten — corrections carry dates and keep the wr…

Field notes/The backups looked fine. They'd been failing for three weeks.

Field noteJuly 2026

The backups looked fine. They'd been failing for three weeks.

A storage cap, a retention rule that structurally could never fire, and three weeks of green checkmarks over dead backups.

  • Every nightly run reported success — the off-site half hadn't uploaded in three weeks
  • Root cause: a retention rule that can never delete files that are never overwritten
  • The bucket filled to its storage cap and uploads quietly died
  • Now: the script prunes for itself, failures page a phone, and silence is an alarm

What happened

The server runs a nightly backup with two halves: a local snapshot, and an off-site bundle uploaded to cloud storage. The local half always succeeded. The off-site half had been failing since June 9 — and the job still exited clean every night, because an off-site failure was deliberately non-fatal (you don't want a cloud outage blocking a reboot). Reasonable decision, plus no one watching the warnings, equals three weeks of green.

It surfaced during a routine audit: the newest bundle in the bucket was 23 days old, and the error log said the same thing every night — storage cap exceeded.

The rule that could never fire

The bucket had a retention rule, set through the provider's console, that looked exactly right: keep seven days, delete the rest. But that rule type only deletes prior versions of files that get overwritten or hidden — and every nightly bundle was a brand-new, unique filename that would never be either. The rule was perfectly configured to do nothing, forever.

So the bucket only ever grew, hit the account's storage cap, and every upload after that was refused. The retention policy wasn't broken. It just never applied to a single file.

The fix was mostly not code

The code change was small: the backup script now prunes its own old bundles before each upload, with a key scoped to exactly that one bucket — verified against the provider's API rather than trusted from the docs, which turned out to be claiming a much safer key than the one actually in use. An immutability lock on the newest week of bundles is the final layer, so even a compromised server can't delete the copies that matter.

The bigger fix was making silence impossible. Warnings inside a 'successful' run now count, and a run with warnings sends one message to a phone. A separate check pages if backups simply stop happening. And a monthly restore drill is on the calendar — because a backup you've never restored is a hypothesis, not a backup.

What it taught

Exit codes are claims, not facts — a job that exits 0 is asserting success, and something independent should be in a position to disagree.

Retention rules deserve the same testing as code: the question isn't 'is a policy configured' but 'has it ever actually deleted anything.'

And the failure mode that costs you isn't the loud one. It's the one that produces green checkmarks the whole time it's failing.

Want this kind of engineering on your systems?

Get in touch