docs(current-otto): 2026-05-14 update — two axioms on DBSP + DST + morning recalibration#3142
Merged
AceHack merged 5 commits intoMay 14, 2026
Conversation
Slices 1–4 of B-0440 (standing-by-detector) are shipped in tools/bg/standing-by-detector.ts. This commit files the two remaining slices as dependency-ordered child backlog rows: - B-0459 (P1): infinite-backlog-nudge subscriber handler stub (slice 5.1; depends on B-0449 subscribe-once library) - B-0497 (P1, effort XS): launchd plist + AUTONOMOUS-LOOP.md wiring update (slice 6; independent; closes AC #2 on merge) Also updates the parent B-0440 row: pre-start checklist completed, substrate-honest caveats updated to reflect shipped state, and the decomposition table formalised with ✅/🔲 status column. Build gate: 0 warnings 0 errors (dotnet build -c Release). operative-authorization: aaron 2026-05-13: "Cooling period: TBD. The memory file IS the durable record" Co-Authored-By: Claude <noreply@anthropic.com>
- B-0459: add blank line before list in blockquote (MD032) - B-0497: add blank line before list after colon-terminated paragraph (MD032) - Regenerate docs/BACKLOG.md to include B-0459 + B-0497 rows (fixes drift check) Co-Authored-By: Claude <noreply@anthropic.com>
Copilot P1: B-0459 and B-0497 are slices OF B-0440, so listing B-0440 in depends_on creates a self-blocking dependency cycle where autonomous-pickup can never select either row until B-0440 closes, while B-0440 cannot close without these slices. Fix: move B-0440 to composes_with; keep B-0449 as the real prerequisite for B-0459; leave B-0497 with no hard dependencies. Co-Authored-By: Claude <noreply@anthropic.com>
- B-0459, B-0497: add `parent: B-0440` frontmatter field so tooling treats these as child rows rather than ordinary open items (fixes circular depends_on misread — B-0440 was never in depends_on but parent relationship was absent) - B-0459 pre-start: replace `bun tools/bus/claim.ts check --item B-0449` (bus-claim check; cannot verify merge status) with `grep -q "^status: done" docs/backlog/P1/B-0449-*.md` (backlog-status check) - B-0440: update `last_updated` 2026-05-13→2026-05-14 (edited this PR) - B-0440: add `children: [B-0459, B-0497]` frontmatter for machine-readable decomposition tracking - B-0497 AC: clarify `install-launchd-services.sh` is planned but not yet created, rather than referencing a non-existent path as if it exists Co-Authored-By: Claude <noreply@anthropic.com>
…ing + morning recalibration Adds the 2026-05-14 substrate section above the existing 2026-05-13 entry, following the file's append-newest-first dated-update convention. Six load-bearing additions captured as canonical pointers into user-memory: 1. Two axioms on top of DBSP (remember-when + pay-attention) — Aaron's substrate-engineering reduction; Rodney's-Razor cut at methodology level; hypothesis to test across future landings 2. Bounded-named-dependency-wait IS DST shape — generalizes the holding-without-named-dependency rule 3. Otto-growth-IS-substrate-not-weights — justifies the substrate-engineering cadence as developmental work 4. Multi-Otto coordination evidence — 6 PRs / 2 surfaces / zero conflicts on 2026-05-13 5. Lior's exit-code-honesty discipline — OS process managers cannot understand "transient"; app layer owns the classification 6. Morning recalibration: the "Stop" cascade caught as goldfish-ontology failure of the holding-without-named-dependency rule Otto authored — the discipline that catches the failure IS the two axioms operationalized Per `Self-curation right` section at file footer: Otto's discretion to revise this file. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Updates Otto’s current-state memory projection for 2026-05-14 and adds backlog decomposition work around the B-0440 standing-by detector follow-up slices.
Changes:
- Adds a 2026-05-14 CURRENT-otto update with six substrate additions.
- Adds two P1 backlog rows for B-0440 subscriber handling and launchd registration.
- Updates B-0440 decomposition metadata and regenerates backlog index entries.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
memory/CURRENT-otto.md |
Adds the newest Otto projection update. |
docs/backlog/P1/B-0459-b0440-slice-5-infinite-backlog-nudge-handler-2026-05-14.md |
Adds B-0459 handler follow-up row. |
docs/backlog/P1/B-0497-b0440-slice-6-standing-by-detector-launchd-registration-2026-05-14.md |
Adds B-0497 launchd-registration row. |
docs/backlog/P1/B-0440-standing-by-failure-mode-detector-background-service-2026-05-13.md |
Updates parent decomposition and shipped-slice notes. |
docs/BACKLOG.md |
Adds generated index entries for B-0459 and B-0497. |
| ## Pre-start checklist (per backlog-item-start-gate) | ||
|
|
||
| - [ ] Prior-art search: verify B-0449 has landed `tools/bus/subscribe.ts` before starting | ||
| - [ ] Dependency check: `grep -q "^status: done" docs/backlog/P1/B-0449-*.md` — B-0449 row must show `status: done` (merged) |
Comment on lines
+72
to
+77
| Per B-0449 design, this slice delivers **stub behavior only**: | ||
| > Per-topic handlers are STUBS in this slice — they log envelope to tick shard but take no action. | ||
|
|
||
| The Optional AC in B-0440 ("proactively assigns a small claim from the backlog to the agent's queue") | ||
| requires interpreting the envelope and taking backlog-grind action. That is slice 5.2 — a separate | ||
| follow-up row after this stub lands and proves stable. |
Comment on lines
+21
to
+24
| B-0449 (bg-services subscriber-agent architecture design pass) planned this row as the implementation | ||
| slice for the `infinite-backlog-nudge` topic handler specific to B-0440. B-0449 chose **Option C** | ||
| architecture: subscriber handling runs as a library call in the per-tick step 1 (refresh), not a | ||
| long-running daemon. |
| <dict> | ||
| <key>Label</key><string>com.zeta.standing-by-detector</string> | ||
| <!-- Maintainer-only artifact: paths are machine-specific (/Users/acehack, /opt/homebrew). | ||
| Run tools/setup/install-launchd-services.sh to regenerate with local paths. --> |
| - [ ] **[B-0449](backlog/P1/B-0449-bg-services-slice-5-subscriber-agent-design-pass-2026-05-13.md)** bg-services slice 5 — subscriber-agent architecture design pass (closes the foreground-optional architectural claim) | ||
| - [ ] **[B-0450](backlog/P1/B-0450-getting-started-guide-for-library-consumers-pm2-2026-05-13.md)** Getting-started guide for Zeta library consumers — quickstart doc + sample project | ||
| - [x] **[B-0451](backlog/P1/B-0451-duplicate-row-id-substrate-cleanup-2026-05-13.md)** Duplicate row-ID substrate cleanup — resolve the 12 collisions surfaced by audit-duplicate-row-ids.ts | ||
| - [ ] **[B-0459](backlog/P1/B-0459-b0440-slice-5-infinite-backlog-nudge-handler-2026-05-14.md)** B-0440 slice 5.1 — infinite-backlog-nudge subscriber handler (standing-by failure-mode closer) |
Comment on lines
+144
to
+149
| - Slices 1–4 are SHIPPED: `tools/bg/standing-by-detector.ts` + `tools/bg/standing-by-detector.test.ts` | ||
| are in production-quality state (commit-history + PR-activity poll + bus publish + structured | ||
| publish-error surface) | ||
| - Threshold values (15 min idle; 5 min poll) are configurable via CLI flags (`--idle-min`, `--poll-min`) | ||
| - Nudge payload schema is live: `{ topic: "infinite-backlog-nudge", payload: { idleMinutes, rationale } }` | ||
| - Per razor-discipline: this row is now operational (slices 1–4 deployed, slices 5–6 tracked below) |
Comment on lines
+58
to
+61
| - Reads each matching envelope from the bus dir (honors `ZETA_BUS_DIR`) | ||
| - Logs envelope content (topic, idleMinutes, rationale) to the current tick shard | ||
| - Marks envelope as consumed via `seen.json` per `subscribeOnce` contract | ||
| - Takes no further action in this slice (full backlog-grind trigger is slice 5.2) |
| - Marks envelope as consumed via `seen.json` per `subscribeOnce` contract | ||
| - Takes no further action in this slice (full backlog-grind trigger is slice 5.2) | ||
| - [ ] `docs/AUTONOMOUS-LOOP-PER-TICK.md` step 1 (refresh) updated to call | ||
| `subscribeOnce("infinite-backlog-nudge", handler)` after `git fetch` + `gh poll-pr-gate` |
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Captures 6 load-bearing 2026-05-14 substrate additions in the canonical CURRENT-otto.md projection layer. Per the file's append-newest-first convention. Self-curation right per file footer.
🤖 Generated with Claude Code