pub fn install(project_dir: &Path) -> Result<String, String>Expand description
Write or merge the .claude/settings.json hook entry — the plumbing as DERIVED
output. Idempotent: an entry whose command already invokes probe-hook is left
alone; everything else in the file is preserved untouched. Returns a line saying
what happened; errs only on a settings.json that exists but does not parse
(never overwrite what cannot be read — that file is not ours).
Capability: Effectful — reads and writes .claude/settings.json under
project_dir.