feat(scripts): add pre-commit library-decisions check + tests
Adds scripts/library-decisions/check.mjs that walks staged package.json diffs, derives tier from path, and fails the commit when a new runtime dependency in a feature- or core-tier package has no sibling approved trace staged in docs/library-decisions/. App-tier additions and devDependency / peerDependency additions are silently allowed. Wired into .husky/pre-commit as step 4. check.test.mjs covers all 7 Done-when cases using temp git repo fixtures (node:test + node:assert, same pattern as schema.test.mjs). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -16,3 +16,6 @@ fi
|
||||
# staged but doesn't match what rebuild-state would produce. Catches the case
|
||||
# where someone hand-edits _state.json without going through rebuild-state.
|
||||
node scripts/work/state-sync-guard.mjs || exit 1
|
||||
|
||||
# 4. Check library decision traces for new runtime deps in feature/core packages.
|
||||
node scripts/library-decisions/check.mjs || exit 1
|
||||
|
||||
Reference in New Issue
Block a user