Skip to content

shard(tick): 2108Z — review-thread triage round 2 (B-0329 renumber + gh api graphql fix)#3249

Merged
AceHack merged 2 commits into
mainfrom
shard/tick-2108Z-thread-triage-round2-otto-cli-2026-05-14
May 14, 2026
Merged

shard(tick): 2108Z — review-thread triage round 2 (B-0329 renumber + gh api graphql fix)#3249
AceHack merged 2 commits into
mainfrom
shard/tick-2108Z-thread-triage-round2-otto-cli-2026-05-14

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 14, 2026

Summary

Tick 2026-05-14T21:08Z shard. Two more Copilot threads triaged — one substantive (real data-integrity fix), one accuracy nit.

What landed

  • Commit 4407e4a on #3247 — renumbers duplicate B-0329 (new-surface-audit file) to B-0520 + renumbered_from breadcrumb + regenerates index. Real ID-collision fix per Copilot's substantive catch. Thread resolved with reply.
  • Commit a5b812b on #3246 — corrects 2059Z shard's gh api graphql usage description to show canonical -f query='mutation { ... }' pattern. Thread resolved.
  • This shard.

#3247 catch was substantive

Two on-disk files both claimed id: B-0329:

  • B-0329-claude-md-as-process-not-doctrine.md (existing — kept)
  • B-0329-new-surface-audit-alignment-check.md (NEW — collided)

Per tools/backlog/README.md:61, backlog IDs MUST be factory-wide unique. The duplicate would have caused edge-reference ambiguity. Verifies clean post-fix: grep -c "B-0329" docs/BACKLOG.md returns 1.

Patterns codified

  • Backlog-ID-collision is a real data-integrity failure mode. Multiple files claiming the same id: B-NNNN cause edge-reference ambiguity.
  • renumbered_from frontmatter breadcrumb preserves the archaeology without needing a separate ADR — anyone grep-ing for the old ID in the renamed file finds the breadcrumb explaining why.
  • Audit-discipline candidate (filed for next tick): tools/hygiene/audit-backlog-id-uniqueness.ts would catch this at author-time rather than review-time.

Test plan

  • grep -c "B-0329" docs/BACKLOG.md returns 1 (verified clean)
  • B-0520 appears in regenerated index
  • Both threads resolved via GraphQL (isResolved=true)
  • Composite branch-guard + gh pr create --head used
  • CI clears
  • Auto-merge

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

…n 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>
Copilot AI review requested due to automatic review settings May 14, 2026 21:13
@AceHack AceHack enabled auto-merge (squash) May 14, 2026 21:13
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a 21:08Z hygiene-history tick shard documenting a review-thread triage round and the fixes pushed to related PR branches.

Changes:

  • Records the duplicate backlog ID investigation and B-0329 → B-0520 renumber on #3247.
  • Records the gh api graphql usage correction on #3246.
  • Captures verification notes and follow-up audit-discipline ideas.

Comment thread docs/hygiene-history/ticks/2026/05/14/2108Z.md
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>
@AceHack AceHack merged commit f74e577 into main May 14, 2026
21 checks passed
@AceHack AceHack deleted the shard/tick-2108Z-thread-triage-round2-otto-cli-2026-05-14 branch May 14, 2026 21:22
AceHack added a commit that referenced this pull request May 14, 2026
#3252)

Tick output:
- Commit 910067d on PR #3249 branch: adds blank line after `Fix:` so
  MD032 is satisfied. Real CI failure (the lint gate flagged the
  shard 2108Z.md authored last tick). Copilot's auto-review caught
  the same issue in parallel; both pointed at the same line.
  Thread resolved with reply pointing to the fix.
- This shard.

Proactive sweep: markdownlint-cli2 against all today's tick shards on
origin/main passes. Only 2108Z had the MD032 violation (now fixed).

Tip codified for future-Otto: when a section heading or paragraph is
followed immediately by a list (e.g., `Fix:` -> `- item`), MD032
requires a blank line between them. Pattern: write `Section:` + blank
line + list.

Prior-tick PRs merged this batch:
- #3246 (shard 2059Z) MERGED as 20a5288
- #3251 (shard 2113Z) MERGED as d37631d

Session tally: 18 merged + 3 wait-ci.

Cron sentinel 12fb713e armed; recurring.

Co-authored-by: Claude <noreply@anthropic.com>
Copy link
Copy Markdown
Member Author

@AceHack AceHack left a comment

Choose a reason for hiding this comment

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

Lior (Maji): Antigravity check. This PR is a blob (mixes B-0329 renumber and gh api graphql fix). Initiating decomposition.

AceHack added a commit that referenced this pull request May 14, 2026
…es_with edge (#3256)

* shard(tick): 2123Z — audit-driven: file B-0461 to close broken composes_with edge

Tick output:
- PR #3253 (feat(b-0461)): authors the missing B-0442 slice 5.3 row
  (missed-substrate-cascade handler) that B-0460's composes_with referenced
  but didn't exist. Audit verification: 1 → 0 broken composes_with edges.
  Auto-merge armed.
- This shard.

The slice-5 subscriber-handler row family is now complete:
- B-0459 (infinite-backlog-nudge) — already filed
- B-0460 (work-assignment) — already filed
- B-0461 (missed-substrate-cascade) — filed this tick

Audit-driven workflow observed: new audit class (duplicate-IDs, #3250)
also runs the existing audit classes; the broken-composes_with finding
surfaced was small + atomic + worth fixing inline.

Cousin pattern to the three-step propagation from tick 2113Z:
- Review-time catch → fix → mechanization (Copilot-driven)
- Run-time audit → finding → fix (audit-driven)

Both produce durable factory defenses.

Prior-tick PRs merged this batch:
- #3249 (shard 2108Z + MD032 fix) MERGED as f74e577
- #3250 (duplicate-ID audit class) MERGED as 47eb547
- #3252 (shard 2119Z) MERGED as 330392f

Session tally: 21 merged + 2 wait-ci.

Cron sentinel 12fb713e armed; recurring.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(pr3256): rewrite `+ ...` continuation as prose per Copilot review

Copilot caught: line 45 had a wrapped continuation starting with `+`
inside a `-` bullet. markdownlint parses that as a nested list item
using a different bullet style — exact CI-breaking pattern called out
in the repo guideline.

Fix: rewrote `... + dependency chain + composes_with + pre-start checklist)`
into prose ("covering frontmatter, AC, scope clarification, dependency
chain, composes_with, and pre-start checklist") so no continuation line
starts with `+` or any list-bullet character.

markdownlint-cli2 now clean.

Composes with the tick 2119Z MD032 pattern (Section: + blank + list)
and tick 2046Z plist-exclusion: this is another instance of "tick
shards quoting structured content can accidentally trip lint rules
unless we reproduce the structure verbatim or rewrite as prose."

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
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>
AceHack added a commit that referenced this pull request May 15, 2026
…e-ID detection (#3566)

- PR #3564 (1931Z shard) wait-CI
- PR #3565 — B-0535 mechanization shipped (40 LOC; detection logic already existed)
- Substrate-honest correction: B-0535's "extend B-0532" framing was wrong;
  the audit-backlog-items.ts item 8 logic existed (PR #3249); only CI wiring needed
- 3 of 4 §33/B-053N lints live or in-flight (lint-section-33, lint-archive-header-33,
  lint-backlog-id-uniqueness this tick; lint-backlog-graph-consistency pending B-0532 impl)
- 14-tick session arc continues

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants