Skip to content

[gitignore-force-add] Force-add gitignored infrastructure in init commit#226

Merged
rpatricksmith merged 3 commits into
mainfrom
feature/gitignore-force-add
May 29, 2026
Merged

[gitignore-force-add] Force-add gitignored infrastructure in init commit#226
rpatricksmith merged 3 commits into
mainfrom
feature/gitignore-force-add

Conversation

@rpatricksmith
Copy link
Copy Markdown
Collaborator

Anatomia Proof — Force-add gitignored infrastructure in init commit

PASS · 21/21 assertions satisfied · 9/9 ACs met · 0 deviations

Contract Compliance

ID Says Status
A001 Infrastructure files hidden by gitignore are detected during init commit ✅ SATISFIED
A002 All infrastructure files in a gitignored directory are found, not just a hardcoded list ✅ SATISFIED
A003 Root-level infrastructure files like CLAUDE.md are detected when gitignored ✅ SATISFIED
A004 Force-added files are included in the git commit ✅ SATISFIED
A005 Both normal and force-added files appear in the same commit ✅ SATISFIED
A006 Console output names the force-added files ✅ SATISFIED
A007 Console output explains force-add is for worktree compatibility ✅ SATISFIED
A008 The respect-gitignore flag prevents force-adding gitignored files ✅ SATISFIED
A009 The respect-gitignore flag warns about worktree implications ✅ SATISFIED
A010 The respect-gitignore flag still commits non-gitignored dirty files ✅ SATISFIED
A011 No extra output appears when no infrastructure files are gitignored ✅ SATISFIED
A012 The function returns empty when no files are gitignored ✅ SATISFIED
A013 Agent memory files are never force-added even when gitignored ✅ SATISFIED
A014 Local settings are never force-added even when gitignored ✅ SATISFIED
A015 Plan files are never force-added even when gitignored ✅ SATISFIED
A016 State files are never force-added even when gitignored ✅ SATISFIED
A017 Force-add works when the root gitignore ignores the entire .claude directory ✅ SATISFIED
A018 Force-add respects nested gitignore exclusions within .claude/ ✅ SATISFIED
A019 Files already found by normal discovery are not duplicated in the gitignored set ✅ SATISFIED
A020 Git check-ignore exit code 1 is handled as no-matches, not as an error ✅ SATISFIED
A021 The success message file count includes both normal and force-added files ✅ SATISFIED

Generated by Anatomia · Ship with proof.

Summary

  • Add discoverGitignoredFiles() that dynamically enumerates infrastructure files on disk and batch-checks them against git check-ignore --stdin, so gitignored files (e.g., when a team gitignores .claude/) are force-added to init commits
  • Add --respect-gitignore flag to opt out of force-adding, with a warning about worktree implications
  • Wire force-add into the action body with a separate git add -f call, console output naming force-added files, and an adjusted file count in the success message
  • 15 new tests covering unit-level gitignore detection, exclusion filtering, and full command integration

Pipeline Artifacts

  • Scope: .ana/plans/active/gitignore-force-add/scope.md
  • Spec: .ana/plans/active/gitignore-force-add/spec.md
  • Build Report: .ana/plans/active/gitignore-force-add/build_report.md
  • Verify Report: .ana/plans/active/gitignore-force-add/verify_report.md

Verification

  • Result: PASS
  • Phases: 1 verified
  • Tests: 2996 passed, 0 failed, 2 skipped. Build: ✅ success. Li

Co-authored-by: Ana build@anatomia.dev

rpatricksmith and others added 3 commits May 29, 2026 02:13
…nore flag

Adds discoverGitignoredFiles() that enumerates files on disk under
KNOWN_ROOTS and KNOWN_ROOT_FILES, filters through isExcluded(), and
batch-checks against git check-ignore --stdin. Wires into the action
body with a separate git add -f call for gitignored files. Adds
--respect-gitignore flag to opt out of force-adding.

Co-authored-by: Ana <build@anatomia.dev>
Co-authored-by: Ana <build@anatomia.dev>
Co-authored-by: Ana <build@anatomia.dev>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 29, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
anatomia Ready Ready Preview, Comment May 29, 2026 8:22am

Request Review

@rpatricksmith rpatricksmith merged commit e90d588 into main May 29, 2026
5 checks passed
@rpatricksmith rpatricksmith deleted the feature/gitignore-force-add branch May 29, 2026 08:30
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