* feat: add missing pre-tool-check.sh hook to 06-hooks
The LEARNING-ROADMAP.md (Milestone 2A) referenced this file in an
exercise that copies it to ~/.claude/hooks/, but the file did not exist.
This caused confusion for learners following the guide.
The new pre-tool-check.sh is a PreToolUse hook for the Bash matcher that:
- Blocks unconditionally destructive commands (rm -rf /, dd, fork bomb, etc.)
- Warns on high-risk commands (rm -rf, git push --force, DROP TABLE, etc.)
- Reads tool input JSON from stdin (matching Claude Code hook protocol)
- Requires no external dependencies (pure bash + grep)
Fixes#32
* fix(hooks): correct exit code, remove set -e, use portable sed in pre-tool-check.sh
- Change `exit 1` to `exit 2` so Claude Code actually blocks the command
(exit 1 is treated as a non-blocking error; exit 2 is required to block)
- Remove `set -euo pipefail`: `set -e` caused the script to exit on the
first non-matching grep result, skipping all remaining pattern checks
- Replace non-portable `grep -o '"command"\s*:\s*"[^"]*"'` with
`sed -n 's/.*"command"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p'`
which works on both macOS (BSD) and Linux without GNU grep extensions
Closes#32
---------
Co-authored-by: Luong NGUYEN <luongnv89@gmail.com>