Skip to content

feat(gitignore): nest .gitignore inside .luca/tools and .luca/skills - #103

Merged
albertodebortoli merged 2 commits into
mainfrom
feat/nested-gitignore-for-luca-folders
Jul 26, 2026
Merged

feat(gitignore): nest .gitignore inside .luca/tools and .luca/skills#103
albertodebortoli merged 2 commits into
mainfrom
feat/nested-gitignore-for-luca-folders

Conversation

@albertodebortoli

@albertodebortoli albertodebortoli commented Jul 26, 2026

Copy link
Copy Markdown
Member

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 .gitignore file 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 every luca install.
  • Each agent's project skill directory (e.g. .claude/skills/) keeps the existing root-.gitignore append/merge logic unchanged, since those directories live outside .luca/ and are owned by other tools' conventions.
  • Updated the stale Lucafile.md doc section that referenced a nonexistent --install-git-hook flag and manual .gitignore instructions.

Type of Change

  • Feature
  • Bug fix
  • Maintenance / Refactor
  • Documentation
  • CI / Tooling
  • Other (specify)

How Has This Been Tested?

  • Added / updated unit tests (GitIgnoreManagerTests, GitIgnoreManagerSkillsTests), written test-first (TDD)
  • Manually tested locally: ran luca install against a scratch git repo, verified .luca/tools/.gitignore / .luca/skills/.gitignore are created with *, confirmed git add -A picks up nothing under .luca/, and confirmed idempotency across repeated runs
  • Tested on macOS (arch: arm64)
  • Other

Full suite: swift test - 581/581 passing.

Screenshots / Demo (if applicable)

N/A

Checklist

  • Swift code builds locally (swift build)
  • Tests pass locally (swift test)
  • Code style / formatting respected
  • Documentation updated (README / comments)
  • Version / tag alignment considered (if release related)
  • PR title follows conventional style (optional)

CI Considerations

  • Affects build time notably
  • Requires new secrets / env vars
  • Alters release process

Breaking Changes?

  • No
  • Yes (describe impact and migration path)

Additional Notes

Projects upgrading will see their previous root-.gitignore entries for .luca/tools and .luca/skills become redundant (harmless to leave or remove manually).

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.
@albertodebortoli albertodebortoli added this to the 0.24.0 milestone Jul 26, 2026
@albertodebortoli albertodebortoli added the feature New feature or enhancement label Jul 26, 2026
@codecov

codecov Bot commented Jul 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@albertodebortoli
albertodebortoli merged commit 282d2cf into main Jul 26, 2026
3 checks passed
@albertodebortoli
albertodebortoli deleted the feat/nested-gitignore-for-luca-folders branch July 26, 2026 10:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or enhancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant