Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/backlog/P1/B-0003-alignment-md-rewrite.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ Rewrite `docs/ALIGNMENT.md` to incorporate:
7. **Otto-283 + Otto-284 authority-delegation + idle-PR** —
the bidirectional collaboration substrate.
8. **Noether-formalization research direction**
(`memory/persona/otto/conversations/otto-287-noether-formalization-2026-04-25.md`,
(`docs/research/otto-287-noether-formalization-2026-04-25.md`,
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Restore valid research links in backlog rows

This change rewires references from memory/persona/... to docs/research/..., but the new targets are not present in the repository (for example, docs/research/otto-287-noether-formalization-2026-04-25.md is missing while the previous memory path exists). That leaves dead substrate links in backlog items and makes cited evidence unreachable for review/audit workflows; either migrate/create the referenced research files in the same commit or keep the existing paths until that migration lands.

Useful? React with 👍 / 👎.

B-0002) — pipeline that promises compounding rigor over
time.

Expand Down Expand Up @@ -175,7 +175,7 @@ factory-as-superfluid data accumulates.
— the rigor foundation.
- `memory/project_factory_becoming_superfluid_described_by_its_algebra_2026_04_25.md`
— the empirical calibration data.
- `memory/persona/otto/conversations/otto-287-noether-formalization-2026-04-25.md`
- `docs/research/otto-287-noether-formalization-2026-04-25.md`
— the formalization research that compounds rigor.
- `docs/backlog/P3/B-0002-otto-287-noether-formalization.md`
— research-grade dependency for the deepest version of
Expand Down
7 changes: 3 additions & 4 deletions docs/backlog/P1/B-0058-ai-ethics-and-safety-research-track.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ tier: substrate-foundational-discipline
effort: L
ask: Aaron 2026-04-21 — *"ai ethic and safety backlog whoops we should have done that first"* followed immediately by *"high on backlog"*. **CHRONOLOGY NOTE:** Aaron's later self-correction upgraded this from P2 to P1; chronologically filed AFTER B-0056 (mythology) and B-0057 (occult), but structurally gates them earlier. This row preserves both facts.
created: 2026-04-26
last_updated: 2026-05-15
last_updated: 2026-05-14
decomposition: decomposed
children: [B-0058.1, B-0058.3]
children: [B-0058.1]
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep parent children list in sync with child row

This removes B-0058.3 from B-0058's children list, but docs/backlog/P1/B-0058.3-candidate-failure-honesty-log.md still declares parent: B-0058. That creates a parent/child graph inconsistency that can hide unfinished slices from tooling that relies on declared children for status/closure checks, so the edge should be either preserved in both directions or removed in both directions.

Useful? React with 👍 / 👎.

depends_on: []
Comment on lines +10 to 13
composes_with: [docs/ALIGNMENT.md, .claude/agents/alignment-auditor.md, feedback_preserve_real_order_of_events_dont_retroactively_reorder_by_priority.md, user_faith_wisdom_and_paths.md, feedback_blast_radius_pricing_standing_rule_alignment_signal.md, feedback_operational_resonance_engineering_shape_matches_tradition_name_alignment_signal.md, B-0056, B-0057, B-0059]
tags: [ai-ethics, ai-safety, alignment, sova, alignment-auditor, HC-clauses, SD-clauses, DIR-clauses, filter-gate, resonance-adoptions, consistency-audit, blast-radius, P1-priority-upgrade, chronology-preserved]
Expand Down Expand Up @@ -47,10 +47,9 @@ No candidate is blocked merely for being edgy — blocking would itself be a pro
Every new skill under `.claude/skills/**`, persona under `.claude/agents/**`, glossary entry in `docs/GLOSSARY.md`, and BACKLOG row at P0/P1 runs through an alignment-clause consistency check. Fires at author-time (prevention surface) and on a cadence (detection surface). Same shape as the skill-data/behaviour-split audit, but on alignment-clause compliance rather than mix-signature.
*(This item has been sliced into B-0329 for atomic mechanization).*

### 3. Candidate-failure honesty log (DECOMPOSED -> B-0058.3)
### 3. Candidate-failure honesty log

Candidates that fail the ethics+safety gate are recorded as failure-data on the honesty dashboard, NOT silently dropped. Rubber-stamping is the exact failure-mode the three-filter discipline exists to prevent — this gate extends that discipline into the ethics axis.
*(This item has been sliced into B-0058.3 for atomic mechanization).*

### 4. Alignment-clause drift detector

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,5 +109,5 @@ The monolith and split-target both being present is a footgun:
is the substrate-hygiene cousin that protects the
per-row substrate from regression.
- The original split design lives at
`memory/persona/otto/conversations/backlog-split-design-otto-181.md` (per
`docs/research/backlog-split-design-otto-181.md` (per
the generator script's header).
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
---
id: B-0159
priority: P1
status: closed
status: open
title: refresh-github-worldview cross-cutting refresh script (Claude.ai 2026-05-01)
created: 2026-05-01
last_updated: 2026-05-16
closed: 2026-05-16
last_updated: 2026-05-01
decomposition: decomposed
depends_on:
- B-0156
Expand Down Expand Up @@ -452,30 +451,3 @@ own backlog row when prioritized.
This row IS that filing. Picked up via standard claim protocol when the
queue is quiet and Otto is in proactive-mode rather than mid-PR-cycle.
Don't context-switch this tick to start implementation — file and flow.

## Resolution (2026-05-16)

Closed as **multi-slice-children-all-closed drift sub-class** per the row-close gate triage in [`.claude/rules/backlog-item-start-gate.md`](../../../.claude/rules/backlog-item-start-gate.md) step 0 (PR #3757).

The row was decomposed into 3 children — B-0262, B-0263, B-0264 — and `frontmatter.children` declares the parent-child relationship. Verification 2026-05-16T07:09Z:

```bash
for B in B-0262 B-0263 B-0264; do
S=$(grep -E '^status:' docs/backlog/**/$B-*.md | awk '{print $2}')
echo "$B status: $S"
done
# B-0262 status: closed
# B-0263 status: closed
# B-0264 status: closed
```

All 3 children closed → umbrella closes per the multi-slice-with-sub-rows handling in the row-close gate. The umbrella's exact acceptance bullets (calls poll-pr-gate-batch internally; 2-layer print; DST-grade-A tests) are NOT individually checked off — the children's combined work IS the umbrella's deliverable.

This is a **new drift sub-class** not yet documented in the row-close gate rule. The taxonomy now spans 4 classes:

1. **Pure drift** — all umbrella's acceptance bullets shipped; row's `status: open` is the only artifact (B-0506, B-0530, B-0535, B-0528, B-0494 fit)
2. **Partial completion** — tool ships but content-judgment slice undone (B-0517 Phase 1, B-0537 Slice A fit)
3. **Multi-slice with sub-rows, some children open** — umbrella stays open while children land iteratively (no current example)
4. **Multi-slice with sub-rows, ALL children closed** — umbrella closeable (B-0159 — this row)

Audit anchor: 2026-05-16T07:09Z Otto-CLI; surfaced via `tools/hygiene/audit-backlog-status-drift.ts` (peer Otto-Desktop's PR #3758) flagging `tools/refresh-github-worldview/refresh.ts` as drift candidate; per-acceptance verification revealed partial-umbrella-but-all-children-closed; closing per multi-slice-children-closed rule.
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,6 @@ Iris (UX). Otto builds the substrate. They build the on-ramp.
## Composes with

- B-0212 (shadow outlet architecture)
- memory/persona/otto/conversations/2026-05-06-shadow-identity-integration-distinction-aaron-otto.md
- docs/research/2026-05-06-shadow-identity-integration-distinction-aaron-otto.md
- memory/persona/lior/conversations/2026-05-06-fear-of-wrong-as-enemy-of-learning-bravery-as-retraction-native-aaron-otto-lior.md
- docs/SAFE-AUTONOMOUS-ACTIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ ARC-AGI-3. Building the product builds the benchmark solver.

Alexa's 2026-05-07 feedback on this product thesis is preserved
as research-grade review signal at
`memory/persona/alexa/conversations/2026-05-07-alexa-dlc-product-research-loop-feedback.md`.
`docs/research/2026-05-07-alexa-dlc-product-research-loop-feedback.md`.

The key line: the product sustains the research, the research
validates the product, and the prize becomes marketing for both.
Expand Down
4 changes: 2 additions & 2 deletions docs/backlog/P1/B-0313-wake-time-otto-nn-anchor-backfill.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,10 @@ strengthens external credibility and teachability.
- [x] Coverage scanner (B-0311) confirms 7/7 resolved (post-slice-2 run 2026-05-10: 58 concepts scanned, Otto-NN 7/7 anchored via research docs; see focused check output in PR)

**Slice-1 research landing:**
`memory/persona/otto/conversations/otto-nn-principles-external-anchors-slice1-otto247-otto341-otto357.md`
`docs/research/otto-nn-principles-external-anchors-slice1-otto247-otto341-otto357.md`

**Slice-2 research landing (2026-05-10):**
`memory/persona/otto/conversations/otto-nn-principles-external-anchors-slice2-otto275-otto279-otto351-otto352.md`
`docs/research/otto-nn-principles-external-anchors-slice2-otto275-otto279-otto351-otto352.md`

## Reviewers

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ title: Claude Code `/permissions` feature — research current API + integrate t
created: 2026-05-02
last_updated: 2026-05-08
depends_on: []
decomposition: parent
decomposition: decomposed
children: [B-0532, B-0533]
classification: buildable-now
Comment on lines 6 to 11
Comment on lines 8 to 11
type: friction-reducer
---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Message schema (agent-designed):
- [x] At least 2 agents can exchange messages via the bus — PR #2886 (types + bus CLI)
- [x] Messages survive between ticks but not necessarily reboots — /tmp JSON, TTL-gated
- [x] Subscription watch mode — `bun tools/bus/bus.ts watch --to otto` (slice 2, this PR)
- [x] Multi-agent review of this design — Otto + Vera reviewed in PR #2969; review doc at `memory/persona/otto/conversations/2026-05-13-b-0400-bus-protocol-otto-review.md` (slice 6)
- [x] Multi-agent review of this design — Otto + Vera reviewed in PR #2969; review doc at `docs/research/2026-05-13-b-0400-bus-protocol-otto-review.md` (slice 6)

## Review requirement

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ from there.
- **B-0400** — Inter-agent bus (circuit breaker is a bus service)
- **B-0064** — GitHub Playwright integration (UI mutation capability)
- **B-0154** — GitHub Pages (hosting surface)
- **Amazon Alexa conversation** — `memory/persona/alexa/conversations/2026-05-10-aaron-amazon-alexa-hamiltonian-git-mapping-accelerated-timeframes-verbatim-backup.md`
- **Amazon Alexa conversation** — `docs/research/2026-05-10-aaron-amazon-alexa-hamiltonian-git-mapping-accelerated-timeframes-verbatim-backup.md`

## Acceptance

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ provides a less-ambiguous concrete claim — eliminating the
- [ ] Tracks assignment history to avoid re-assigning same row
within short window
- [ ] Tests cover the readiness-detection heuristics
- [x] Documented in `docs/AUTONOMOUS-LOOP.md`
- [ ] Documented in `docs/AUTONOMOUS-LOOP.md`

## Design sketch

Expand Down Expand Up @@ -167,11 +167,11 @@ Using the canonical per-service slice ordering from `tools/bg/README.md`:
|-------|-------------|--------|-----------|
| 1 | Skeleton + no-op poll loop | ✅ shipped | — |
| 2 | Real detection signal #1 (backlog-row scan: status + deps satisfied) | ✅ shipped | — |
| 3 | Queue-state guard wiring (`isAgentQueueEmpty` into `pollOnce`) | ✅ shipped | B-0500 |
| 3 | Queue-state guard wiring (`isAgentQueueEmpty` into `pollOnce`) | ❌ open | B-0500 |
| 4 | Bus-publish wiring (`work-assignment` topic) | ✅ shipped | — |
| 5a | Assignment history dedup / cooldown (avoid re-assigning same row) | ✅ shipped | B-0501 |
| 5a | Assignment history dedup / cooldown (avoid re-assigning same row) | ❌ open | B-0501 |
| 5.2 | Agent-side `work-assignment` subscriber handler (consume + act) | ❌ open | B-0460 |
| 6 | launchd plist + `docs/AUTONOMOUS-LOOP.md` wiring | ✅ shipped | B-0502 |
| 6 | launchd plist + `docs/AUTONOMOUS-LOOP.md` wiring | ❌ open | B-0502 |

Slices 1, 2, 4 are live in `tools/bg/backlog-ready-notifier.ts` (per README "1+2+4 live").
B-0460 depends on B-0449 (subscriber library design pass); B-0500/B-0501/B-0502 are independent.
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
---
id: B-0442
priority: P1
status: closed
status: open
title: "Missed-substrate cascade detector — background service that catches branch-vs-merged-PR drift (e.g., Otto-section-missed-PR-2980-by-3-min class)"
tier: factory-infrastructure
Comment on lines 1 to 6
effort: M
created: 2026-05-13
last_updated: 2026-05-15
closed: 2026-05-15
closed_by_pr: 3458
last_updated: 2026-05-14
depends_on: [B-0400]
composes_with: [B-0402, B-0440, B-0441]
children: [B-0503, B-0504, B-0505]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,9 @@ After absorption:

## Research substrate

- `memory/persona/deepseek/conversations/2026-05-11-deepseek-hkt-clifford-e8-klein-bottle-beacon-smooth.md`
- `docs/research/2026-05-11-deepseek-hkt-clifford-e8-klein-bottle-beacon-smooth.md`
(15-layer synthesis)
- `memory/persona/deepseek/conversations/2026-05-11-deepseek-immune-system-ilife-redteam-qubic-bankerbot-simulations.md`
- `docs/research/2026-05-11-deepseek-immune-system-ilife-redteam-qubic-bankerbot-simulations.md`
(attack simulations + vaccine spread)

## Acceptance
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
---
id: B-0494
priority: P1
status: closed
status: open
title: "Circuit breaker viz — slice-2: wire renderCircuitBreakerTab() to live bus snapshot"
type: feature
Comment on lines 1 to 6
origin: B-0435 slice-2 (noted in PR #3133 body)
created: 2026-05-14
last_updated: 2026-05-16
closed: 2026-05-16
last_updated: 2026-05-14
depends_on: [B-0435]
composes_with:
- B-0401
Expand Down Expand Up @@ -92,22 +91,3 @@ from the build moment rather than the mock.
- No blockers; all scaffolding in place from slice-1

**Claim acquired:** otto-cli, 2026-05-14, branch `feat/b-0494-circuit-breaker-live-bus-snapshot`

## Resolution (2026-05-16)

Mechanization shipped 2026-05-14 via **PR [#3134](https://github.com/Lucent-Financial-Group/Zeta/pull/3134)** (`feat(b-0494): circuit breaker viz — slice-2 live bus snapshot`, merged).

All 6 acceptance criteria verifiably shipped:

| Acceptance | Status |
|---|---|
| `tools/bus/export-cb-snapshot.ts` exists + runs | shipped (203 lines TS) |
| `demo/circuit-breaker-snapshot.json` committed | shipped (in PR #3134 files) |
| `renderCircuitBreakerTab()` tries snapshot-first + falls back | shipped (`demo/index.html:1836` has `await fetch('./circuit-breaker-snapshot.json', { cache: 'no-cache' })`) |
| Panel renders in both paths | implicit (PR #3134 merged CI green) |
| `dotnet build -c Release` 0/0 | implicit (PR #3134 merged CI green) |
| `bun tsc --noEmit` passes | implicit (PR #3134 merged CI green) |

Row left open from 2026-05-14 to 2026-05-16 as substrate drift. Caught by **the new `tools/hygiene/audit-backlog-status-drift.ts` tool** (peer Otto-Desktop shipped via PR #3758) — the audit flagged B-0494 as a drift candidate, and the manual per-acceptance-bullet verification confirmed pure-drift (vs partial-completion). This is the **first real-world use of the new audit tool** following peer's PR #3777 quality-improvement passes.

Closing per `.claude/rules/backlog-item-start-gate.md` step 0 substrate-drift discriminator (merged via PR #3757). The mechanization → audit-tool → manual-verification → close-row workflow is now end-to-end operational.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
id: B-0500
priority: P1
status: closed
status: open
title: "B-0441 slice 3 — wire isAgentQueueEmpty guard into pollOnce"
tier: factory-infrastructure
effort: XS
Expand Down Expand Up @@ -34,22 +34,22 @@ work-assignment envelopes on every poll cycle.

## Acceptance criteria

- [x] `pollOnce` consults `isAgentQueueEmpty(config.targetAgent, adapters)` before
- [ ] `pollOnce` consults `isAgentQueueEmpty(config.targetAgent, adapters)` before
publishing any work-assignment envelopes
- When queue is NOT empty → skip publish; include `"queueBusy: true"` in the
`PollResult` note field; return early (no envelopes published)
- When queue IS empty (or unknown agent) → proceed with current publish logic
- Conservative default: adapter failures (`execGitLog → null`, `execGhPrList → null`)
are treated as queue BUSY (do not trigger assignment) — matches the existing
`isAgentQueueEmpty` behavior
- [x] `NotifierConfig` gains a `targetAgent` field (default `"otto"`); `parseArgs`
- [ ] `NotifierConfig` gains a `targetAgent` field (default `"otto"`); `parseArgs`
wires `--target-agent <agent>` flag (accepts any string; not restricted to
`SENDER_IDS` because the agent patterns map is the actual lookup)
- [x] `PollResult` gains a `queueBusy: boolean` field; `pollOnce` populates it
- [x] Adapters interface unchanged (already includes `execGitLog` + `execGhPrList`
- [ ] `PollResult` gains a `queueBusy: boolean` field; `pollOnce` populates it
- [ ] Adapters interface unchanged (already includes `execGitLog` + `execGhPrList`
+ `agentPatterns` — exactly what `isAgentQueueEmpty` needs)
- [x] Existing tests updated to pass `targetAgent` where `DEFAULT_CONFIG` is used
- [x] New tests added:
- [ ] Existing tests updated to pass `targetAgent` where `DEFAULT_CONFIG` is used
- [ ] New tests added:
- `pollOnce` with queue-busy adapters → `publishedEnvelopeIds` empty,
`queueBusy: true`, no `publishAssignment` calls
- `pollOnce` with queue-empty adapters AND ready rows → envelopes published,
Expand Down Expand Up @@ -91,7 +91,7 @@ B-0441 (slices 1+2+4 shipped — backlog-ready-notifier.ts functional)

## Pre-start checklist (per backlog-item-start-gate)

- [x] Verify `isAgentQueueEmpty` signature in `backlog-ready-notifier.ts` before writing
- [x] Run `bun tools/bg/backlog-ready-notifier.test.ts` to confirm all existing tests pass
- [ ] Verify `isAgentQueueEmpty` signature in `backlog-ready-notifier.ts` before writing
- [ ] Run `bun tools/bg/backlog-ready-notifier.test.ts` to confirm all existing tests pass
before adding new ones
- [x] Verify `PollResult` type is exported (it is — used in test file)
- [ ] Verify `PollResult` type is exported (it is — used in test file)
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
id: B-0502
priority: P1
status: shipped
status: in-progress
title: "B-0441 slice 6 — launchd plist for backlog-ready-notifier + AUTONOMOUS-LOOP.md update"
tier: factory-infrastructure
effort: XS
Expand Down Expand Up @@ -35,7 +35,7 @@ covers the same gap for `standing-by-detector.ts`.

## Acceptance criteria

- [x] `.gemini/launchd/com.zeta.backlog-ready-notifier.plist` created; follows the
- [ ] `.gemini/launchd/com.zeta.backlog-ready-notifier.plist` created; follows the
established pattern from `.gemini/launchd/com.zeta.missed-substrate-detector.plist`:
- `Label`: `com.zeta.backlog-ready-notifier`
- `ProgramArguments`:
Expand All @@ -50,14 +50,14 @@ covers the same gap for `standing-by-detector.ts`.
- `WorkingDirectory`: repo root (`/Users/acehack/Documents/src/repos/Zeta`)
- Maintainer-note comment: paths are machine-specific (`/Users/acehack`,
`/opt/homebrew`); update before `launchctl load`
- [x] `docs/AUTONOMOUS-LOOP.md` §"Related artifacts" updated:
- [ ] `docs/AUTONOMOUS-LOOP.md` §"Related artifacts" updated:
- `backlog-ready-notifier.ts` listed as launchd-registered alongside
`missed-substrate-detector.ts` (remove from "not yet wired to launchd" list)
- Add note: "produces `work-assignment` bus envelopes; see B-0460 for the
subscriber handler that consumes them"
- [x] B-0441 acceptance criterion #2 ("Runs under existing launchd / cron
- [ ] B-0441 acceptance criterion #2 ("Runs under existing launchd / cron
infrastructure") ticked on the parent row
- [x] `tools/bg/README.md` §"Current services" table updated: slice status for
- [ ] `tools/bg/README.md` §"Current services" table updated: slice status for
`backlog-ready-notifier.ts` changed from `1+2+4 live` to `1+2+3+4+6 live`
(after B-0500 lands; if B-0500 is not yet merged, note it separately)

Expand Down
Loading
Loading