Skip to content

hygiene(#268): pr-preservation drain-log for #435 (live-lock cadence reword)#447

Merged
AceHack merged 2 commits intomainfrom
drain/435-pr-preservation-log
Apr 25, 2026
Merged

hygiene(#268): pr-preservation drain-log for #435 (live-lock cadence reword)#447
AceHack merged 2 commits intomainfrom
drain/435-pr-preservation-log

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented Apr 25, 2026

Summary

Otto-268 backfill: drain-log for PR #435 (drain follow-up to #148: live-lock cadence + grammar), covering 3 threads across 2 waves.

This closes the session-drain-log backfill for the major PRs drained in this session: #135 / #235 / #432 / #434 / #195 / #219 / #206 / #377 / #231 / #85 / #435 (11 PRs total covered across drain logs #437-#447).

Per Otto-250 (PR review comments + responses + resolutions are high-quality training signals).

Coverage

  • Wave 1 (2 threads, cross-reviewer convergence): Codex P2 + Copilot P1 both flagged the missing FACTORY-HYGIENE row for live-lock-audit cadence. Reword to current-truth (option b) over add-the-row (option a) because the substantive blocker is the tracked BACKLOG work.
  • Wave 2 (1 thread, self-induced cascade): my Wave-1 reword said "separate BACKLOG items" (plural); actual BACKLOG state is one row with multiple sub-items. Reworded to point at the existing single row + name its sub-items.

Pattern observations

  1. Cross-reviewer convergence raises quality signal (same shape as drain(#360 follow-up): 8 Codex shell-portability + allow-list-scope findings #432 warn unbound).
  2. Self-induced cascade: when fixing a claim, verify the new claim is also accurate — don't just remove the bad claim, replace it with a verified-against-current-state claim.
  3. Reword-option-(a)-vs-(b) decision template generalizes: when doc asserts X but X doesn't exist, prefer reword-to-current-truth over add-the-thing-asserted unless the thing is small + isolated.
  4. PR-mechanics observation: 4 of 7 cascade-PRs in this session (auto-loop-35: map Itron signal-processing prior-art → factory observability #135, research: Codex CLI first-class session — Phase 1 (Stage 1 of 5 per PR #228) #231, drain(#360 follow-up): 8 Codex shell-portability + allow-list-scope findings #432, drain(#148 follow-up): cadenced live-lock + grammar #435) followed this same wave-1 + wave-2 cascade pattern. Reviewer-cascade is a consistent property of the merge-trigger surface.

Test plan

🤖 Generated with Claude Code

@AceHack AceHack enabled auto-merge (squash) April 25, 2026 07:05
Copilot AI review requested due to automatic review settings April 25, 2026 07:05
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 17502b24d5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/pr-preservation/435-drain-log.md
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 PR-preservation drain log for PR #435, capturing the two-wave review cascade around the “live-lock audit cadence” wording and a subsequent correctness reword.

Changes:

  • Adds docs/pr-preservation/435-drain-log.md documenting 3 drained threads across 2 waves.
  • Records the chosen “reword to current truth” resolution path and the follow-up cascade correction.

Comment thread docs/pr-preservation/435-drain-log.md
Comment thread docs/pr-preservation/435-drain-log.md
Comment thread docs/pr-preservation/435-drain-log.md
AceHack added 2 commits April 25, 2026 03:59
…reword)

Otto-268 backfill: drain-log for PR #435 (drain follow-up to #148:
why-the-factory-is-different live-lock cadence claim + grammar),
covering 3 threads across 2 waves with a clean self-induced-cascade
pattern.

Per Otto-250 training-signal discipline. Pattern observations capture
four load-bearing patterns:
1. Cross-reviewer convergence on Wave 1 (Codex P2 + Copilot P1
   flagging the same missing-FACTORY-HYGIENE-row) raised quality
   signal — same shape as #432's `warn` unbound finding.
2. Self-induced cascade: my Wave-1 fix introduced the Wave-2
   finding (claim "separate BACKLOG items" implied plural; actual
   BACKLOG state is one row with multiple sub-items). Pattern: when
   fixing a claim, verify the new claim is also accurate against
   current-state.
3. Reword-option-(a)-vs-(b) decision template generalizes: when
   doc asserts X but X doesn't exist, prefer reword-to-current-truth
   over add-the-thing-asserted (unless thing is small + isolated).
4. PR-mechanics: 4 of 7 cascade-PRs in this session (#135, #231,
   #432, #435) went through wave-1 + wave-2 cascade pattern; the
   reviewer-cascade is a consistent property of the merge-trigger
   surface, not a per-PR oddity.

Closes the session-drain-log backfill (Otto-268) for the major PRs
drained in this session: #135 / #235 / #432 / #434 / #195 / #219 /
#206 / #377 / #231 / #85 / #435 (11 PRs total covered across drain
logs #437-#447).
…ntifier xref

Codex P2 + Copilot threads on #447 caught:

- Thread 1.2 missing the `Reviewer:` field even though the drain-log
  schema (intro paragraph) declares per-thread reviewer authorship.
  Added `Reviewer: copilot-pull-request-reviewer`.
- Stale `docs/BACKLOG.md lines 1313-1328` citation: those lines now
  contain the Server Meshing section; the live-lock-smell cadence
  row drifted to ~L1452 in the P1 tooling section. Replaced with
  the stable identifier (heading text 'Live-lock smell cadence
  (round 44 auto-loop-46 absorb, landed as `tools/audit/
  live-lock-audit.sh` + hygiene-history log)') so future readers
  don't chase a moving line-number target.

Same stable-identifier-vs-line-number-xref pattern flagged on
#423's `near line 4167` finding. Documented in `_patterns.md` —
line numbers decay on every adjacent edit; stable identifiers
decay only on rename. Adopting heading text as the stable cite.

The bare `:111`/`:113` thread location format (Otto-250 file:line
shape conformance) is the broader Otto-268-wave divergence
documented in PR #467 known-divergence section — deferred to
maintainer review per that framing.
@AceHack AceHack force-pushed the drain/435-pr-preservation-log branch from 17502b2 to f8ad97c Compare April 25, 2026 08:00
@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.

@AceHack AceHack merged commit e202f68 into main Apr 25, 2026
21 of 22 checks passed
@AceHack AceHack deleted the drain/435-pr-preservation-log branch April 25, 2026 08:12
AceHack added a commit that referenced this pull request Apr 25, 2026
…iated shape divergence (#467)

* hygiene(_patterns.md): document Otto-250-canonical vs Otto-268-abbreviated drain-log shape divergence

Multiple post-merge reviewer threads on the Otto-268-wave drain-logs
(#437-#465) flagged that the abbreviated inline shape doesn't match
the canonical Otto-250 multi-section format used in older drain-logs
(#108, #247, etc.). The findings are correct: the shapes ARE
different, and the abbreviated shape compresses verbatim
reviewer/reply text into short prose.

Documenting both shapes here in `_patterns.md` as a known
divergence + three maintainer-decision options:

(a) Rewrite — high churn, highest faithfulness.
(b) Accept divergence — document both as valid.
(c) Hybrid — canonical for substantive logs (math / crypto /
    algorithms / ADRs); abbreviated for low-substance.

Until maintainer decides, drain-runners writing future logs default
to canonical; existing Otto-268-wave logs stay abbreviated with
this known-divergence pointer.

This is the right place for the documentation per the synthesis-
over-history surface-class declaration: `_patterns.md` reflects
current corpus state including known shape divergences, separate
from the per-log records.

Composes with the per-PR drain-log threads currently flagging the
shape-conformance gap on #437/#441/#442/#444/#445/#446/#447/#449/
#460/#461/#464/#466 — those threads can now reply with a one-line
pointer to this section instead of repeating the maintainer-
decision-pending framing.

* hygiene(#467): fix 4 Copilot findings on shape-divergence section

Four Copilot catches converging on the same root cause: the
shape-divergence section was citing drain-log PR-numbers
(#437-#465) when readers will look for #437-drain-log.md etc.
and not find them — drain-log FILE numbers reference the
PRESERVED PR (e.g., #421/#422/#423), not the drain-log PR
itself. The current file corpus ends at #434.

Fixes:

- :374 + :394 — drop the misleading "#437-#465" PR-range citation;
  cite the actual in-repo abbreviated-shape examples
  (#421/#422/#423) by file path; drop the unsupported "22+"
  numeric estimate in favour of "the 2026-04-25 backfill wave".
- :380 — abbreviated template snippet now matches what the
  in-repo abbreviated logs actually use: `Finding:` bullet
  included, `Thread ID:` and `:LINE` placeholders dropped
  (those are canonical-shape fields, not abbreviated-shape).
  Reader can now copy/paste the template accurately.
- :388 — soften the "Substance is preserved" overstatement to
  the objective claim: key metadata (reviewer/severity/outcome/
  commit) is preserved; verbatim original-comment + verbatim
  reply text are NOT preserved; multi-section structure +
  file:line locator + Thread ID are also typically omitted.

The fixes are themselves Class A (count-vs-list cardinality on
"#437-#465" range) + truth-drift on a freshly-landed doc —
appropriate self-application of the discipline this section
documents.
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