Skip to content

ops(active-trajectory): binary direction split + NUL-safe parsing + lease-rejected-after-dry-run message + deferred follow-ups#836

Merged
AceHack merged 5 commits intomainfrom
zero-zero-zero-binary-direction-corrections-2026-04-29
Apr 29, 2026
Merged

ops(active-trajectory): binary direction split + NUL-safe parsing + lease-rejected-after-dry-run message + deferred follow-ups#836
AceHack merged 5 commits intomainfrom
zero-zero-zero-binary-direction-corrections-2026-04-29

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented Apr 29, 2026

Follow-up to merged #835 with the multi-AI review 2026-04-29T10:50Z corrections.

Five corrections

  1. Binary ledger split by direction — replace direction-agnostic binary_modified_files with three buckets: binary_acehack_only_files (would be ERASED on hard-reset), binary_lfg_only_files (would be ADDED, not loss), binary_modified_or_renamed_files (needs semantic classification).

  2. NUL-safe parsing — replace Bash-only process-substitution helper with two-pass numstat -z + name-status -z pipeline. Handles paths with spaces/odd characters; doesn't depend on Bash >=4 process substitution.

  3. Lease-rejected-after-dry-run message — when dry-run succeeds and real push rejects, operator's first hypothesis should be "remote moved" (expected; lease did its job), not "lease syntax wrong" (would lead to debugging the wrong layer). Added explicit message to the failure branch.

  4. Gate refined — replaced binary_acehack_only_files = 0 (binary files exist only on LFG, OR each binary file has been classified) with cleaner two-condition form: binary_acehack_only_files = 0 AND binary_modified_or_renamed_classified = all.

  5. Deferred-follow-up list added — four items captured for visibility, NOT blocking 0/0/0:

    • Gate-runner script (tools/zero-zero-zero/check-gate.sh)
    • Self-reference rule for personas in operational specs (Otto-too)
    • LOST recovery deferred-with-stated-condition predicate format
    • Dry-run + real-push as one operator-approved unit + timestamp capture

Best blade (Amara)

Text lines can be counted. Binary files must be classified. The gate clears only what the ledger can prove.

Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com

…ease-rejected-after-dry-run message + deferred-follow-up list

Multi-AI review 2026-04-29T10:50Z packet (Amara + Claude.ai + Deepseek
+ Gemini + Ani convergent) added five corrections:

1. **Binary ledger split by direction** (Amara): the prior version
   counted `binary_modified_files` direction-agnostic, which conflated
   "would be erased on hard-reset" with "would be added on hard-
   reset." Replaced with three buckets:
     binary_acehack_only_files       (status A → ERASED on hard-reset)
     binary_lfg_only_files           (status D → ADDED on hard-reset; not loss)
     binary_modified_or_renamed_files (M/R/T → needs semantic classification)

2. **NUL-safe parsing** (Amara): replaced the Bash-only process-
   substitution helper with a two-pass numstat -z + name-status -z
   pipeline that handles paths with spaces / odd characters and
   doesn't depend on Bash >= 4 process substitution.

3. **Lease-rejected-after-dry-run message** (Claude.ai + Amara):
   when dry-run succeeds and the real push rejects the lease, the
   operator's first hypothesis should be "remote moved between dry-
   run and push" (expected; lease did its job), not "lease syntax
   wrong" (would lead to debugging the wrong layer). Added explicit
   message to the failure branch.

4. **Gate updated**: replaced `binary_acehack_only_files = 0  (binary
   files exist only on LFG, OR each binary file has been classified)`
   with the cleaner two-condition form:
     binary_acehack_only_files                = 0  (would be ERASED)
     binary_modified_or_renamed_classified    = all (each SAFE or FORWARD-SYNC)

5. **Deferred-follow-up list added** (Claude.ai + Amara). Four items
   captured for visibility, NOT blocking 0/0/0:
   - Gate-runner script (`tools/zero-zero-zero/check-gate.sh`)
   - Self-reference rule for personas in operational specs (Otto-too)
   - LOST recovery deferred-with-stated-condition predicate format
   - Dry-run + real-push as one operator-approved unit + timestamp capture

Best blade (Amara): "Text lines can be counted. Binary files must be
classified. The gate clears only what the ledger can prove."

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 29, 2026 10:54
@AceHack AceHack enabled auto-merge (squash) April 29, 2026 10:54
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: 9314d9fb4a

ℹ️ 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/active-trajectory.md Outdated
Comment thread docs/active-trajectory.md Outdated
auto-merge was automatically disabled April 29, 2026 10:58

Repository rule violations found

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

Updates the hard-reset “active trajectory” operational doc to improve how drift is measured and gated, with special handling for binary files and clearer operator messaging around --force-with-lease behavior.

Changes:

  • Splits binary-file accounting into direction-aware buckets (AceHack-only vs LFG-only vs modified/renamed).
  • Reworks the ledger example to use NUL-delimited git diff ... -z outputs and adds explanatory notes for the binary-loss surface.
  • Adds deferred follow-ups list and clarifies the lease-rejected-after-dry-run operator message.

Comment thread docs/active-trajectory.md Outdated
Comment thread docs/active-trajectory.md Outdated
Comment thread docs/active-trajectory.md Outdated
Comment thread docs/active-trajectory.md Outdated
Comment thread docs/active-trajectory.md Outdated
Comment thread docs/active-trajectory.md Outdated
@AceHack AceHack enabled auto-merge (squash) April 29, 2026 11:02
…ppet as illustrative + bump gate-runner priority

Multi-AI review 2026-04-29T11:05Z (Codex P1 cluster + Copilot 5-thread
cluster + Amara): my prior commit overclaimed "NUL-safe parsing
throughout" while the inline awk/grep snippet has real bugs:

- awk $3 with default whitespace FS breaks on paths with spaces
- grep -Ff reads newline-delimited, not NUL-delimited
- numstat -z rename/copy records are adds<TAB>dels<TAB>/dev/null old<NUL>new<NUL>
  (extra NUL fields), not one-row-per-NUL
- name-status -z rename/copy rows are status<NUL>old<NUL>new<NUL>
  (3 fields), not the 2-field shape my parser assumed; the toggle
  parser desynchronizes on first rename
- RS='\0' / ORS='\0' is a gawk extension; BSD awk (macOS default) lacks it
- /tmp/binary-paths.nul fixed path; no mktemp + trap cleanup

The CONCEPTUAL fix (split binary direction into 3 buckets) is correct
and stays. The IMPLEMENTATION is now explicitly marked illustrative-
only with a warning block enumerating each bug. The durable home is
`tools/zero-zero-zero/check-gate.sh` (deferred follow-up, bumped to
highest priority among deferred items).

Stopgap rule added for this round: if binary_modified_files is
non-zero, classify direction manually via `git diff --name-status -z`
per file + direct `git show` evidence. Do NOT rely on the inline
snippet.

Best blade (Amara): "The binary hole is found. The gate condition is
right. The parser still needs teeth."

This addresses 7 of the 8 unresolved review threads on this PR. Thread
8 (persona names in current-state doc) is already addressed by the
maintainer 2026-04-29T10:30Z classification call recorded in the
file's header (history surface, not current-state).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@AceHack
Copy link
Copy Markdown
Member Author

AceHack commented Apr 29, 2026

Multi-AI review 2026-04-29T11:05Z packet (Amara + Codex + Copilot convergent on NUL-safety overclaim) addressed in commit e17c5ca.

The conceptual fix stays: binary direction-split into 3 buckets (acehack-only / lfg-only / modified-or-renamed) is correct and remains in the file. The implementation is reframed: my prior "NUL-safe parsing throughout" claim was overclaimed. The inline snippet has 6 real bugs (each enumerated in the file's warning block above the code). The durable home is tools/zero-zero-zero/check-gate.sh (deferred follow-up, bumped to highest priority).

Stopgap rule added: if binary_modified_files > 0 in this round, classify direction manually per file via git diff --name-status -z + direct git show evidence. Do NOT rely on the inline snippet.

This addresses threads #1-7. Thread #8 (persona names in current-state doc) is already addressed by the maintainer 2026-04-29T10:30Z classification call in the file's header — docs/active-trajectory.md is a history surface, not current-state. The follow-up note in the header flags the deferred docs/AGENT-BEST-PRACTICES.md update.

Resolving all 8.

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: e17c5ca0fa

ℹ️ 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/active-trajectory.md Outdated
Codex P1 catch — internal inconsistency: stopgap rule cited the OLD
metric name 'binary_modified_files' that the rewritten script no
longer emits. Fixed to reference the new gate-relevant metrics
(binary_acehack_only_files OR binary_modified_or_renamed_files).
Also clarified that binary_lfg_only_files is NOT a stopgap trigger
(LFG-only files get ADDED on hard-reset; no AceHack content lost).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 29, 2026 11:12
auto-merge was automatically disabled April 29, 2026 11:12

Pull Request is not mergeable

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

Copilot reviewed 1 out of 1 changed files in this pull request and generated 6 comments.

Comment thread docs/active-trajectory.md
Comment thread docs/active-trajectory.md
Comment thread docs/active-trajectory.md Outdated
Comment thread docs/active-trajectory.md Outdated
Comment thread docs/active-trajectory.md Outdated
Comment thread docs/active-trajectory.md
Multi-AI review (Codex P0 + Copilot 5-thread cluster) on PR #836
stayed unresolved on the inline binary-direction shell parser even
after I marked it 'ILLUSTRATIVE, NOT DURABLE'. The reviewer's
position is correct: an illustrative-but-broken parser left in a
load-bearing doc encourages copy-paste use of code with 6 known
bugs (awk default-FS path-with-spaces breakage, grep -Ff not
NUL-aware, name-status -z rename-record desync, gawk-only RS,
fixed /tmp path not race-safe, lfg-only-vs-modified misclassification).

The disclaimer was less effective than the bugs. Removed the
snippet entirely; replaced with prose pointing at:
1. The "Stopgap rule" above for binary classification this round
2. The deferred gate-runner script (tools/zero-zero-zero/check-gate.sh)
   as the durable home

The conceptual structure (3 binary buckets) remains. The text-file
ledger is straightforward enough that the prose description suffices.

Re-armed auto-merge (was disarmed during this iteration). Submit-
nuget CI failure is a transient GitHub API 5xx (same shape as prior
github 502 incidents); will rerun the failed job.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@AceHack AceHack enabled auto-merge (squash) April 29, 2026 11:22
@AceHack
Copy link
Copy Markdown
Member Author

AceHack commented Apr 29, 2026

Snippet removed entirely in commit 52d8e03. The reviewer's structural critique was right: an illustrative-but-broken parser left in a load-bearing doc encourages copy-paste use of broken code. Disclaimer was less effective than the bugs.

Threads 1-5 (gate-runner directory + 4 NUL-safety bugs): addressed by removing the snippet. The conceptual structure (3 binary buckets) remains in prose; the implementation lives in tools/zero-zero-zero/check-gate.sh (deferred follow-up, highest priority). Until that script lands, the stopgap rule above the (now-removed) snippet says: classify binary files manually via git diff --name-status -z + direct git show evidence per file. The non-existent directory is now flagged as deferred work, not a current pointer.

Thread 6 (persona names): maintainer 2026-04-29T10:30Z classification call already addressed this — docs/active-trajectory.md is a history surface (per the file's header note + the deferred docs/AGENT-BEST-PRACTICES.md update flagged in the same note).

Submit-nuget FAIL: transient GitHub API 5xx, rerun triggered.

Resolving all 6.

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: 52d8e03971

ℹ️ 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/active-trajectory.md Outdated
…ns (don't conflate 'classified' with 'safe')

Codex P1 catch — real and important. The prior gate said
'binary_modified_or_renamed_classified = all' which only checked
that classification HAPPENED. A binary file classified
NEEDS_FORWARD_SYNC would satisfy that gate even though
NEEDS_FORWARD_SYNC means content must be forward-synced FIRST.

Fix: split the binary-modified-or-renamed condition into three:
  binary_modified_or_renamed_unclassified  = 0  (verdict required)
  binary_files_needing_forward_sync        = 0  (NEEDS_FORWARD_SYNC must complete sync first)
  binary_files_needing_human_decision      = 0  (NEEDS_HUMAN_DECISION requires maintainer call)

This mirrors the text-line gate structure (unclassified=0 AND unsafe=0)
applied to binary files via direct file counts.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 29, 2026 11:28
auto-merge was automatically disabled April 29, 2026 11:28

Pull Request is not mergeable

@AceHack AceHack merged commit acbb50b into main Apr 29, 2026
24 checks passed
@AceHack AceHack deleted the zero-zero-zero-binary-direction-corrections-2026-04-29 branch April 29, 2026 11:31
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

Copilot reviewed 1 out of 1 changed files in this pull request and generated 5 comments.

Comment thread docs/active-trajectory.md
```
The ledger is computed in two passes (text via `numstat`, binary direction via `name-status`). Per multi-AI review 2026-04-29T10:50Z: binary files emit `-/-` in `numstat` because lines aren't countable, but they CAN be erased on hard-reset, so they need direction classification — `acehack-only` vs `lfg-only` vs `modified-on-both`.

**The shell snippet below is ILLUSTRATIVE, NOT DURABLE.** Per multi-AI review 2026-04-29T11:05Z (Codex + Copilot 7-thread cluster + Amara): the inline awk/grep approach below has real NUL-safety bugs and is not portable across awk implementations:
Copy link

Copilot AI Apr 29, 2026

Choose a reason for hiding this comment

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

This refers to a “shell snippet below” / “inline snippet”, but the snippet has been removed in this revision, so the wording is now misleading. Suggest rephrasing to refer to the previously-removed snippet (or delete the “below/inline” references) so readers don’t hunt for code that isn’t there.

Suggested change
**The shell snippet below is ILLUSTRATIVE, NOT DURABLE.** Per multi-AI review 2026-04-29T11:05Z (Codex + Copilot 7-thread cluster + Amara): the inline awk/grep approach below has real NUL-safety bugs and is not portable across awk implementations:
**The earlier illustrative shell approach is NOT DURABLE.** Per multi-AI review 2026-04-29T11:05Z (Codex + Copilot 7-thread cluster + Amara): that awk/grep approach has real NUL-safety bugs and is not portable across awk implementations:

Copilot uses AI. Check for mistakes.
Comment thread docs/active-trajectory.md
Comment on lines +119 to +125
The durable home for the gate-runner is `tools/zero-zero-zero/check-gate.sh` (deferred follow-up, see "Deferred follow-ups" below). That script must be tested against fixtures including: paths with spaces, binary add, binary delete, binary modify, binary rename, binary copy, gawk-vs-BSD-awk.

**Stopgap rule for this round**: if either `binary_acehack_only_files > 0` OR `binary_modified_or_renamed_files > 0` in this ledger (the two gate-relevant binary metrics emitted by the new script), do NOT rely on the inline snippet to classify direction. Use `git diff --name-status -z origin/main..acehack/main -- <path>` per binary file + direct `git show` evidence, manually, until the gate-runner script exists. (`binary_lfg_only_files > 0` is NOT a stopgap trigger — LFG-only files get added on hard-reset; no AceHack content lost.)

**The inline shell snippet was REMOVED 2026-04-29T11:20Z** per multi-AI review packet (Codex P0 + Copilot 5-thread cluster + Amara). Even with an "illustrative" disclaimer, a broken parser left in the doc encourages copy-paste use of code that has 6 known bugs (awk default-FS path-with-spaces breakage, `grep -Ff` not NUL-aware, name-status `-z` rename-record desync, gawk-only `RS='\0'`, fixed `/tmp/binary-paths.nul` not race-safe, missing semantic LFG-only-vs-modified distinction).

The conceptual structure remains correct (three binary buckets — `acehack_only`, `lfg_only`, `modified_or_renamed`). The execution belongs in `tools/zero-zero-zero/check-gate.sh` as a real script with fixtures (paths with spaces, binary add/delete/modify/rename/copy, gawk-vs-BSD-awk portability, `mktemp` + `trap` cleanup). That script is the highest-priority deferred follow-up.
Copy link

Copilot AI Apr 29, 2026

Choose a reason for hiding this comment

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

The doc points to tools/zero-zero-zero/check-gate.sh as the durable home for the gate-runner, but that path does not exist in the repository currently. Either add the file (even as a stub) in this PR, or explicitly mark the path as planned/to-be-created and point to an existing location until it lands, to avoid a dead reference.

Suggested change
The durable home for the gate-runner is `tools/zero-zero-zero/check-gate.sh` (deferred follow-up, see "Deferred follow-ups" below). That script must be tested against fixtures including: paths with spaces, binary add, binary delete, binary modify, binary rename, binary copy, gawk-vs-BSD-awk.
**Stopgap rule for this round**: if either `binary_acehack_only_files > 0` OR `binary_modified_or_renamed_files > 0` in this ledger (the two gate-relevant binary metrics emitted by the new script), do NOT rely on the inline snippet to classify direction. Use `git diff --name-status -z origin/main..acehack/main -- <path>` per binary file + direct `git show` evidence, manually, until the gate-runner script exists. (`binary_lfg_only_files > 0` is NOT a stopgap trigger — LFG-only files get added on hard-reset; no AceHack content lost.)
**The inline shell snippet was REMOVED 2026-04-29T11:20Z** per multi-AI review packet (Codex P0 + Copilot 5-thread cluster + Amara). Even with an "illustrative" disclaimer, a broken parser left in the doc encourages copy-paste use of code that has 6 known bugs (awk default-FS path-with-spaces breakage, `grep -Ff` not NUL-aware, name-status `-z` rename-record desync, gawk-only `RS='\0'`, fixed `/tmp/binary-paths.nul` not race-safe, missing semantic LFG-only-vs-modified distinction).
The conceptual structure remains correct (three binary buckets — `acehack_only`, `lfg_only`, `modified_or_renamed`). The execution belongs in `tools/zero-zero-zero/check-gate.sh` as a real script with fixtures (paths with spaces, binary add/delete/modify/rename/copy, gawk-vs-BSD-awk portability, `mktemp` + `trap` cleanup). That script is the highest-priority deferred follow-up.
The planned durable home for the gate-runner is `tools/zero-zero-zero/check-gate.sh`, but that path does not exist in the repository yet (deferred follow-up, see "Deferred follow-ups" below). Until it lands, the authoritative temporary instructions are the stopgap/manual-classification rules in this section. When created, that script must be tested against fixtures including: paths with spaces, binary add, binary delete, binary modify, binary rename, binary copy, gawk-vs-BSD-awk.
**Stopgap rule for this round**: if either `binary_acehack_only_files > 0` OR `binary_modified_or_renamed_files > 0` in this ledger (the two gate-relevant binary metrics emitted by the new script), do NOT rely on the inline snippet to classify direction. Use `git diff --name-status -z origin/main..acehack/main -- <path>` per binary file + direct `git show` evidence, manually, until the gate-runner script exists. (`binary_lfg_only_files > 0` is NOT a stopgap trigger — LFG-only files get added on hard-reset; no AceHack content lost.)
**The inline shell snippet was REMOVED 2026-04-29T11:20Z** per multi-AI review packet (Codex P0 + Copilot 5-thread cluster + Amara). Even with an "illustrative" disclaimer, a broken parser left in the doc encourages copy-paste use of code that has 6 known bugs (awk default-FS path-with-spaces breakage, `grep -Ff` not NUL-aware, name-status `-z` rename-record desync, gawk-only `RS='\0'`, fixed `/tmp/binary-paths.nul` not race-safe, missing semantic LFG-only-vs-modified distinction).
The conceptual structure remains correct (three binary buckets — `acehack_only`, `lfg_only`, `modified_or_renamed`). The execution belongs in a real script with fixtures (paths with spaces, binary add/delete/modify/rename/copy, gawk-vs-BSD-awk portability, `mktemp` + `trap` cleanup). The planned file path for that script is `tools/zero-zero-zero/check-gate.sh`, but that file has not been created yet. That script remains the highest-priority deferred follow-up.

Copilot uses AI. Check for mistakes.
Comment thread docs/active-trajectory.md
Comment on lines +121 to +122
**Stopgap rule for this round**: if either `binary_acehack_only_files > 0` OR `binary_modified_or_renamed_files > 0` in this ledger (the two gate-relevant binary metrics emitted by the new script), do NOT rely on the inline snippet to classify direction. Use `git diff --name-status -z origin/main..acehack/main -- <path>` per binary file + direct `git show` evidence, manually, until the gate-runner script exists. (`binary_lfg_only_files > 0` is NOT a stopgap trigger — LFG-only files get added on hard-reset; no AceHack content lost.)

Copy link

Copilot AI Apr 29, 2026

Choose a reason for hiding this comment

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

Inconsistent metric naming: this section references binary_modified_or_renamed_files (and implies it’s emitted by a “new script”), but the gate later keys off binary_modified_or_renamed_unclassified plus additional binary verdict buckets. Suggest aligning the names (and clarifying whether these values exist today vs are future output of the planned gate-runner) so the ledger/gate variables are unambiguous.

Copilot uses AI. Check for mistakes.
Comment thread docs/active-trajectory.md

Per multi-AI review 2026-04-29T10:50Z packet:

- **Gate-runner script** (now bumped to highest priority among deferred follow-ups): build `tools/zero-zero-zero/check-gate.sh` that emits a machine-readable summary of all 9 gate conditions and fails closed. Replaces the prose ledger AND the illustrative inline snippet above with a verifiable-by-execution gate. Per multi-AI review 2026-04-29T11:05Z (Codex P1 + Copilot 5 threads + Amara): the durable script must be tested against fixtures: paths with spaces, binary add, binary delete, binary modify, binary rename, binary copy, gawk-vs-BSD-awk portability, `mktemp` + `trap` cleanup. Until the script lands, binary direction MUST be classified manually via `git diff --name-status -z` per file + direct `git show` evidence. Best blade (Amara): *"The binary hole is found. The gate condition is right. The parser still needs teeth."*
Copy link

Copilot AI Apr 29, 2026

Choose a reason for hiding this comment

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

This bullet says the future gate-runner should emit “all 9 gate conditions”, but the gate list above currently contains 11 lines. Please reconcile the count (either adjust the bullet to match the current gate, or update the gate list/counting so it really is 9) to avoid cross-reference drift.

Suggested change
- **Gate-runner script** (now bumped to highest priority among deferred follow-ups): build `tools/zero-zero-zero/check-gate.sh` that emits a machine-readable summary of all 9 gate conditions and fails closed. Replaces the prose ledger AND the illustrative inline snippet above with a verifiable-by-execution gate. Per multi-AI review 2026-04-29T11:05Z (Codex P1 + Copilot 5 threads + Amara): the durable script must be tested against fixtures: paths with spaces, binary add, binary delete, binary modify, binary rename, binary copy, gawk-vs-BSD-awk portability, `mktemp` + `trap` cleanup. Until the script lands, binary direction MUST be classified manually via `git diff --name-status -z` per file + direct `git show` evidence. Best blade (Amara): *"The binary hole is found. The gate condition is right. The parser still needs teeth."*
- **Gate-runner script** (now bumped to highest priority among deferred follow-ups): build `tools/zero-zero-zero/check-gate.sh` that emits a machine-readable summary of all 11 gate conditions and fails closed. Replaces the prose ledger AND the illustrative inline snippet above with a verifiable-by-execution gate. Per multi-AI review 2026-04-29T11:05Z (Codex P1 + Copilot 5 threads + Amara): the durable script must be tested against fixtures: paths with spaces, binary add, binary delete, binary modify, binary rename, binary copy, gawk-vs-BSD-awk portability, `mktemp` + `trap` cleanup. Until the script lands, binary direction MUST be classified manually via `git diff --name-status -z` per file + direct `git show` evidence. Best blade (Amara): *"The binary hole is found. The gate condition is right. The parser still needs teeth."*

Copilot uses AI. Check for mistakes.
Comment thread docs/active-trajectory.md
```
The ledger is computed in two passes (text via `numstat`, binary direction via `name-status`). Per multi-AI review 2026-04-29T10:50Z: binary files emit `-/-` in `numstat` because lines aren't countable, but they CAN be erased on hard-reset, so they need direction classification — `acehack-only` vs `lfg-only` vs `modified-on-both`.

**The shell snippet below is ILLUSTRATIVE, NOT DURABLE.** Per multi-AI review 2026-04-29T11:05Z (Codex + Copilot 7-thread cluster + Amara): the inline awk/grep approach below has real NUL-safety bugs and is not portable across awk implementations:
Copy link

Copilot AI Apr 29, 2026

Choose a reason for hiding this comment

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

This doc section introduces additional direct reviewer/persona names (e.g., “Codex”, “Copilot”, “Amara”). Per docs/AGENT-BEST-PRACTICES.md “No name attribution in code, docs, or skills” (docs/AGENT-BEST-PRACTICES.md:284+), current-state docs should use role references instead of contributor/persona identifiers. Suggest rewriting these references to stable role-refs (e.g., “external reviewer”, “PR reviewer”, “harsh-critic”) and keeping named attribution confined to the allowed history surfaces.

Copilot uses AI. Check for mistakes.
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