Configuration and scripts that make Claude Code collect evidence first, record each hypothesis, and stop repeating failed tests. Target: MacBook Pro 16-inch (2021), M1 Pro, 32 GB, macOS 27.2 developer beta.
- Put the kit in any folder (for example
~/Projects/claude-ops-kit). - Install Homebrew packages:
brew bundle --file <kit>/Brewfile. Then runuv tool install frida-tools. (Replace<kit>with the kit folder path.) - Run
bash <kit>/install.sh. The script needs no sudo. It backs up~/.claude/settings.jsonand~/.claude/CLAUDE.mdbefore it changes them. - Optional: install
sudoers/ops-diag. Read the comments in that file first. - Start Claude Code. Run
/hooksand/status. The hooks list must show theops_scripts.
| Kit path | Installed to |
|---|---|
claude/CLAUDE.md |
~/.claude/CLAUDE.md, or ~/.claude/ops-protocol.md plus an import line if you already have a CLAUDE.md |
claude/settings.ops.json |
Merged into ~/.claude/settings.json. Your existing scalar values stay. Lists are combined. settings.json gets PostToolUse and PostToolUseFailure hooks for Bash. |
claude/hooks/* |
~/.claude/hooks/ |
claude/skills/* |
~/.claude/skills/ |
claude/agents/second-opinion.md |
~/.claude/agents/ |
bin/* |
~/.local/bin/ |
ops/ops_lib.sh, ops/KNOWN.md, ops/INDEX.md |
~/Ops/ (seed files are not overwritten) |
A re-install removes obsolete kit permission rules (for example Bash(ops-run *)) and prints each one.
ops-selftestmust report 0 failures.ops-snapshotmust showrosetta=installedand, after step 4,sudo_n_diag=ok.
An incident belongs to the Claude session that opened it. Other sessions ignore it. Run ops-claim to work on it from a new session, for example after /clear.
- One session without the repeat guard:
OPS_GUARD=0 claude. This also disables automatic approval of safelisted ops-run commands. Every ops-run and wine-run command shows a permission prompt. - Remove:
bash <kit>/uninstall.sh. It keeps~/Opsand your permission rules.