memory(feedback): substrate-drift-catch pattern (claim acquire + existence-check)#3748
Conversation
…ferred PR-create + auto-merge to next tick Fifth tick of the resume-session series. Per never-be-idle ladder, picked substantive substrate work while PR #3744 was in CI wait: extended .claude/rules/backlog-item-start-gate.md with a companion row-close gate codifying the drift / partial / multi-slice triage discipline from this session's drift-catch burst. Rule extension landed as commit 559f7cd on chore/backlog-item-close-gate-otto-cli-2026-05-16. PR created (URL output cut by rate-limit). Auto-merge arm + this-shard's PR creation deferred to next tick when GitHub GraphQL rate limit resets (~04:56Z). Rate-limit hit per refresh-world-model-poll-pr-gate.md cost-awareness: multi-agent shared-token consumption (Otto-CLI + Otto-Desktop + Lior + Vera + Riven) on a 5000/hr budget exhausted at 5003 used. Recovery discipline: stop further gh calls until reset; continue git+file operations; defer arm + verify to next tick. Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
…tence-check) Four-catch empirical evidence from 2026-05-16T04:15Z–04:51Z session (B-0506, B-0528, B-0530, B-0535 across two Otto-CLI surfaces). The pattern extends backlog-item-start-gate with a zero-th step: run existence-check on artifact paths BEFORE writing any implementation. Cost ~3 seconds; saves the entire tick when work has already shipped. Mechanization candidate (audit tool) filed in the memory body, not yet a row. Reindex auto-updated memory/MEMORY.md via tools/memory/reindex-memory-md.ts. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a884fd99ba
ℹ️ 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".
There was a problem hiding this comment.
Pull request overview
This PR records a feedback memory for the substrate-drift-catch workflow and updates the memory index/tick history so future agents can discover the pattern.
Changes:
- Adds a new
memory/feedback_*file documentingclaim acquireplus artifact existence checks. - Regenerates
memory/MEMORY.mdto include recent memory entries. - Adds the 2026-05-16T04:51Z hygiene tick shard covering rate-limit handling and related substrate work.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
memory/MEMORY.md |
Updates the generated memory stack index with recent entries. |
memory/feedback_substrate_drift_catch_pattern_claim_acquire_plus_existence_check_otto_cli_2026_05_16.md |
Documents the drift-catch pattern, examples, composition links, and failure modes. |
docs/hygiene-history/ticks/2026/05/16/0451Z.md |
Adds a tick-history shard for the 04:51Z session and GitHub rate-limit state. |
Comments suppressed due to low confidence (2)
memory/feedback_substrate_drift_catch_pattern_claim_acquire_plus_existence_check_otto_cli_2026_05_16.md:81
- This origin trail references
0436Z.mdand0448Z.md, butdocs/hygiene-history/ticks/2026/05/16/contains0437Z.md,0438Z.md, and0444Z.mdinstead. These stale/mistyped cross-references will send future readers to missing tick shards; update them to existing shard names or explain that the omitted shards are not in the tree.
`docs/hygiene-history/ticks/2026/05/16/0415Z.md` + `0425Z.md` + `0436Z.md` + `0438Z.md` + `0448Z.md` — the 5-shard trail across the 2026-05-16 cold-boot session.
memory/feedback_substrate_drift_catch_pattern_claim_acquire_plus_existence_check_otto_cli_2026_05_16.md:54
- The proposed auditor only extracts paths under
tools/and.claude/, but one of the motivating drift catches (B-0535) depended on.github/workflows/gate.ymlwiring. With this scope, a future auditor could mark a row as drift after seeing the tool path while missing required workflow/config artifacts, which is exactly the partial-vs-drift distinction this memory is trying to preserve.
**`tools/hygiene/audit-backlog-status-drift.ts`** — for each `status: open` row, parse the body for paths under `tools/` and `.claude/`; report rows where ALL named paths exist on disk. Run as a daily GitHub Actions cron and as a per-tick pre-flight when picking work.
|
Thread triage:
Next tick will land all three deferred fixes in one atomic commit on |
…-filled content; resolved 3 threads); PR #3748 + #3751 + #3752 merged (#3753) Eighth tick. Discovered peer Otto already wrote the precise content addressing all 3 substantive findings on PR #3748. Resolved 3 threads as satisfied; PR #3748 gate moved BLOCKED → CLEAN → MERGED in the same tick. PR #3751 + #3752 also merged. Substrate-honest validation of the deferred-fix-with-acknowledgment pattern: post itemized comment with disposition + plan + branch = peer-or-future-self picks it up cleanly. Bandwidth-short ≠ standing-by when the deferral is concrete. Co-authored-by: Claude <noreply@anthropic.com>
…e threads + HEAD-desync caught live (#3755) Ninth tick. Brief-ack #2 of session. Investigated 2 remaining PR #3746 threads: viewpoint-difference (B-0528/B-0535 actor attribution from different Otto lanes; both correct) + peer's content (off-by-one in bundled 0448Z shard). Not actionable; posted explanatory comment instead of content edits; auto-merge stays armed. Caught the multi-Otto HEAD-desync pattern live during investigation: peer Otto-Desktop landed f546dba on backlog/b0553 branch while my Bash invocations were on chore/backlog-item-close-gate branch. git branch --show-current returned peer's branch after switch. Validates the failure mode documented in the substrate-drift-catch memory file (now merged via PR #3748). Rate limit at 1266/5000 noted; next-tick should minimize gh calls. Co-authored-by: Claude <noreply@anthropic.com>
Summary
.claude/rules/backlog-item-start-gate.mdwith a zero-th step: existence-check artifact paths BEFORE writing any implementation. Cost ~3 seconds; saves the entire tick when work has shipped..git/index.lockrace; multi-Otto HEAD desync).Test plan
memory/MEMORY.mdreindex regenerated viatools/memory/reindex-memory-md.ts— new entry presentname/description/type: feedback/createdconvention🤖 Generated with Claude Code