From ec950dccd729cd1443174482851582deee08f893 Mon Sep 17 00:00:00 2001 From: Andrew Christison Date: Thu, 6 Aug 2026 13:18:35 -0700 Subject: [PATCH] chore: keep agent workspaces out of the tree and make the ignore rules symlink-safe This repository is public. The agent workspace and local agent config were present in the working tree, excluded only by ignore rules. Their contents are now stored outside any repository and reached through symlinks, so the bytes are not in a public tree at all and a forced add would commit a path rather than the content. Drops the trailing slashes at the same time. A trailing-slash rule matches a directory only, so `.agents/` stopped matching the moment the directory became a symlink, and the path fell out of the ignore set silently. Slashless entries match a directory, a file, or a symlink. No change to tracked content: zero paths under these entries before or after, and no commit in this repository has ever touched them. --- .gitignore | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index aa2a81f..b57d683 100644 --- a/.gitignore +++ b/.gitignore @@ -8,9 +8,18 @@ dist/ !.env.example coverage/ -# Per-user AI workflow stays local — never commit. -.agents/ -.claude/ +# Per-user AI workflow stays local, never commit. These carry client names, +# internal strategy, and personal detail, and this repository is public. +# +# NO TRAILING SLASH, deliberately. `.agents/` matches a directory only. These +# paths are kept out of the tree by replacing them with symlinks pointing +# outside any repository, and git sees a symlink as a file rather than a +# directory, so a trailing-slash rule stops matching the moment the directory +# becomes a link. The entry then falls out of the ignore set silently and +# `git add -A` will stage it. Slashless entries match a directory, a file, or +# a symlink. +.agents +.claude CLAUDE.md # Curation scratch dirs (one-shot scripts and intermediate JSON for data