* test(#4014): add failing-first coverage for unreadable-vs-empty directory scope (epic #3473 B4)
* fix(#4014): an unreadable directory must not report as an empty one (epic #3473 B4)
* test(#4014): update hardcoded generateSlugInternal closing-brace line after import shift
src/core-utils.cts's new #4014 import block shifted every subsequent line by
6, moving generateSlugInternal's real closing brace from line 193 to 199.
tests/slug-derivation-drift-guard.test.cjs's MAJOR-1 fixture hardcodes that
line number to plant a synthetic violation immediately after the function's
real body; the guard script itself locates the boundary dynamically via
brace-matching and needed no change.
* docs(#4014): document the unreadable-directory scope signal and add changeset
* docs(#4014): backfill changeset PR number to #4163
* test(#4014): kill pre-existing core-utils.cjs mutation-score gap, unrelated to this issue's diff
---------
Co-authored-by: sim <sim@local>