Skip to content

AID v2.0.4

Choose a tag to compare

@github-actions github-actions released this 05 Jul 06:44
4d79f15

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 — via git check-ignore with the global core.excludesFile neutralized, so only the project's committed .gitignore drives exclusions (reproducible across machines). Tracked files are never dropped. Git-repo-guarded, with a non-git fallback.
  • Generated / vendored / minified files.gitattributes linguist-generated + linguist-vendored (project-declared; documentation is kept, since coined terms live in prose), @generated / DO NOT EDIT header 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