Skip to content

chore: ignore gitnexus-generated agent files - #86

Merged
MichaelTaylor3d merged 1 commit into
mainfrom
chore/3177-ignore-gitnexus-agent-files
Sep 8, 2026
Merged

chore: ignore gitnexus-generated agent files#86
MichaelTaylor3d merged 1 commit into
mainfrom
chore/3177-ignore-gitnexus-agent-files

Conversation

@MichaelTaylor3d

Copy link
Copy Markdown
Contributor

chore: ignore gitnexus-generated agent files

gitnexus analyze writes agent tooling into the repository it indexes, and sibling repos committed it; this repo has not, and this ignore keeps it that way. CLAUDE.md is deliberately still tracked because it is hand-authored, so analyze must be run with --skip-agents-md here.

Refs #3177

gitnexus analyze writes agent tooling into the repository it indexes, and sibling repos committed it; this repo has not, and this ignore keeps it that way. CLAUDE.md is deliberately still tracked because it is hand-authored, so analyze must be run with --skip-agents-md here.

Refs #3177

@MichaelTaylor3d MichaelTaylor3d left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

loop-reviewer verdict: PASS

Head SHA reviewed: f03233d

Verified independently (fresh context, own git objects / GitHub API reads):

  1. /CLAUDE.md is ABSENT from the ignore block. Confirmed by fetching CLAUDE.md at this repo's main — it is the hand-authored 44-line "docs.dig.net — repo operating notes" file, zero gitnexus markers, unaffected by this PR. PASS.
  2. Diff touches exactly one file, .gitignore. gh api .../compare/main...f03233d5 reports files: [".gitignore"], status: ahead, no deletions beyond the .dig line being re-emitted with a trailing newline. PASS.
  3. No line names DIG-Network/dig_ecosystem or #3177 — grepped the diff, zero matches. PASS.
  4. Trailing-newline change is benign and isolated: byte-level diff of .gitignore at base vs head shows .dig (no trailing LF) becomes .dig\n, followed by a clean 9-line LF-terminated append (comment block + 4 ignore paths). No CRLF anywhere, no other line's terminator touched. PASS.
  5. Zero intersection: fetched origin/main's full tree via GitHub API recursive listing and grepped for AGENTS.md, .claude/skills/gitnexus/, .claude/skills/generated/, .gitnexus/ — no matches in either direction. The new ignore patterns shadow nothing tracked. PASS.
  6. Fast-forward confirmed: GitHub compare API reports ahead_by: 1, behind_by: 0 relative to main — clean FF descendant, no rewrite. PASS.
  7. Commit message and PR title are both chore: ignore gitnexus-generated agent files — conventional-commit shaped (chore: type, imperative description), passes commitlint's PR-title lint. PASS.

All 7 checks pass. No findings, no threads to open.

Note on approval: --approve was not attempted — this PR's sole commit is authored by the same identity this review runs as (michael@michaeltaylor.dev / MichaelTaylor3d), and GitHub structurally rejects self-approval ("Can not approve your own pull request"). Posting via --comment instead per brief; this PASS should be treated as the equivalent gate signal for merge purposes, decided by the orchestrator/human with merge rights.

@MichaelTaylor3d

Copy link
Copy Markdown
Contributor Author

loop-security pre-merge audit — CHANGES-REQUIRED

Head audited: f03233d505223b84ca3f9666d1b8e84150c4bac9 (base main @ 59fea7edb3fd7a6c0d57ab72ca3b750822bd1ed0, single commit, fast-forward, mergeable: MERGEABLE)

Verdict sentence: The added .gitignore text itself discloses nothing new (no hostnames, repo names or credentials in the patch), but this PR's commit message and PR body both still contain Refs #3177 — the same internal ticket number that the earlier, already-scrubbed revision of this exact fix leaked as DIG-Network/dig_ecosystem#3177 across 16 public files. It is not a secret, and it does not name the private repo, but it is a live recurrence of the disclosure pattern this fix exists to eliminate, in the two places (commit message, PR body) that a squash-merge will carry verbatim into the public repo's permanent history.

Seven checks

  1. New disclosure in the added text — FAIL. grep -c 'dig_ecosystem' .gitignore = 0 and no #3177 in the file body (confirmed via GitHub contents API at this head). But the commit message (git log/API: author: Michael Taylor <michael@michaeltaylor.dev>, message ends Refs #3177) and the PR body (identical text, ends Refs #3177) are NOT clean — this is exactly the check the brief called out as having failed once already.
  2. Nothing deleted — PASS. Exactly one file changed (.gitignore), diff shows +10/-1; the single deletion is the pre-existing .dig\ No newline at end of file line, replaced by .dig + newline + the new block. No path removed.
  3. /CLAUDE.md absent from the ignore block — PASS. Confirmed by reading the full patch text via the GitHub diff API; only /AGENTS.md, /.claude/skills/gitnexus/, /.claude/skills/generated/, /.gitnexus/ are added. CLAUDE.md remains tracked in git ls-tree -r main (confirmed present).
  4. No security-relevant path caught by the new patterns — PASS. Intersected AGENTS.md, .claude/skills/gitnexus, .claude/skills/generated, .gitnexus against git ls-tree -r --name-only main (recursive tree via API): zero matches for all four; only CLAUDE.md (correctly excluded from the ignore block) is present.
  5. No git-identity manipulation — PASS. author: Michael Taylor <michael@michaeltaylor.dev> | committer: Michael Taylor <michael@michaeltaylor.dev> — the inherited machine identity, both fields match.
  6. No rewritten history — PASS. Single commit, one parent (59fea7e...), matches baseRefOid; mergeStateStatus: MERGEABLE, a clean fast-forward descendant of main.
  7. Line-terminator integrity — PASS. Patch hunk is a genuine 9-line append (+10/-1 net) touching only the tail of the file to fix the missing trailing newline on .dig; the rest of the file (Dependencies/Production/Generated/Test-artifacts/Misc blocks above) is untouched in the diff — not a whole-file CRLF rewrite.

Finding

  • f03233d5 commit message + PR body, line "Refs #3177" — PRIVATE-BUT-HARMLESS, but a live recurrence of the exact defect this PR fixes. No exploit beyond ticket-number correlation (an outside reader who also saw the now-removed DIG-Network/dig_ecosystem#3177 string in a sibling repo, or finds it in this repo's future git blame/PR history, can confirm this hygiene PR belongs to the same private internal batch). Not a secret, no host/URL/credential. Recommend: edit the PR title/body to drop Refs #3177 before merge (GitHub defaults the squash-commit message to the PR title+body, so this text will otherwise land permanently in main's history) and merge with a scrubbed message instead of the raw commit message.

What I could not check

  • Could not check the local working tree / CRLF byte-for-byte (audited via GitHub's diff and contents APIs only, read-only, no local clone/worktree touched — nothing to restore).
  • Did not attempt gh pr review --approve (same identity as PR author — expected to fail per brief); posting this as a PR comment instead.

KG: private-but-harmless-recurrence — a scrubbed leak's ticket number survives in the commit message/PR body even after the file body is fixed; squash-merge defaults propagate PR title+body verbatim, so the merge commit needs its own scrub, not just the diff.

@MichaelTaylor3d
MichaelTaylor3d merged commit df9671a into main Sep 8, 2026
6 of 7 checks passed
@MichaelTaylor3d
MichaelTaylor3d deleted the chore/3177-ignore-gitnexus-agent-files branch September 8, 2026 11:50
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.

1 participant