feat(gitignore): nest .gitignore inside .luca/tools and .luca/skills - #103
Merged
Merged
Conversation
Avoids ever reading or mutating the project's root .gitignore for Luca-owned folders; each folder now ignores its own contents via a self-contained .gitignore. Agent-specific skill directories (e.g. .claude/skills) keep the existing root .gitignore append logic since they live outside .luca/.
The nested .gitignore in .luca/tools and .luca/skills now ignores itself too, so it never gets staged or committed - it's regenerated locally by every luca install.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
.luca/tools/and.luca/skills/now each get their own nested.gitignore(content*) instead of an entry in the project's root.gitignore. This means Luca never reads or mutates a.gitignorefile it doesn't own for these folders, and the nested file itself is ignored too (including itself), so it's never staged or committed - it's simply regenerated by everyluca install..claude/skills/) keeps the existing root-.gitignoreappend/merge logic unchanged, since those directories live outside.luca/and are owned by other tools' conventions.Lucafile.mddoc section that referenced a nonexistent--install-git-hookflag and manual.gitignoreinstructions.Type of Change
How Has This Been Tested?
GitIgnoreManagerTests,GitIgnoreManagerSkillsTests), written test-first (TDD)luca installagainst a scratch git repo, verified.luca/tools/.gitignore/.luca/skills/.gitignoreare created with*, confirmedgit add -Apicks up nothing under.luca/, and confirmed idempotency across repeated runsFull suite:
swift test- 581/581 passing.Screenshots / Demo (if applicable)
N/A
Checklist
CI Considerations
Breaking Changes?
Additional Notes
Projects upgrading will see their previous root-
.gitignoreentries for.luca/toolsand.luca/skillsbecome redundant (harmless to leave or remove manually).