Repository navigation
codebase-audit v0.4.0 — environment-tier-aware audits
·
5 commits
to main
since this release
[0.4.0] — 2026-04-18
Added
- Environment-tier verdict from
collect_stats.sh. The script now ends with a grep-ableENVIRONMENT_TIER: warm|partial|coldline plus per-signal flags (SIGNAL_LOC_TOOL,SIGNAL_TEST_RUNNER_DETECTED,SIGNAL_TEST_DEPS_INSTALLED) so the skill can tell whether the audit was run from a warm active-dev environment, a partially-equipped one, or a cold clone with no tooling — and branch accordingly. - Single install-or-skip decision (Step 2b.1a in
SKILL.md). When the environment tier ispartial, the skill asks once whether to install missing deps, run only what's already runnable, or skip Step 2b entirely — quoting commands from the repo's own docs (README, Makefile, package.json scripts) rather than guessing. Replaces what would previously have been N per-suite permission prompts. - Section-level assessability vocabulary in the report template. Method & Limitations block now distinguishes claim-level confidence (Verified / Likely / Inferred, unchanged) from section-level assessability (
Measured/Inferred from artifacts/Not assessable without setup). Cold-clone reports degrade explicitly — §1 rows state what tooling would be needed to upgrade the row to Measured, and §5 caps the confidence of findings sourced from Not-assessable sections at Inferred.
Fixed
collect_stats.shportability. Added a bash 4+ version guard (fails loudly with a macOS-specificbrew install bashhint instead of emitting a cryptic syntax error under bash 3.2). Output path now respects$TMPDIRfor sandboxed/containerized environments.collect_stats.shbackup-evidence grep. Replaced the GNU-onlygrep -rlI --exclude-dir=…with a portablefind -prune … -print0 | xargs -0 grep -lEipipeline that works across GNU grep, BSD grep (macOS), and busybox.collect_stats.shtest-LOC word-splitting. Rewrotefor d in $(… | sort -u)aswhile IFS= read -r d; do …; done < <(…)so test-directory paths containing spaces are counted correctly instead of silently skipped.collect_stats.shgh run listerror masking. Routed thegh run listcall through a temp file and inspected its exit code viaPIPESTATUS-equivalent pattern — previouslyteemaskedghfailures behind its own success, silently producing an empty "no recent runs" result rather than telling the readerghcouldn't ask.
Full changelog: plugins/codebase-audit/CHANGELOG.md
PR: #8