Skip to content

backlog(B-0156): close as substrate-drift — all 6 acceptance criteria met#4073

Merged
AceHack merged 1 commit into
mainfrom
backlog/b0156-substrate-drift-close-2026-05-17
May 17, 2026
Merged

backlog(B-0156): close as substrate-drift — all 6 acceptance criteria met#4073
AceHack merged 1 commit into
mainfrom
backlog/b0156-substrate-drift-close-2026-05-17

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 17, 2026

Summary

Closes B-0156 as substrate-drift per the discriminator at step 0 of .claude/rules/backlog-item-start-gate.md: row stayed status: open while every named artifact had landed and every acceptance bullet had a corresponding merged PR.

Smallest safe slice on an implementation tick — the substrate-honest move on a drifted row is status flip + Resolution section + BACKLOG.md regen, not authoring more work.

Evidence — every acceptance bullet → merged PR

  1. Six non-install .sh files ported then deleted. Phase 1-2: snapshot-github-settings.sh, check-github-settings-drift.sh, check-tick-history-shard-schema.sh (last via feat(hygiene): migrate shard schema checker to Bun/TypeScript #1986). Phase 3-4: tools/profile.sh (fix(B-0140): port profile.sh to TS — Phase 2 (4 of 8) #1962 under B-0140), tools/peer-call/amara.sh + tools/peer-call/ani.sh (subsequent ports). Self-test find tools -name '*.sh' … now returns only install-graph files under tools/setup/.
  2. Each TS sibling has a bun test. tools/profile.test.ts + tools/peer-call/smoke.test.ts (covers all 8 peer-call wrappers including amara/ani).
  3. Phase 5 sweep complete. .sh originals deleted (recoverable via git log --diff-filter=D per tools/hygiene/LOST-FILES-LOCATIONS.md).
  4. Phase 6 .py policy lint. lint-no-python-files job at .github/workflows/gate.yml:877 running bun tools/lint/no-python-files.ts. Allowlist + 9-test unit suite present.
  5. package.json clean. grep -E '\.(sh|py)' package.json returns no matches.
  6. No regression. All migration PRs merged green; no follow-up regression rows filed.

Focused checks

  • find tools -name '*.sh' … (filter to non-install) → 0 files
  • bun tools/lint/no-python-files.tsOK (0 allowlisted, 0 flagged)
  • git diff docs/BACKLOG.md → single-line flip [ ][x] on B-0156
  • git ls-tree HEAD | wc -l = git ls-tree origin/main | wc -l = 53 (CodeQL broken-commit canary clean)
  • Branch guard before commit: git branch --show-current = backlog/b0156-substrate-drift-close-2026-05-17

Test plan

  • Verify CI gate.yml lint-no-python-files job still passes
  • Verify backlog index regenerates without diff churn beyond the B-0156 status flip
  • CodeQL canary: ls-tree count preserved
  • No .sh files survive outside tools/setup/ install graph

🤖 Generated with Claude Code

… met

The TypeScript-standardization row was in substrate-drift state: row
remained `status: open` while every named artifact had landed and every
acceptance bullet had a corresponding merged PR.

Per `.claude/rules/backlog-item-start-gate.md` step 0 (substrate-drift
discriminator added 2026-05-16), the substrate-honest move on an
implementation tick is to close the row, not author more work.

Evidence (every acceptance bullet → merged PR):

1. Six non-install `.sh` files ported then deleted via Phases 1-4
   (snapshot/check-drift/check-schema in #1986; profile in #1962;
   amara/ani via subsequent ports). Self-test `find tools -name '*.sh'
   …` now returns only install-graph files under `tools/setup/`.
2. Each TS sibling has a `bun test`: `tools/profile.test.ts` plus
   `tools/peer-call/smoke.test.ts` (all 8 peer-call wrappers).
3. Phase 5 sweep complete — `.sh` originals deleted (recoverable via
   `git log --diff-filter=D` per LOST-FILES-LOCATIONS.md).
4. Phase 6 `.py` policy lint: `lint-no-python-files` job at
   `.github/workflows/gate.yml:877` invoking `bun
   tools/lint/no-python-files.ts`. Allowlist + 9-test suite present.
5. `grep -E '\.(sh|py)' package.json` returns no matches.
6. All migration PRs landed green; no follow-up regression rows.

Smallest safe slice: status flip + Resolution section + BACKLOG.md
index regen via `BACKLOG_WRITE_FORCE=1 bun tools/backlog/generate-index.ts`.

operative-authorization: aaron 2026-05-14: "- **Devil-pole**
(edge-runner drive): keep pushing, discover, go hard, never-be-idle"

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 17, 2026 13:01
@AceHack AceHack enabled auto-merge (squash) May 17, 2026 13:02
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

Closes backlog item B-0156 as substrate-drift by flipping the row to status: closed, updating last_updated, and adding a Resolution section that maps each acceptance criterion to already-landed evidence; updates the generated backlog index to reflect the closure.

Changes:

  • Mark docs/backlog/P1/B-0156-... as closed and add a dated Resolution section documenting the substrate-drift basis and evidence.
  • Regenerate docs/BACKLOG.md to flip B-0156 from [ ] to [x].

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
docs/backlog/P1/B-0156-typescript-standardization-non-install-scripts-aaron-2026-05-01.md Flip status to closed, bump last_updated, and add a Resolution section documenting the substrate-drift close with evidence.
docs/BACKLOG.md Update the index entry for B-0156 to show it as closed.

@AceHack AceHack merged commit b4cb042 into main May 17, 2026
31 checks passed
@AceHack AceHack deleted the backlog/b0156-substrate-drift-close-2026-05-17 branch May 17, 2026 13:04
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