backlog(B-0558): worktree-pool primitive — re-land of #3817 (BACKLOG.md conflict bypassed)#3894
Merged
Merged
Conversation
…eticks per Otto identity (re-land) Re-lands the substantive content from PR #3817 (DIRTY/CONFLICTING on docs/BACKLOG.md) onto a fresh branch off current main. The file content is unchanged; the BACKLOG.md insertion is manually re-applied to match current main's index state (B-0557 now `[x]`). Substrate addresses sub-case 4 (pruned-sidetick race) of the borrow-on-existing pattern in claim-acquire-before-worktree-work.md. 4 failure sub-cases empirically validated in 0715Z tick arc; sub-cases 3 + 4 need substrate engineering (B-0530 + this row). Original PR #3817 will be closed with cross-link to this PR. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Re-lands backlog item B-0558 documenting a proposed “worktree-pool” primitive (pre-allocated sideticks per Otto identity) and adds it to the generated backlog index, to address the pruned-sidetick race (sub-case 4) described in prior operational substrate.
Changes:
- Added new backlog row file B-0558 under
docs/backlog/P3/describing the problem, proposed design, and acceptance criteria. - Updated
docs/BACKLOG.mdto include the new B-0558 index entry.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
| docs/backlog/P3/B-0558-worktree-pool-primitive-per-otto-identity-2026-05-16.md | New P3 backlog row specifying the worktree-pool primitive design + acceptance criteria. |
| docs/BACKLOG.md | Adds the B-0558 row to the backlog index list. |
Two MD032 failures inherited from #3817's original authoring. Added blank lines before the two affected lists in Empirical anchors and Effort estimate sections. Co-Authored-By: Claude <noreply@anthropic.com>
…, type, 0715Z ref, git syntax, B-0506 link, BACKLOG.md regen) All 6 findings verified real. Row file: 4 edits (frontmatter last_updated added; type: feat → feature; 0715Z reference rephrased to acknowledge PR #3808 closed-without-merge; git one-liner split into two commands; B-0506 linked to its file). BACKLOG.md regenerated via bun tools/backlog/generate-index.ts — output byte-identical to prior manual edit (no diff). Co-Authored-By: Claude <noreply@anthropic.com>
Comment on lines
+20
to
+32
| Tick 06:43Z-07:18Z (2026-05-16): a fresh-cold-boot Otto-CLI session firing during peer Otto's active cascade took **4 commit attempts** to ship a tick shard. The 4 attempts empirically validated all 4 distinct failure sub-cases of [`.claude/rules/claim-acquire-before-worktree-work.md`](../../../.claude/rules/claim-acquire-before-worktree-work.md)'s borrow-on-existing pattern under sustained multi-Otto saturation: | ||
|
|
||
| | # | Sub-case | Mitigation status | | ||
| |---|---|---| | ||
| | 1 | Existing-branch-name reuse → peer-WIP commit inheritance | ✓ uniquified name + git rev-parse pre-check | | ||
| | 2 | Concurrent-WIP-blocked switch | ✓ wait for working-tree-clean window (capacity-limited) | | ||
| | 3 | Pack-dir B-0530 race on `git worktree add` | ✗ NO MITIGATION — needs [B-0530](B-0530-cron-sentinel-mutex-prevent-otto-cli-self-contention-2026-05-15.md) mutex | | ||
| | 4 | Pruned-sidetick race | ✗ NO MITIGATION — needs THIS ROW | | ||
|
|
||
| Empirical anchors: | ||
|
|
||
| - Shard PR [#3808](https://github.com/Lucent-Financial-Group/Zeta/pull/3808) — the 4-tick-arc evidence (PR closed-without-merge; the `0715Z.md` shard never landed on `origin/main`, only in the PR's branch history per [`lost-files-surface.md`](../../../.claude/rules/lost-files-surface.md)) | ||
| - Rule PR [#3812](https://github.com/Lucent-Financial-Group/Zeta/pull/3812) — operationalizes sub-cases 1+2 mitigations into rule body, flags 3+4 as needing substrate-engineer work |
AceHack
added a commit
that referenced
this pull request
May 16, 2026
…-model rule (#3896) Empirical anchor 2026-05-16T15:14Z: PR #3894 merged at 15:11Z was invisible to `git log origin/main --since="20 min ago"` because squash-merge preserves the original commit-date (author-date), not merge-date. `--since` filters on author- date and drops PRs squashed from older branches. Mitigation: prefer `git log origin/main | head -N` over `--since="X min ago"` for recent-merge queries. Co-authored-by: Claude <noreply@anthropic.com>
AceHack
added a commit
that referenced
this pull request
May 16, 2026
Same FP class as #3894's lint fix. Adds blank line after the 'Either:' lead-in. Co-Authored-By: Claude <noreply@anthropic.com>
AceHack
added a commit
that referenced
this pull request
May 16, 2026
…#3823 closed + #3817 deferred (#3883) * shard(tick): 2026-05-16T13:31Z — stale-armed-PR triage: #3871 merged + #3823 closed + #3817 deferred Continuing investigation-then-act discipline from 13:10Z tick: - #3871 (12:07Z+12:11Z bundle) self-resolved + merged - #3823 closed as redundant (0758Z.md already on main) - #3817 deferred (BACKLOG.md conflict needs manual rebase) No multi-Otto contamination this tick. Audit cycle 38/38 holds. Co-Authored-By: Claude <noreply@anthropic.com> * fix: MD032 blank-line before list in 1331Z.md line 25 Same FP class as #3894's lint fix. Adds blank line after the 'Either:' lead-in. Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
This was referenced May 16, 2026
AceHack
added a commit
that referenced
this pull request
May 16, 2026
…3901) Today's session produced 3 distinct instances where forced escalation at brief-ack #6 (or pre-emptive at #5) surfaced substantive work the brief-ack-only ticks had missed: - 14:56Z #6 → PR #3894 hid 6 Copilot findings (22 min stale) - 15:29Z pre-emptive #5 → PR #3883 (own) stale-armed 108 min - 15:45Z #6 → PR #3545 forward-signal comment (19+ hr stale) Pattern observation worth carving into the rule's empirical- anchor section so future-Otto inherits the validated discipline: the counter forces invocation of investigation discipline on regular cadence, which IS where the hidden work is. Co-authored-by: Claude <noreply@anthropic.com>
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.
Re-lands the substantive content from PR #3817 (DIRTY/CONFLICTING on `docs/BACKLOG.md` since 07:57Z; armed-but-unmergeable for hours). Server-side `gh pr update-branch --rebase` failed repeatedly; this PR cherry-picks the substrate onto a fresh branch off current main and re-applies the BACKLOG.md insertion manually.
Substrate
`docs/backlog/P3/B-0558-worktree-pool-primitive-per-otto-identity-2026-05-16.md` (new, 102 lines)
Worktree-pool primitive — addresses sub-case 4 (pruned-sidetick race) of `.claude/rules/claim-acquire-before-worktree-work.md`'s borrow-on-existing pattern. Composes with B-0506, B-0519, B-0530.
Empirical anchors (from row body):
`docs/BACKLOG.md` (+1 line)
Adds the B-0558 entry after B-0557 (which is now `[x]` on main — that's the change that drifted from #3817's tree).
Why not just rebase #3817?
Tried at 13:31Z (`gh pr update-branch --rebase 3817` → `X Cannot update PR branch due to conflicts`) and again at 14:21Z (same result). Local rebase + force-push would work but is risky under multi-Otto contention (3-4 Lior procs + parallel Otto-CLI sessions doing `git switch` on the shared worktree). Re-land on fresh branch is the lower-risk path; content is identical.
Cleanup
#3817 will be closed with a cross-link to this PR once this lands.