Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions docs/hygiene-history/ticks/2026/05/15/0921Z.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
| 2026-05-15T09:21:00Z | claude-opus-4-7 | 596e842c | shard: discovered sed-bug class (body col 4 (PR TBD) mentions break col 5 fix); apology + clarification + 2 corrective PRs (#3395 fix + #3397 for 0916Z on main) | (PR #3398) | substrate-honest discipline correction: the @-delimited pipe-anchored sed is the new standard |

# Tick 0921Z β€” sed-bug discovered (body col 4 conflict); apology + 2 corrective PRs

## Headline

- **PR [#3394](https://github.com/Lucent-Financial-Group/Zeta/pull/3394)** (0903Z shard) MERGED β†’ `df3e20f` on `origin/main`.
- **PR [#3395](https://github.com/Lucent-Financial-Group/Zeta/pull/3395)** had a Copilot thread I had wrongly classified as "stale" earlier β€” VERIFIED LEGIT this tick. Pipe-row col 5 of 0911Z.md actually did still have `(PR TBD)` despite my "post-create-fix" sed. Posted substrate-honest apology + clarification.
- **Root cause identified**: `sed -i '' '1s|(PR TBD)|(PR #NNNN)|' <file>` replaces only the FIRST occurrence on line 1. When body col 4 contains `(PR TBD)` text mentions (e.g., discussing the discipline by name), it gets substituted first, leaving the PR-ref col 5 untouched. Two shards affected: 0911Z and 0916Z (both meta-discipline shards discussing the `(PR TBD)` pattern).
- **Corrective PRs**:
- PR #3395 commit `bb41604`: proper `@`-delimited pipe-anchored sed applied to 0911Z. In-flight (auto-merge armed).
- PR [#3397](https://github.com/Lucent-Financial-Group/Zeta/pull/3397) opened + auto-merge armed: 0916Z fix (the bug landed on main via #3396; can't fix retroactively, requires new PR).
- Cron sentinel `596e842c` armed.

## Ξ” since 0916Z

| What | At 0916Z | At 0921Z |
|---|---|---|
| PR #3394 | OPEN, 1 stale Copilot resolved | MERGED (`df3e20f`) |
| PR #3395 (0911Z shard) | OPEN, "stale-Copilot reply+resolved" | OPEN, fix-commit `bb41604` for ACTUAL bug; apology+clarification posted on thread |
| PR #3396 (0916Z shard) | OPEN, wait-ci | MERGED at 09:22:07Z with bug β€” corrective PR #3397 filed |
| PR #3397 (0916Z fix) | did not exist | OPEN, armed |
| Sed discipline | line-1-anchored | @-delimited pipe-anchored (new standard) |
| Stale-`(PR TBD)` classifications correctness | 5 marked stale (4 correct, 1 wrong-and-revealed-bug-class) | acknowledged the misclassification |

## Substrate-honest observations

### Sed-bug class: body col 4 (PR TBD) mention breaks line-1-anchored sed

The discipline lesson `sed -i '' '1s|(PR TBD)|(PR #NNNN)|' <file>` from tick 0844Z was **insufficient**. It only works when body col 4 has NO `(PR TBD)` text. When the body discusses the discipline by name (e.g., "stale-Copilot on \`(PR TBD)\` pipe-row"), the sed matches body first, leaving col 5 untouched.

Updated discipline (with BSD-vs-GNU portability notes per Codex P2 carry-forward from PR #3393 + PR #3398):

- **macOS / BSD sed**: `sed -i '' '1s@| (PR TBD) |@| (PR #NNNN) |@' <file>` β€” requires `''` after `-i`.
- **Linux / GNU sed**: `sed -i '1s@| (PR TBD) |@| (PR #NNNN) |@' <file>` β€” no quotes after `-i` (GNU treats `''` as a filename argument, silently skips the substitution).
- **Portable cross-platform**: `perl -i -pe 's@\| \(PR TBD\) \|@| (PR #NNNN) |@ if $. == 1' <file>` β€” Perl is universally available + has unambiguous semantics.

Key elements (all forms):

- `@`-delimiter (since `|` is both shell pipe and substitution delimiter in `sed s|...|...|`)
- `| (PR TBD) |` matches the cell-boundary with surrounding pipes + spaces
- Targets col 5 specifically; immune to body col 4 mentions
- Line-1-anchor (`1s` for sed, `if $. == 1` for perl) confines to pipe-row

Verified empirically: 0911Z applied correctly post-fix.

### Substrate-honest acknowledgment of mis-classification

In tick 0903Z + 0911Z + 0916Z, I marked Copilot's `(PR TBD)` reviews as "stale" using a templated reply. ONE of those (PR #3395's, this tick) was a misclassification β€” the bug-class meant col 5 actually wasn't fixed. The other 4 (PRs #3388, #3389, #3393, #3394) were correctly classified as stale because their shards didn't have body `(PR TBD)` mentions.

Apology + clarification reply posted on the misclassified thread. Substrate-honest: don't pretend the wrong classification didn't happen; explain the bug class + scope it accurately.

### Discipline-lesson propagation

The 0844Z discipline ("use `1s|...|...|` for line-1-anchored sed") is now superseded by the @-delimited pipe-anchored form. The 0844Z + 0855Z + 0903Z + 0911Z + 0916Z + 0921Z shards form a discipline-evolution chain. Future-Otto reading them in order sees the bug-discovery + refinement sequence.

For canonical documentation, this should land in `.claude/rules/` somewhere. But that's a separate PR; not in this tick's scope.

## Cron sentinel

`596e842c` armed.

## Next

Cron-driven. Next tick:

1. Verify PR #3379 + #3381 + #3395 (with fix-commit) + #3397 (0916Z fix) + this tick's PR auto-merge fires
2. Address any new review threads (this tick's shard might trigger reviewers)
3. Consider canonicalizing the `@`-delimited sed discipline in `.claude/rules/` as a separate small PR
Loading