Skip to content

Latest commit

 

History

History
70 lines (53 loc) · 3.05 KB

File metadata and controls

70 lines (53 loc) · 3.05 KB

Installing Proctor

install.sh (a thin wrapper over install.py) wires Proctor into a Claude Code config. It's idempotent (safe to re-run), backs up settings.json before editing, and is fully reversible.

git clone https://github.com/webdevtodayjason/proctor
cd proctor
./install.sh                 # install / repair wiring
python3 test_gates.py        # confirm healthy
python3 test_turns.py        # turn-level integration check

What it does

  • Symlinks ~/.claude/hooks/goal-contract → this clone. Editing the clone is editing the live system — that's the iterate loop.
  • Wires the hook entries in settings.json: witness.py (PostToolUse), disposition-gate.py
    • goal-gate.py (Stop), arm-contract.py (UserPromptSubmit).
  • Symlinks the contract-authoring skills and the /disarm command.
  • Seeds judge.config.json from the example if absent.

Commands

Command Effect
./install.sh Install or repair (idempotent)
./install.sh --status Report what's wired; change nothing
./install.sh --uninstall Remove the wiring (keeps witness logs + backups)
./install.sh --dry-run Print what would happen
./install.sh --config-dir DIR Target a non-default profile (e.g. ~/.claude-work); also honors $CLAUDE_CONFIG_DIR

settings.json is copied to settings.json.bak-proctor-<timestamp> before any edit.

The iterate loop

edit the clone → python3 test_gates.py → git commit → git push
    → git pull (elsewhere) → ./install.sh    # idempotent; wires only what's missing

Optional pieces (the core works without them)

Judge — a local LLM (e.g. LM Studio) that signs prose acceptance. Copy judge.config.example.jsonjudge.config.json and set the endpoint/model. Stays advisory until you calibrate and flip it. See using-it.md. judge.config.json is gitignored (it holds your endpoint).

Voice pages — if ~/.config/claude-hooks/voice-attention.py exists, yields and handoffs speak aloud. Absent → the gates just log; nothing breaks.

Proof-integrity guard — defense-in-depth that makes the graded model unable to write its own evidence. It rides on the separate damage-control hooks. The installer detects whether the patterns are present and, if not, points you at guards/damage-control-patterns.yaml to merge by hand (it never structurally rewrites a foreign tool's config). Threat model: done-pressure shortcuts, not malice — a speed bump with an audit trail.

Requirements

  • Claude Code
  • python3 (standard library only — no pip installs)
  • Optional: a local LLM endpoint for the judge; git for the reality-checks that inspect diffs

Uninstall / reinstall

./install.sh --uninstall removes the hook entries and symlinks and leaves your witness logs, proofs, and settings backups in place. Re-running ./install.sh restores everything. Nothing about Proctor writes outside ~/.claude/ and the clone.