chore(backlog): regenerate docs/BACKLOG.md — B-0488 closed + B-0329 pickup#3247
Merged
Conversation
…ssive pickup PR #3244 (B-0488 close-out) merged the row's status flip but didn't include the BACKLOG.md regen — Copilot flagged this on #3244 as a substantive catch. Regenerating now closes the drift. Two changes: 1. B-0488 KSK persona map row: `- [ ]` -> `- [x]` (status: closed) 2. NEW row B-0329 picked up — `B-0329-new-surface-audit-alignment-check.md` was added on disk by another Otto without an index regen. Pure regen via `BACKLOG_WRITE_FORCE=1 bun tools/backlog/generate-index.ts`. No per-row file changes. Per the row-close-out pattern codified in tick 2055Z: ideally the close-out PR would have included the regen; future row-close-outs should do so. This PR is the cleanup; the pattern is fixed forward. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Regenerates the generated backlog index after a closed-row status change and picks up a newly present backlog row.
Changes:
- Marks B-0488 as closed in
docs/BACKLOG.md. - Adds the newly discovered B-0329 row to the generated index.
- Preserves generated backlog-index formatting.
Merged
5 tasks
AceHack
added a commit
that referenced
this pull request
May 14, 2026
…BACKLOG drift cleanup) (#3248) Tick output: - PR #3247 (chore(backlog) regen): closes BACKLOG.md drift caused by PR #3244 (B-0488 close-out) not including the regen. +2/-1 lines: B-0488 checkbox flip + B-0329 passive pickup. Auto-merge armed. - Commit 38771fb on PR #3245's branch: fixes `git diff --stat` format accuracy per Copilot review. Thread resolved. - Thread on PR #3244 (merged) acknowledged + resolved with reply pointing to #3247. - This shard. Both Copilot catches were substantive (not nits): - #3244: BACKLOG.md drift after status flip - #3245: incorrect quoted `git diff --stat` output format Patterns codified: - Row-close-out PRs should include BACKLOG.md regen in the same PR - Tick shards quoting command output should reproduce real format, not paraphrase PRs merged during the tick: #3239 + #3240 + #3244. Session tally: 13 merged + 4 wait-ci. Cron sentinel 12fb713e armed; recurring. Co-authored-by: Claude <noreply@anthropic.com>
Copilot caught the substantive ID-collision: BACKLOG.md regen added a second visible B-0329 entry because two on-disk files both claimed `id: B-0329`: - B-0329-claude-md-as-process-not-doctrine.md (existing — keep this one) - B-0329-new-surface-audit-alignment-check.md (NEW — collision) Backlog IDs are required to be factory-wide unique (tools/backlog/README.md). Two rows with the same ID can't unambiguously resolve in edge references. Resolution: - Rename file: B-0329-new-surface-audit-alignment-check.md -> B-0520-new-surface-audit-alignment-check.md - Update frontmatter: id: B-0329 -> id: B-0520 - Update body heading: "# B-0329 — ..." -> "# B-0520 — ..." - Add renumbered_from breadcrumb frontmatter field citing the Copilot catch + PR #3247 - Regenerate BACKLOG.md — duplicate B-0329 row removed, B-0520 picked up Verifies clean: - grep -c "B-0329" docs/BACKLOG.md returns 1 (just the original) - B-0520 appears at end of P1 section - No other refs to the renamed file (grep confirmed) The next available ID before this renumber was B-0520 (highest on-disk B-0519; no in-flight PRs claim 0520-0522). B-0516 is missing (was renumbered earlier per tick-history archaeology). Co-Authored-By: Claude <noreply@anthropic.com>
Merged
6 tasks
This was referenced May 14, 2026
AceHack
added a commit
that referenced
this pull request
May 14, 2026
…#3250) Adds an 8th audit class that detects multiple per-row files claiming the same `id: B-NNNN` — a factory-wide uniqueness violation per tools/backlog/README.md. Surfaced 2026-05-14: Copilot caught two files both claiming `id: B-0329` on PR #3247 (BACKLOG.md regen would have rendered a duplicate row). The collision was renumbered out-of-band via #3247's renumber commit, but the audit-time gap remained — no automated check would have caught the collision at author-time. This commit closes that gap. Output format mirrors the sibling report* functions (## 8 section + sample listing + resolution note + summary line): ## 8. Duplicate IDs (factory-wide uniqueness violation) **Duplicate-ID groups: N** ### B-NNNN (M files claim this ID) - <path1> (tier=Px, status=...) - <path2> ... Resolution: renumber all-but-one ... + renumbered_from breadcrumb When run today on origin/main, the audit reports 1 duplicate-ID group (B-0329 — same one Copilot caught; PR #3247 fixes via renumber). Once #3247 merges, the audit will report 0. Extends the existing tool per skill-router-as-substrate-inventory.md (don't duplicate; extend or correct). audit-backlog-items.ts already audited 7 classes; the 8th composes naturally with broken-edges / orphan-rows / top-blocked classes — all ID-integrity concerns. Co-authored-by: Claude <noreply@anthropic.com>
AceHack
added a commit
that referenced
this pull request
May 14, 2026
…red candidate) (#3251) Tick output: - PR #3250 (feat(hygiene) duplicate-ID audit): extends audit-backlog-items.ts with an 8th audit class detecting multiple files claiming the same id: B-NNNN. Mechanizes the B-0329 collision Copilot caught on PR #3247. Live test: reports 1 duplicate-ID group on origin/main (B-0329, fixed by the just-merged #3247). Auto-merge armed. - This shard. Pattern: review-time catch (2059Z) -> out-of-band fix (2108Z) -> mechanization (this tick, 2113Z). Three-step propagation from a single Copilot review. Per skill-router-as-substrate-inventory.md: extended existing audit rather than minting new tool. audit-backlog-items.ts grew 7 -> 8 classes. Prior-tick PRs merged this batch: - #3245 (shard 2055Z) MERGED as 10f35d7 - #3247 (BACKLOG regen + renumber) MERGED as d04481b Session tally: 16 merged + 4 wait-ci. Cron sentinel 12fb713e armed; recurring. Co-authored-by: Claude <noreply@anthropic.com>
AceHack
added a commit
that referenced
this pull request
May 14, 2026
…gh api graphql fix) (#3249) * shard(tick): 2108Z — review-thread triage round 2 (B-0329 ID-collision renumber + gh api graphql usage fix) Tick output: - Commit 4407e4a on PR #3247: renumbers duplicate B-0329 (new-surface-audit file) to B-0520 + adds renumbered_from breadcrumb + regenerates index. Real data-integrity fix per Copilot's substantive catch. - Commit a5b812b on PR #3246: corrects 2059Z shard's gh api graphql usage description to show canonical -f query= pattern. Accuracy nit fix. - Both Copilot threads resolved with verification. - This shard. Patterns codified: - Backlog-ID-collision class of bug (multiple files claiming same id: B-NNNN) is a real data-integrity failure mode. - The renumbered_from frontmatter breadcrumb preserves archaeology without needing a separate ADR. Audit-discipline candidate filed mentally: tools/hygiene/audit-backlog-id-uniqueness.ts that would catch this at author-time. Not authoring this tick (defer). Cron sentinel 12fb713e armed; recurring. Co-Authored-By: Claude <noreply@anthropic.com> * fix(pr3249): add blank line before list per markdownlint MD032 CI failure: lint (markdownlint) flagged MD032/blanks-around-lists at 2108Z.md:32 — list right after "Fix:" without separating blank line. Repo's markdownlint-cli2 config keeps MD032 enabled (catches real readability issues; only MD040/MD004/MD013 are disabled per .markdownlint-cli2.jsonc). One-line fix; markdownlint-cli2 now clean on the file. Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
This was referenced May 14, 2026
shard(tick): 2135Z — PR #3258 tally arithmetic + path-glob fixes via parallel-Otto convergence
#3263
Merged
AceHack
added a commit
that referenced
this pull request
May 15, 2026
…duplicate-ids) (#3565) Substrate-honest correction to B-0535's framing: the duplicate-ID detection logic ALREADY EXISTS in audit-backlog-items.ts (item 8, added 2026-05-14 via PR #3249 after Copilot caught B-0329 collision on PR #3247). The actual gap was CI wiring, not implementation. This PR adds: 1. CLI flag --enforce-duplicate-ids to audit-backlog-items.ts: - Detect mode unchanged (default, exits 0 with findings reported) - --enforce-duplicate-ids: exit 1 if duplicate-ID groups > 0 - Rejects unknown flags with stderr error + exit 1 2. New gate.yml job lint-backlog-id-uniqueness: - Same shape as lint-section-33-migration-xrefs + lint-archive-header-section33 - Runs `bun tools/hygiene/audit-backlog-items.ts --enforce-duplicate-ids` - Baseline = 0 duplicate-ID groups on main (verified locally) Catches the failure class empirically observed today: - B-0444 (Otto-CLI vs Otto-Desktop, PR #3053 renumber, ~15 min) - B-0532 + B-0533 (Lior PR #3545 vs Otto-CLI mine, ~15 min coordination) Both went undetected by the existing detect-only audit because nothing was wired to fail CI on duplicate-IDs. This PR closes that gap. Composes with: - B-0535 (parent row; the framing was "extend B-0532" but the actual work was "wire existing logic") - audit-section-33-migration-xrefs (PR #3555 — same catch-once-then-lint pattern) - audit-backlog-items item 8 (PR #3249 — the existing detection logic) - PR #3247 (the B-0329 collision that surfaced the need) Co-authored-by: Claude Opus 4.7 (1M context) <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.
Summary
Regenerates
docs/BACKLOG.mdafter the merge of #3244 (B-0488 close-out). Copilot's review on #3244 flagged that the close-out PR didn't include the regen — substantive catch; addressed here.Changes (2-line index delta)
- [ ]→- [x](status reflectsclosedfrontmatter)B-0329-new-surface-audit-alignment-check.mdwas added on disk by another Otto without an index regen — picked up here.Pure regen via
BACKLOG_WRITE_FORCE=1 bun tools/backlog/generate-index.ts. No per-row file changes.Pattern (codified)
The row-close-out pattern documented in tick 2055Z assumed the close-out PR would update only metadata + frontmatter, but the BACKLOG.md auto-index also reflects
statusvia checkbox state. Future row-close-out PRs should include the regen in the same PR to avoid drift. This PR is the cleanup; the pattern is fixed forward in this PR's commit message.Test plan
bun tools/backlog/generate-index.ts --checkis clean post-regengh pr create --head🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com