AID v2.0.4
AID v2.0.4 — a KB-scanner scope & reproducibility patch. The two scanners that feed /aid-discover (harvest-coined-terms.sh → candidate concepts, build-project-index.sh → project index) now scope their walk to real, hand-authored target-project source, deterministically. No methodology or KB-schema changes; drop-in over v2.0.3 (aid update <tool>).
Fixed
Previously the scanners walked directories and files that aren't target-project source, which polluted candidate-concepts.md / project-index.md and — because those inputs change independently of the project — broke the byte-reproducibility the KB relies on (false /aid-housekeep KB-DELTA drift, non-deterministic concept-closure). Both scanners now exclude, in lockstep:
- AID tool-install ("dogfood") trees at the repo root —
.claude/,.cursor/,.codex/,.agent/. On a project that has AID installed these are the AID install itself, never the target's source (the same reason.aid/was already pruned)..github/is deliberately not pruned (it's a standard project directory). .gitignored files — viagit check-ignorewith the globalcore.excludesFileneutralized, so only the project's committed.gitignoredrives exclusions (reproducible across machines). Tracked files are never dropped. Git-repo-guarded, with a non-git fallback.- Generated / vendored / minified files —
.gitattributeslinguist-generated+linguist-vendored(project-declared; documentation is kept, since coined terms live in prose),@generated/DO NOT EDITheader markers, and*.min.js/*.min.css/*.map. - More build/cache/output dirs in the always-on prune set —
.venv,venv,coverage,htmlcov,.nyc_output,logs,tmp,temp,bower_components,.cache,.turbo,.svelte-kit,.angular,Pods,.dart_tool,.terraform, and more.
All exclusion is deterministic and cross-OS reproducible: every check derives only from committed inputs (.gitignore, .gitattributes, file headers, paths) with machine-specific global excludes neutralized, and every sort runs under LC_ALL=C. Each check is a single batched process (no per-file subprocess). Verified byte-identical to v2.0.3 on projects without such content, on both git and non-git roots; regression tests assert every layer excludes noise while real source and docs are retained.
(Known residual: git check-ignore also consults the per-clone .git/info/exclude, which has no override flag; it is empty by default, so output is reproducible across machines in practice.)
Unchanged
Methodology phases, KB schema, CLI flags, and all output contracts are identical to v2.0.0–v2.0.3.
Verify your download
sha256sum -c SHA256SUMS