CASAN Claude Code adoption template (Plan-20)
Drop settings.json into the target repo as .claude/settings.json (the
installer does this). It wires the four Claude Code lifecycle hooks
(UserPromptSubmit, PreToolUse, PostToolUse, Stop) to the CASAN agentic
bridge so a developer can type prompts normally while every certified turn still
carries an H1→H7 trace and an H6 record.
- The hook command resolves the repo root via
$CLAUDE_PROJECT_DIR, so no machine-specific path is committed. - It invokes
.casan/casan-hook.py. That bootstrap reads project config, resolves the pinned global harness, verifies its live hash, then dispatches the thin Claude renderer. The bridge never runs a model. - This is a
project_hookintegration: strong for a trusted project, but a member who can edit.claude/settings.jsoncan disable it. For organization enforcement use a managed/pinned deployment (managed_hook) — seedocs/casan/CASAN_AGENTIC_CLIENT_SECURITY.md.
Install (cross-platform)
cd <repo>
casan init --client claude --mode enforce
casan doctor --client claude
Feature flags (environment)
| Variable | Default | Meaning |
|---|---|---|
CASAN_AGENTIC_BRIDGE_ENABLED |
1 |
Master on/off. |
CASAN_AGENTIC_ENFORCEMENT_MODE |
enforce via init |
observe (telemetry-only) or enforce. |
CASAN_AGENTIC_INTEGRATION_MODE |
project_hook |
project_hook / managed_hook / casan_owned. |
CASAN_AGENTIC_CLIENT_ALLOWLIST |
(unset) | Comma list; clients outside it are observed_only. |