Development record
2026-10-17 — Generated-file patterns follow git's gitattributes rules for the subset abcd reads (facilitator-on-delegation, drain-many-accounts step 11): a pattern with no slash matches the basename at any depth, one with a slash is anchored to the root with a leading slash stripped, star, question mark, classes and double star are supported, a trailing-slash pattern matches nothing, later lines win, and only linguist-generated set or =true means generated (iss-2610152125101468).
decisiondcn-2610170652476743
2026-10-17 — Generated-file patterns follow git's gitattributes rules for the subset abcd reads (facilitator-on-delegation, drain-many-accounts step 11): a pattern with no slash matches the basename at any depth, one with a slash is anchored to the root with a leading slash stripped, star, question mark, classes and double star are supported, a trailing-slash pattern matches nothing, later lines win, and only linguist-generated set or =true means generated (iss-2610152125101468).
Frontmatter
| id | dcn-2610170652476743 |
|---|---|
| type | decision |
| date | 2026-10-17 |
.abcd/work/decisions/dcn-2610170652476743-generated-file-patterns-follow-git-s.md
open on GitHub ↗ · commit history ↗
mentions2
- dcn-26101708312908232026-10-17 — Unsetting lines match regardless of case and setting lines only where every clone would (facilitator-on-delegation, drain-many-accounts step 11, refines dcn-2610170652476743): a line that unsets linguist-generated matches wherever git's would on a clone that ignores case or on one that does not, and a line that sets it matches only where git's would on both, so abcd never calls a file generated that git on some clone calls unset; the only cost is less sharing. Within a class, git ignoring case lowers the text byte but not the class's own bytes, so the two readings are judged separately (grounds: git check-attr under core.ignorecase true and false agreed on 303,104 comparisons; iss-2610152125101468).
- iss-2610152125101468A reservation footprint can hold a whole directory (docs, hooks, internal/surface/cli), and the overlap check then refuses every other reservation naming any file inside it. Generated files that every verb-adding branch regenerates, such as docs/reference/cli/commands.md, sit inside such directories, so two unrelated intents held by the same person from two copies could not both declare an honest footprint: on 2026-10-15 the messaging reservation's renewal was refused twice and had to leave out .githooks/pre-push, the ruleset mirror and the generated CLI reference, which it does change.