Skip to content

hygiene(backlog): regenerate BACKLOG.md index for B-0179/B-0180/B-0181 (post-#1398)#1399

Merged
AceHack merged 2 commits intomainfrom
hygiene/regenerate-backlog-index-post-1398
May 3, 2026
Merged

hygiene(backlog): regenerate BACKLOG.md index for B-0179/B-0180/B-0181 (post-#1398)#1399
AceHack merged 2 commits intomainfrom
hygiene/regenerate-backlog-index-post-1398

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 3, 2026

Summary

Auto-generated index regenerated via BACKLOG_WRITE_FORCE=1 bun tools/backlog/generate-index.ts. Adds the 3 P2 row entries from #1398 to the index. Closes the generated-index drift warning that fired on #1398 (non-required check).

Test plan

  • bun tools/backlog/generate-index.ts --check passes after regeneration
  • Diff is exactly the 3 new B-0179/B-0180/B-0181 lines in P2 section

🤖 Generated with Claude Code

…1 (post-#1398)

Auto-generated index regenerated via:
  BACKLOG_WRITE_FORCE=1 bun tools/backlog/generate-index.ts

Adds 3 new P2 row entries from the #1398 backlog landing:
- B-0179 SpineAsyncProtocol counterexample fix
- B-0180 CircuitRegistration config bug fix
- B-0181 SpineMergeInvariants counterexample fix

Closes the BACKLOG.md generated-index drift warning that fired
on #1398 (non-required check, didn't block merge but flagged
substrate hygiene).
Copilot AI review requested due to automatic review settings May 3, 2026 12:40
@AceHack AceHack enabled auto-merge (squash) May 3, 2026 12:40
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

Regenerates the generated backlog index so docs/BACKLOG.md includes the three new P2 backlog rows added in PR #1398. This keeps the top-level backlog index aligned with the per-row backlog files under docs/backlog/.

Changes:

  • Adds B-0179, B-0180, and B-0181 to the P2 section of the generated backlog index.
  • Updates the generated docs/BACKLOG.md output to reflect the current per-row backlog sources.
  • Introduces one formatting change near the top of the generated file as part of the regeneration.

Comment thread docs/BACKLOG.md Outdated
#1399

CI's  uses
ok: /Users/acehack/Documents/src/repos/Zeta/docs/BACKLOG.md matches generator output, NOT the .ts version.
The .ts and .sh generators disagree on a single blank line at the
header section boundary — the .ts emits an extra blank that .sh
doesn't.

My initial #1399 regeneration used the .ts version
(wrote /Users/acehack/Documents/src/repos/Zeta/docs/BACKLOG.md)
which produced output the CI .sh-check rejected as drift.

Fix: regenerated via the .sh canonical version.

Verified post-fix:
  - `./tools/backlog/generate-index.sh --check` → ok
  - `bun tools/backlog/generate-index.ts --check` → fails
    (the .ts/.sh parity bug; filed as follow-up below)

Files a follow-up parity-debt finding: the .ts generator has a
parity defect with the canonical .sh. Should be tracked as a
backlog row in a follow-up tick — or fixed inline if quick. The
migration substrate (docs/trajectories/typescript-bun-migration/
RESUME.md) lists generate-index.sh as ported in #885 but the
parity bug suggests the port wasn't fully equivalent.
@AceHack AceHack merged commit 1868c46 into main May 3, 2026
22 checks passed
@AceHack AceHack deleted the hygiene/regenerate-backlog-index-post-1398 branch May 3, 2026 12:45
AceHack added a commit that referenced this pull request May 3, 2026
…nk between header prose and first section (#1400)

Re-apply of the fix that didn't make it into #1399's squash-merge
(auto-merge fired before the parity-fix commit propagated).

**Bug:** the .ts generator emitted TWO blank lines between
the header prose ("are closed (status: closed in frontmatter)._")
and the first section header (`## P0`), while the .sh canonical
generator emits ONE.

**Root cause:** the .ts had `out.push("")` immediately after the
prose AND another `out.push("")` at the start of the per-tier
loop. The .sh has only the heredoc's trailing newline + the tier
loop's single `echo ""`. Two pushes vs one push = one extra blank
line in the joined output.

**Fix:** removed the redundant `out.push("")` after the prose.
The per-tier loop's leading `out.push("")` is the canonical
separator, matching .sh. Comment added at the removal site
explaining why (prevents future-Otto from re-adding it as a
"missing blank line" cosmetic improvement).

**Verification post-fix:**

  - `./tools/backlog/generate-index.sh --check` → ok
  - `bun tools/backlog/generate-index.ts --check` → ok
  - `diff` between the two stdout outputs is empty (full
    byte-level parity)

This closes the .sh→.ts parity-debt finding from the migration
substrate. The .ts ported in #885 had this latent bug; surfaced
when CI's .sh-check ran against my .ts-regenerated index in
#1399.

Discipline lesson: parity-debt is invisible until both
implementations run on the same input. The chain-of-events:
#885 ported .sh→.ts with subtle drift; .sh stayed canonical
for CI; #1399 used .ts for regeneration; CI's .sh-check caught
the drift; reviewer flagged it; #1399 fix used .sh; this PR
closes the .ts side so future agents can use either
generator interchangeably.
AceHack added a commit that referenced this pull request May 3, 2026
…ster + cache-clobber discipline encoded (#1408)

Substantial multi-tick session shard. 18 PRs touched (#1383 + #1387
+ #1392-#1407 inclusive); 14 merged + 4 in-flight as of shard time.

**Math-proofs assessment progress** (#1383 outstanding-work matrix):
- A1+A2 → A-with-CI ✓ (#1394 Lean lake-build workflow)
- A4 registry rows ✓ (#1393)
- B1 → 2 of 4 deferred specs in CI ✓ (#1397 DbspSpec + #1401
  CircuitRegistration B-0180 closed)
- B2 Alloy → A ✓ (#1396 silent-no-op spec-path fix)
- B4 Semgrep → A ✓ (correction)
- Peer-review email template ✓ (#1387)
- Phase 0 substrate-discovery PoC ✓ (#1392)
- Stryker config-fix ✓ (#1395; CI wire deferred)
- 3 broken-spec backlog rows filed ✓ (#1398)

**Cache-clobber silent-bug class discovered + fully encoded:**
B-0180 fix passing locally + failing CI → verify-then-claim
identified gate.yml + low-memory.yml caching whole tools/tla and
tools/alloy directories. Fix cluster: #1403 (gate.yml) + #1404
(low-memory.yml + audit-ci-cache-paths.ts) + #1406 (CI lint gate)
+ #1407 (memory file + bug-locus disambiguation per Aaron's 'real
github bug?' question — answer: usage-bug, not tool-bug).

**Other substrate work:** #1399 BACKLOG.md regen, #1400 .ts/.sh
parity bug, #1402 assessment matrix doc update, #1405 B-0182
backlog row (Linux-only formal verification — orthogonal-axes
split per Aaron 2026-05-03).

**Discipline lessons captured:** chat-is-assertion-channel,
substrate-corrections-cluster, search-first-before-architectural-
expansion, verify-then-claim CI fidelity, documentation-is-
current-state-not-history.

Carved sentence: 'When a lucky catch surfaces a class of bug,
build the structural fix that eliminates the luck — audit + lint
gate + carved-sentence rule + memory file.'
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