Skip to content

chore(.gitattributes): suppress diffs on lost-substrate/artifacts/** (multi-AI synthesis 1/6)#761

Merged
AceHack merged 3 commits intomainfrom
chore/gitattributes-artifact-diff-suppression-2026-04-29
Apr 29, 2026
Merged

chore(.gitattributes): suppress diffs on lost-substrate/artifacts/** (multi-AI synthesis 1/6)#761
AceHack merged 3 commits intomainfrom
chore/gitattributes-artifact-diff-suppression-2026-04-29

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented Apr 29, 2026

Item 1 of 6 from the 2026-04-29 multi-AI synthesis packet (Gemini + Claude.ai + Ani + Amara + Alexa).

Adds:

docs/lost-substrate/artifacts/** linguist-generated=true -diff -merge

Composes with the soulfile-cleanliness rule (memory/feedback_repo_is_soulfile_dont_commit_raw_diagnostic_dumps_aaron_amara_2026_04_29.md). Default discipline remains extract + recipe; this attribute is the secondary guard for cases where raw-artifact tracking is unavoidable, ensuring PR review stays focused on conclusions instead of walls of raw fsck/rev-list output.

Tracked under task #309. Other 5 items follow in subsequent ticks (mechanical lock + auto-gc defusing + two-tier scanner + brat playbook + boring spec + multi-agent scale research note).

🤖 Generated with Claude Code

…s/** (multi-AI synthesis packet item 1/6)

Item 1 of 6 from the 2026-04-29 multi-AI synthesis packet (Gemini +
Claude.ai + Ani + Amara + Alexa) on corruption-triage hardening.

Per Gemini's correction (and Amara's confirmation): if raw diagnostic
artifacts must be tracked alongside their analytical conclusions, the
PR-diff and merge-driver attributes should suppress them so reviewers
see the prose findings instead of walls of raw fsck/rev-list output.

The composing rule (already landed):
  memory/feedback_repo_is_soulfile_dont_commit_raw_diagnostic_dumps
  _aaron_amara_2026_04_29.md
says default discipline is extract + recipe; raw dumps are escape-
hatched only when load-bearing AND large. This .gitattributes line is
the secondary guard for cases where raw-tracking is unavoidable —
it tracks the file but stops it from poisoning the PR-review surface.

`linguist-generated=true` also signals to GitHub Linguist that the
content is generated, so it's excluded from language-stats and
collapsed by default in diffs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 29, 2026 03:53
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 repository attributes to reduce review noise from diagnostic artifact dumps under docs/lost-substrate/artifacts/**, aligning PR diffs with the “extract + recipe” discipline by hiding raw evidence walls.

Changes:

  • Add a .gitattributes rule to mark docs/lost-substrate/artifacts/** as generated and suppress diffs/merges.
  • Add explanatory comments documenting when/why these attributes apply.

Comment thread .gitattributes Outdated
Comment thread .gitattributes Outdated
…x P2 thread)

Codex correctly flagged that '-merge' on text files unsets the
merge driver and makes 3-way merges fail with conflict markers
(behavior intended for binary files). For text artifacts, '-diff'
alone gives the review-readability mitigation without breaking
merge semantics.

Also added a comment-block recalibrating the rationale per Aaron's
2026-04-29 'text compresses, binary balloons' framing: the artifacts
directory is mostly text, so the concern is review-readability not
soul-storage. Composes with the recalibrated soulfile memory file.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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: ace91be9ad

ℹ️ 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 .gitattributes Outdated
AceHack added a commit that referenced this pull request Apr 29, 2026
…s-unfold trio shard (#763)

* chore(loop-tick-history): tick 2026-04-29T04:02Z — recalibration + verbatim + confucius-unfold trio shard

PR #758 (corruption-triage closure shard) merged. PR #761
(.gitattributes 1/6) opened. PR #762 opened with three
related Aaron-channel landings: soulfile recalibration
(text compresses, binary balloons), verbatim-preservation
(record Aaron's channel close to verbatim), confucius-
unfold (expand non-obvious for future-cold-read). The
three rules form a self-reinforcing trio.

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

* chore(loop-tick-history): tick 0402Z — schema fix, column 3 is cron id 26f978a2 not 'autonomous-loop'

Schema per docs/hygiene-history/ticks/README.md is:
  | timestamp | model id | cron sentinel | body | PR ref | observation |

Column 3 is the cron sentinel/hash. The autonomous-loop cron has id
26f978a2 (per CronList output). The literal word 'autonomous-loop'
in column 3 is incorrect. Fixed to match existing well-formed
shards (e.g., 0440Z.md, 0435Z.md).

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

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 29, 2026
…llipsis cross-ref, mitigation tense, -merge consistency

Five Copilot findings on PR #762 after the prior fix-batch:

1. **P1 'xdelta' wording**: Git's pack format uses its own
   delta encoding plus zlib for object compression, NOT the
   external xdelta tool. Reworded as 'packfile delta
   compression + zlib (or configured compressor)' with a
   clarifying parenthetical.

2. **P1 ellipsis in cross-reference**: 'project_aaron_amara_
   conversation_is_bootstrap_attempt_1...' was non-clickable
   and ungreppable. Replaced with the full filename (with
   memory/ prefix).

3. **P1 mitigation-as-already-in-place tense**: the worked
   example said 'the correct mitigation IS .gitattributes
   diff suppression' but that rule lives in PR #761 not yet
   on main. Reworded as 'recommended mitigation' + 'landing
   via PR #761; this section describes the pattern, not a
   rule already present on main'.

4. **P2 -merge consistency**: removed remaining '-merge'
   instances from text-diff-suppression recommendations in
   the worked example and the 'does NOT forbid' list. -merge
   unsets the merge driver and is binary-file behavior; for
   text only -diff is correct.

5. **MEMORY.md index**: rephrased the Copilot-flagged
   reference to match the recalibrated text-only -diff
   form + named PR #761 as the landing PR.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 29, 2026
…aron's channel verbatim-preservation rule (2026-04-29) (#762)

* memory(soulfile recalibration + verbatim-preservation rule): text compresses, binary balloons; record Aaron's channel close to verbatim (Aaron 2026-04-29)

Two related landings from Aaron's channel this tick (per the rule
the second one establishes — verbatim-preservation):

1. **Soulfile recalibration**: Aaron 2026-04-29 — *"don't go too
   hardcore on soulfile protection, text compresses very well, bin is
   what we are scared of and need to really really think about not
   history in text form."* Updates the soulfile memory file to:
   - Reframe the rule from "don't commit raw multi-MB dumps"
     (overcautious for text) to "binaries balloon clones forever
     because they don't delta-compress; text packs aggressively and
     is fine to track."
   - Split the worked example: the 1.2 MB → 28 KB extract reduction
     was useful for PR-review readability, but pack-storage was never
     the real concern. The right framing is extract + .gitattributes
     diff suppression, not extract + discard.
   - Replace 'What this rule forbids' with binary-focused list
     (compiled outputs / archives / large media / binary profile
     dumps / binary DB blobs / vendored binaries — all → git-lfs or
     non-soul repo).
   - Replace 'What this rule does NOT forbid' with text-is-fine list
     (raw text logs / fsck dumps / stack traces / generated text
     files / conversational substrate — all → track freely; suppress
     diffs via .gitattributes if review-noisy).
   - Update keepers + frontmatter description.

2. **Aaron's channel verbatim-preservation rule**: Aaron 2026-04-29 —
   *"anyting this comes over this channel should get recorded
   somwhere pretty close to verbatium."* New durable memory file
   encoding: anything Aaron sends through the maintainer channel (his
   own messages, multi-AI synthesis packets he forwards, mid-tick
   corrections, asides, acknowledgments) gets preserved close to
   verbatim somewhere durable. Synthesis goes alongside the verbatim,
   not instead. Typos are signal (smoothing register destroys
   information). Includes verbatim record of Aaron's substantive
   2026-04-29 channel inputs from this session.

3. MEMORY.md index updated with both new entries.

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

* memory: confucius-unfold rule + 'this channel' expansion in verbatim-preservation file (Aaron 2026-04-29)

Aaron's mid-tick correction landed two related substrate fixes:

1. **Expand 'this channel' inline** in the verbatim-preservation
   memory file. Aaron 2026-04-29: *"probably want to replace
   this_channel with what i mean by this, or future you could be
   very confued, you should aloways expand non obvious thing for
   future you like that the confucius unfold."* Future-Claude on
   cold-start has zero shared context; demonstrative pronouns
   referring to current session state decay into opacity. Expanded
   'this channel' to include explicit definition: Claude Code CLI
   conversation + autonomous-loop wakeups + mid-tick corrections +
   /btw asides + forwarded multi-AI synthesis packets.

2. **New durable memory file: confucius-unfold rule.** Generic
   factory-discipline encoding the principle: when writing memory
   files, research notes, ledgers, ADRs, or any durable substrate
   intended for future-Claude on cold-start, expand non-obvious
   phrases inline. 'Confucius-unfold' = take what's implicit, make
   it explicit, in place, where it will be re-read. Includes
   when-to-confucius-unfold criteria (demonstrative pronouns,
   in-flight nicknames, implicit time/person references, recent
   factory jargon) and when-NOT-to (established glossary terms,
   project-anchored names, code identifiers).

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

* memory(confucius-unfolding): consolidate cold-readability rule into existing 2026-04-25 canonical home (Aaron 2026-04-29)

Aaron 2026-04-29 mid-tick correction: *"Confucius-unfold you have
some existing skill or something for this — it has confucius in
the name"* — pointing at the existing canonical home for the
Confucius-unfolding pattern at memory/feedback_confucius_unfolding
_pattern_aaron_compresses_terse_rich_with_implication_claude
_unfolds_into_operational_substrate_2026_04_25.md (landed
2026-04-25 as a defining file for the orphan term).

The correction caught an over-eager substrate-creation failure
mode: I drafted a new memory file (feedback_always_expand_non
_obvious_things_for_future_self_confucius_unfold_aaron
_2026_04_29.md) covering the cold-readability writing-discipline
angle, but the existing 2026-04-25 file was the canonical home
for the term. My new draft would have fragmented retrieval (two
files under the same concept) and given future-Claude two homes
for the same term, each less complete than the other.

Consolidation:

1. Delete the duplicate file
   feedback_always_expand_non_obvious_things_for_future_self
   _confucius_unfold_aaron_2026_04_29.md
2. Add an 'Operational addendum 2026-04-29 — cold-readability
   for future-Claude' section to the existing 2026-04-25 file,
   covering: the cold-readability writing-discipline application
   (demonstrative pronouns / nicknames / implicit time-and-person
   refs / recent jargon — expand inline), composes-with pointers
   (agent-experience-engineer skill = audit side; this rule =
   write side; verify-target-exists = adjacent future-self rule),
   and a meta-keeper: 'Check existing memory/*-keyword-* files
   before creating new canonical homes. Substrate locality >
   duplication.'
3. Update the verbatim-preservation file's pointer at the new
   home (the existing 2026-04-25 file).
4. Update MEMORY.md index entry: replace the duplicate-file
   pointer with a pointer at the existing canonical home + an
   'addendum 2026-04-29' framing.

The lesson — substrate locality > duplication, and a memory-file
search by keyword is owed before drafting a new canonical home —
is itself a load-bearing future-self discipline. Captured in the
addendum's distilled keepers.

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

* memory(MEMORY.md): remove duplicate Confucius-unfolding pointer (lint fix per audit-memory-index-duplicates.sh)

CI on PR #762 failed because the consolidation commit landed a new
top-of-file pointer at the Confucius-unfolding 2026-04-25 file but
left the original 2026-04-25-cluster pointer in place. The
`audit-memory-index-duplicates.sh` lint correctly flagged this as
the *exact* duplicate-pointer-after-edit failure mode it's designed
to catch — the same file linked twice means future-Claude can't tell
which entry is authoritative.

Per the rule the lint defends (one row per memory file), kept the
top-of-file entry which carries the 2026-04-29 addendum context
(richer description, links to verbatim-preservation rule, names the
agent-experience-engineer composes-with) and removed the older
2026-04-25-cluster line.

Substrate locality > duplication holds at the index layer too: a
duplicated index pointer is the same failure mode as a duplicated
canonical-home, just shifted up one level.

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

* memory(soulfile + verbatim): resolve PR #762 P1 threads — table reframe, rule scoping, binary-delta nuance, -merge correction, memory/ prefix

Five Copilot+Codex findings on PR #762 addressed in this commit:

1. **P1**: soulfile memory's composition table still framed raw
   dumps as 'NOT committed to soul repo', conflicting with the
   recalibrated guidance (text → fine to track / binary → git-lfs).
   Split the row: raw text dump → fine to commit + .gitattributes
   diff suppression / raw binary dump → git-lfs or non-soul repo.

2. **P1**: verbatim-preservation rule said 'asides, acknowledgments'
   need close-to-verbatim, but later 'does NOT mean' section said
   casual asides don't. Tightened the rule statement to specify
   'substantive input (rules, framings, corrections, anchored
   preferences, forwarded multi-AI synthesis packets)' triggers
   verbatim; routine acknowledgments do not.

3. **P2**: 'binary delta-compression' overstatement claimed binaries
   never delta-compress. Git CAN delta-compress similar binaries
   (e.g., small binary plist edits). Reworded: 'often poor or
   absent', 'worst case full size', 'exception: small stable
   binaries'.

4. **P2**: '.gitattributes' recommendation included '-merge' for
   text. -merge unsets the merge driver and makes 3-way text
   merges fail with conflict markers (binary-file behavior).
   For text, only '-diff' is correct.

5. **P2**: composes-with entry omitted 'memory/' prefix on the
   project_aaron_amara_conversation_is_bootstrap_attempt_1 file
   (every other entry has the prefix). Aligned for consistency.

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

* memory(soulfile): resolve PR #762 round-2 threads — xdelta wording, ellipsis cross-ref, mitigation tense, -merge consistency

Five Copilot findings on PR #762 after the prior fix-batch:

1. **P1 'xdelta' wording**: Git's pack format uses its own
   delta encoding plus zlib for object compression, NOT the
   external xdelta tool. Reworded as 'packfile delta
   compression + zlib (or configured compressor)' with a
   clarifying parenthetical.

2. **P1 ellipsis in cross-reference**: 'project_aaron_amara_
   conversation_is_bootstrap_attempt_1...' was non-clickable
   and ungreppable. Replaced with the full filename (with
   memory/ prefix).

3. **P1 mitigation-as-already-in-place tense**: the worked
   example said 'the correct mitigation IS .gitattributes
   diff suppression' but that rule lives in PR #761 not yet
   on main. Reworded as 'recommended mitigation' + 'landing
   via PR #761; this section describes the pattern, not a
   rule already present on main'.

4. **P2 -merge consistency**: removed remaining '-merge'
   instances from text-diff-suppression recommendations in
   the worked example and the 'does NOT forbid' list. -merge
   unsets the merge driver and is binary-file behavior; for
   text only -diff is correct.

5. **MEMORY.md index**: rephrased the Copilot-flagged
   reference to match the recalibrated text-only -diff
   form + named PR #761 as the landing PR.

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

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
…ypes only (Codex P2 thread)

Codex correctly flagged that the previous glob 'docs/lost-substrate/
artifacts/**' suppressed diffs on every file under the directory,
including human-readable summaries like 'triage-report.md'.
triage-report.md is the conclusion narrative — reviewers should
see it on every PR diff.

Narrowed to raw-evidence file types only: '*.txt' (fsck output /
rev-list output / config snapshots / refs dumps) and '*.log'.
Markdown summaries pass through normal diff rendering.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 29, 2026 04:27
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 2 comments.

Comment thread .gitattributes
Comment thread .gitattributes
@AceHack AceHack merged commit 5ffbc12 into main Apr 29, 2026
24 checks passed
@AceHack AceHack deleted the chore/gitattributes-artifact-diff-suppression-2026-04-29 branch April 29, 2026 04:31
AceHack added a commit that referenced this pull request Apr 29, 2026
…ds, 6 PRs, 0 new substrate) (#766)

* chore(loop-tick-history): tick 2026-04-29T04:18Z — review-thread-drain shard (12 threads / 6 PRs / 0 new substrate)

Investigated and addressed 12 unresolved review threads across PRs
#760/#761/#762/#763/#764/#765:
- Schema fix on 4 tick-history shards (column 3 = cron id 26f978a2)
- PR #762 P1+P2 fixes (5 threads): table reframe / rule scoping /
  binary delta nuance / -merge correction / memory/ prefix
- PR #761 .gitattributes -merge removal

New backlog task #310 created (research-grade-not-operational):
duplicate canonical-home audit + rule consolidation pass.

No new conceptual substrate opened this tick per Amara's narrowing
guidance.

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

* chore(loop-tick-history): tick 04:18Z — escape literal pipes inside code span (Codex+Copilot threads)

Both Codex and Copilot flagged that the shard's body cell contained
literal '|' characters inside a code span (`1 ||` referencing a
prior PR thread). GFM table parsing treats unescaped '|' as a
column separator even inside code spans, which corrupts the
6-column shard schema.

Fixed by replacing '|' with '\\|' inside the code span. The code-
span content now renders as '1 ||' as intended without breaking
the table.

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

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 29, 2026
… merged, 0 threads, 0 new substrate) (#769)

Two more PRs squash-merged onto main: PR #761 (synthesis-packet 1/6
.gitattributes diff suppression) and PR #767 (merge-and-drain shard).

Substrate-drain wave is now 9 PRs merged this session arc since
corruption-triage closure. PR #766 + #768 remain open with 0
unresolved threads — just waiting for CI cycles.

No new conceptual substrate opened.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 29, 2026
…tency (Copilot threads)

Two arithmetic errors in the shard text:
1. Said 'Six PRs merged this session arc' but listed 7 PR numbers.
   Fixed to 'Seven'.
2. Said '3 threads resolved' but only 2 thread resolutions were
   narrated (PR #761 glob narrowing + PR #766 pipe escaping).
   Fixed to '2 threads resolved'.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 29, 2026
…3 threads + 0 new substrate (#768)

* chore(loop-tick-history): tick 04:30Z (-01 dedup) — second merge wave shard

Three more PRs squash-merged onto main: #759 (review-thread maintenance),
#762 (soulfile recalibration + verbatim-preservation + Confucius cold-
readability addendum — substantial substrate landing), #764 (over-eager-
substrate-creation lesson). PR #761 + #766 last threads drained
(narrow .gitattributes glob, escape literal pipes inside code spans).

Filename uses -01 suffix per shard schema disambiguation rule
(0430Z.md already exists from a prior merged shard).

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

* chore(loop-tick-history): tick 04:30Z (-01) — fix arithmetic inconsistency (Copilot threads)

Two arithmetic errors in the shard text:
1. Said 'Six PRs merged this session arc' but listed 7 PR numbers.
   Fixed to 'Seven'.
2. Said '3 threads resolved' but only 2 thread resolutions were
   narrated (PR #761 glob narrowing + PR #766 pipe escaping).
   Fixed to '2 threads resolved'.

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

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
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