Você tem razão nos dois pontos, e obrigado por conferir na doc antes de aplicar: acceptEditsPaths e mcpServersDenyAll não existem. E a ironia dói: um post sobre não confiar no piloto automático saiu com duas chaves que eu não chequei contra a doc oficial.
Concordo que instrução em CLAUDE.md não é controle de segurança. Reescrevi o post: item 2 e 3 foram pra permissions.deny com Edit() e Read() como você descreveu, o item 5 virou enabledMcpjsonServers, e no item 1 deixei anotado o furo do npx com o hook de PreToolUse como bloqueio de verdade em vez de casamento de string.
A pegadinha do caminho relativo resolvendo a partir de ~/.claude/ eu não sabia, essa me pouparia uns bons minutos de debug.
A correção já está no ar, com crédito pra você no rodapé. Valeu pela revisão, comentário assim vale mais que o post.