There is no CI in this repository - Dotboost is configuration, not code with a build step - so this manual smoke test is the closest thing to a test suite. Run it after installing into a project.
Ask "where does a new Doctrine entity go?" — it should reach for dotkernel-module-structure rather than answering from general framework knowledge.
CLAUDE.md blockWith the dependency-policy block in place (see Getting Started), ask "how do I send mail from here?" — a question with no package name in it.
It should load dependency-policy and walk the ladder, grepping composer.lock first and then the dotkernel/* manifest (generating it if absent), rather than replying with a package name from memory.
See Dependency Policy.
vendor/autoload.php — blocked by guard-protected-paths.sh.composer.json — blocked by the same hook; it should propose the change in chat instead of writing it.cd src && composer require foo — guard-bash.sh should catch the install even though it's inside a compound command, which path-based permission rules alone cannot see.
See Guardrails vs. Permissions.Claude Code's own settings.json schema and hook event names move faster than most things in this repo.
If a permission rule or hook doesn't take effect, check the current Claude Code docs — in particular the glob syntax accepted by permissions.deny and whether permissions.ask exists in your installed version.
Treat the hooks as the reliable layer and the permission rules as the convenient one when the two seem to disagree.