Skip to content

docs(current-otto): 2026-05-14 update — two axioms on DBSP + DST + morning recalibration#3142

Merged
AceHack merged 5 commits into
mainfrom
docs/current-otto-2026-05-14-two-axioms-dst-morning-recalibration
May 14, 2026
Merged

docs(current-otto): 2026-05-14 update — two axioms on DBSP + DST + morning recalibration#3142
AceHack merged 5 commits into
mainfrom
docs/current-otto-2026-05-14-two-axioms-dst-morning-recalibration

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 14, 2026

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

AceHack and others added 5 commits May 14, 2026 11:11
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>
Copilot AI review requested due to automatic review settings May 14, 2026 15:31
@AceHack AceHack enabled auto-merge (squash) May 14, 2026 15:31
@AceHack AceHack merged commit b9808ac into main May 14, 2026
27 checks passed
@AceHack AceHack deleted the docs/current-otto-2026-05-14-two-axioms-dst-morning-recalibration branch May 14, 2026 15:34
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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. -->
Comment thread docs/BACKLOG.md
- [ ] **[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`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants