feat: initial companion repo for CC-024 Hooks
This commit is contained in:
commit
cd834a7476
7 changed files with 790 additions and 0 deletions
51
CLAUDE.md
Normal file
51
CLAUDE.md
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
# Hooks: Run Code When Claude Code Acts
|
||||
|
||||
## What this project is
|
||||
|
||||
A companion repo for the From AI to Chitta article on **Hooks**
|
||||
(concept ID: `CC-024`). It contains working hook scripts and exercises
|
||||
that let you set up real guardrails and audit logging in Claude Code.
|
||||
|
||||
Article: https://fromaitochitta.com/cc-024
|
||||
|
||||
## How to use this
|
||||
|
||||
1. Open Claude Code in this directory: `cd claude-code-hooks && claude`
|
||||
2. Work through exercises in order: `exercises/01-block-danger.md`, then 02, then 03
|
||||
3. Each exercise has concrete steps with expected output
|
||||
4. Compare your results to the expected output described in each exercise
|
||||
|
||||
## What is configured
|
||||
|
||||
- **Pre-tool-use hook** (`hooks/pre-tool-use.sh`): Blocks a set of dangerous
|
||||
shell commands before Claude executes them. Reads JSON from stdin, matches
|
||||
against blocked patterns, exits 2 to block or 0 to allow.
|
||||
- **Post-tool-use hook** (`hooks/post-tool-use.sh`): Logs every tool call to
|
||||
`hooks/audit.log` with a timestamp, tool name, and input summary.
|
||||
- **Settings** (`.claude/settings.json`): Wires both hooks into Claude Code.
|
||||
|
||||
## Code quality expectations
|
||||
|
||||
- This is a learning repo. Clarity over cleverness.
|
||||
- Every exercise must run without modification on a clean clone
|
||||
- No external dependencies beyond Python 3 (standard on macOS)
|
||||
- If something does not work as expected, that is useful information: note it
|
||||
|
||||
## Project structure
|
||||
|
||||
```
|
||||
hooks/ pre-tool-use.sh, post-tool-use.sh, audit.log (generated)
|
||||
exercises/ Three numbered exercises with steps and expected output
|
||||
.claude/ settings.json with hook configuration
|
||||
CLAUDE.md This file: project instructions
|
||||
README.md Overview for anyone who clones this repo
|
||||
```
|
||||
|
||||
## Domain
|
||||
|
||||
Claude Code Automation
|
||||
|
||||
## Memory
|
||||
|
||||
Keep session notes in a local `MEMORY.md` (gitignored). This file
|
||||
(CLAUDE.md) is for instructions. MEMORY.md is for state.
|
||||
Loading…
Add table
Add a link
Reference in a new issue