-
Notifications
You must be signed in to change notification settings - Fork 1
hygiene(#268): pr-preservation drain-log for #85 (per-row-file ADR) #446
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,167 @@ | ||
| # PR #85 drain log — Round 44 batch 5: BACKLOG-per-row-file restructure ADR (draft) | ||
|
|
||
| PR: <https://github.com/Lucent-Financial-Group/Zeta/pull/85> | ||
| Branch: `land-backlog-per-row-file-batch5` | ||
| Drain session: 2026-04-25 (Otto, post-summary continuation autonomous-loop) | ||
| Thread count at drain start: 11 unresolved (Copilot P1/P2) | ||
| Rebase context: clean rebase onto `origin/main`; PR head was at a stale | ||
| merge commit (`eae7a37`); my push at `d38e109` brought in current main + | ||
| the fixes — verified content equivalence + improvements. | ||
|
|
||
| Per Otto-250 (PR review comments + responses + resolutions are | ||
| high-quality training signals): full per-thread record with reviewer | ||
| authorship, severity, outcome class. | ||
|
|
||
| This PR is the draft ADR for the `docs/BACKLOG.md` per-row-file | ||
| restructure. Drain caught a high density of internal-consistency | ||
| findings (id-vs-filename ambiguity, directory-name reconciliation, | ||
| tier-scheme vs directory-tree gap, "never edit / hand-append" | ||
| contradiction) plus the standard line-count drift + name-attribution | ||
| findings. | ||
|
|
||
| --- | ||
|
|
||
| ## Outcome distribution: 7 FIX + 1 OTTO-279 SURFACE-CLASS + 3 dups | ||
|
|
||
| ### A: FIX — Internal-consistency + factual fixes (10 thread-IDs across 7 fixes) | ||
|
|
||
| #### Thread A1 — `:36` + `:59` — PR description vs ADR directory name (Copilot P1 ×2) | ||
|
|
||
| - Reviewer: copilot-pull-request-reviewer | ||
| - Thread IDs: `PRRT_kwDOSF9kNM58rOCI` + `PRRT_kwDOSF9kNM58rTwj` | ||
| - Severity: P1 | ||
| - Finding: PR description references `docs/backlog-rows/` but ADR | ||
| uses `docs/backlog/<tier>/...`. Two-way ambiguity. | ||
|
AceHack marked this conversation as resolved.
|
||
| - Outcome: **FIX** — added explicit reconciliation note marking | ||
| `docs/backlog/` as canonical for the ADR; PR description's | ||
| `docs/backlog-rows/` is historical wording. Downstream references | ||
| follow the ADR path. Commit `d38e109`. | ||
|
|
||
| #### Thread A2 — `:35` — id-vs-filename consistency (Copilot P1) | ||
|
|
||
| - Thread ID: `PRRT_kwDOSF9kNM58rTw0` | ||
| - Severity: P1 | ||
| - Finding: ADR described per-row files under | ||
| `docs/backlog/<tier>/<id>.md`, but the directory shape later used | ||
| `<slug>-<YYYY-MM-DD>.md` filenames. Path/ID scheme inconsistent | ||
| throughout. | ||
| - Outcome: **FIX** — id-vs-filename ambiguity resolved inline: the | ||
| `<slug>-<YYYY-MM-DD>` filename stem IS the row's `id`. | ||
| `docs/backlog/<tier>/<slug>-<YYYY-MM-DD>.md` is the canonical path | ||
| pattern; per-row-file id ≡ filename stem. Commit `d38e109`. | ||
|
|
||
| #### Thread A3 — `:68` — Tier scheme has `declined` but no `declined/` folder (Copilot P1) | ||
|
|
||
| - Thread ID: `PRRT_kwDOSF9kNM58rOB2` | ||
| - Severity: P1 | ||
| - Outcome: **FIX** — added `docs/backlog/declined/` to the directory | ||
| tree alongside `shipped/`. Tier scheme now matches the directory | ||
| shape. Commit `d38e109`. | ||
|
|
||
| #### Thread A4 — `:140` — "Never edit index" + "hand-append" contradiction (Copilot) | ||
|
|
||
| - Thread ID: `PRRT_kwDOSF9kNM58rTwe` | ||
| - Severity: P1 | ||
| - Finding: authoring rules said "Never edit the index directly" but | ||
| then instructed to "hand-append the index line"; semantic | ||
| contradiction. | ||
| - Outcome: **FIX** — reworded: existing index entries are read-only | ||
| (don't hand-edit them); new rows may append a new index line in | ||
| the same PR as the row file OR leave to the next regeneration. | ||
| Index ordering / formatting is generator output, not authoring | ||
| surface. Distinguishing existing-entries (read-only) from | ||
| append-only-new-entries resolves the contradiction. Commit | ||
| `d38e109`. | ||
|
|
||
| #### Thread A5 — `:275` + `:276` — `tools/migrations/` claimed as existing convention (Copilot P1 ×2) | ||
|
|
||
| - Thread IDs: `PRRT_kwDOSF9kNM58rOB_` + `PRRT_kwDOSF9kNM58rTwv` | ||
| - Severity: P1 | ||
| - Finding: ADR stated `tools/migrations/YYYY-MM-DD-<name>/` as an | ||
| established convention, but no such subtree exists in the repo. | ||
| - Outcome: **FIX** — reframed as "Proposed convention for this ADR" | ||
| rather than an existing repo convention. Adopting it requires | ||
| creating the subtree as part of the implementation PR. Commit | ||
| `d38e109`. | ||
|
|
||
| #### Thread A6 — `:13` — Line count drift (Copilot P2 ×2) | ||
|
|
||
| - Thread IDs: `PRRT_kwDOSF9kNM58rOCF` + `PRRT_kwDOSF9kNM58rTwp` | ||
| - Severity: P2 | ||
| - Finding: ADR cited `docs/BACKLOG.md` as 5,957 lines; current file | ||
| was 6,094 lines (drift target). | ||
| - Outcome: **FIX** — replaced exact `5,957` with `~6k lines` plus | ||
| explicit note that live count drifts as the backlog grows; ADR | ||
| uses the order-of-magnitude figure to avoid staleness. Commit | ||
| `d38e109`. | ||
|
|
||
| #### Thread A7 — `:234` — Trailing `+` continuation (Copilot P2) | ||
|
|
||
| - Thread ID: `PRRT_kwDOSF9kNM58rOCO` | ||
| - Severity: P2 | ||
| - Finding: Round 45 bullet ended with trailing `+` and continued on | ||
| next line — reads as editing artifact and may trip markdownlint. | ||
| - Outcome: **FIX** — reformatted bullet to use commas / "and" | ||
| instead of the trailing-`+` line break. Reads as prose. Commit | ||
| `d38e109`. | ||
|
|
||
| ### B: OTTO-279 SURFACE-CLASS | ||
|
|
||
| #### Thread B1 — `:5` — Aaron / Kenji / Iris / Bodhi names in ADR body (Copilot P1) | ||
|
|
||
| - Thread ID: `PRRT_kwDOSF9kNM58rOBq` | ||
| - Severity: P1 | ||
| - Outcome: **OTTO-279 SURFACE-CLASS** — `docs/DECISIONS/` is | ||
| history-class per Otto-279 surface-class refinement: research / | ||
| decisions / round-history / aurora-archive / pr-preservation | ||
| surfaces all permit first-name attribution for both human | ||
| contributors and named agents. Role-ref-only applies to current- | ||
| state surfaces (skill bodies, code, README, public-facing prose, | ||
| behavioural docs, threat models). ADRs preserve point-in-time | ||
| provenance — names ARE the provenance and stripping them would | ||
| erase the audit trail. | ||
|
|
||
| --- | ||
|
|
||
| ## Pattern observations (Otto-250 training-signal class) | ||
|
|
||
| 1. **Internal-consistency-finding density was high on this draft | ||
| ADR.** 5 of 7 distinct fixes were internal-consistency findings: | ||
| tier-scheme vs directory-tree gap (A3), id-vs-filename | ||
| inconsistency (A2), "never edit / hand-append" contradiction | ||
| (A4), `tools/migrations/` claimed-vs-actual (A5), PR-description | ||
| vs ADR directory name (A1). Draft ADRs tend to evolve their own | ||
| self-references during authoring; reviewers catch the | ||
| accumulated inconsistencies. | ||
|
|
||
| 2. **Otto-279 surface-class for ADRs as history-class preserved | ||
| provenance.** ADR decision-makers are the real-life provenance | ||
| trail of the decision; stripping names would break the audit | ||
| chain. Same pattern as aurora-archive (#235 / #219) and research | ||
| surfaces (#135 / #377). The history-class carve-out is | ||
| mature-uniform across surfaces now. | ||
|
|
||
| 3. **Live-count vs frozen-count drift is its own findings class.** | ||
| Thread A6 (line count drift) is the same shape as future | ||
| findings on time-stamps, line-numbers, statistics that change | ||
| between draft-and-merge. Fix template: order-of-magnitude | ||
| approximations + explicit drift-tolerance note. | ||
|
|
||
| 4. **Stale merge-commit on PR head needed force-push reconciliation.** | ||
| Notable PR-mechanics nuance: PR head pointed at a stale merge | ||
| commit `eae7a37` (a "merge main into branch" pattern that | ||
| accumulated several rounds before drain). My rebase + force-push | ||
| produced linear history at `d38e109` that included current main | ||
| PLUS my fixes. PR view took a few seconds to reflect the new oid. | ||
| Worth knowing: rebase + force-push sometimes appears to "lose | ||
| content" against a stale merge-commit head, but actually fixes | ||
| the content equivalence. | ||
|
|
||
| ## Final resolution | ||
|
|
||
| All 11 threads resolved at SHA `d38e109` (10 thread-IDs across | ||
| 7 fixes + 1 surface-class). PR auto-merge SQUASH armed; CI cleared; | ||
| merge pending. | ||
|
|
||
| Drained by: Otto, post-summary autonomous-loop continuation, cron | ||
| heartbeat `f38fa487` (`* * * * *`). | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.