chore(b-0368): decompose layer 1 - backlog only#3804
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 30bcb70c20
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| 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`, |
There was a problem hiding this comment.
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 👍 / 👎.
| last_updated: 2026-05-14 | ||
| decomposition: decomposed | ||
| children: [B-0058.1, B-0058.3] | ||
| children: [B-0058.1] |
There was a problem hiding this comment.
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 👍 / 👎.
There was a problem hiding this comment.
Pull request overview
This PR is a backlog-only change set that decomposes B-0368 into two child backlog rows (B-0532/B-0533) and then applies broad metadata/link edits across many existing backlog rows (status flips, last_updated edits, and path rewrites from memory/persona/... to docs/research/...).
Changes:
- Add new P2 child rows B-0532 and B-0533 and wire them as children of B-0368.
- Reopen multiple previously-closed backlog rows and delete their “Resolution” sections.
- Rewrite many backlog-row cross-references from
memory/persona/...todocs/research/....
Reviewed changes
Copilot reviewed 32 out of 32 changed files in this pull request and generated 31 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/backlog/P3/B-0530-cron-sentinel-mutex-prevent-otto-cli-self-contention-2026-05-15.md | Reopens row and removes resolution section; updates frontmatter. |
| docs/backlog/P3/B-0528-shadow-launchd-installer-unit-tests-2026-05-15.md | Reopens row; updates frontmatter. |
| docs/backlog/P3/B-0506-stale-worktree-prune-cadence-mechanization-2026-05-14.md | Reopens row and removes resolution section; updates frontmatter. |
| docs/backlog/P3/B-0203-deepseek-v4-csa-hca-zset-algebra-composability-aaron-2026-05-05.md | Updates research-doc link target paths. |
| docs/backlog/P3/B-0202-tinygrad-uop-ir-kernel-layer-model-zeta-emulator-dispatch-aaron-2026-05-05.md | Updates research-doc link target paths. |
| docs/backlog/P3/B-0002-otto-287-noether-formalization.md | Updates research-doc link target paths. |
| docs/backlog/P2/B-0533-claude-code-permissions-integration-pattern-documentation.md | Adds new child row for documenting Claude Code /permissions integration pattern. |
| docs/backlog/P2/B-0532-claude-code-permissions-hardcoded-safety-gates-investigation.md | Adds new child row for investigating hardcoded vs settings-allowable permission gates. |
| docs/backlog/P2/B-0196-bigint-and-bignumber-integration-aaron-2026-05-05.md | Updates research-doc link target path. |
| docs/backlog/P2/B-0049.1-mystery-schools-stage1-eleusinian-bibliographic-scaffold.md | Reopens row; adjusts last_updated. |
| docs/backlog/P2/B-0046.1-economics-history-stage1-reading-list-scaffold.md | Reopens row; adjusts last_updated. |
| docs/backlog/P2/B-0045.1-biology-stage1-reading-list-scaffold.md | Reopens row; adjusts last_updated. |
| docs/backlog/P2/B-0001-example-schema-self-reference.md | Updates design-spec link target path. |
| docs/backlog/P1/B-0505-b0442-slice5c-docs-autonomous-loop-acceptance-close-2026-05-14.md | Reopens row; adjusts last_updated and closure metadata. |
| docs/backlog/P1/B-0504-b0442-slice5b-wire-auto-recover-into-pollonce-2026-05-14.md | Reopens row; adjusts last_updated and closure metadata. |
| docs/backlog/P1/B-0503-b0442-slice5a-open-recovery-pr-core-function-2026-05-14.md | Reopens row; rewrites acceptance criteria + design sketch; adjusts last_updated. |
| docs/backlog/P1/B-0502-b0441-slice-6-launchd-plist-autonomous-loop-docs-2026-05-14.md | Changes row status and resets acceptance checklist items. |
| docs/backlog/P1/B-0500-b0441-slice-3-queue-state-guard-poll-once-wiring-2026-05-14.md | Reopens row and resets acceptance checklist items. |
| docs/backlog/P1/B-0494-circuit-breaker-live-bus-snapshot-2026-05-14.md | Reopens row and removes resolution section; adjusts last_updated. |
| docs/backlog/P1/B-0463-wallet-immune-system-vaccine-spread-poucc-spec.md | Updates research-doc link target paths. |
| docs/backlog/P1/B-0442-missed-substrate-cascade-detector-background-service-2026-05-13.md | Reopens row; adjusts last_updated and closure metadata. |
| docs/backlog/P1/B-0441-backlog-row-ready-to-grind-notifier-background-service-2026-05-13.md | Resets acceptance markers + slice status table for the notifier service. |
| docs/backlog/P1/B-0401-demo-surface-circuit-breaker-hamiltonian-git-alignment-ui.md | Updates Alexa-conversation reference path. |
| docs/backlog/P1/B-0400-inter-agent-ephemeral-communication-bus-nats-protocol.md | Updates multi-agent review doc reference path. |
| docs/backlog/P1/B-0368-claude-code-permissions-feature-tight-integration-aaron-2026-05-02.md | Marks row decomposed and adds children list for B-0532/B-0533. |
| docs/backlog/P1/B-0313-wake-time-otto-nn-anchor-backfill.md | Updates slice research landing paths. |
| docs/backlog/P1/B-0247-ace-dlc-content-packs-kernel-extensions-package-manager-2026-05-07.md | Updates Alexa-feedback reference path. |
| docs/backlog/P1/B-0239-shadow-work-as-ai-debugger-for-regular-people-product-pitch-2026-05-06.md | Updates shadow-identity research reference path. |
| docs/backlog/P1/B-0159-refresh-github-worldview-cross-cutting-claudeai-2026-05-01.md | Reopens row and removes resolution section; adjusts last_updated. |
| docs/backlog/P1/B-0061-finish-monolith-to-per-row-migration-no-residue-aaron-2026-04-28.md | Updates design-spec reference path. |
| docs/backlog/P1/B-0058-ai-ethics-and-safety-research-track.md | Updates children list and edits section text; adjusts last_updated. |
| docs/backlog/P1/B-0003-alignment-md-rewrite.md | Updates Otto-287 research reference paths. |
Comments suppressed due to low confidence (15)
docs/backlog/P3/B-0530-cron-sentinel-mutex-prevent-otto-cli-self-contention-2026-05-15.md:10
last_updatedwas set to 2026-05-15, but this row is being edited in this PR. Pertools/backlog/README.md(last_updatedis updated on every content edit), please bumplast_updatedto the date of this change instead of regressing it.
docs/backlog/P3/B-0528-shadow-launchd-installer-unit-tests-2026-05-15.md:10last_updatedwas regressed to 2026-05-15, but this row is being modified in this PR.tools/backlog/README.mdrequires updatinglast_updatedon every content edit—please bump it to the date of this edit.
docs/backlog/P3/B-0506-stale-worktree-prune-cadence-mechanization-2026-05-14.md:10last_updatedwas regressed to 2026-05-14 even though the row is edited in this PR. Please updatelast_updatedto reflect this edit (required bytools/backlog/README.md).
title: "Stale-worktree prune cadence — mechanize `git worktree prune --expire=now`"
tier: factory-hygiene
effort: S
created: 2026-05-14
last_updated: 2026-05-14
depends_on: []
docs/backlog/P3/B-0203-deepseek-v4-csa-hca-zset-algebra-composability-aaron-2026-05-05.md:431
- This second reference to
docs/research/...tinygrad-uop...mdalso points to a non-existent file indocs/research/on this branch. Please update it to the actual location (currently undermemory/persona/deepseek/conversations/...) or add the missing doc so the link resolves.
composition.
- The research-doc preservation at
[`docs/research/2026-05-05-claudeai-tinygrad-uop-turboquant-deepseek-v4-symbolica-categorical-aaron-forwarded-preservation.md`](../../research/2026-05-05-claudeai-tinygrad-uop-turboquant-deepseek-v4-symbolica-categorical-aaron-forwarded-preservation.md)
-- the upstream artifact this row absorbs from. Lands via PR #1610.
docs/backlog/P3/B-0202-tinygrad-uop-ir-kernel-layer-model-zeta-emulator-dispatch-aaron-2026-05-05.md:445
- This later reference to
docs/research/...tinygrad-uop...mdis also broken because the target file isn’t indocs/research/on this branch. Please update it to the actual existing path (currently undermemory/persona/deepseek/conversations/...) or add the missing doc.
ROM emulators, the UOp-substrate question composes directly with the
ROM-emulator engineering lane.
- **The research-doc preservation** (will resolve at
`docs/research/2026-05-05-claudeai-tinygrad-uop-turboquant-deepseek-v4-symbolica-categorical-aaron-forwarded-preservation.md`
once sibling PR #1610 merges) -- the verbatim Aaron-forwarded
docs/backlog/P3/B-0002-otto-287-noether-formalization.md:84
- This second reference to
docs/research/otto-287-noether-formalization-2026-04-25.mdis also broken because the target file doesn’t exist underdocs/research/on this branch. Please update it to the current location undermemory/persona/otto/conversations/...(or add the missing doc).
- `memory/feedback_finite_resource_collisions_unifying_friction_taxonomy_otto_287_2026_04_25.md`
— the substrate captured this observation
- `docs/research/otto-287-noether-formalization-2026-04-25.md`
— the research direction
docs/backlog/P1/B-0313-wake-time-otto-nn-anchor-backfill.md:86
- This slice-2 research landing was updated to a
docs/research/...path, but that file does not exist indocs/research/on this branch. The slice docs exist undermemory/persona/otto/conversations/(e.g.,otto-nn-principles-external-anchors-slice2-otto275-otto279-otto351-otto352.md). Please link to the existing location or add the missing research doc.
**Slice-2 research landing (2026-05-10):**
`docs/research/otto-nn-principles-external-anchors-slice2-otto275-otto279-otto351-otto352.md`
docs/backlog/P1/B-0463-wallet-immune-system-vaccine-spread-poucc-spec.md:98
- This second DeepSeek reference was also changed to a
docs/research/...path, but the target file is not present indocs/research/on this branch. The referenced artifact exists atmemory/persona/deepseek/conversations/2026-05-11-deepseek-immune-system-ilife-redteam-qubic-bankerbot-simulations.md; please update the link accordingly (or add the missing research doc).
- `docs/research/2026-05-11-deepseek-hkt-clifford-e8-klein-bottle-beacon-smooth.md`
(15-layer synthesis)
- `docs/research/2026-05-11-deepseek-immune-system-ilife-redteam-qubic-bankerbot-simulations.md`
(attack simulations + vaccine spread)
docs/backlog/P1/B-0003-alignment-md-rewrite.md:179
- This second reference to
docs/research/otto-287-noether-formalization-2026-04-25.mdis also broken because the target file isn’t indocs/research/on this branch. Please update it to the existing location undermemory/persona/otto/conversations/...(or add the missing research doc).
— the rigor foundation.
- `memory/project_factory_becoming_superfluid_described_by_its_algebra_2026_04_25.md`
— the empirical calibration data.
- `docs/research/otto-287-noether-formalization-2026-04-25.md`
— the formalization research that compounds rigor.
docs/backlog/P1/B-0500-b0441-slice-3-queue-state-guard-poll-once-wiring-2026-05-14.md:8
- This row was changed from closed → open and its acceptance checklist was reset, but the described behavior appears to already be implemented (
tools/bg/backlog-ready-notifier.tscallsisAgentQueueEmpty(config.targetAgent, ...)and uses atargetAgentfield). Reopening the row will make generated backlog views inaccurate unless the code is also being rolled back.
---
id: B-0500
priority: P1
status: open
title: "B-0441 slice 3 — wire isAgentQueueEmpty guard into pollOnce"
tier: factory-infrastructure
effort: XS
created: 2026-05-14
docs/backlog/P1/B-0502-b0441-slice-6-launchd-plist-autonomous-loop-docs-2026-05-14.md:8
- This row’s status was changed from
shippedtoin-progressand the acceptance checklist was reset, but the launchd plist exists at.gemini/launchd/com.zeta.backlog-ready-notifier.plist. Unless this PR also removes/invalidates that artifact, the backlog row should remain consistent with what’s already in-tree.
---
id: B-0502
priority: P1
status: in-progress
title: "B-0441 slice 6 — launchd plist for backlog-ready-notifier + AUTONOMOUS-LOOP.md update"
tier: factory-infrastructure
effort: XS
created: 2026-05-14
docs/backlog/P1/B-0503-b0442-slice5a-open-recovery-pr-core-function-2026-05-14.md:66
- The acceptance criteria + design sketch were changed to require
buildRecoveryBranchName(prNumber, ts)and timestamped branch names, but the shipped implementation intools/bg/missed-substrate-recovery.tsexportsbuildRecoveryBranchName(prNumber)and documents that determinism is load-bearing. Please keep this backlog row consistent with the current code, or include the corresponding code changes in the same PR so the spec and implementation don’t diverge.
| { status: "error"; reason: string }
```
- `buildRecoveryBranchName(prNumber: number, ts: Date) => string`
— deterministic branch name `recovery/<prNumber>-<YYYYMMDDHHMMSS>`;
pure function; no I/O.
- `buildRecoveryPRBody(finding: CascadeFinding) => string`
docs/backlog/P1/B-0503-b0442-slice5a-open-recovery-pr-core-function-2026-05-14.md:145
- The design sketch now calls
buildRecoveryBranchName(finding.prNumber, new Date()), which makesopenRecoveryPRnon-deterministic; the current implementation intools/bg/missed-substrate-recovery.tsuses a deterministic branch name and relies on it for idempotency. If you really want timestamped names, the idempotency strategy in the shipped code/docs will need to be updated together (otherwise this row will mis-spec what’s actually deployed).
finding: CascadeFinding,
dryRun: boolean,
adapters: RecoveryAdapters,
): RecoveryResult {
const recoveryBranch = buildRecoveryBranchName(finding.prNumber, new Date());
const exists = adapters.checkRecoveryPRExists(recoveryBranch);
docs/backlog/P1/B-0503-b0442-slice5a-open-recovery-pr-core-function-2026-05-14.md:203
- This explanatory section now says the timestamp is “not load-bearing for correctness,” but the shipped implementation’s comments explicitly treat determinism as load-bearing for the idempotency gate. Please reconcile the explanation with the actual implementation (or update the code to match this new rationale).
adapter implementations. The real adapters (in B-0504) must validate SHA
inputs from `CascadeFinding.missingCommits` with the same allow-list regex
already used in `compareBranchToMerged`.
## Why `openRecoveryPR` uses `new Date()` internally for the branch name
The recovery branch name includes a timestamp to ensure uniqueness across
multiple recovery attempts for the same PR number. Using `new Date()` inside
`openRecoveryPR` rather than injecting it via adapters is intentional: the
idempotency gate (`checkRecoveryPRExists`) already prevents duplicate
recovery PRs; the timestamp is not load-bearing for correctness. For tests
that need to verify the branch name, `buildRecoveryBranchName` is exported
and tested separately.
docs/backlog/P1/B-0504-b0442-slice5b-wire-auto-recover-into-pollonce-2026-05-14.md:10
last_updatedwas regressed to 2026-05-14 even though this row is being edited in this PR. Pertools/backlog/README.md, please bumplast_updatedto the date of this edit.
tier: factory-infrastructure
effort: S
created: 2026-05-14
last_updated: 2026-05-14
parent: B-0442
| id: B-0530 | ||
| priority: P3 | ||
| status: closed | ||
| status: open | ||
| title: "Cron-sentinel mutex — prevent multi-Otto-CLI self-contention on .git/objects/pack" |
| id: B-0528 | ||
| priority: P3 | ||
| status: closed | ||
| status: open | ||
| title: "Unit tests for tools/shadow/launchd/install-launchagent.ts" | ||
| tier: factory-infrastructure |
| id: B-0506 | ||
| priority: P3 | ||
| status: closed | ||
| status: open | ||
| title: "Stale-worktree prune cadence — mechanize `git worktree prune --expire=now`" | ||
| tier: factory-hygiene |
|
|
||
| Full verbatim research-doc preservation: | ||
| [`memory/persona/deepseek/conversations/2026-05-05-claudeai-tinygrad-uop-turboquant-deepseek-v4-symbolica-categorical-aaron-forwarded-preservation.md`](../../../memory/persona/deepseek/conversations/2026-05-05-claudeai-tinygrad-uop-turboquant-deepseek-v4-symbolica-categorical-aaron-forwarded-preservation.md) | ||
| [`docs/research/2026-05-05-claudeai-tinygrad-uop-turboquant-deepseek-v4-symbolica-categorical-aaron-forwarded-preservation.md`](../../research/2026-05-05-claudeai-tinygrad-uop-turboquant-deepseek-v4-symbolica-categorical-aaron-forwarded-preservation.md) |
| recent backend additions | ||
|
|
||
| Full verbatim research-doc preservation will land at | ||
| `memory/persona/deepseek/conversations/2026-05-05-claudeai-tinygrad-uop-turboquant-deepseek-v4-symbolica-categorical-aaron-forwarded-preservation.md` | ||
| `docs/research/2026-05-05-claudeai-tinygrad-uop-turboquant-deepseek-v4-symbolica-categorical-aaron-forwarded-preservation.md` | ||
| once sibling PR #1610 merges; until then, the link target lives on |
| 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 |
| last_updated: 2026-05-14 | ||
| decomposition: decomposed | ||
| children: [B-0058.1, B-0058.3] | ||
| children: [B-0058.1] | ||
| depends_on: [] |
| created: 2026-05-02 | ||
| last_updated: 2026-05-08 | ||
| depends_on: [] | ||
| decomposition: parent | ||
| decomposition: decomposed | ||
| children: [B-0532, B-0533] | ||
| classification: buildable-now |
| --- | ||
| id: B-0504 | ||
| priority: P1 | ||
| status: closed | ||
| status: open | ||
| title: "B-0442 slice 5b — wire --auto-recover into pollOnce + real RecoveryAdapters + config flags" | ||
| tier: factory-infrastructure |
| depends_on: [] | ||
| decomposition: parent | ||
| decomposition: decomposed | ||
| children: [B-0532, B-0533] | ||
| classification: buildable-now |
|
Maji (Node 4) Entropy Reduction: This PR is a massive blob (32 files). It violates atomic PR constraints. I am unable to decompose it at this moment due to a stale |
Decomposed from PR #3545. Peeling off the backlog changes into an atomic PR.