[Bug] Skill 4.3.1 `detect` scans no files matching `detector.extensions` when given a directory

Author: LastimosoCreated Sep 14, 2026Updated Sep 16, 2026
Labelsneeds triage

What happens

With .impeccable/config.json declaring an ERB extension, impeccable detect finds nothing when pointed at a directory, but finds the issues when the same file is passed explicitly.

Skill 4.3.1, engine v0.1.5 (darwin-arm64), launcher .claude/skills/impeccable/scripts/impeccable.

Repro

mkdir -p probe/app/views probe/.impeccable && cd probe
printf '<!doctype html><html><head><style>body { font-family: Inter; }</style></head><body><img alt="probe"></body></html>' > app/views/first.html.erb
cp app/views/first.html.erb app/views/plain.html
printf '{"detector":{"extensions":[{"ext":".html.erb","engine":"html"}],"designSystem":{"enabled":false}}}' > .impeccable/config.json

impeccable detect --json --no-design-system app/views
# -> only app/views/plain.html is reported; first.html.erb is never scanned

impeccable detect --json --no-design-system app/views/first.html.erb
# -> overused-font + broken-image, as expected

Passing several files in one call works, and the post-edit impeccable hook does inspect an .html.erb edit, so only the directory walk ignores detector.extensions.

Why it matters

On a Rails app nearly every markup file is .html.erb, so /impeccable audit and /impeccable critique over app/views report "clean" without reading anything. Skill 4.1.2 had the same blind spot in detect.mjs; we had patched the Node scripts locally (directory walk honouring the configured extensions), which the compiled engine now replaces. Possibly related to #795, which is about which engine the configured extensions route to rather than whether the walk sees them.