From f484c996d398e67321ccf74e9e4e083d5b63f6a3 Mon Sep 17 00:00:00 2001 From: Aaron Stainback Date: Wed, 29 Apr 2026 08:06:32 -0400 Subject: [PATCH 1/5] =?UTF-8?q?ops(0-0-0):=20batch=202=20=E2=80=94=208=20f?= =?UTF-8?q?iles=20SAFE=20(81=20lines)=20+=201=20file=20NEEDS=5FHUMAN=5FDEC?= =?UTF-8?q?ISION=20(12=20lines)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Promotes 8 of 9 batch-2 candidates to SAFE_TO_RESET_LFG_SUPERSEDES with named per-file evidence; flags 1 file (loop-tick-history.md) as NEEDS_HUMAN_DECISION due to mutual divergence in tick-record content. Ledger transition (273 = 215 + 12 + 46 ✓): - classified_safe_lines: 134 → 215 (+81) - unsafe_lines: 0 → 12 (loop-tick-history.md NEEDS_HUMAN_DECISION) - unclassified_lines: 139 → 46 (-93) Batch 2 SAFE files + dominant evidence pattern: - codeql-config.yml (6): LFG bb0227e + 817e59c + 1e09fef — deliberate paths-ignore decision (java-kotlin matrix, scan AlloyRunner.java) that AceHack reverted - memory-index-duplicate-lint.yml (8) + audit-memory-index-duplicates.sh (8): persona-name attribution comments on current-state CI/tool surfaces (role-vs-name rule violation); LFG uses role-refs - Shard.fs (9): LFG aa5395b + 9373755 — perf-fixed non-boxing EqualityComparer<'K>.Default per Copilot P1 review on LFG #649; AceHack still has explicit boxing - AUTONOMOUS-LOOP.md (9): LFG 8aa4adc — Option B per-tick shard-mode doctrine (PR #724, landed 2026-04-29T02:04:38Z); AceHack describes legacy single-table append - macos.sh (11): LFG more detailed shellcheck rationale + role-refs; AceHack adds persona-name attribution + terser shellcheck - fix-markdown-md032-md026.py (16): LFG f57d683 + 515db64 — strict superset (376 lines vs 235), adds YAML frontmatter handling AceHack lacks; fence-detection logic identical - curl-fetch.sh (14): LFG more accurate retry-math comment ("up to 5 retries (6 total attempts including the initial try, per curl(1))" vs AceHack incorrect "five attempts total") + role-refs vs AceHack persona-name Batch 2 NEEDS_HUMAN_DECISION (1 file): - loop-tick-history.md (12): mutual divergence. Each fork has 9-10 unique pre-Option-B tick rows. Maintainer call needed: accept loss / forward-sync / migrate-to-shards. Recommendation: migrate AceHack-only rows to docs/hygiene-history/ticks/2026/04/{21,28}/ shard files (preserves evidence in modern format AND makes file content-identical between forks). Remaining unclassified after batch 2 (46 lines / 2 files): - 38 .github/workflows/budget-snapshot-cadence.yml - 8 memory/project_laptop_only_source_integration_scratch_sqlsharp_features_or_designs_high_priority_2026_04_27.md Lane discipline preserved per Amara 2026-04-29 review: classify files, reduce unclassified_lines, record named evidence. No LOST recovery, no tick-3 promotion, no gate-runner script. --- docs/0-0-0-readiness/CLASSIFICATION.md | 18 ++++++++++++++++ docs/active-trajectory.md | 30 ++++++++++++++------------ 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/docs/0-0-0-readiness/CLASSIFICATION.md b/docs/0-0-0-readiness/CLASSIFICATION.md index 64ee17758e..2370046993 100644 --- a/docs/0-0-0-readiness/CLASSIFICATION.md +++ b/docs/0-0-0-readiness/CLASSIFICATION.md @@ -98,6 +98,24 @@ Per `docs/active-trajectory.md` strict bucket taxonomy: classification requires **Batch 1 result: 2 of 2 files SAFE_TO_RESET_LFG_SUPERSEDES.** No forward-sync needed. +### Batch 2 (2026-04-29T12:05Z) + +Per `docs/active-trajectory.md` strict bucket taxonomy: classification requires named AceHack content + named LFG equivalent + named reason. The 8 SAFE entries below each have LFG-only commits that are deliberate improvements (perf fix, doctrine update, role-vs-name compliance, technical-accuracy fix, or strict-superset extension); the AceHack-only `+` lines are older shapes superseded by those LFG decisions. The 1 NEEDS_HUMAN_DECISION entry is a content-divergence class that hard-reset alone cannot resolve. + +| File | Diff +/- | Status | Evidence | +|---|---|---|---| +| `.github/codeql/codeql-config.yml` | +6/-13 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has 3 commits AceHack lacks: `bb0227e` (java-kotlin matrix + scan AlloyRunner.java; removes `tools/alloy/**` from paths-ignore with detailed rationale), `817e59c` (B-0073 obj/bin refinement), `1e09fef` (xunit→xUnit Copilot review fix on PR #701). AceHack +6 lines = older shape that re-included `tools/alloy/**` in paths-ignore — directly contradicts LFG's deliberate paths-ignore decision. | +| `.github/workflows/memory-index-duplicate-lint.yml` | +8/-5 | **SAFE_TO_RESET_LFG_SUPERSEDES** | Comment-only diff. AceHack `+` lines add persona-name attribution ("Amara 2026-04-23 decision-proxy + technical review action item #2") to a CI workflow file. Per the role-vs-name rule (`docs/AGENT-BEST-PRACTICES.md` closed-list), workflow files are current-state surfaces — persona-names belong on history surfaces only. LFG version uses role-ref-style comment ("an index with duplicate entries is a discoverability defect") which is the rule-compliant form. | +| `tools/hygiene/audit-memory-index-duplicates.sh` | +8/-7 | **SAFE_TO_RESET_LFG_SUPERSEDES** | Same pattern as the workflow file above — comment-only diff. AceHack `+` adds "Amara's 2026-04-23 decision-proxy + technical review (PR #219)" attribution to a tool script. Tool scripts are current-state surfaces; LFG's role-ref version is rule-compliant. | +| `src/Core/Shard.fs` | +9/-12 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has `aa5395b sync: AceHack→LFG merge-needed batch (#649)` + `9373755 fix(audit): comprehensive HashCode.Combine sweep + SplitMix64 refactor (Otto-281 follow-up)`. LFG version uses `EqualityComparer<'K>.Default.GetHashCode(key)` (non-boxing, null-safe) per Copilot P1 review on LFG #649 (boxing on every call for value-type 'K → GC regression on hot paths). AceHack version still uses `match box key with \| null -> 0 \| boxed -> boxed.GetHashCode()` (explicit boxing every call). LFG is the perf-fixed form. | +| `docs/AUTONOMOUS-LOOP.md` | +9/-18 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has 5 commits AceHack lacks, including `8aa4adc feat(tick-history): land Option B per-tick shard-file transport (task #276 — Aaron-delegated call) (#724)` (landed 2026-04-29T02:04:38Z). LFG describes the **current Option B per-tick shard mechanism** at `docs/hygiene-history/ticks/YYYY/MM/DD/HHMMZ.md`. AceHack still describes the legacy single-table append. LFG is the current doctrine. | +| `tools/setup/macos.sh` | +11/-16 | **SAFE_TO_RESET_LFG_SUPERSEDES** | Two changes: (1) shellcheck source-directive comment — LFG has detailed rationale (multi-line explanation of why SC1091 fires + why source= directive resolves it); AceHack has terse 1-line version. (2) Setup script comments — LFG uses role-refs ("the maintainer's standing 'just install everything' framing"); AceHack adds persona-name "per Aaron's 'just install everything' round-29 call" + persona-name "codex P0 review on PR #75 flagged this". Both AceHack changes are role-vs-name violations on a current-state surface. LFG version is more detailed AND rule-compliant. | +| `tools/hygiene/fix-markdown-md032-md026.py` | +16/-157 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has `f57d683 fix(hygiene): MD032 auto-fixer skips YAML frontmatter (don't break composes_with: lists) (#703)` + `515db64 feat(hygiene): fix-markdown-md032-md026.py — recurring pattern extracted to substrate primitive (Otto-346 in action) (#542)`. LFG file is 376 lines vs AceHack 235 lines: LFG = strict superset (fence detection at line 60 on both sides + YAML frontmatter handling that AceHack lacks). AceHack +16 lines are docstring/comment shifts on the fence-detection block (logic identical between sides; LFG just has more code before/after). | +| `tools/setup/common/curl-fetch.sh` | +14/-44 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has 2 commits AceHack lacks (`5298114` infra clean-additive batch + `dfb49e5` 63-file forward-port). Two changes in the comment block: (1) attribution — LFG: "Reviewers confirmed:" (role-ref); AceHack: "Codex P0 review on PR #75 confirmed:" (persona-name violation on a current-state surface). (2) retry-math accuracy — LFG: `--retry 5 — up to 5 retries (6 total attempts including the initial try, per curl(1))` (correct per curl manual); AceHack: `--retry 5 — five attempts total` (technically inaccurate). LFG is more accurate AND rule-compliant. | +| `docs/hygiene-history/loop-tick-history.md` | +12/-12 | **NEEDS_HUMAN_DECISION** | Mutual divergence: each fork has unique tick rows for periods when the loop was running on that fork independently (AceHack-only rows: 2026-04-21T17:28, 2026-04-28T04:08/04:18/04:33/05:01/05:23/05:44/05:50/07:15/08:50; LFG-only rows: 2026-04-21T17:28, 2026-04-27T23:58, 2026-04-28T14:43/17:47/19:41/19:50, 2026-04-29T00:34/00:53/00:58/01:00). All AceHack-only rows are pre-Option-B (Option B shard-mode landed 2026-04-29T02:04:38Z on LFG via PR #724), so they were correctly appended to the legacy single-table file at the time. Hard-reset to LFG erases 12 lines of AceHack-side factory tick evidence. **Maintainer decision needed**: (a) accept the loss (tick-record only, work-products are reachable from PR/commit history), (b) forward-sync AceHack-only rows to LFG before hard-reset, or (c) migrate AceHack-only rows to per-tick shard files under `docs/hygiene-history/ticks/2026/04/{21,28}/` first then hard-reset. Recommended: (c) — preserves the evidence in the modern format AND makes loop-tick-history.md content-identical between forks. | + +**Batch 2 result: 8 of 9 files SAFE_TO_RESET_LFG_SUPERSEDES (81 lines), 1 file NEEDS_HUMAN_DECISION (12 lines).** + ### Calibration batch reclassification (older "ALREADY-COVERED" label) The 5 calibration-batch entries above use the prior taxonomy's "ALREADY-COVERED" label, which under the strict bucket rules (named AceHack content + named LFG equivalent + named reason — see `docs/active-trajectory.md` Hard-reset-safety classification) corresponds to **SAFE_TO_RESET_LFG_SUPERSEDES** (4 entries with semantic supersession evidence) or **ALREADY_RESOLVED** (where AceHack-only content is zero). Re-tabulated for the strict-bucket ledger: diff --git a/docs/active-trajectory.md b/docs/active-trajectory.md index f7dd71e58a..a8278fc103 100644 --- a/docs/active-trajectory.md +++ b/docs/active-trajectory.md @@ -140,31 +140,33 @@ Current ledger (computed 2026-04-29T11:32Z): ```text potential_loss_lines = 273 all AceHack-only +lines (would be erased on hard-reset) -classified_safe_lines = 134 semantic evidence in BUCKET 2 (SAFE_TO_RESET_LFG_SUPERSEDES) -unsafe_lines = 0 no NEEDS_FORWARD_SYNC or NEEDS_HUMAN_DECISION -unclassified_lines = 139 HEURISTIC_LFG_DOMINATES — pending per-file semantic inspection +classified_safe_lines = 215 semantic evidence in BUCKET 2 (SAFE_TO_RESET_LFG_SUPERSEDES) +unsafe_lines = 12 1 NEEDS_HUMAN_DECISION (loop-tick-history.md mutual divergence) +unclassified_lines = 46 HEURISTIC_LFG_DOMINATES — pending per-file semantic inspection ``` -Composition of `classified_safe_lines = 134`: +Arithmetic sanity check: `273 = 215 + 12 + 46` ✓ (per Amara 2026-04-29 review discipline — verify mechanically, do not trust the math because it "looks plausible"). + +Composition of `classified_safe_lines = 215`: - 9 infra files (97 lines): see "9 infra files" table above. SAFE_TO_RESET_LFG_SUPERSEDES with named per-file evidence. - 5 calibration-batch files (28 lines, 2026-04-28): MEMORY.md (11) + codeql_umbrella (12) + doc_class_mirror_beacon (1) + CURRENT-aaron (2) + CURRENT-amara (2). Originally labeled "ALREADY-COVERED" in older taxonomy; under strict bucket each has named evidence in `docs/0-0-0-readiness/CLASSIFICATION.md` → SAFE_TO_RESET_LFG_SUPERSEDES. - Batch 1 (9 lines, 2026-04-29T11:32Z): SECURITY.md (4) + validate-agencysignature-pr-body.sh (5). See `docs/0-0-0-readiness/CLASSIFICATION.md` Batch 1 table for named evidence per file. +- Batch 2 (81 lines, 2026-04-29T12:05Z): codeql-config.yml (6) + memory-index-duplicate-lint.yml (8) + audit-memory-index-duplicates.sh (8) + Shard.fs (9) + AUTONOMOUS-LOOP.md (9) + macos.sh (11) + fix-markdown-md032-md026.py (16) + curl-fetch.sh (14). See `docs/0-0-0-readiness/CLASSIFICATION.md` Batch 2 table for named evidence per file. Common pattern: LFG version is either rule-compliant (role-refs vs persona-name violations on current-state surfaces), more accurate (correct retry-math on curl-fetch.sh), the perf-fixed form (Shard.fs non-boxing comparer), the current doctrine (AUTONOMOUS-LOOP.md Option B shard-mode), or strict superset (fix-markdown-md032-md026.py YAML frontmatter handling). + +Composition of `unsafe_lines = 12` (1 file, NEEDS_HUMAN_DECISION): + +```text +12 docs/hygiene-history/loop-tick-history.md (mutual divergence — 9-10 unique tick rows on each fork) +``` + +Per Batch 2 evidence: each fork has unique tick rows for periods when the loop ran independently on that fork. All AceHack-only rows are pre-Option-B (Option B shard-mode landed 2026-04-29T02:04:38Z on LFG via PR #724). Maintainer call is needed on whether to (a) accept the loss on hard-reset, (b) forward-sync to LFG first, or (c) migrate to per-tick shard files first then hard-reset. Recommended path: (c) — preserves evidence in modern format AND makes the file content-identical between forks. -Composition of `unclassified_lines = 139` (11 files): +Composition of `unclassified_lines = 46` (2 files): ```text 38 .github/workflows/budget-snapshot-cadence.yml -16 tools/hygiene/fix-markdown-md032-md026.py -14 tools/setup/common/curl-fetch.sh -12 docs/hygiene-history/loop-tick-history.md -11 tools/setup/macos.sh - 9 src/Core/Shard.fs - 9 docs/AUTONOMOUS-LOOP.md - 8 tools/hygiene/audit-memory-index-duplicates.sh 8 memory/project_laptop_only_source_integration_scratch_sqlsharp_features_or_designs_high_priority_2026_04_27.md - 8 .github/workflows/memory-index-duplicate-lint.yml - 6 .github/codeql/codeql-config.yml ``` ### Hard-reset signoff gate (strict) From f052caa30c8d570a5846d948c623726fe4177c65 Mon Sep 17 00:00:00 2001 From: Aaron Stainback Date: Wed, 29 Apr 2026 08:08:21 -0400 Subject: [PATCH 2/5] =?UTF-8?q?hygiene(tick-history):=20shard=201207Z=20?= =?UTF-8?q?=E2=80=94=200/0/0=20batch-2=20classification=20post=20computer-?= =?UTF-8?q?restart=20(#838=20opened)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resume tick after Aaron's computer restart. Recovery sequence: fresh-clone recreated (/tmp wiped on macOS reboot, expected), local main synced to LFG #837 squash-merge, batch-2 evidence re-verified, PR #838 opened with 8 SAFE + 1 NEEDS_HUMAN_DECISION (loop-tick-history.md mutual divergence). Ledger: 134→215 classified_safe, 0→12 unsafe, 139→46 unclassified. Arithmetic: 273=215+12+46 ✓. Resume-protocol validated: load-state file (`docs/active-trajectory.md`) prevented audit-spiral after restart; fresh-clone recreation procedure was self-evident from doc text. --- docs/hygiene-history/ticks/2026/04/29/1207Z.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/hygiene-history/ticks/2026/04/29/1207Z.md diff --git a/docs/hygiene-history/ticks/2026/04/29/1207Z.md b/docs/hygiene-history/ticks/2026/04/29/1207Z.md new file mode 100644 index 0000000000..5defd48c48 --- /dev/null +++ b/docs/hygiene-history/ticks/2026/04/29/1207Z.md @@ -0,0 +1 @@ +| 2026-04-29T12:07:27Z | claude-opus-4-7 | 43c91583 | 0/0/0 batch-2 classification tick post computer-restart. Resumed from compacted-conversation state. Recovery sequence: (a) /tmp/zeta-clean-2026-04-29/lfg fresh clone wiped by macOS reboot — recreated via `git clone` + `git fetch acehack`, frozen with `gc.auto=0` + `reflogExpire=never`; (b) local repo synced to LFG main = `6f8df33` (#837 squash-merge); (c) merged feature branch deleted; (d) per-file batch-2 evidence (gathered pre-restart) re-verified against fresh clone — 9 of 9 files match the pre-restart classifications. Batch 2 PR (#838) opened with: 8 SAFE_TO_RESET_LFG_SUPERSEDES (codeql-config.yml + memory-index-duplicate-lint.yml + audit-memory-index-duplicates.sh + Shard.fs + AUTONOMOUS-LOOP.md + macos.sh + fix-markdown-md032-md026.py + curl-fetch.sh = 81 lines) + 1 NEEDS_HUMAN_DECISION (loop-tick-history.md = 12 lines, mutual divergence in pre-Option-B tick rows, recommended path: migrate AceHack-only rows to per-tick shard files first then hard-reset). Ledger transition: 134 → 215 classified_safe; 0 → 12 unsafe; 139 → 46 unclassified. Arithmetic verified: `273 = 215 + 12 + 46` ✓ (per Amara 2026-04-29 mechanical-verification discipline). Common batch-2 evidence pattern: AceHack-only `+` lines are either persona-name attribution on current-state CI/tool/code surfaces (role-vs-name rule violation under the closed-list per `docs/AGENT-BEST-PRACTICES.md`), older shapes superseded by deliberate LFG decisions (paths-ignore on codeql-config, perf fix on Shard.fs comparer, Option B shard-mode doctrine on AUTONOMOUS-LOOP.md), or technical-accuracy regressions (curl-fetch retry-math). Lane discipline preserved per Amara 2026-04-29 review: classify files, reduce unclassified_lines, record named evidence. No LOST recovery, no tick-3 promotion, no gate-runner script. Cron `43c91583` alive. | [PR #838](https://github.com/Lucent-Financial-Group/Zeta/pull/838) | **Resume-protocol working as designed**: the load-state file (`docs/active-trajectory.md`) prevented re-derivation of state after computer-restart. Read-once at session-start gave: ledger numbers, fresh-clone path + recovery procedure, gate conditions, classification rule, recommended resume command. The resume cost was minimal (~2 min to re-establish state vs the ~30+ min audit-spiral that would have happened without the load-state file). **Observation**: the `/tmp` wipe is a known macOS behavior, but the fresh-clone-recreation procedure was self-evident from active-trajectory.md (clone → fetch acehack → fsck → freeze) — the procedure WAS in the doc, not just in agent memory. This validates the design choice to put procedure-as-text in the load-state file. | From 1296bb6c69dc8a8605299b1ad22c57aea50b1dc0 Mon Sep 17 00:00:00 2001 From: Aaron Stainback Date: Wed, 29 Apr 2026 08:15:03 -0400 Subject: [PATCH 3/5] =?UTF-8?q?ops(0-0-0):=20address=20#838=20review=20thr?= =?UTF-8?q?eads=20=E2=80=94=20scrub=20persona=20names=20from=20new=20prose?= =?UTF-8?q?=20+=20refresh=20ledger=20header?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two real findings from #838 review: 1. Copilot (CLASSIFICATION.md line 114): the new Batch 2 evidence cells contained quoted persona-names ("Amara"/"Aaron") in evidence prose. Even though the names appeared as data being shown to the reader (what AceHack contains), CLASSIFICATION.md is a current-state doc surface and the role-vs-name rule applies. Fix: rewrite the affected cells to describe the wrong-form attribution at meta level (e.g. "persona-name attribution citing an external AI reviewer + a PR number") instead of verbatim-quoting the names being criticized. Pre-existing persona-names elsewhere in the doc were NOT introduced in this PR and are not addressed here (would require the same rule-extension move that landed for active-trajectory.md, which was an explicit maintainer call; no equivalent call exists for CLASSIFICATION.md so I'm not extending). 2. Copilot (active-trajectory.md line 145): the ledger header still said "computed 2026-04-29T11:32Z" — stale relative to the Batch 2 update. Fix: update the header to "last updated 2026-04-29T12:13Z, post-Batch-2", clarify which number is the canonically-computed one (potential_loss_lines = 273, computed 2026-04-29T10:25Z), and explain why it remains canonical (LFG advanced via #837 but only on docs not in the AceHack-vs-LFG file set). Lane discipline preserved per Amara 2026-04-29 review: classify files, reduce unclassified_lines, record named evidence. No new file classifications added in this commit. --- docs/0-0-0-readiness/CLASSIFICATION.md | 10 +++++----- docs/active-trajectory.md | 6 ++++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/0-0-0-readiness/CLASSIFICATION.md b/docs/0-0-0-readiness/CLASSIFICATION.md index 2370046993..be6aed5a76 100644 --- a/docs/0-0-0-readiness/CLASSIFICATION.md +++ b/docs/0-0-0-readiness/CLASSIFICATION.md @@ -105,13 +105,13 @@ Per `docs/active-trajectory.md` strict bucket taxonomy: classification requires | File | Diff +/- | Status | Evidence | |---|---|---|---| | `.github/codeql/codeql-config.yml` | +6/-13 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has 3 commits AceHack lacks: `bb0227e` (java-kotlin matrix + scan AlloyRunner.java; removes `tools/alloy/**` from paths-ignore with detailed rationale), `817e59c` (B-0073 obj/bin refinement), `1e09fef` (xunit→xUnit Copilot review fix on PR #701). AceHack +6 lines = older shape that re-included `tools/alloy/**` in paths-ignore — directly contradicts LFG's deliberate paths-ignore decision. | -| `.github/workflows/memory-index-duplicate-lint.yml` | +8/-5 | **SAFE_TO_RESET_LFG_SUPERSEDES** | Comment-only diff. AceHack `+` lines add persona-name attribution ("Amara 2026-04-23 decision-proxy + technical review action item #2") to a CI workflow file. Per the role-vs-name rule (`docs/AGENT-BEST-PRACTICES.md` closed-list), workflow files are current-state surfaces — persona-names belong on history surfaces only. LFG version uses role-ref-style comment ("an index with duplicate entries is a discoverability defect") which is the rule-compliant form. | -| `tools/hygiene/audit-memory-index-duplicates.sh` | +8/-7 | **SAFE_TO_RESET_LFG_SUPERSEDES** | Same pattern as the workflow file above — comment-only diff. AceHack `+` adds "Amara's 2026-04-23 decision-proxy + technical review (PR #219)" attribution to a tool script. Tool scripts are current-state surfaces; LFG's role-ref version is rule-compliant. | +| `.github/workflows/memory-index-duplicate-lint.yml` | +8/-5 | **SAFE_TO_RESET_LFG_SUPERSEDES** | Comment-only diff. AceHack `+` lines add persona-name attribution (citing an external AI reviewer + a dated technical-review reference + a PR number) to a CI workflow file. Per the role-vs-name rule (`docs/AGENT-BEST-PRACTICES.md` closed-list), workflow files are current-state surfaces — persona-names belong on history surfaces only. LFG version uses role-ref-style comment ("an index with duplicate entries is a discoverability defect") which is the rule-compliant form. | +| `tools/hygiene/audit-memory-index-duplicates.sh` | +8/-7 | **SAFE_TO_RESET_LFG_SUPERSEDES** | Same pattern as the workflow file above — comment-only diff. AceHack `+` adds persona-name attribution (citing an external AI reviewer + a dated technical-review reference) to a tool script. Tool scripts are current-state surfaces; LFG's role-ref version is rule-compliant. | | `src/Core/Shard.fs` | +9/-12 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has `aa5395b sync: AceHack→LFG merge-needed batch (#649)` + `9373755 fix(audit): comprehensive HashCode.Combine sweep + SplitMix64 refactor (Otto-281 follow-up)`. LFG version uses `EqualityComparer<'K>.Default.GetHashCode(key)` (non-boxing, null-safe) per Copilot P1 review on LFG #649 (boxing on every call for value-type 'K → GC regression on hot paths). AceHack version still uses `match box key with \| null -> 0 \| boxed -> boxed.GetHashCode()` (explicit boxing every call). LFG is the perf-fixed form. | -| `docs/AUTONOMOUS-LOOP.md` | +9/-18 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has 5 commits AceHack lacks, including `8aa4adc feat(tick-history): land Option B per-tick shard-file transport (task #276 — Aaron-delegated call) (#724)` (landed 2026-04-29T02:04:38Z). LFG describes the **current Option B per-tick shard mechanism** at `docs/hygiene-history/ticks/YYYY/MM/DD/HHMMZ.md`. AceHack still describes the legacy single-table append. LFG is the current doctrine. | -| `tools/setup/macos.sh` | +11/-16 | **SAFE_TO_RESET_LFG_SUPERSEDES** | Two changes: (1) shellcheck source-directive comment — LFG has detailed rationale (multi-line explanation of why SC1091 fires + why source= directive resolves it); AceHack has terse 1-line version. (2) Setup script comments — LFG uses role-refs ("the maintainer's standing 'just install everything' framing"); AceHack adds persona-name "per Aaron's 'just install everything' round-29 call" + persona-name "codex P0 review on PR #75 flagged this". Both AceHack changes are role-vs-name violations on a current-state surface. LFG version is more detailed AND rule-compliant. | +| `docs/AUTONOMOUS-LOOP.md` | +9/-18 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has 5 commits AceHack lacks, including `8aa4adc feat(tick-history): land Option B per-tick shard-file transport (task #276 — maintainer-delegated call) (#724)` (landed 2026-04-29T02:04:38Z). LFG describes the **current Option B per-tick shard mechanism** at `docs/hygiene-history/ticks/YYYY/MM/DD/HHMMZ.md`. AceHack still describes the legacy single-table append. LFG is the current doctrine. | +| `tools/setup/macos.sh` | +11/-16 | **SAFE_TO_RESET_LFG_SUPERSEDES** | Two changes: (1) shellcheck source-directive comment — LFG has detailed rationale (multi-line explanation of why SC1091 fires + why source= directive resolves it); AceHack has terse 1-line version. (2) Setup script comments — LFG uses role-refs ("the maintainer's standing 'just install everything' framing"); AceHack adds persona-name attribution (citing the human maintainer + a round number) and persona-name attribution (citing an external AI reviewer + a PR number). Both AceHack changes are role-vs-name violations on a current-state surface. LFG version is more detailed AND rule-compliant. | | `tools/hygiene/fix-markdown-md032-md026.py` | +16/-157 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has `f57d683 fix(hygiene): MD032 auto-fixer skips YAML frontmatter (don't break composes_with: lists) (#703)` + `515db64 feat(hygiene): fix-markdown-md032-md026.py — recurring pattern extracted to substrate primitive (Otto-346 in action) (#542)`. LFG file is 376 lines vs AceHack 235 lines: LFG = strict superset (fence detection at line 60 on both sides + YAML frontmatter handling that AceHack lacks). AceHack +16 lines are docstring/comment shifts on the fence-detection block (logic identical between sides; LFG just has more code before/after). | -| `tools/setup/common/curl-fetch.sh` | +14/-44 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has 2 commits AceHack lacks (`5298114` infra clean-additive batch + `dfb49e5` 63-file forward-port). Two changes in the comment block: (1) attribution — LFG: "Reviewers confirmed:" (role-ref); AceHack: "Codex P0 review on PR #75 confirmed:" (persona-name violation on a current-state surface). (2) retry-math accuracy — LFG: `--retry 5 — up to 5 retries (6 total attempts including the initial try, per curl(1))` (correct per curl manual); AceHack: `--retry 5 — five attempts total` (technically inaccurate). LFG is more accurate AND rule-compliant. | +| `tools/setup/common/curl-fetch.sh` | +14/-44 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has 2 commits AceHack lacks (`5298114` infra clean-additive batch + `dfb49e5` 63-file forward-port). Two changes in the comment block: (1) attribution — LFG: "Reviewers confirmed:" (role-ref); AceHack: persona-name attribution citing an external AI reviewer + a PR number (role-vs-name rule violation on a current-state surface). (2) retry-math accuracy — LFG: `--retry 5 — up to 5 retries (6 total attempts including the initial try, per curl(1))` (correct per curl manual); AceHack: `--retry 5 — five attempts total` (technically inaccurate). LFG is more accurate AND rule-compliant. | | `docs/hygiene-history/loop-tick-history.md` | +12/-12 | **NEEDS_HUMAN_DECISION** | Mutual divergence: each fork has unique tick rows for periods when the loop was running on that fork independently (AceHack-only rows: 2026-04-21T17:28, 2026-04-28T04:08/04:18/04:33/05:01/05:23/05:44/05:50/07:15/08:50; LFG-only rows: 2026-04-21T17:28, 2026-04-27T23:58, 2026-04-28T14:43/17:47/19:41/19:50, 2026-04-29T00:34/00:53/00:58/01:00). All AceHack-only rows are pre-Option-B (Option B shard-mode landed 2026-04-29T02:04:38Z on LFG via PR #724), so they were correctly appended to the legacy single-table file at the time. Hard-reset to LFG erases 12 lines of AceHack-side factory tick evidence. **Maintainer decision needed**: (a) accept the loss (tick-record only, work-products are reachable from PR/commit history), (b) forward-sync AceHack-only rows to LFG before hard-reset, or (c) migrate AceHack-only rows to per-tick shard files under `docs/hygiene-history/ticks/2026/04/{21,28}/` first then hard-reset. Recommended: (c) — preserves the evidence in the modern format AND makes loop-tick-history.md content-identical between forks. | **Batch 2 result: 8 of 9 files SAFE_TO_RESET_LFG_SUPERSEDES (81 lines), 1 file NEEDS_HUMAN_DECISION (12 lines).** diff --git a/docs/active-trajectory.md b/docs/active-trajectory.md index a8278fc103..b6b821ff16 100644 --- a/docs/active-trajectory.md +++ b/docs/active-trajectory.md @@ -136,7 +136,7 @@ For the text-file ledger, the conceptual computation is straightforward: `git di Verified 2026-04-29T10:43Z: the 5 binary-classified files in the current diff have status `D` (LFG-only), so `binary_acehack_only_files = 0` and `binary_modified_or_renamed_files = 0` in this specific round. -Current ledger (computed 2026-04-29T11:32Z): +Current ledger (last updated 2026-04-29T12:13Z, post-Batch-2): ```text potential_loss_lines = 273 all AceHack-only +lines (would be erased on hard-reset) @@ -145,7 +145,9 @@ unsafe_lines = 12 1 NEEDS_HUMAN_DECISION (loop-tick-history.md mutu unclassified_lines = 46 HEURISTIC_LFG_DOMINATES — pending per-file semantic inspection ``` -Arithmetic sanity check: `273 = 215 + 12 + 46` ✓ (per Amara 2026-04-29 review discipline — verify mechanically, do not trust the math because it "looks plausible"). +`potential_loss_lines = 273` was computed 2026-04-29T10:25Z via `git diff --numstat refs/remotes/origin/main..refs/remotes/acehack/main` and remains canonical at the time of the most recent batch-PR open (the AceHack and LFG main tips have not advanced relative to each other in a way that touched the divergent files — see "Drift cadence observation" earlier; LFG advanced via #837 but #837 only touched docs in `docs/0-0-0-readiness/` which are not in the AceHack-vs-LFG file set). Re-compute on next batch open if either tip moves. + +Arithmetic sanity check: `273 = 215 + 12 + 46` ✓ (per the multi-AI review discipline — verify mechanically, do not trust the math because it "looks plausible"). Composition of `classified_safe_lines = 215`: From c46abdeb6448b4cec5b1bf287d65f6af34376e93 Mon Sep 17 00:00:00 2001 From: Aaron Stainback Date: Wed, 29 Apr 2026 08:20:11 -0400 Subject: [PATCH 4/5] =?UTF-8?q?ops(0-0-0):=20address=20#838=20Codex=20P2?= =?UTF-8?q?=20=E2=80=94=20fix=20mutually-exclusive-bucket=20violation=20in?= =?UTF-8?q?=20loop-tick-history.md=20cell=20+=20record=20maintainer=20(c)?= =?UTF-8?q?=20decision?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Codex P2 (12:18Z): the NEEDS_HUMAN_DECISION evidence cell for loop-tick-history.md listed `2026-04-21T17:28` in BOTH the AceHack-only AND LFG-only timestamp buckets, but the buckets were defined as mutually exclusive. The actual git state is: that timestamp's row exists on BOTH forks with content drift in the trailing portion, so it appears as a `+/-` pair in `git diff` rather than as unique-to-one-side. Fix: rewrite the cell to enumerate three honest cases — truly unique to AceHack (9 timestamps), truly unique to LFG (9 timestamps), and present on both with content drift (1 timestamp: 2026-04-21T17:28). Also records the maintainer (c) decision (forwarded 2026-04-29 via the multi-AI review packet): migrate AceHack-only rows to per-tick shard files under docs/hygiene-history/ticks/2026/04/{21,28}/, then hard-reset. The cell now notes the file reclassifies to SAFE_TO_RESET_LFG_SUPERSEDES once the option-(c) migration PR lands. This is a hard-defect fix per Amara's lane caution ("If CI is waiting: ... fix only hard defects if review threads appear"). No new file classifications added; no scope widening. --- docs/0-0-0-readiness/CLASSIFICATION.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/0-0-0-readiness/CLASSIFICATION.md b/docs/0-0-0-readiness/CLASSIFICATION.md index be6aed5a76..5509c46089 100644 --- a/docs/0-0-0-readiness/CLASSIFICATION.md +++ b/docs/0-0-0-readiness/CLASSIFICATION.md @@ -112,7 +112,7 @@ Per `docs/active-trajectory.md` strict bucket taxonomy: classification requires | `tools/setup/macos.sh` | +11/-16 | **SAFE_TO_RESET_LFG_SUPERSEDES** | Two changes: (1) shellcheck source-directive comment — LFG has detailed rationale (multi-line explanation of why SC1091 fires + why source= directive resolves it); AceHack has terse 1-line version. (2) Setup script comments — LFG uses role-refs ("the maintainer's standing 'just install everything' framing"); AceHack adds persona-name attribution (citing the human maintainer + a round number) and persona-name attribution (citing an external AI reviewer + a PR number). Both AceHack changes are role-vs-name violations on a current-state surface. LFG version is more detailed AND rule-compliant. | | `tools/hygiene/fix-markdown-md032-md026.py` | +16/-157 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has `f57d683 fix(hygiene): MD032 auto-fixer skips YAML frontmatter (don't break composes_with: lists) (#703)` + `515db64 feat(hygiene): fix-markdown-md032-md026.py — recurring pattern extracted to substrate primitive (Otto-346 in action) (#542)`. LFG file is 376 lines vs AceHack 235 lines: LFG = strict superset (fence detection at line 60 on both sides + YAML frontmatter handling that AceHack lacks). AceHack +16 lines are docstring/comment shifts on the fence-detection block (logic identical between sides; LFG just has more code before/after). | | `tools/setup/common/curl-fetch.sh` | +14/-44 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has 2 commits AceHack lacks (`5298114` infra clean-additive batch + `dfb49e5` 63-file forward-port). Two changes in the comment block: (1) attribution — LFG: "Reviewers confirmed:" (role-ref); AceHack: persona-name attribution citing an external AI reviewer + a PR number (role-vs-name rule violation on a current-state surface). (2) retry-math accuracy — LFG: `--retry 5 — up to 5 retries (6 total attempts including the initial try, per curl(1))` (correct per curl manual); AceHack: `--retry 5 — five attempts total` (technically inaccurate). LFG is more accurate AND rule-compliant. | -| `docs/hygiene-history/loop-tick-history.md` | +12/-12 | **NEEDS_HUMAN_DECISION** | Mutual divergence: each fork has unique tick rows for periods when the loop was running on that fork independently (AceHack-only rows: 2026-04-21T17:28, 2026-04-28T04:08/04:18/04:33/05:01/05:23/05:44/05:50/07:15/08:50; LFG-only rows: 2026-04-21T17:28, 2026-04-27T23:58, 2026-04-28T14:43/17:47/19:41/19:50, 2026-04-29T00:34/00:53/00:58/01:00). All AceHack-only rows are pre-Option-B (Option B shard-mode landed 2026-04-29T02:04:38Z on LFG via PR #724), so they were correctly appended to the legacy single-table file at the time. Hard-reset to LFG erases 12 lines of AceHack-side factory tick evidence. **Maintainer decision needed**: (a) accept the loss (tick-record only, work-products are reachable from PR/commit history), (b) forward-sync AceHack-only rows to LFG before hard-reset, or (c) migrate AceHack-only rows to per-tick shard files under `docs/hygiene-history/ticks/2026/04/{21,28}/` first then hard-reset. Recommended: (c) — preserves the evidence in the modern format AND makes loop-tick-history.md content-identical between forks. | +| `docs/hygiene-history/loop-tick-history.md` | +12/-12 | **NEEDS_HUMAN_DECISION** → maintainer chose option (c) | Mutual divergence with two distinct cases. **Truly unique to AceHack** (9 timestamps): 2026-04-28T04:08/04:18/04:33/05:01/05:23/05:44/05:50/07:15/08:50. **Truly unique to LFG** (9 timestamps): 2026-04-27T23:58, 2026-04-28T14:43/17:47/19:41/19:50, 2026-04-29T00:34/00:53/00:58/01:00. **Present on both forks with content drift in trailing portion** (1 timestamp, 2026-04-21T17:28): the row exists on both sides but differs enough to appear as `+/-` pair in `git diff`. All AceHack-only rows are pre-Option-B (Option B shard-mode landed 2026-04-29T02:04:38Z on LFG via PR #724) and were correctly appended to the legacy single-table file at the time. **Maintainer call (2026-04-29)**: option (c) — migrate AceHack-only rows to per-tick shard files under `docs/hygiene-history/ticks/2026/04/{21,28}/` first, then hard-reset. Rationale: preserves evidence in the modern Option B format, avoids accepting loss, makes loop-tick-history.md content-identical between forks, converts the only NEEDS_HUMAN_DECISION item into a preservation-forward cleanup. **Reclassifies to SAFE_TO_RESET_LFG_SUPERSEDES once option-(c) migration PR lands.** Pre-existing 9 LFG-only rows are out of scope for this PR (separate follow-up to migrate THOSE to shards lives on the LFG side). | **Batch 2 result: 8 of 9 files SAFE_TO_RESET_LFG_SUPERSEDES (81 lines), 1 file NEEDS_HUMAN_DECISION (12 lines).** From 928d6033e30f8cc8b2b435d501460bad7fc8a472 Mon Sep 17 00:00:00 2001 From: Aaron Stainback Date: Wed, 29 Apr 2026 08:25:02 -0400 Subject: [PATCH 5/5] =?UTF-8?q?ops(0-0-0):=20address=20#838=20Copilot=20P1?= =?UTF-8?q?=20=E2=80=94=20revert=20cell=20to=20consistent=20NEEDS=5FHUMAN?= =?UTF-8?q?=5FDECISION=20state=20(decision=20=E2=89=A0=20resolution)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Copilot P1 (12:23Z): the previous cell update conflated "decision exists" with "decision executed". The cell read "NEEDS_HUMAN_DECISION → maintainer chose option (c)", which is config-drift relative to the rest of the PR (active-trajectory.md ledger still has unsafe_lines=12; PR description still treats the file as decision-pending). Fix: revert the cell to pure NEEDS_HUMAN_DECISION state. The file's classification changes only when option-(c) execution actually lands (the migration PR), not when the decision arrives. Until then the file is "decision-made-but-not-executed" → still NEEDS_HUMAN_DECISION for ledger purposes. Cell still preserves the precision improvements from the prior fix: - 3 honest cases (9 truly-unique-AceHack + 9 truly-unique-LFG + 1 same-timestamp-drift) - explicit note that diff direction is not row identity - (c) listed as recommended path in the maintainer-decision options The maintainer-(c) decision will be acted on in a separate post-#838 migration PR. That's where the file's classification flips. --- docs/0-0-0-readiness/CLASSIFICATION.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/0-0-0-readiness/CLASSIFICATION.md b/docs/0-0-0-readiness/CLASSIFICATION.md index 5509c46089..bb5e4bd62b 100644 --- a/docs/0-0-0-readiness/CLASSIFICATION.md +++ b/docs/0-0-0-readiness/CLASSIFICATION.md @@ -112,7 +112,7 @@ Per `docs/active-trajectory.md` strict bucket taxonomy: classification requires | `tools/setup/macos.sh` | +11/-16 | **SAFE_TO_RESET_LFG_SUPERSEDES** | Two changes: (1) shellcheck source-directive comment — LFG has detailed rationale (multi-line explanation of why SC1091 fires + why source= directive resolves it); AceHack has terse 1-line version. (2) Setup script comments — LFG uses role-refs ("the maintainer's standing 'just install everything' framing"); AceHack adds persona-name attribution (citing the human maintainer + a round number) and persona-name attribution (citing an external AI reviewer + a PR number). Both AceHack changes are role-vs-name violations on a current-state surface. LFG version is more detailed AND rule-compliant. | | `tools/hygiene/fix-markdown-md032-md026.py` | +16/-157 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has `f57d683 fix(hygiene): MD032 auto-fixer skips YAML frontmatter (don't break composes_with: lists) (#703)` + `515db64 feat(hygiene): fix-markdown-md032-md026.py — recurring pattern extracted to substrate primitive (Otto-346 in action) (#542)`. LFG file is 376 lines vs AceHack 235 lines: LFG = strict superset (fence detection at line 60 on both sides + YAML frontmatter handling that AceHack lacks). AceHack +16 lines are docstring/comment shifts on the fence-detection block (logic identical between sides; LFG just has more code before/after). | | `tools/setup/common/curl-fetch.sh` | +14/-44 | **SAFE_TO_RESET_LFG_SUPERSEDES** | LFG has 2 commits AceHack lacks (`5298114` infra clean-additive batch + `dfb49e5` 63-file forward-port). Two changes in the comment block: (1) attribution — LFG: "Reviewers confirmed:" (role-ref); AceHack: persona-name attribution citing an external AI reviewer + a PR number (role-vs-name rule violation on a current-state surface). (2) retry-math accuracy — LFG: `--retry 5 — up to 5 retries (6 total attempts including the initial try, per curl(1))` (correct per curl manual); AceHack: `--retry 5 — five attempts total` (technically inaccurate). LFG is more accurate AND rule-compliant. | -| `docs/hygiene-history/loop-tick-history.md` | +12/-12 | **NEEDS_HUMAN_DECISION** → maintainer chose option (c) | Mutual divergence with two distinct cases. **Truly unique to AceHack** (9 timestamps): 2026-04-28T04:08/04:18/04:33/05:01/05:23/05:44/05:50/07:15/08:50. **Truly unique to LFG** (9 timestamps): 2026-04-27T23:58, 2026-04-28T14:43/17:47/19:41/19:50, 2026-04-29T00:34/00:53/00:58/01:00. **Present on both forks with content drift in trailing portion** (1 timestamp, 2026-04-21T17:28): the row exists on both sides but differs enough to appear as `+/-` pair in `git diff`. All AceHack-only rows are pre-Option-B (Option B shard-mode landed 2026-04-29T02:04:38Z on LFG via PR #724) and were correctly appended to the legacy single-table file at the time. **Maintainer call (2026-04-29)**: option (c) — migrate AceHack-only rows to per-tick shard files under `docs/hygiene-history/ticks/2026/04/{21,28}/` first, then hard-reset. Rationale: preserves evidence in the modern Option B format, avoids accepting loss, makes loop-tick-history.md content-identical between forks, converts the only NEEDS_HUMAN_DECISION item into a preservation-forward cleanup. **Reclassifies to SAFE_TO_RESET_LFG_SUPERSEDES once option-(c) migration PR lands.** Pre-existing 9 LFG-only rows are out of scope for this PR (separate follow-up to migrate THOSE to shards lives on the LFG side). | +| `docs/hygiene-history/loop-tick-history.md` | +12/-12 | **NEEDS_HUMAN_DECISION** | Mutual divergence with two distinct cases. **Truly unique to AceHack** (9 timestamps): 2026-04-28T04:08/04:18/04:33/05:01/05:23/05:44/05:50/07:15/08:50. **Truly unique to LFG** (9 timestamps): 2026-04-27T23:58, 2026-04-28T14:43/17:47/19:41/19:50, 2026-04-29T00:34/00:53/00:58/01:00. **Present on both forks with content drift in trailing portion** (1 timestamp, 2026-04-21T17:28): the row exists on both sides but differs enough to appear as `+/-` pair in `git diff` — note that diff direction is not row identity (a row present on both with trailing drift can show as both `+` and `-`). All AceHack-only rows are pre-Option-B (Option B shard-mode landed 2026-04-29T02:04:38Z on LFG via PR #724) and were correctly appended to the legacy single-table file at the time. Hard-reset to LFG erases the AceHack-only and same-timestamp-drift evidence. **Maintainer decision needed**: (a) accept the loss (tick-record only, work-products are reachable from PR/commit history), (b) forward-sync AceHack-only rows to LFG before hard-reset, or (c) migrate AceHack-only rows to per-tick shard files under `docs/hygiene-history/ticks/2026/04/{21,28}/` first then hard-reset. Recommended path: (c) — preserves the evidence in the modern format AND makes loop-tick-history.md content-identical between forks. Pre-existing 9 LFG-only rows are out of scope (separate follow-up on LFG side). | **Batch 2 result: 8 of 9 files SAFE_TO_RESET_LFG_SUPERSEDES (81 lines), 1 file NEEDS_HUMAN_DECISION (12 lines).**