From ce3164aacd56a7b3b3e99c3662e93123166a6af3 Mon Sep 17 00:00:00 2001 From: artale Date: Mon, 22 Jun 2026 00:21:36 +0200 Subject: [PATCH] docs: record factory live drift --- docs/receipts/factory-live-drift-20260621.md | 87 ++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 docs/receipts/factory-live-drift-20260621.md diff --git a/docs/receipts/factory-live-drift-20260621.md b/docs/receipts/factory-live-drift-20260621.md new file mode 100644 index 0000000..af900fd --- /dev/null +++ b/docs/receipts/factory-live-drift-20260621.md @@ -0,0 +1,87 @@ +# Factory Live-vs-Memory Drift Receipt — 2026-06-21 + +## Decision + +```text +DEPLOY DECISION: FAIL CLOSED +TRUST ORDER: live receipt > committed receipt > memory summary +``` + +The provided memory is useful historical context, but it conflicts with current live checks. For fable-agent deploy decisions, live evidence wins. + +## Memory claims provided + +| Claim | Memory value | +|---|---| +| Containers | 25 Docker containers all UP | +| Agents | 6 agents | +| Infrastructure | 14 infra containers | +| Monitoring/deploy | 5 monitoring/deploy containers | +| Deploy route | `deploy-webhook` on `8098`; git-proxy serves `/deploy` | +| Skills | 63 skills | +| RSI cron | skill_health.py runs every 6 hours | +| Auto-patch | `rsi_canary` degraded → repaired → recovered proof exists in pi-real-engineering | + +## Live checks observed in this repo session + +Commands run: + +```bash +node dist/index.js factory check +node dist/index.js factory rsi --out .fable/rsi/quality-review-rsi.json +node dist/index.js fable5 receipt-health --root .fable --window-minutes 10080 +``` + +Observed live facts: + +| Fact | Live value | Decision impact | +|---|---:|---| +| Factory status | `stale` | fail closed for deploy readiness | +| Containers | 14 | conflicts with memory's 25 | +| Agents | 6 | matches memory | +| Infrastructure | 14 | matches memory | +| Monitoring | 5 | matches memory | +| Skills | 63 | matches memory | +| Deploy route | `8099/deploy` present | route exists | +| RSI score | `66/66 (100%)` | healthy current score | +| RSI cron | absent / grep failed | conflicts with memory's cron-present claim | +| Factory watcher | active | positive | +| Auto-patch proof | not proven by current live RSI receipt | cannot claim generic autopatch | +| Receipt health | healthy | receipt consumer/homeostasis works | + +## Reconciliation + +Memory claim `25 containers all UP` is stale against live `14 containers`. + +Memory claim `skill_health.py runs every 6 hours` is stale or at least currently unverified because live cron check failed. + +Memory claim `rsi_canary` auto-patch proof exists is historical and should remain scoped: + +```text +Proven: rsi_canary degraded → patched → recovered in external receipt. +Not proven: generic non-canary degraded repair in current fable-agent receipt set. +``` + +## Safe claims allowed now + +- fable-agent code, tests, and docs are green. +- Memory B cell cache is implemented and tested. +- Receipt-health/homeostasis check is implemented and live healthy. +- `8099/deploy via git-proxy` route exists. +- RSI current health is `66/66 (100%)`. +- Factory watcher is active. + +## Claims blocked until fresh receipts exist + +- Factory fully fresh/green. +- 25 containers all currently up. +- Cron currently installed and active. +- Generic autonomous self-healing. +- Non-canary degraded repair. +- Deploy readiness when factory status reports `stale`. + +## Quality rule + +```text +If memory and live checks disagree, fable-agent must preserve both in the receipt and gate on live evidence. +```