Skip to content

backlog(B-0686): tick-shard immutability CI gate proposal (P3, post-#4534 substrate engineering)#4539

Merged
AceHack merged 1 commit into
mainfrom
backlog/b-0686-tick-shard-immutability-ci-gate-2026-05-21
May 21, 2026
Merged

backlog(B-0686): tick-shard immutability CI gate proposal (P3, post-#4534 substrate engineering)#4539
AceHack merged 1 commit into
mainfrom
backlog/b-0686-tick-shard-immutability-ci-gate-2026-05-21

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 21, 2026

Summary

Files backlog row B-0686 for a substrate-engineering proposal: a CI gate that fails any PR which modifies tick shards at docs/hygiene-history/ticks/YYYY/MM/DD/HHMMZ.md after a grace period.

Why this row exists

The 2026-05-21 audit-baseline cleanup arc (PRs #4524 / #4525 / #4526 / #4531 / #4533 / partial #4534) violated the documented tick-shard immutability discipline. Codex caught the LAST one (P1 on #4534); the first 5 merged before catch. The pivot via compatibility-artifact (#4534's final commit) demonstrates the correct path.

A mechanical gate would catch the misapplication before merge — substrate-level prevention rather than author-side discipline alone.

Substrate-honest caveat in the row

If the maintainer reviewing the row decides the lesson is sufficient as-documented (author-side discipline is the floor; no mechanical gate needed), close as wontfix. The row's existence as a substrate-engineering proposal IS the substrate even if implementation never ships.

Test plan

🤖 Generated with Claude Code

Substrate-engineering proposal triggered by Codex P1 catch on PR #4534
(2026-05-21 cleanup arc). The cleanup arc violated the documented
tick-shard immutability discipline by editing historical shards to
fix path-depth bugs; the discipline relies on author-side recognition
which failed.

P3 — substrate-engineering tier; bounded effort (S); composes with
B-0530 multi-Otto coordination work.

Includes substrate-honest caveat: if reviewer decides the lesson is
sufficient as-documented (no gate needed), close as wontfix. The row's
existence as a record IS the substrate even if implementation never
ships.

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 21, 2026 14:00
@AceHack AceHack enabled auto-merge (squash) May 21, 2026 14:01
@AceHack AceHack merged commit 7a8a47b into main May 21, 2026
28 of 29 checks passed
@AceHack AceHack deleted the backlog/b-0686-tick-shard-immutability-ci-gate-2026-05-21 branch May 21, 2026 14:03
@AceHack
Copy link
Copy Markdown
Member Author

AceHack commented May 21, 2026

Vera post-merge CI handoff for #4539:

I inspected the failed job after the PR had already merged.

State:

Failed deterministic gate:

  • check docs/BACKLOG.md generated-index drift job 77190316469 reached the generator audit and failed with drift: docs/BACKLOG.md differs from generator output.
  • The log diff shows the generated output would remove the B-0686 row:
    B-0686 Tick-shard immutability CI gate — block PRs modifying historical shards after grace period.

This is not a transient rerun candidate. Follow-up on main should make the B-0686 row parseable/source-backed for tools/backlog/generate-index.ts or regenerate docs/BACKLOG.md to match the generator, then run bun tools/backlog/generate-index.ts --check.

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 backlog row B-0686 to capture a substrate-engineering proposal for a CI gate that prevents post-grace-period edits to historical tick shards under docs/hygiene-history/ticks/YYYY/MM/DD/HHMMZ.md.

Changes:

  • Introduces a new P3 backlog row describing the motivation, proposed mechanism, and acceptance criteria for a tick-shard immutability gate.

Comment on lines +1 to +5
---
id: B-0686
priority: P3
status: open
title: Tick-shard immutability CI gate — block PRs modifying historical shards after grace period
Comment on lines +53 to +55
- [ ] Baseline at `tools/hygiene/audit-tick-shard-immutability.baseline.json` capturing the existing violations from the 2026-05-21 cleanup arc (so the gate can land without burst-cleanup)
- [ ] CI workflow entry in `.github/workflows/gate.yml` as non-required initial check
- [ ] Self-test: the gate would have failed each of #4524–#4533 (verifying retroactive correctness)
AceHack added a commit that referenced this pull request May 21, 2026
…n-termination (#4541)

* shard(2026-05-21/1410Z): 10-PR cleanup arc close + forced-#6 recursion-termination

Documents the 1019Z → 1410Z (~3h) cleanup arc closure:

- 10 substrate PRs (9 merged + 1 closed-redundant): #4523 / #4524 /
  #4525 / #4526 / #4529 (closed) / #4531 / #4533 / #4534 / #4538 / #4539
- Audit baseline: 39 entries (19 active) → 0
- Audit tool gained stripInlineCodeSpans + 8-test test suite
- Codex P1 mid-arc catch → substrate-honest pivot to compatibility-artifact
- B-0686 backlog row filed for substrate-engineering follow-up

Forced-#6 recursion-termination per holding-without-named-dependency rule:
post-arc holding hit brief-ack #5 with explicit non-pre-empt (available
substrate would be fabricated); #6 = forced escalation; this shard IS
the substrate-honest recursion-termination per the rule's own clause.

Self-application catch: initial shard authoring had the one-too-few-`..`
bug (5 dots → 6 dots needed for .claude/rules/ from 6-deep shard).
Caught BEFORE commit by the audit tool I landed in this same session
(#4538) — substrate working as designed; loop closed.

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

* fix(1410Z): correct shard count 1139 → 1141 per Codex P2

Codex P2 (PRRT_kwDOSF9kNM6D1EV5): my shard reported "0 broken
relative-path links across 1139 shards" but at this commit's tree
there are 1141 shards. The 1139 was an earlier intermediate count
from before this shard was added; final pre-commit local audit
correctly reported 1141.

Resolves: PRRT_kwDOSF9kNM6D1EV5

---------

Co-authored-by: Claude <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