diff --git a/settings.json b/settings.json index 2cbd3f9..5495f95 100644 --- a/settings.json +++ b/settings.json @@ -134,11 +134,25 @@ "Read(**/credentials.json)", "Read(**/.aws/credentials)", "Read(**/.azure/**)", - "Write(**/.env)", - "Write(**/.env.*)", - "Write(**/secrets/**)", - "Write(**/*.pem)", - "Write(**/*.key)", + "Edit(**/.env)", + "Edit(**/.env.*)", + "Edit(**/secrets/**)", + "Edit(**/*.pem)", + "Edit(**/*.key)", + "Edit(**/*.p12)", + "Edit(**/*.pfx)", + "Edit(**/id_rsa*)", + "Edit(**/id_ed25519*)", + "Edit(**/.ssh/**)", + "Edit(**/credentials)", + "Edit(**/credentials.json)", + "Edit(**/.aws/credentials)", + "Edit(**/.azure/**)", + "Edit(**/*.lock)", + "Edit(**/package-lock.json)", + "Edit(**/pnpm-lock.yaml)", + "Edit(**/go.sum)", + "Edit(**/node_modules/**)", "Bash(eval *)", "Bash(exec *)", "Bash(find * -delete*)", @@ -236,7 +250,7 @@ "disableBypassPermissionsMode": "disable", "additionalDirectories": [] }, - "model": "claude-fable-5[1m]", + "model": "opus[1m]", "hooks": { "SessionStart": [ { diff --git a/templates/settings/SETTINGS.md b/templates/settings/SETTINGS.md index 20b9e73..e462765 100644 --- a/templates/settings/SETTINGS.md +++ b/templates/settings/SETTINGS.md @@ -10,13 +10,17 @@ "Bash(curl * | bash)" // pipe pattern — block code injection ``` -### Read / Write / Edit — gitignore syntax +### Read / Edit — gitignore syntax ```json "Read(**/.env)" // any .env in any subdirectory "Read(**/secrets/**)" // anything inside secrets/ "Read(src/**/*.ts)" // all .ts under src/ -"Write(**/*.key)" // deny writing any .key file +"Edit(**/*.key)" // deny writing any .key file — Edit covers + // Write/Edit/MultiEdit/NotebookEdit ``` +`Write(path)` rules are **inert**: file permission checks only match +`Edit(path)`. Claude Code warns at startup for every `Write(glob)` rule. +Always write the file-write ban as `Edit(...)`. ### WebFetch / WebSearch ```json