fix(skills): reject unexpected resource files - #243
Conversation
Enforce the canonical tracked-file policy in skill-manager doctor and cover the false-negative paths. Closes #237
Include non-ignored untracked files in the doctor boundary while preserving ignored runtime artifacts. Refs #237
Keep each Oxlint process under its own suite timeout instead of aggregating three independent scenarios.
Keep only gitignored runtime artifacts outside the doctor audit. Refs #237
Independent verdict — approvedReview of PR #243 on Authenticated local validation on this exact head: TypeScript lint 0 errors/0 warnings; typecheck 0 errors; 359/362 tests passed, 3 skipped, 0 failed, 1,635 assertions; TypeScript format checked 110 files; Prettier and CSpell passed. This macOS 26.6.2 evidence covers tracked and non-ignored-untracked paths, accepted eval variants, fail-closed Git behavior, and the Docker smoke; GitHub CI supplies Ubuntu/macOS jobs. Approved on this head with no blocking or non-blocking finding. |
Repair recordExact head reviewed and repaired: Repaired
Proof
Not repaired
|
Independent verdict — approvedRe-review of PR #243 on exact head Authenticated local validation on macOS 26.6.2 with Bun 1.4.0: TypeScript lint and typecheck passed; 371/375 tests passed, 4 explicitly disabled integrations skipped, 0 failed, 1,659 assertions; TypeScript formatting checked 115 files; Prettier and all 24 canonical skill audits passed. A separate clean-environment review confirmed the checker runs without The prior review findings are closed: every ignored physical entry fails even under open resource directories, canonical-root symlinks and root-name files fail, Git evidence is parsed fail-closed, and doctor has no runtime package dependency or auto-install path. The repair trail is recorded in the exact-head repair comment. Approved with no blocking finding. Non-blocking limitation: socket rejection was exercised manually rather than by a dedicated automated regression; the generic unsupported-entry path is covered automatically. |
Description
assets/, malformed Git evidence, canonical-root symlinks, files impersonating resource directories, unsupported entry types, unreadable directories, accepted eval layouts, and strict native policy parsing.Useful Links
How to Test
bun --config=/dev/null --no-env-file tooling/lint-typescript.tsbun --config=/dev/null --no-env-file run typecheckSCRAPLING_DOCKER_SMOKE=1 bun --config=/dev/null --no-env-file test --timeout 15000bun run format:typescript:checkprettier --checkon the skill-manager filesbun --no-install harness/skills/skill-manager/scripts/check-resource-files.tsfor all 24 canonical skillsLocal evidence: macOS 26.6.2; 371 tests passed, 4 explicitly disabled Docker/network/real-CLI integration tests, 0 failed; lint, typecheck, TypeScript formatting, skill-manager formatting, and all 24 canonical physical audits passed.
Checklist