cc-safe-setup 29.8.0 → 30.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +72 -19
- package/.claude-plugin/plugin.json +1 -1
- package/CONTRIBUTING.md +7 -2
- package/COOKBOOK.md +50 -46
- package/LICENSE +21 -0
- package/MIGRATION.md +8 -8
- package/README.md +421 -512
- package/SAFETY_CHECKLIST.md +15 -7
- package/SERVICES.md +194 -0
- package/SETTINGS_REFERENCE.md +236 -17
- package/SKILL.md +5 -5
- package/TROUBLESHOOTING.md +35 -14
- package/action.yml +12 -4
- package/audit/README.md +84 -0
- package/audit/audit-checklist.md +152 -0
- package/audit/boundary-selftest.sh +85 -0
- package/audit/boundary.sh +123 -0
- package/audit/count-hooks.py +42 -0
- package/audit/find-dead-hooks.sh +82 -0
- package/audit/find-unfirable-rules.sh +142 -0
- package/audit/fire.sh +97 -0
- package/audit/selftest.sh +42 -0
- package/audit/unfirable-selftest.sh +81 -0
- package/audit-web/index.html +9 -9
- package/examples/README.md +54 -17
- package/examples/account-billing-log.sh +98 -0
- package/examples/account-routing-preflight.sh +123 -0
- package/examples/agent-sdk-credit-pool-monitor.sh +145 -0
- package/examples/agent-view-quota-decrement.sh +32 -0
- package/examples/agent-view-quota-warn.sh +94 -0
- package/examples/agents-md-edit-drift-warner.sh +223 -0
- package/examples/agents-md-loader.sh +160 -0
- package/examples/agents-md-sync-checker.sh +102 -0
- package/examples/ai-slop-punctuation-arrest.sh +210 -0
- package/examples/allowlist.sh +70 -10
- package/examples/always-allow-pattern-suggester.sh +125 -0
- package/examples/ansible-vault-guard.sh +2 -1
- package/examples/anthropic-base-url-guard.sh +76 -0
- package/examples/api-busyloop-guard.sh +123 -0
- package/examples/api-endpoint-guard.sh +12 -0
- package/examples/api-key-in-url-guard.sh +17 -1
- package/examples/api-rate-limit-guard.sh +36 -1
- package/examples/api-rate-limit-tracker.sh +12 -0
- package/examples/articulated-scope-capture.sh +101 -0
- package/examples/askuserquestion-autonomy-gate.sh +102 -0
- package/examples/attachment-traversal-guard.sh +118 -0
- package/examples/aup-block-pattern-logger.sh +161 -0
- package/examples/aup-false-positive-helper.sh +124 -0
- package/examples/aup-large-tool-output-warner.sh +282 -0
- package/examples/aup-retry-loop-guard.sh +229 -0
- package/examples/auth-expiry-reminder.sh +157 -0
- package/examples/auth-macos-sleep-detector.sh +185 -0
- package/examples/auth-path-detector.sh +171 -0
- package/examples/auth-status-checker.sh +157 -0
- package/examples/authorized-reconfirmation-detector.sh +195 -0
- package/examples/auto-approve-build.sh +39 -0
- package/examples/auto-approve-cargo.sh +31 -1
- package/examples/auto-approve-docker.sh +35 -0
- package/examples/auto-approve-git-read.sh +37 -14
- package/examples/auto-approve-go.sh +30 -1
- package/examples/auto-approve-gradle.sh +29 -1
- package/examples/auto-approve-make.sh +29 -1
- package/examples/auto-approve-maven.sh +29 -1
- package/examples/auto-approve-python.sh +41 -1
- package/examples/auto-approve-readonly-tools.sh +1 -0
- package/examples/auto-approve-readonly.sh +110 -33
- package/examples/auto-approve-ssh.sh +30 -1
- package/examples/auto-approve-test.sh +44 -0
- package/examples/auto-checkpoint.sh +1 -1
- package/examples/auto-compact-prep.sh +0 -0
- package/examples/auto-git-checkpoint.sh +0 -0
- package/examples/auto-mode-safe-commands.sh +53 -1
- package/examples/auto-mode-safety-enforcer.sh +151 -4
- package/examples/auto-push-session-branch.sh +22 -0
- package/examples/aws-production-guard.sh +13 -1
- package/examples/aws-region-guard.sh +1 -1
- package/examples/background-cost-launch-guard.sh +82 -0
- package/examples/background-task-guard.sh +12 -0
- package/examples/backup-before-refactor.sh +0 -0
- package/examples/banned-command-guard.sh +12 -0
- package/examples/bash-allowlist-secondary-check.sh +157 -0
- package/examples/bash-domain-allowlist.sh +12 -0
- package/examples/bash-fanout-bounded-rewriter.sh +191 -0
- package/examples/bash-heuristic-approver.sh +112 -10
- package/examples/bash-project-fence.sh +194 -0
- package/examples/bash-safety-auto-deny.sh +12 -0
- package/examples/bash-secret-output-detector.sh +44 -3
- package/examples/bash-trace-guard.sh +12 -0
- package/examples/bashrc-safety-check.sh +0 -0
- package/examples/bg-permission-prompt-warner.sh +182 -0
- package/examples/bg-task-cooldown-guard.sh +12 -0
- package/examples/binary-read-detector.sh +135 -0
- package/examples/binary-upload-guard.sh +12 -0
- package/examples/block-database-wipe.sh +35 -10
- package/examples/branch-name-check.sh +8 -3
- package/examples/branch-naming-convention.sh +0 -0
- package/examples/broad-find-guard.sh +12 -0
- package/examples/broad-prefix-session-trap-warner.sh +106 -0
- package/examples/bulk-file-delete-guard.sh +45 -0
- package/examples/bypass-mode-effective-verifier.sh +203 -0
- package/examples/cache-creation-drift-detector.sh +120 -0
- package/examples/cache-residue-detector.sh +195 -0
- package/examples/cache-tier-logger.sh +70 -0
- package/examples/cache-ttl-eviction-detector.sh +149 -0
- package/examples/cargo-publish-guard.sh +14 -1
- package/examples/case-insensitive-path-guard.sh +21 -2
- package/examples/case-sensitive-guard.sh +23 -2
- package/examples/cch-cache-guard.sh +0 -0
- package/examples/cch-sentinel-precommit-guard.sh +47 -0
- package/examples/check-abort-controller.sh +1 -1
- package/examples/check-accessibility.sh +0 -0
- package/examples/check-aria-labels.sh +0 -0
- package/examples/check-before-act-enforcer.sh +12 -0
- package/examples/check-charset-meta.sh +0 -0
- package/examples/check-cookie-flags.sh +0 -0
- package/examples/check-cors-config.sh +0 -0
- package/examples/check-csp-headers.sh +0 -0
- package/examples/check-csrf-protection.sh +0 -0
- package/examples/check-debounce.sh +1 -1
- package/examples/check-dependency-age.sh +0 -0
- package/examples/check-dependency-license.sh +0 -0
- package/examples/check-dockerfile-best-practice.sh +0 -0
- package/examples/check-error-boundaries.sh +0 -0
- package/examples/check-error-class.sh +1 -1
- package/examples/check-error-handling.sh +0 -0
- package/examples/check-error-logging.sh +1 -1
- package/examples/check-error-message.sh +0 -0
- package/examples/check-error-stack.sh +0 -0
- package/examples/check-favicon.sh +0 -0
- package/examples/check-git-hooks-compat.sh +0 -0
- package/examples/check-gitattributes.sh +0 -0
- package/examples/check-https-redirect.sh +0 -0
- package/examples/check-input-validation.sh +0 -0
- package/examples/check-lang-attribute.sh +0 -0
- package/examples/check-npm-scripts-exist.sh +0 -0
- package/examples/check-package-size.sh +0 -0
- package/examples/check-port-availability.sh +0 -0
- package/examples/check-promise-all.sh +1 -1
- package/examples/check-rate-limiting.sh +0 -0
- package/examples/check-return-types.sh +0 -0
- package/examples/check-semantic-versioning.sh +0 -0
- package/examples/check-suspense-fallback.sh +1 -1
- package/examples/check-test-exists.sh +0 -0
- package/examples/check-test-naming.sh +0 -0
- package/examples/check-timeout-cleanup.sh +1 -1
- package/examples/check-tls-version.sh +0 -0
- package/examples/check-unsubscribe.sh +1 -1
- package/examples/check-viewport-meta.sh +0 -0
- package/examples/check-worker-terminate.sh +1 -1
- package/examples/checkpoint-tamper-guard.sh +12 -0
- package/examples/chmod-guard.sh +12 -0
- package/examples/chown-guard.sh +24 -0
- package/examples/ci-workflow-guard.sh +6 -1
- package/examples/claim-verify-detector.sh +109 -0
- package/examples/claim-vs-caveat-checker.sh +77 -0
- package/examples/classifier-fallback-allow.sh +114 -40
- package/examples/claude-cache-gc.sh +1 -0
- package/examples/claude-code-version-pin-advisor.sh +183 -0
- package/examples/claude-md-reinjector.sh +129 -0
- package/examples/claude-md-size-monitor.sh +66 -0
- package/examples/claude-update-budget-guard.sh +123 -0
- package/examples/claude-update-smart.sh +113 -0
- package/examples/claudeignore-enforce-guard.sh +12 -0
- package/examples/claudemd-enforcer.sh +0 -0
- package/examples/claudemd-tool-prohibition.sh +128 -0
- package/examples/clear-command-confirm-guard.sh +32 -15
- package/examples/cli-config-pinning-detector.sh +162 -0
- package/examples/cliff-countdown-advisor.sh +96 -0
- package/examples/clipboard-secret-guard.sh +12 -0
- package/examples/closure-word-verify-gate.sh +150 -0
- package/examples/cloud-cli-guard.sh +39 -2
- package/examples/commit-all-scope-guard.sh +44 -0
- package/examples/commit-message-check.sh +1 -1
- package/examples/commit-message-quality.sh +6 -1
- package/examples/commitment-carry-forward-arrest.sh +361 -0
- package/examples/compact-alert-notification.sh +0 -0
- package/examples/compact-dispatch-watchdog.sh +149 -0
- package/examples/completion-claim-without-verification-detector.sh +207 -0
- package/examples/composer-guard.sh +12 -0
- package/examples/compound-bash-permission-resolver.sh +156 -0
- package/examples/compound-command-allow.sh +1 -1
- package/examples/compound-command-deny-enforcer.sh +183 -0
- package/examples/compound-inject-guard.sh +12 -0
- package/examples/concurrent-edit-lock.sh +12 -0
- package/examples/conflict-marker-guard.sh +12 -0
- package/examples/consecutive-error-breaker.sh +0 -0
- package/examples/console-log-count.sh +1 -0
- package/examples/context-compact-advisor.sh +29 -2
- package/examples/context-length-budget.sh +69 -0
- package/examples/context-threshold-alert.sh +12 -0
- package/examples/context-usage-drift-alert.sh +41 -13
- package/examples/conversation-history-guard.sh +12 -0
- package/examples/core-file-protect-guard.sh +12 -0
- package/examples/cors-star-warn.sh +0 -0
- package/examples/cost-incident-self-audit.sh +162 -0
- package/examples/cowork-claude-md-load-checker.sh +100 -0
- package/examples/cowork-fuse-staleness-watcher.sh +140 -0
- package/examples/cowork-hook-absence-warner.sh +167 -0
- package/examples/cowork-model-picker-advisor.sh +115 -0
- package/examples/credential-exfil-guard.sh +65 -4
- package/examples/credential-file-cat-guard.sh +17 -1
- package/examples/cron-create-receipt.sh +112 -0
- package/examples/cron-modification-guard.sh +12 -0
- package/examples/cross-product-mcp-spawn-detector.sh +178 -0
- package/examples/cwd-project-boundary-guard.sh +0 -0
- package/examples/daemon-zombie-worker-surfacer.sh +118 -0
- package/examples/daily-cost-guard.sh +164 -0
- package/examples/daily-usage-tracker.sh +0 -0
- package/examples/dangerous-pip-flag-guard.sh +12 -0
- package/examples/db-connect-guard.sh +13 -1
- package/examples/denied-action-retry-guard.sh +12 -0
- package/examples/deny-bypass-detector.sh +12 -0
- package/examples/deny-rule-integrity-verifier.sh +181 -0
- package/examples/dependency-install-guard.sh +12 -0
- package/examples/deploy-guard.sh +14 -2
- package/examples/deploy-path-verify-guard.sh +12 -0
- package/examples/deployment-readback-gate.sh +135 -0
- package/examples/deployment-readback-gh-adapter.sh +247 -0
- package/examples/deployment-verify-guard.sh +25 -2
- package/examples/destructive-db-script-write-guard.sh +166 -0
- package/examples/destructive-migration-write-guard.sh +163 -0
- package/examples/diff-size-guard.sh +12 -0
- package/examples/disabled-feature-toggle-advisor.sh +88 -0
- package/examples/disk-partition-guard.sh +12 -0
- package/examples/dispatch-allowlist-preflight.sh +301 -0
- package/examples/dispatch-liveness-watchdog.sh +216 -0
- package/examples/dispatch-receipt.sh +174 -0
- package/examples/django-migrate-guard.sh +12 -0
- package/examples/dns-config-guard.sh +12 -0
- package/examples/docker-dangerous-guard.sh +12 -0
- package/examples/docker-volume-guard.sh +0 -0
- package/examples/dockerfile-latest-guard.sh +1 -0
- package/examples/dotenv-anthropic-key-billing-guard.sh +99 -0
- package/examples/dotenv-commit-guard.sh +12 -0
- package/examples/dotenv-read-guard.sh +12 -0
- package/examples/dotfile-protection-guard.sh +12 -0
- package/examples/dotnet-build-on-edit.sh +1 -1
- package/examples/drizzle-migrate-guard.sh +27 -2
- package/examples/echo-probe-spam-detector.sh +176 -0
- package/examples/edit-counter-test-gate.sh +12 -0
- package/examples/edit-error-counter.sh +1 -1
- package/examples/edit-guard.sh +12 -0
- package/examples/edit-old-string-validator.sh +12 -0
- package/examples/edit-quote-ambiguity-guard.sh +97 -0
- package/examples/edit-retry-loop-guard.sh +0 -0
- package/examples/edit-verify.sh +0 -0
- package/examples/env-inline-secret-guard.sh +14 -2
- package/examples/env-naming-convention.sh +0 -0
- package/examples/env-prod-guard.sh +0 -0
- package/examples/env-required-check.sh +0 -0
- package/examples/env-source-guard.sh +12 -0
- package/examples/env-var-check.sh +24 -1
- package/examples/ephemeral-container-detector.sh +147 -0
- package/examples/error-memory-guard.sh +12 -0
- package/examples/evidence-claim-gate.sh +187 -0
- package/examples/exploration-budget-guard.sh +12 -0
- package/examples/expo-eject-guard.sh +13 -0
- package/examples/extended-thinking-loop-guard.sh +139 -0
- package/examples/extended-thinking-resume-warning.sh +119 -0
- package/examples/extended-thinking-tool-use-mismatch-detector.sh +212 -0
- package/examples/fabricated-command-detector.sh +145 -0
- package/examples/false-disk-full-guard.sh +63 -0
- package/examples/feature-deprecation-detector.sh +109 -0
- package/examples/file-change-tracker.sh +1 -1
- package/examples/file-change-undo-tracker.sh +0 -0
- package/examples/file-edit-backup.sh +63 -14
- package/examples/file-reference-check.sh +0 -0
- package/examples/file-size-limit.sh +12 -0
- package/examples/financial-operation-guard.sh +12 -0
- package/examples/firewall-guard.sh +12 -0
- package/examples/fish-shell-wrapper.sh +125 -7
- package/examples/five-hundred-milestone.sh +1 -0
- package/examples/flask-static-route-guard.sh +89 -0
- package/examples/forbidden-response-phrase-detector.sh +161 -0
- package/examples/gem-push-guard.sh +13 -0
- package/examples/gh-cli-destructive-guard.sh +13 -1
- package/examples/git-checkout-safety-guard.sh +12 -0
- package/examples/git-checkout-uncommitted-guard.sh +12 -0
- package/examples/git-config-guard.sh +12 -0
- package/examples/git-crypt-worktree-guard.sh +12 -0
- package/examples/git-filter-repo-guard.sh +56 -0
- package/examples/git-history-rewrite-guard.sh +12 -0
- package/examples/git-hook-bypass-guard.sh +0 -0
- package/examples/git-maintenance-guard.sh +83 -0
- package/examples/git-merge-conflict-prevent.sh +0 -0
- package/examples/git-message-length-check.sh +0 -0
- package/examples/git-message-length.sh +0 -0
- package/examples/git-operations-require-approval.sh +68 -14
- package/examples/git-pack-temp-cleanup-guard.sh +102 -0
- package/examples/git-push-blast-radius-guard.sh +218 -0
- package/examples/git-remote-guard.sh +24 -3
- package/examples/git-rm-orphan-wipe-guard.sh +85 -0
- package/examples/git-stash-before-checkout.sh +12 -0
- package/examples/git-stash-before-danger.sh +0 -0
- package/examples/git-submodule-guard.sh +69 -2
- package/examples/git-tag-guard.sh +12 -0
- package/examples/github-actions-secret-guard.sh +0 -0
- package/examples/gitignore-check.sh +0 -0
- package/examples/gitops-drift-guard.sh +12 -0
- package/examples/go-mod-tidy-warn.sh +1 -0
- package/examples/go-vet-after-edit.sh +12 -0
- package/examples/goal-iteration-limit-warner.sh +152 -0
- package/examples/grep-nul-false-negative-guard.sh +30 -0
- package/examples/growthbook-flag-monitor.sh +257 -0
- package/examples/hallucination-url-check.sh +1 -1
- package/examples/halt-signal-detector.sh +135 -0
- package/examples/handoff-on-clear.sh +65 -0
- package/examples/hardcoded-ip-guard.sh +1 -0
- package/examples/headless-empty-result-guard.sh +0 -0
- package/examples/headless-stop-guard.sh +0 -0
- package/examples/helm-install-guard.sh +2 -1
- package/examples/home-critical-bash-guard.sh +17 -1
- package/examples/hook-debug-wrapper.sh +6 -2
- package/examples/hook-permission-fixer.sh +0 -0
- package/examples/hook-self-disable-detector.sh +99 -0
- package/examples/hook-stdout-sanitizer.sh +6 -2
- package/examples/hook-tamper-guard.sh +12 -0
- package/examples/idle-session-cost-alert.sh +0 -0
- package/examples/image-dimension-guard.sh +109 -0
- package/examples/image-file-validator.sh +0 -0
- package/examples/iteration-quality-degradation-detector.sh +170 -0
- package/examples/java-compile-on-edit.sh +1 -1
- package/examples/json-syntax-check.sh +0 -0
- package/examples/k8s-production-guard.sh +13 -1
- package/examples/kill-process-guard.sh +12 -0
- package/examples/kubernetes-guard.sh +13 -1
- package/examples/laravel-artisan-guard.sh +13 -0
- package/examples/large-file-guard.sh +1 -1
- package/examples/log-level-guard.sh +0 -0
- package/examples/log-truncation-guard.sh +12 -0
- package/examples/long-session-malformed-tool-call-detector.sh +183 -0
- package/examples/loop-detector.sh +12 -0
- package/examples/magic-number-warn.sh +1 -0
- package/examples/main-branch-warn.sh +12 -0
- package/examples/markdown-link-check.sh +0 -0
- package/examples/max-concurrent-agents.sh +12 -0
- package/examples/max-edit-size-guard.sh +13 -0
- package/examples/max-file-count-guard.sh +0 -0
- package/examples/max-file-delete-count.sh +0 -0
- package/examples/max-function-length.sh +1 -0
- package/examples/max-import-count.sh +0 -0
- package/examples/max-subagent-count.sh +0 -0
- package/examples/mcp-config-freeze.sh +12 -0
- package/examples/mcp-config-poisoning-audit.sh +150 -0
- package/examples/mcp-data-boundary.sh +1 -1
- package/examples/mcp-misdiagnosis-arrest.sh +209 -0
- package/examples/mcp-orphan-leak-warner.sh +49 -0
- package/examples/mcp-permissions-ask-warner.sh +151 -0
- package/examples/mcp-routine-approval-detector.sh +154 -0
- package/examples/mcp-server-allowlist.sh +12 -0
- package/examples/mcp-server-guard.sh +12 -0
- package/examples/mcp-startup-bloat-detector.sh +87 -0
- package/examples/mcp-stdio-compatibility-test.sh +153 -0
- package/examples/mcp-tool-audit-log.sh +0 -0
- package/examples/mcp-tool-guard.sh +101 -1
- package/examples/mcp-warmup-wait.sh +0 -0
- package/examples/memory-chain-audit.sh +56 -0
- package/examples/memory-orphan-detector.sh +188 -0
- package/examples/memory-write-guard.sh +99 -17
- package/examples/migration-verify-guard.sh +12 -0
- package/examples/model-swap-suggester.sh +177 -0
- package/examples/model-version-alert.sh +5 -1
- package/examples/model-version-lock.sh +63 -0
- package/examples/move-delete-sequence-guard.sh +33 -2
- package/examples/multi-file-plan-routing-gate.sh +192 -0
- package/examples/multi-vendor-concurrent-warner.sh +108 -0
- package/examples/multi-window-auth-drift-detector.sh +183 -0
- package/examples/multiline-command-approver.sh +161 -23
- package/examples/nested-background-agent-guard.sh +109 -0
- package/examples/nested-spawn-inflight-guard.sh +178 -0
- package/examples/network-exfil-guard.sh +12 -0
- package/examples/network-guard.sh +12 -0
- package/examples/network-interface-guard.sh +12 -0
- package/examples/nextjs-env-guard.sh +1 -1
- package/examples/no-absolute-import.sh +0 -0
- package/examples/no-alert-confirm-prompt.sh +0 -0
- package/examples/no-anonymous-default-export.sh +0 -0
- package/examples/no-any-type.sh +0 -0
- package/examples/no-any-typescript.sh +1 -0
- package/examples/no-ask-human.sh +12 -0
- package/examples/no-assignment-in-condition.sh +0 -0
- package/examples/no-base64-exfil.sh +12 -0
- package/examples/no-callback-hell.sh +0 -0
- package/examples/no-circular-dependency.sh +0 -0
- package/examples/no-cleartext-storage.sh +0 -0
- package/examples/no-commented-code.sh +0 -0
- package/examples/no-commit-fixup.sh +0 -0
- package/examples/no-console-assert.sh +0 -0
- package/examples/no-console-error-swallow.sh +0 -0
- package/examples/no-console-in-prod.sh +0 -0
- package/examples/no-console-log-commit.sh +12 -0
- package/examples/no-console-log.sh +0 -0
- package/examples/no-console-time.sh +0 -0
- package/examples/no-cors-wildcard.sh +4 -1
- package/examples/no-curl-upload.sh +0 -0
- package/examples/no-dangerouslySetInnerHTML.sh +0 -0
- package/examples/no-dangling-await.sh +1 -0
- package/examples/no-debug-commit.sh +12 -0
- package/examples/no-debug-in-commit.sh +0 -0
- package/examples/no-deep-nesting.sh +0 -0
- package/examples/no-deep-relative-import.sh +1 -0
- package/examples/no-default-credentials.sh +0 -0
- package/examples/no-deploy-friday.sh +13 -1
- package/examples/no-disabled-test.sh +0 -0
- package/examples/no-document-write.sh +0 -0
- package/examples/no-empty-function.sh +0 -0
- package/examples/no-eval-in-template.sh +0 -0
- package/examples/no-eval-template.sh +3 -1
- package/examples/no-eval.sh +0 -0
- package/examples/no-exec-user-input.sh +0 -0
- package/examples/no-fixme-ship.sh +12 -0
- package/examples/no-floating-promises.sh +0 -0
- package/examples/no-force-flag.sh +22 -5
- package/examples/no-force-install.sh +0 -0
- package/examples/no-git-amend.sh +12 -0
- package/examples/no-git-rebase-public.sh +0 -0
- package/examples/no-global-install.sh +12 -0
- package/examples/no-global-state.sh +0 -0
- package/examples/no-hardcoded-port.sh +1 -0
- package/examples/no-hardcoded-url.sh +0 -0
- package/examples/no-helmet-missing.sh +0 -0
- package/examples/no-http-url.sh +1 -0
- package/examples/no-http-without-https.sh +0 -0
- package/examples/no-inline-style.sh +0 -0
- package/examples/no-inline-styles.sh +1 -0
- package/examples/no-innerhtml.sh +0 -0
- package/examples/no-install-global.sh +12 -0
- package/examples/no-jwt-in-url.sh +0 -0
- package/examples/no-large-commit.sh +0 -0
- package/examples/no-localhost-expose.sh +0 -0
- package/examples/no-magic-number.sh +0 -0
- package/examples/no-md5-sha1.sh +0 -0
- package/examples/no-mixed-line-endings.sh +8 -1
- package/examples/no-mutation-in-reducer.sh +0 -0
- package/examples/no-nested-ternary.sh +0 -0
- package/examples/no-network-exfil.sh +0 -0
- package/examples/no-open-redirect.sh +0 -0
- package/examples/no-output-truncation.sh +12 -0
- package/examples/no-package-downgrade.sh +0 -0
- package/examples/no-package-lock-edit.sh +12 -0
- package/examples/no-path-join-user-input.sh +0 -0
- package/examples/no-port-bind.sh +0 -0
- package/examples/no-process-exit.sh +0 -0
- package/examples/no-prototype-pollution.sh +0 -0
- package/examples/no-push-without-ci.sh +0 -0
- package/examples/no-push-without-tests.sh +12 -0
- package/examples/no-raw-password-in-url.sh +0 -0
- package/examples/no-root-user-docker.sh +1 -0
- package/examples/no-root-write.sh +12 -0
- package/examples/no-secrets-in-args.sh +4 -1
- package/examples/no-secrets-in-logs.sh +0 -0
- package/examples/no-sensitive-log.sh +0 -0
- package/examples/no-sleep-in-hooks.sh +0 -0
- package/examples/no-star-import-python.sh +1 -0
- package/examples/no-string-concat-sql.sh +0 -0
- package/examples/no-sudo-guard.sh +12 -0
- package/examples/no-sync-fs.sh +0 -0
- package/examples/no-todo-in-merge.sh +0 -0
- package/examples/no-todo-in-production.sh +1 -0
- package/examples/no-todo-without-issue.sh +0 -0
- package/examples/no-unused-import.sh +0 -0
- package/examples/no-var-keyword.sh +0 -0
- package/examples/no-verify-blocker.sh +12 -0
- package/examples/no-wget-piped-bash.sh +12 -0
- package/examples/no-wildcard-cors.sh +0 -0
- package/examples/no-wildcard-delete.sh +0 -0
- package/examples/no-wildcard-import.sh +0 -0
- package/examples/no-with-statement.sh +0 -0
- package/examples/no-write-outside-src.sh +0 -0
- package/examples/no-xml-external-entity.sh +0 -0
- package/examples/non-english-quality-warner.sh +156 -0
- package/examples/notify-waiting.sh +1 -1
- package/examples/npm-audit-warn.sh +0 -0
- package/examples/npm-global-install-guard.sh +12 -0
- package/examples/npm-publish-guard.sh +12 -0
- package/examples/npm-script-injection.sh +0 -0
- package/examples/npm-supply-chain-guard.sh +0 -0
- package/examples/nuxt-config-guard.sh +1 -0
- package/examples/oauth-refresh-monitor.sh +210 -0
- package/examples/opus-degradation-tracker.sh +187 -0
- package/examples/opus48-routine-task-warning.sh +196 -0
- package/examples/opus48-thinking-wedge-advisor.sh +143 -0
- package/examples/output-credential-scan.sh +1 -1
- package/examples/output-secret-mask.sh +31 -9
- package/examples/output-token-spike-detector.sh +145 -0
- package/examples/package-json-guard.sh +12 -0
- package/examples/package-lock-frozen.sh +12 -0
- package/examples/parallel-batch-size-limiter.sh +121 -0
- package/examples/parallel-cascade-detector.sh +116 -0
- package/examples/partial-view-claim-arrest.sh +174 -0
- package/examples/path-deny-bash-guard.sh +12 -0
- package/examples/path-traversal-guard.sh +12 -0
- package/examples/per-prompt-token-cap.sh +124 -0
- package/examples/permission-audit-log.sh +1 -1
- package/examples/permission-denial-enforcer.sh +12 -0
- package/examples/permission-entry-validator.sh +0 -0
- package/examples/persisted-1m-model-advisor.sh +88 -0
- package/examples/php-lint-on-edit.sh +1 -1
- package/examples/pii-upload-guard.sh +12 -0
- package/examples/pip-publish-guard.sh +13 -0
- package/examples/pip-requirements-guard.sh +12 -0
- package/examples/pip-venv-required.sh +12 -0
- package/examples/plan-mode-edit-guard.sh +12 -0
- package/examples/plan-mode-enforcer.sh +12 -0
- package/examples/plan-mode-strict-guard.sh +12 -0
- package/examples/plugin-hooks-json-bloat-detector.sh +169 -0
- package/examples/plugin-process-cleanup.sh +0 -0
- package/examples/polyglot-rm-guard.sh +12 -0
- package/examples/post-compact-safety.sh +12 -0
- package/examples/post-edit-disk-verify.sh +152 -0
- package/examples/powershell-remove-item-guard.sh +85 -0
- package/examples/pr-description-check.sh +0 -0
- package/examples/pr-duplicate-guard.sh +13 -0
- package/examples/pre-bash-sed-line-ending-windows.sh +87 -0
- package/examples/pre-compact-knowledge-save.sh +0 -0
- package/examples/pre-compact-transcript-backup.sh +0 -0
- package/examples/pre-execution-claim-detector.sh +179 -0
- package/examples/prefer-builtin-tools.sh +10 -1
- package/examples/prefer-const.sh +0 -0
- package/examples/prefer-dedicated-tools.sh +12 -0
- package/examples/prefer-optional-chaining.sh +0 -0
- package/examples/prisma-migrate-guard.sh +24 -7
- package/examples/production-port-kill-guard.sh +12 -0
- package/examples/prompt-injection-guard.sh +2 -1
- package/examples/prompt-usage-logger.sh +0 -0
- package/examples/protect-claudemd.sh +12 -0
- package/examples/protect-dotfiles.sh +12 -0
- package/examples/proxy-capture-suggester.sh +159 -0
- package/examples/public-artefact-socratic-narrowing.sh +232 -0
- package/examples/public-repo-push-guard.sh +12 -0
- package/examples/push-requires-test-pass-record.sh +0 -0
- package/examples/push-requires-test-pass.sh +12 -0
- package/examples/quota-anomaly-detector.sh +173 -0
- package/examples/quota-reset-audit.sh +58 -0
- package/examples/quoted-flag-approver.sh +99 -10
- package/examples/rails-migration-guard.sh +12 -0
- package/examples/rate-limit-guard.sh +0 -0
- package/examples/read-all-files-enforcer.sh +0 -0
- package/examples/read-budget-guard.sh +12 -0
- package/examples/read-loop-detector.sh +59 -0
- package/examples/read-once-guard.sh +96 -0
- package/examples/read-only-mode.sh +12 -0
- package/examples/readme-exists-check.sh +0 -0
- package/examples/record-read-coverage.sh +73 -0
- package/examples/redirect-fragment-warner.sh +149 -0
- package/examples/redis-flushall-guard.sh +13 -0
- package/examples/redundant-read-blocker.sh +132 -0
- package/examples/refusal-arrest-gate.sh +248 -0
- package/examples/registry-publish-guard.sh +13 -1
- package/examples/remote-control-billing-classifier.sh +135 -0
- package/examples/replace-all-guard.sh +12 -0
- package/examples/repo-visibility-guard.sh +12 -0
- package/examples/reroute-after-block-guard.sh +150 -0
- package/examples/response-budget-guard.sh +0 -0
- package/examples/resume-drift-watcher.sh +57 -0
- package/examples/rg-replace-flag-detector.sh +125 -0
- package/examples/rhetorical-verification-prompt-detector.sh +102 -0
- package/examples/ripgrep-permission-fix.sh +0 -0
- package/examples/rm-safety-net.sh +151 -8
- package/examples/role-tool-guard.sh +12 -0
- package/examples/route-handler-emptiness-gate.sh +324 -0
- package/examples/ruby-lint-on-edit.sh +1 -1
- package/examples/runtime-binary-change-detector.sh +102 -0
- package/examples/same-command-repeat-detector.sh +196 -0
- package/examples/same-correction-arrest.sh +169 -0
- package/examples/sandbox-denywrite-enforcer.sh +78 -0
- package/examples/sandbox-relative-path-audit.sh +83 -25
- package/examples/sandbox-write-verify.sh +12 -0
- package/examples/schema-migration-guard.sh +0 -0
- package/examples/scope-expansion-receipt.sh +178 -0
- package/examples/scope-guard.sh +88 -9
- package/examples/secret-file-read-guard.sh +12 -0
- package/examples/secret-file-write-guard.sh +150 -0
- package/examples/self-modify-bypass-guard.sh +0 -0
- package/examples/sensitive-file-read-guard.sh +23 -3
- package/examples/sensitive-log-guard.sh +1 -0
- package/examples/server-side-prompt-injection-detector.sh +69 -0
- package/examples/session-agent-cost-limiter.sh +12 -0
- package/examples/session-backup-on-start.sh +1 -1
- package/examples/session-cost-alert.sh +12 -0
- package/examples/session-drift-guard.sh +12 -0
- package/examples/session-duration-guard.sh +25 -2
- package/examples/session-end-logger.sh +0 -0
- package/examples/session-health-monitor.sh +0 -0
- package/examples/session-index-repair.sh +1 -1
- package/examples/session-memory-watchdog.sh +1 -0
- package/examples/session-permission-reset-guard.sh +12 -0
- package/examples/session-persistence-verifier.sh +93 -0
- package/examples/session-plugin-pin-watch.sh +68 -0
- package/examples/session-rate-monitor.sh +176 -0
- package/examples/session-resume-env-fix.sh +0 -0
- package/examples/session-start-quota-status.sh +193 -0
- package/examples/session-start-safety-check.sh +55 -3
- package/examples/session-state-saver.sh +0 -0
- package/examples/session-summary-stop.sh +1 -1
- package/examples/session-summary.sh +0 -0
- package/examples/session-token-counter.sh +1 -1
- package/examples/settings-hooks-key-restorer.sh +99 -0
- package/examples/settings-json-health-check.sh +57 -0
- package/examples/settings-json-model-guard.sh +0 -0
- package/examples/settings-regression-tester.sh +188 -0
- package/examples/shell-config-truncation-guard.sh +12 -0
- package/examples/shell-wrapper-guard.sh +12 -0
- package/examples/skill-cumulative-size-detector.sh +104 -0
- package/examples/skill-description-drop-detector.sh +148 -0
- package/examples/skill-gate.sh +0 -0
- package/examples/skill-truncation-detector.sh +154 -0
- package/examples/skills-context-recorder.sh +167 -0
- package/examples/skills-load-verifier.sh +96 -0
- package/examples/skills-settings-validator.sh +139 -0
- package/examples/sonnet-45-deprecation-helper.sh +85 -0
- package/examples/spec-file-scope-guard.sh +12 -0
- package/examples/spring-profile-guard.sh +1 -0
- package/examples/spurious-malformed-notice-detector.sh +247 -0
- package/examples/sql-bulk-delete-warn.sh +88 -0
- package/examples/sql-injection-detect.sh +0 -0
- package/examples/ssh-key-protect.sh +12 -0
- package/examples/staged-secret-scan.sh +22 -1
- package/examples/stale-temp-settings-detector.sh +86 -0
- package/examples/standing-rule-session-surfacer.sh +137 -0
- package/examples/stop-hook-sigterm-wrapper.sh +182 -0
- package/examples/stop-transcript-write-health.sh +64 -0
- package/examples/strict-allowlist.sh +57 -15
- package/examples/strip-coauthored-by.sh +50 -10
- package/examples/subagent-blast-radius-guard.sh +184 -0
- package/examples/subagent-boundary-precheck.sh +126 -0
- package/examples/subagent-budget-guard.sh +12 -0
- package/examples/subagent-claudemd-inject.sh +0 -0
- package/examples/subagent-closure-verify-gate.sh +164 -0
- package/examples/subagent-destructive-git-guard.sh +120 -0
- package/examples/subagent-error-detector.sh +0 -0
- package/examples/subagent-forged-system-reminder-guard.sh +156 -0
- package/examples/subagent-identity-leak-guard.sh +102 -0
- package/examples/subagent-identity-reassertion.sh +51 -0
- package/examples/subagent-inheritance-tester.sh +179 -0
- package/examples/subagent-permission-mode-guard.sh +110 -0
- package/examples/subagent-scope-guard.sh +12 -0
- package/examples/subagent-spawn-verification-enforcer.sh +102 -0
- package/examples/subagent-tool-allowlist-enforcer.sh +101 -0
- package/examples/subagent-tool-call-limiter.sh +87 -15
- package/examples/subcommand-chain-guard.sh +12 -0
- package/examples/subscription-api-billing-warner.sh +160 -0
- package/examples/subscription-bypass-detector.sh +152 -0
- package/examples/svelte-lint-on-edit.sh +1 -0
- package/examples/swift-build-on-edit.sh +1 -1
- package/examples/symlink-guard.sh +27 -2
- package/examples/symlink-protect.sh +1 -0
- package/examples/system-dir-protection-guard.sh +73 -8
- package/examples/system-message-workaround.sh +38 -13
- package/examples/system-package-guard.sh +12 -0
- package/examples/systemd-service-guard.sh +12 -0
- package/examples/task-integrity-guard.sh +12 -0
- package/examples/temp-file-cleanup.sh +1 -1
- package/examples/temporal-suggestion-detector.sh +135 -0
- package/examples/terraform-guard.sh +27 -6
- package/examples/test-after-edit.sh +1 -1
- package/examples/test-before-push.sh +12 -0
- package/examples/test-coverage-reminder.sh +24 -1
- package/examples/thinking-budget-effort-mismatch-detector.sh +149 -0
- package/examples/timezone-guard.sh +0 -0
- package/examples/tmp-output-size-guard.sh +0 -0
- package/examples/todo-check.sh +1 -1
- package/examples/token-budget-guard.sh +12 -0
- package/examples/token-budget-per-task.sh +12 -0
- package/examples/token-usage-tracker.sh +7 -1
- package/examples/tokenizer-ratio-alert-corpus.sh +90 -0
- package/examples/tokenizer-ratio-alert.sh +104 -0
- package/examples/tool-call-rate-limiter.sh +0 -0
- package/examples/tool-result-correlation-checker.sh +167 -0
- package/examples/tool-result-size-guard.sh +132 -0
- package/examples/tool-retry-budget-guard.sh +12 -0
- package/examples/transcript-contamination-detector.sh +138 -0
- package/examples/trustfall-mcp-injection-guard.sh +103 -0
- package/examples/ultrareview-large-diff-advisor.sh +184 -0
- package/examples/unbounded-output-guard.sh +94 -0
- package/examples/uncommitted-changes-stop.sh +1 -0
- package/examples/uncommitted-discard-guard.sh +23 -5
- package/examples/uncommitted-work-guard.sh +12 -0
- package/examples/usage-warn.sh +0 -0
- package/examples/user-account-guard.sh +12 -0
- package/examples/userprompt-submit-receipt.sh +123 -0
- package/examples/variable-expansion-guard.sh +12 -0
- package/examples/verify-after-publish-reminder.sh +93 -0
- package/examples/verify-before-commit.sh +12 -0
- package/examples/version-bump-detector.sh +156 -0
- package/examples/version-regression-warner.sh +144 -0
- package/examples/vue-lint-on-edit.sh +1 -0
- package/examples/warn-cron-cost-trap.sh +173 -0
- package/examples/webfetch-runaway-guard.sh +89 -0
- package/examples/wellness-break-reminder.sh +118 -0
- package/examples/windows-destructive-command-guard.sh +177 -0
- package/examples/windows-path-guard.sh +12 -0
- package/examples/windows-python-stub-detector.sh +63 -0
- package/examples/work-hours-guard.sh +12 -0
- package/examples/working-directory-fence.sh +12 -0
- package/examples/workspace-lease-guard.sh +205 -0
- package/examples/worktree-create-log.sh +1 -0
- package/examples/worktree-delete-guard.sh +12 -0
- package/examples/worktree-edit-boundary-guard.sh +127 -0
- package/examples/worktree-escape-write-guard.sh +114 -0
- package/examples/worktree-hook-linker.sh +0 -0
- package/examples/worktree-hooks-path-fix.sh +111 -0
- package/examples/worktree-parent-write-guard.sh +43 -0
- package/examples/worktree-project-unify.sh +2 -1
- package/examples/worktree-remove-uncommitted-guard.sh +13 -0
- package/examples/worktree-unmerged-guard.sh +7 -1
- package/examples/write-byte-integrity-verifier.sh +190 -0
- package/examples/write-empty-content-guard.sh +67 -0
- package/examples/write-nul-corruption-detector.sh +61 -0
- package/examples/write-overwrite-confirm.sh +160 -14
- package/examples/write-secret-guard.sh +27 -5
- package/examples/write-shrink-guard.sh +12 -0
- package/examples/write-test-ratio.sh +0 -0
- package/examples/wsl-host-disk-space-guard.sh +97 -0
- package/examples/xml-format-leak-detector.sh +266 -0
- package/examples/yaml-syntax-check.sh +12 -0
- package/hooks/hooks.json +6 -6
- package/index.mjs +1718 -183
- package/mission.md +2 -0
- package/package.json +4 -4
- package/plugins/credential-guard/.claude-plugin/plugin.json +9 -7
- package/plugins/git-protection/.claude-plugin/plugin.json +10 -8
- package/plugins/safety-essentials/.claude-plugin/plugin.json +9 -7
- package/plugins/token-guard/.claude-plugin/plugin.json +10 -8
- package/scripts/agents-md-sync-setup.sh +156 -0
- package/scripts/autonomy-blocked-summary.sh +148 -0
- package/scripts/build-search-index.py +43 -0
- package/scripts/build-sitemap.py +119 -0
- package/scripts/cc-doctor.sh +192 -0
- package/scripts/check-hook-event-names.py +127 -0
- package/scripts/check-misfire-instrument.sh +64 -0
- package/scripts/claim-verify-audit.sh +467 -0
- package/scripts/cowork-claudemd-helper.sh +136 -0
- package/scripts/june-15-deprecated-model-scan.sh +111 -0
- package/scripts/measure-heredoc-shapes.sh +67 -0
- package/scripts/measure-literal-match-misfire.sh +110 -0
- package/scripts/probe-scope-guard-branches.sh +48 -0
- package/scripts/probe-skip-line-both-ways.sh +65 -0
- package/scripts/receipts-aggregate.py +199 -0
- package/scripts/session-forensic-audit.py +360 -0
- package/scripts.json +9 -9
- package/scripts.json.bak-2026-07-27-find +13 -0
- package/skills/safety-setup/SKILL.md +5 -5
- package/tests/approve-side-remaining-two.test.sh +129 -0
- package/tests/approver-list-granularity.test.sh +145 -0
- package/tests/askuserquestion-autonomy-gate.test.sh +181 -0
- package/tests/audit-ci-gate.test.sh +87 -0
- package/tests/audit-cross-layer-claudemd.test.sh +170 -0
- package/tests/audit-fail-open-parse.test.sh +100 -0
- package/tests/auto-approve-compound-tail.test.sh +194 -0
- package/tests/auto-mode-path-invoked-commands.test.sh +89 -0
- package/tests/auto-mode-quoted-targets.test.sh +127 -0
- package/tests/auto-mode-unquoted-targets.test.sh +112 -0
- package/tests/bash-secret-output-detector-detects.test.sh +102 -0
- package/tests/blindspots-cross-layer.test.sh +177 -0
- package/tests/block-database-wipe.test.sh +64 -0
- package/tests/bundled-short-flags-bypass.test.sh +85 -0
- package/tests/cd-git-allow-compound-tail.test.sh +67 -0
- package/tests/chown-guard-filesystem-root.test.sh +64 -0
- package/tests/ci-workflow-guard-skip-rule.test.sh +115 -0
- package/tests/compound-deny-safe-rm-targets.test.sh +105 -0
- package/tests/core-scripts-parser-fallback.test.sh +140 -0
- package/tests/destructive-guard-bare-glob.test.sh +74 -0
- package/tests/destructive-guard-every-operand.test.sh +100 -0
- package/tests/destructive-guard-find-deletion.test.sh +114 -0
- package/tests/destructive-guard-flag-order.test.sh +106 -0
- package/tests/destructive-guard-mentions-vs-invocations.test.sh +107 -0
- package/tests/destructive-guard-quoted-target.test.sh +89 -0
- package/tests/destructive-guard-separators.test.sh +105 -0
- package/tests/destructive-guard-variable-target.test.sh +98 -0
- package/tests/destructive-guard-wrapped-command.test.sh +91 -0
- package/tests/doctor-hook-disabling-env.test.sh +92 -0
- package/tests/doctor-misspelled-settings-keys.test.sh +106 -0
- package/tests/example-guards-wrapped-command.test.sh +169 -0
- package/tests/file-edit-backup.test.sh +93 -0
- package/tests/git-filter-repo-guard.test.sh +60 -0
- package/tests/git-global-options-bypass.test.sh +141 -0
- package/tests/git-invocation-prefixes-all-guards.test.sh +114 -0
- package/tests/git-maintenance-guard.test.sh +83 -0
- package/tests/git-pack-temp-cleanup-guard.test.sh +133 -0
- package/tests/git-rm-orphan-wipe-guard.test.sh +66 -0
- package/tests/git-submodule-guard.test.sh +50 -0
- package/tests/grep-pcre-portability.test.sh +155 -0
- package/tests/hook-registration-matches-input.test.sh +73 -0
- package/tests/hook-trigger-matches-envelope.test.sh +178 -0
- package/tests/install-does-not-claim-protection.test.sh +110 -0
- package/tests/install-example-standalone-tools.test.sh +139 -0
- package/tests/line-continuation-bypass.test.sh +114 -0
- package/tests/mcp-config-poisoning-audit.test.sh +106 -0
- package/tests/nested-background-agent-guard.test.sh +58 -0
- package/tests/no-unqualified-safety-claims.test.sh +114 -0
- package/tests/option-eating-grep-patterns.test.sh +130 -0
- package/tests/outdated-core-guards.test.sh +134 -0
- package/tests/outdated-report.test.sh +155 -0
- package/tests/output-secret-mask-warns.test.sh +73 -0
- package/tests/plugin-hooks-fail-open-under-sh.test.sh +165 -0
- package/tests/plugins-word-order.test.sh +126 -0
- package/tests/powershell-remove-item-guard.test.sh +85 -0
- package/tests/project-dir-naming.test.sh +103 -0
- package/tests/quoted-safe-targets-and-mentions.test.sh +190 -0
- package/tests/reroute-after-block-guard.test.sh +104 -0
- package/tests/secret-guard-documented-promises.test.sh +97 -0
- package/tests/session-plugin-pin-watch.test.sh +45 -0
- package/tests/settings-unreadable-refuses-to-write.test.sh +95 -0
- package/tests/shield-no-silent-adoption.test.py +110 -0
- package/tests/shield-no-silent-adoption.test.sh +46 -0
- package/tests/stop-transcript-write-health.test.sh +46 -0
- package/tests/system-dir-guard-root-erased.test.sh +66 -0
- package/tests/test-account-billing-log.sh +100 -0
- package/tests/test-account-routing-preflight.sh +77 -0
- package/tests/test-agent-sdk-credit-pool-monitor.sh +157 -0
- package/tests/test-agent-view-quota-warn.sh +184 -0
- package/tests/test-agents-md-edit-drift-warner.sh +176 -0
- package/tests/test-agents-md-loader.sh +204 -0
- package/tests/test-agents-md-sync-checker.sh +125 -0
- package/tests/test-ai-slop-punctuation-arrest.sh +280 -0
- package/tests/test-allowlist.sh +60 -0
- package/tests/test-always-allow-pattern-suggester.sh +147 -0
- package/tests/test-anthropic-base-url-guard.sh +88 -0
- package/tests/test-articulated-scope-capture.sh +139 -0
- package/tests/test-attachment-traversal-guard.sh +168 -0
- package/tests/test-aup-block-pattern-logger.sh +315 -0
- package/tests/test-aup-false-positive-helper.sh +188 -0
- package/tests/test-aup-large-tool-output-warner.sh +370 -0
- package/tests/test-aup-retry-loop-guard.sh +341 -0
- package/tests/test-auth-expiry-reminder.sh +303 -0
- package/tests/test-auth-macos-sleep-detector.sh +254 -0
- package/tests/test-auth-path-detector.sh +232 -0
- package/tests/test-auth-status-checker.sh +233 -0
- package/tests/test-authorized-reconfirmation-detector.sh +280 -0
- package/tests/test-background-cost-launch-guard.sh +62 -0
- package/tests/test-bash-allowlist-secondary-check.sh +143 -0
- package/tests/test-bash-fanout-bounded-rewriter.sh +186 -0
- package/tests/test-bash-project-fence.sh +127 -0
- package/tests/test-bg-permission-prompt-warner.sh +221 -0
- package/tests/test-binary-read-detector.sh +173 -0
- package/tests/test-broad-prefix-session-trap-warner.sh +167 -0
- package/tests/test-bulk-delete-target-resolution.sh +49 -0
- package/tests/test-bypass-mode-effective-verifier.sh +179 -0
- package/tests/test-cache-creation-drift-detector.sh +244 -0
- package/tests/test-cache-residue-detector.sh +429 -0
- package/tests/test-cache-tier-logger.sh +59 -0
- package/tests/test-cache-ttl-eviction-detector.sh +282 -0
- package/tests/test-cch-sentinel-precommit-guard.sh +64 -0
- package/tests/test-claim-verify-detector.sh +222 -0
- package/tests/test-claim-vs-caveat-checker.sh +134 -0
- package/tests/test-claude-code-version-pin-advisor.sh +353 -0
- package/tests/test-claude-md-reinjector.sh +173 -0
- package/tests/test-claude-md-size-monitor.sh +107 -0
- package/tests/test-claude-update-budget-guard.sh +132 -0
- package/tests/test-claude-update-smart.sh +91 -0
- package/tests/test-claudemd-tool-prohibition.sh +239 -0
- package/tests/test-cli-config-pinning-detector.sh +233 -0
- package/tests/test-cliff-countdown-advisor.sh +138 -0
- package/tests/test-closure-word-verify-gate.sh +158 -0
- package/tests/test-commit-all-scope-guard.sh +73 -0
- package/tests/test-commitment-carry-forward-arrest.sh +250 -0
- package/tests/test-compact-dispatch-watchdog.sh +147 -0
- package/tests/test-completion-claim-without-verification-detector.sh +326 -0
- package/tests/test-compound-bash-permission-resolver.sh +264 -0
- package/tests/test-compound-command-deny-enforcer.sh +67 -0
- package/tests/test-context-length-budget.sh +68 -0
- package/tests/test-context-usage-drift-alert.sh +52 -22
- package/tests/test-cost-incident-self-audit.sh +94 -0
- package/tests/test-cowork-claude-md-load-checker.sh +257 -0
- package/tests/test-cowork-claudemd-helper.sh +141 -0
- package/tests/test-cowork-fuse-staleness-watcher.sh +287 -0
- package/tests/test-cowork-hook-absence-warner.sh +230 -0
- package/tests/test-cowork-model-picker-advisor.sh +317 -0
- package/tests/test-credential-exfil-guard.sh +62 -0
- package/tests/test-cron-create-receipt.sh +165 -0
- package/tests/test-cross-product-mcp-spawn-detector.sh +112 -0
- package/tests/test-daemon-zombie-worker-surfacer.sh +71 -0
- package/tests/test-daily-cost-guard.sh +131 -0
- package/tests/test-deny-rule-integrity-verifier.sh +288 -0
- package/tests/test-deployment-readback-gate.sh +92 -0
- package/tests/test-deployment-readback-gh-adapter.sh +163 -0
- package/tests/test-disabled-feature-toggle-advisor.sh +78 -0
- package/tests/test-dispatch-allowlist-preflight.sh +385 -0
- package/tests/test-dispatch-liveness-watchdog.sh +319 -0
- package/tests/test-dispatch-receipt.sh +314 -0
- package/tests/test-dotenv-anthropic-key-billing-guard.sh +160 -0
- package/tests/test-echo-probe-spam-detector.sh +143 -0
- package/tests/test-edit-quote-ambiguity-guard.sh +75 -0
- package/tests/test-ephemeral-container-detector.sh +251 -0
- package/tests/test-evidence-claim-gate.sh +291 -0
- package/tests/test-extended-thinking-loop-guard.sh +289 -0
- package/tests/test-extended-thinking-resume-warning.sh +240 -0
- package/tests/test-extended-thinking-tool-use-mismatch-detector.sh +236 -0
- package/tests/test-fabricated-command-detector.sh +296 -0
- package/tests/test-false-disk-full-guard.sh +36 -0
- package/tests/test-feature-deprecation-detector.sh +117 -0
- package/tests/test-forbidden-response-phrase-detector.sh +246 -0
- package/tests/test-git-operations-require-approval.sh +53 -0
- package/tests/test-git-push-blast-radius-guard.sh +115 -0
- package/tests/test-goal-iteration-limit-warner.sh +128 -0
- package/tests/test-growthbook-flag-monitor.sh +428 -0
- package/tests/test-halt-signal-detector.sh +120 -0
- package/tests/test-hook-self-disable-detector.sh +232 -0
- package/tests/test-iteration-quality-degradation-detector.sh +244 -0
- package/tests/test-long-session-malformed-tool-call-detector.sh +185 -0
- package/tests/test-marketplace-plugins.sh +193 -0
- package/tests/test-mcp-misdiagnosis-arrest.sh +235 -0
- package/tests/test-mcp-orphan-leak-warner.sh +71 -0
- package/tests/test-mcp-permissions-ask-warner.sh +207 -0
- package/tests/test-mcp-routine-approval-detector.sh +229 -0
- package/tests/test-mcp-startup-bloat-detector.sh +141 -0
- package/tests/test-mcp-stdio-compatibility-test.sh +112 -0
- package/tests/test-memory-chain-audit.sh +59 -0
- package/tests/test-memory-orphan-detector.sh +227 -0
- package/tests/test-model-swap-suggester.sh +368 -0
- package/tests/test-model-version-lock.sh +83 -0
- package/tests/test-multi-file-plan-routing-gate.sh +277 -0
- package/tests/test-multi-window-auth-drift-detector.sh +262 -0
- package/tests/test-nested-spawn-inflight-guard.sh +281 -0
- package/tests/test-no-force-flag.sh +49 -0
- package/tests/test-non-english-quality-warner.sh +229 -0
- package/tests/test-oauth-refresh-monitor.sh +311 -0
- package/tests/test-opus-degradation-tracker.sh +274 -0
- package/tests/test-opus48-routine-task-warning.sh +201 -0
- package/tests/test-opus48-thinking-wedge-advisor.sh +249 -0
- package/tests/test-output-token-spike-detector.sh +315 -0
- package/tests/test-parallel-batch-size-limiter.sh +228 -0
- package/tests/test-parallel-cascade-detector.sh +191 -0
- package/tests/test-partial-view-claim-arrest.sh +272 -0
- package/tests/test-per-prompt-token-cap.sh +136 -0
- package/tests/test-persisted-1m-model-advisor.sh +71 -0
- package/tests/test-plugin-hooks-json-bloat-detector.sh +267 -0
- package/tests/test-post-edit-disk-verify.sh +294 -0
- package/tests/test-pre-bash-sed-line-ending-windows.sh +108 -0
- package/tests/test-pre-execution-claim-detector.sh +366 -0
- package/tests/test-private-key-backup-and-git-credentials.sh +100 -0
- package/tests/test-proxy-capture-suggester.sh +214 -0
- package/tests/test-public-artefact-socratic-narrowing.sh +346 -0
- package/tests/test-quota-anomaly-detector.sh +321 -0
- package/tests/test-quota-reset-audit.sh +81 -0
- package/tests/test-read-loop-detector.sh +137 -0
- package/tests/test-read-once-guard.sh +85 -0
- package/tests/test-receipts-aggregate.sh +143 -0
- package/tests/test-redirect-fragment-warner.sh +130 -0
- package/tests/test-redundant-read-blocker.sh +155 -0
- package/tests/test-refusal-arrest-gate.sh +303 -0
- package/tests/test-remote-control-billing-classifier.sh +125 -0
- package/tests/test-resume-drift-watcher.sh +65 -0
- package/tests/test-rg-replace-flag-detector.sh +175 -0
- package/tests/test-rhetorical-verification-prompt-detector.sh +237 -0
- package/tests/test-rm-safety-net.sh +115 -0
- package/tests/test-route-handler-emptiness-gate.sh +300 -0
- package/tests/test-runtime-binary-change-detector.sh +196 -0
- package/tests/test-same-command-repeat-detector.sh +165 -0
- package/tests/test-same-correction-arrest.sh +165 -0
- package/tests/test-scope-expansion-receipt.sh +207 -0
- package/tests/test-server-side-prompt-injection-detector.sh +181 -0
- package/tests/test-session-persistence-verifier.sh +128 -0
- package/tests/test-session-rate-monitor.sh +284 -0
- package/tests/test-session-start-quota-status.sh +210 -0
- package/tests/test-session-start-safety-check.sh +138 -0
- package/tests/test-settings-hooks-key-restorer.sh +257 -0
- package/tests/test-settings-json-health-check.sh +70 -0
- package/tests/test-settings-regression-tester.sh +197 -0
- package/tests/test-skill-cumulative-size-detector.sh +198 -0
- package/tests/test-skill-description-drop-detector.sh +236 -0
- package/tests/test-skill-truncation-detector.sh +263 -0
- package/tests/test-skills-context-recorder.sh +329 -0
- package/tests/test-skills-load-verifier.sh +184 -0
- package/tests/test-skills-settings-validator.sh +242 -0
- package/tests/test-sonnet-45-deprecation-helper.sh +150 -0
- package/tests/test-spurious-malformed-notice-detector.sh +290 -0
- package/tests/test-sql-bulk-delete-warn.sh +123 -0
- package/tests/test-ssh-key-protect.sh +81 -0
- package/tests/test-stale-temp-settings-detector.sh +161 -0
- package/tests/test-standing-rule-session-surfacer.sh +215 -0
- package/tests/test-starter-hooks-manifest.sh +96 -0
- package/tests/test-stop-hook-sigterm-wrapper.sh +258 -0
- package/tests/test-strict-allowlist.sh +72 -0
- package/tests/test-subagent-boundary-precheck.sh +137 -0
- package/tests/test-subagent-closure-verify-gate.sh +193 -0
- package/tests/test-subagent-destructive-git-guard.sh +86 -0
- package/tests/test-subagent-identity-leak-guard.sh +62 -0
- package/tests/test-subagent-identity-reassertion.sh +61 -0
- package/tests/test-subagent-inheritance-tester.sh +319 -0
- package/tests/test-subagent-permission-mode-guard.sh +61 -0
- package/tests/test-subagent-spawn-verification-enforcer.sh +60 -0
- package/tests/test-subagent-tool-allowlist-enforcer.sh +62 -0
- package/tests/test-subagent-tool-call-limiter.sh +97 -0
- package/tests/test-subscription-api-billing-warner.sh +138 -0
- package/tests/test-subscription-bypass-detector.sh +255 -0
- package/tests/test-temporal-suggestion-detector.sh +183 -0
- package/tests/test-thinking-budget-effort-mismatch-detector.sh +327 -0
- package/tests/test-tokenizer-ratio-alert-corpus.sh +77 -0
- package/tests/test-tokenizer-ratio-alert.sh +93 -0
- package/tests/test-tool-result-correlation-checker.sh +264 -0
- package/tests/test-tool-result-size-guard.sh +121 -0
- package/tests/test-transcript-contamination-detector.sh +264 -0
- package/tests/test-trigger-header-parsing.sh +151 -0
- package/tests/test-ultrareview-large-diff-advisor.sh +192 -0
- package/tests/test-userprompt-submit-receipt.sh +181 -0
- package/tests/test-verify-after-publish-reminder.sh +184 -0
- package/tests/test-version-bump-detector.sh +212 -0
- package/tests/test-version-regression-warner.sh +165 -0
- package/tests/test-warn-cron-cost-trap.sh +82 -0
- package/tests/test-webfetch-runaway-guard.sh +77 -0
- package/tests/test-wellness-break-reminder.sh +138 -0
- package/tests/test-windows-destructive-command-guard.sh +169 -0
- package/tests/test-windows-python-stub-detector.sh +146 -0
- package/tests/test-worktree-edit-boundary-guard.sh +219 -0
- package/tests/test-write-byte-integrity-verifier.sh +192 -0
- package/tests/test-xml-format-leak-detector.sh +299 -0
- package/tests/trustfall-mcp-injection-guard.test.sh +183 -0
- package/tests/workspace-lease-guard.test.sh +144 -0
- package/tests/worktree-escape-write-guard.test.sh +68 -0
- package/tests/worktree-hooks-path-fix.test.sh +181 -0
- package/tests/worktree-parent-write-guard.test.sh +51 -0
- package/tests/write-empty-content-guard.test.sh +39 -0
- package/tests/write-nul-corruption-detector.test.sh +29 -0
- package/tests/write-overwrite-unread-content.test.sh +178 -0
- package/tests/wsl-host-disk-space-guard.test.sh +55 -0
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"email": "yurukusa@users.noreply.github.com"
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
|
-
"description": "Safety hooks for Claude Code
|
|
8
|
+
"description": "Safety hooks for Claude Code, from 800+ hours of autonomous operation. Four plugins that block rm -rf, force-push, hard reset, credential leaks, and runaway token spend. The companion CLI ships 908 further example hooks.",
|
|
9
9
|
"version": "1.0.0",
|
|
10
10
|
"pluginRoot": "./plugins"
|
|
11
11
|
},
|
|
@@ -14,53 +14,106 @@
|
|
|
14
14
|
"name": "safety-essentials",
|
|
15
15
|
"source": "./plugins/safety-essentials",
|
|
16
16
|
"description": "5 essential safety hooks: block rm -rf, force-push, hard-reset, env overwrites, and package publish. The minimum viable safety net.",
|
|
17
|
-
"version": "1.
|
|
18
|
-
"author": {
|
|
17
|
+
"version": "1.2.0",
|
|
18
|
+
"author": {
|
|
19
|
+
"name": "yurukusa"
|
|
20
|
+
},
|
|
19
21
|
"homepage": "https://yurukusa.github.io/cc-safe-setup/",
|
|
20
22
|
"repository": "https://github.com/yurukusa/cc-safe-setup",
|
|
21
23
|
"license": "MIT",
|
|
22
|
-
"keywords": [
|
|
24
|
+
"keywords": [
|
|
25
|
+
"safety",
|
|
26
|
+
"hooks",
|
|
27
|
+
"rm-rf",
|
|
28
|
+
"force-push",
|
|
29
|
+
"env",
|
|
30
|
+
"essential"
|
|
31
|
+
],
|
|
23
32
|
"category": "safety",
|
|
24
|
-
"tags": [
|
|
33
|
+
"tags": [
|
|
34
|
+
"beginner-friendly",
|
|
35
|
+
"must-have",
|
|
36
|
+
"pretooluse"
|
|
37
|
+
]
|
|
25
38
|
},
|
|
26
39
|
{
|
|
27
40
|
"name": "git-protection",
|
|
28
41
|
"source": "./plugins/git-protection",
|
|
29
|
-
"description": "Git safety hooks: block force-push, protect main/master, prevent hard
|
|
30
|
-
"version": "1.
|
|
31
|
-
"author": {
|
|
42
|
+
"description": "Git safety hooks: block force-push, protect main/master, prevent hard reset, guard interactive rebase, and block git clean -fd.",
|
|
43
|
+
"version": "1.2.0",
|
|
44
|
+
"author": {
|
|
45
|
+
"name": "yurukusa"
|
|
46
|
+
},
|
|
32
47
|
"homepage": "https://yurukusa.github.io/cc-safe-setup/",
|
|
33
48
|
"repository": "https://github.com/yurukusa/cc-safe-setup",
|
|
34
49
|
"license": "MIT",
|
|
35
|
-
"keywords": [
|
|
50
|
+
"keywords": [
|
|
51
|
+
"git",
|
|
52
|
+
"force-push",
|
|
53
|
+
"main-branch",
|
|
54
|
+
"reset",
|
|
55
|
+
"rebase",
|
|
56
|
+
"backup"
|
|
57
|
+
],
|
|
36
58
|
"category": "safety",
|
|
37
|
-
"tags": [
|
|
59
|
+
"tags": [
|
|
60
|
+
"git",
|
|
61
|
+
"version-control",
|
|
62
|
+
"pretooluse"
|
|
63
|
+
]
|
|
38
64
|
},
|
|
39
65
|
{
|
|
40
66
|
"name": "credential-guard",
|
|
41
67
|
"source": "./plugins/credential-guard",
|
|
42
68
|
"description": "Protect secrets and credentials: block writes to .env files, detect API keys in commands, prevent hardcoded tokens, guard service account files.",
|
|
43
|
-
"version": "1.
|
|
44
|
-
"author": {
|
|
69
|
+
"version": "1.2.0",
|
|
70
|
+
"author": {
|
|
71
|
+
"name": "yurukusa"
|
|
72
|
+
},
|
|
45
73
|
"homepage": "https://yurukusa.github.io/cc-safe-setup/",
|
|
46
74
|
"repository": "https://github.com/yurukusa/cc-safe-setup",
|
|
47
75
|
"license": "MIT",
|
|
48
|
-
"keywords": [
|
|
76
|
+
"keywords": [
|
|
77
|
+
"credentials",
|
|
78
|
+
"secrets",
|
|
79
|
+
"api-keys",
|
|
80
|
+
"env",
|
|
81
|
+
"tokens",
|
|
82
|
+
"security"
|
|
83
|
+
],
|
|
49
84
|
"category": "security",
|
|
50
|
-
"tags": [
|
|
85
|
+
"tags": [
|
|
86
|
+
"credentials",
|
|
87
|
+
"secrets",
|
|
88
|
+
"pretooluse"
|
|
89
|
+
]
|
|
51
90
|
},
|
|
52
91
|
{
|
|
53
92
|
"name": "token-guard",
|
|
54
93
|
"source": "./plugins/token-guard",
|
|
55
|
-
"description": "Token consumption guards: large-read warning (100KB+), read budget
|
|
56
|
-
"version": "1.
|
|
57
|
-
"author": {
|
|
94
|
+
"description": "Token consumption guards: large-read warning (100KB+), per-session read budget, subagent cap, and a token budget that asks for /compact.",
|
|
95
|
+
"version": "1.1.0",
|
|
96
|
+
"author": {
|
|
97
|
+
"name": "yurukusa"
|
|
98
|
+
},
|
|
58
99
|
"homepage": "https://yurukusa.github.io/cc-safe-setup/token-book.html",
|
|
59
100
|
"repository": "https://github.com/yurukusa/cc-safe-setup",
|
|
60
101
|
"license": "MIT",
|
|
61
|
-
"keywords": [
|
|
102
|
+
"keywords": [
|
|
103
|
+
"tokens",
|
|
104
|
+
"cost",
|
|
105
|
+
"budget",
|
|
106
|
+
"optimization",
|
|
107
|
+
"large-read",
|
|
108
|
+
"subagent"
|
|
109
|
+
],
|
|
62
110
|
"category": "optimization",
|
|
63
|
-
"tags": [
|
|
111
|
+
"tags": [
|
|
112
|
+
"token-saving",
|
|
113
|
+
"cost-reduction",
|
|
114
|
+
"pretooluse",
|
|
115
|
+
"posttooluse"
|
|
116
|
+
]
|
|
64
117
|
}
|
|
65
118
|
]
|
|
66
119
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cc-safe-setup",
|
|
3
|
-
"description": "
|
|
3
|
+
"description": "909 safety hooks for Claude Code — prevent file deletion, credential leaks, git disasters, and token waste during autonomous AI coding sessions",
|
|
4
4
|
"version": "30.0.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "yurukusa"
|
package/CONTRIBUTING.md
CHANGED
|
@@ -67,7 +67,12 @@ npx cc-hook-test examples/your-hook.sh
|
|
|
67
67
|
|
|
68
68
|
## Code Style
|
|
69
69
|
|
|
70
|
-
- Bash hooks (not Python/Node)
|
|
71
|
-
-
|
|
70
|
+
- Bash hooks (not Python/Node), so nothing is pulled from npm
|
|
71
|
+
- A hook still needs a JSON reader for its stdin. These two lines used to read "zero
|
|
72
|
+
dependencies" and "`jq` for JSON parsing" — which contradict each other, since `jq` is a
|
|
73
|
+
dependency. Prefer the core hooks' chain: try `jq`, then `python3`, then `node`, and if none
|
|
74
|
+
is present, **warn that the hook is not protecting the user** and exit 0. Silently reading an
|
|
75
|
+
empty command is the failure mode to avoid: the hook stays listed in `settings.json` and
|
|
76
|
+
guards nothing. `tests/core-scripts-parser-fallback.test.sh` covers this.
|
|
72
77
|
- Short variable names are fine (`CMD`, `FILE`, `INPUT`)
|
|
73
78
|
- Comments explain *why*, not *what*
|
package/COOKBOOK.md
CHANGED
|
@@ -6,64 +6,64 @@ Real-world recipes for common safety scenarios. Each recipe is a single command.
|
|
|
6
6
|
|
|
7
7
|
| I want to... | Command |
|
|
8
8
|
|---|---|
|
|
9
|
-
| Install basic safety | `npx cc-safe-setup` |
|
|
10
|
-
| Maximum protection | `npx cc-safe-setup --shield` |
|
|
11
|
-
| Check my setup | `npx cc-safe-setup --doctor` |
|
|
12
|
-
| See my safety score | `npx cc-safe-setup --audit` |
|
|
9
|
+
| Install basic safety | `npx github:yurukusa/cc-safe-setup` |
|
|
10
|
+
| Maximum protection | `npx github:yurukusa/cc-safe-setup --shield` |
|
|
11
|
+
| Check my setup | `npx github:yurukusa/cc-safe-setup --doctor` |
|
|
12
|
+
| See my safety score | `npx github:yurukusa/cc-safe-setup --audit` |
|
|
13
13
|
|
|
14
14
|
## Blocking Dangerous Commands
|
|
15
15
|
|
|
16
16
|
### Block rm -rf on home/root
|
|
17
17
|
Already included in the default install. To verify:
|
|
18
18
|
```bash
|
|
19
|
-
npx cc-safe-setup --simulate "rm -rf ~"
|
|
19
|
+
npx github:yurukusa/cc-safe-setup --simulate "rm -rf ~"
|
|
20
20
|
# Expected: BLOCKED
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
### Block database wipes
|
|
24
24
|
```bash
|
|
25
|
-
npx cc-safe-setup --install-example block-database-wipe
|
|
25
|
+
npx github:yurukusa/cc-safe-setup --install-example block-database-wipe
|
|
26
26
|
```
|
|
27
27
|
Blocks: `prisma migrate reset`, `rails db:drop`, `DROP TABLE`, etc.
|
|
28
28
|
|
|
29
29
|
### Block npm publish accidents
|
|
30
30
|
```bash
|
|
31
|
-
npx cc-safe-setup --install-example npm-publish-guard
|
|
31
|
+
npx github:yurukusa/cc-safe-setup --install-example npm-publish-guard
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
## Auto-Approving Safe Commands
|
|
35
35
|
|
|
36
36
|
### Approve read-only commands (cat, ls, grep)
|
|
37
37
|
```bash
|
|
38
|
-
npx cc-safe-setup --install-example auto-approve-readonly
|
|
38
|
+
npx github:yurukusa/cc-safe-setup --install-example auto-approve-readonly
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
### Approve test runners
|
|
42
42
|
```bash
|
|
43
|
-
npx cc-safe-setup --install-example auto-approve-test
|
|
43
|
+
npx github:yurukusa/cc-safe-setup --install-example auto-approve-test
|
|
44
44
|
```
|
|
45
45
|
Covers: `npm test`, `pytest`, `go test`, `cargo test`, `jest`, `vitest`
|
|
46
46
|
|
|
47
47
|
### Approve git read commands (status, log, diff)
|
|
48
48
|
```bash
|
|
49
|
-
npx cc-safe-setup --install-example auto-approve-git-read
|
|
49
|
+
npx github:yurukusa/cc-safe-setup --install-example auto-approve-git-read
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
## File Protection
|
|
53
53
|
|
|
54
54
|
### Protect .env files from edits
|
|
55
55
|
```bash
|
|
56
|
-
npx cc-safe-setup --protect .env
|
|
56
|
+
npx github:yurukusa/cc-safe-setup --protect .env
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
### Protect CLAUDE.md from unauthorized changes
|
|
60
60
|
```bash
|
|
61
|
-
npx cc-safe-setup --install-example protect-claudemd
|
|
61
|
+
npx github:yurukusa/cc-safe-setup --install-example protect-claudemd
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
### Protect dotfiles (~/.bashrc, ~/.aws/)
|
|
65
65
|
```bash
|
|
66
|
-
npx cc-safe-setup --install-example protect-dotfiles
|
|
66
|
+
npx github:yurukusa/cc-safe-setup --install-example protect-dotfiles
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
## YAML Rules (No Coding)
|
|
@@ -82,47 +82,47 @@ Write rules in YAML, compile to hooks:
|
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
|
-
npx cc-safe-setup --rules rules.yaml
|
|
85
|
+
npx github:yurukusa/cc-safe-setup --rules rules.yaml
|
|
86
86
|
```
|
|
87
87
|
|
|
88
88
|
## Monitoring & Recovery
|
|
89
89
|
|
|
90
90
|
### Auto-save checkpoint before compaction
|
|
91
91
|
```bash
|
|
92
|
-
npx cc-safe-setup --install-example auto-compact-prep
|
|
92
|
+
npx github:yurukusa/cc-safe-setup --install-example auto-compact-prep
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
### Track context window usage
|
|
96
96
|
```bash
|
|
97
|
-
npx cc-safe-setup --install-example compact-reminder
|
|
97
|
+
npx github:yurukusa/cc-safe-setup --install-example compact-reminder
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
### Fix hook permissions on Windows/plugins
|
|
101
101
|
```bash
|
|
102
|
-
npx cc-safe-setup --install-example hook-permission-fixer
|
|
102
|
+
npx github:yurukusa/cc-safe-setup --install-example hook-permission-fixer
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
### Prevent tool call loops
|
|
106
106
|
```bash
|
|
107
|
-
npx cc-safe-setup --install-example response-budget-guard
|
|
107
|
+
npx github:yurukusa/cc-safe-setup --install-example response-budget-guard
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
## Diagnosing Problems
|
|
111
111
|
|
|
112
112
|
### Why isn't my hook working?
|
|
113
113
|
```bash
|
|
114
|
-
npx cc-safe-setup --doctor
|
|
114
|
+
npx github:yurukusa/cc-safe-setup --doctor
|
|
115
115
|
```
|
|
116
116
|
Checks: jq, settings.json, file existence, permissions, shebangs, exit codes.
|
|
117
117
|
|
|
118
118
|
### Test a specific hook
|
|
119
119
|
```bash
|
|
120
|
-
npx cc-safe-setup --test-hook destructive-guard
|
|
120
|
+
npx github:yurukusa/cc-safe-setup --test-hook destructive-guard
|
|
121
121
|
```
|
|
122
122
|
|
|
123
123
|
### Preview how hooks react to a command
|
|
124
124
|
```bash
|
|
125
|
-
npx cc-safe-setup --simulate "git push --force origin main"
|
|
125
|
+
npx github:yurukusa/cc-safe-setup --simulate "git push --force origin main"
|
|
126
126
|
```
|
|
127
127
|
|
|
128
128
|
## Web Tools
|
|
@@ -140,7 +140,7 @@ All browser-based, nothing leaves your machine:
|
|
|
140
140
|
PreToolUse hooks can't bypass built-in protected-directory checks — they run *before* those checks. Use PermissionRequest instead:
|
|
141
141
|
|
|
142
142
|
```bash
|
|
143
|
-
npx cc-safe-setup --install-example allow-git-hooks-dir
|
|
143
|
+
npx github:yurukusa/cc-safe-setup --install-example allow-git-hooks-dir
|
|
144
144
|
```
|
|
145
145
|
|
|
146
146
|
Or manually: create a PermissionRequest hook that outputs `permissionDecision: "allow"`. See [Troubleshooting](TROUBLESHOOTING.md#pretooluse-allow-doesnt-bypass-protected-directory-prompts) for details.
|
|
@@ -150,7 +150,7 @@ Or manually: create a PermissionRequest hook that outputs `permissionDecision: "
|
|
|
150
150
|
Block credential hunting commands (env scanning, file searches for tokens):
|
|
151
151
|
|
|
152
152
|
```bash
|
|
153
|
-
npx cc-safe-setup --install-example credential-exfil-guard
|
|
153
|
+
npx github:yurukusa/cc-safe-setup --install-example credential-exfil-guard
|
|
154
154
|
```
|
|
155
155
|
|
|
156
156
|
Blocks: `env | grep -i token`, `find / -name *.pem`, `cat ~/.ssh/id_rsa`, `cat ~/.aws/credentials`.
|
|
@@ -160,17 +160,21 @@ Blocks: `env | grep -i token`, `find / -name *.pem`, `cat ~/.ssh/id_rsa`, `cat ~
|
|
|
160
160
|
Add a second layer of rm protection beyond destructive-guard:
|
|
161
161
|
|
|
162
162
|
```bash
|
|
163
|
-
npx cc-safe-setup --install-example rm-safety-net
|
|
163
|
+
npx github:yurukusa/cc-safe-setup --install-example rm-safety-net
|
|
164
164
|
```
|
|
165
165
|
|
|
166
166
|
Blocks rm -rf on any non-safe path (only allows node_modules, dist, build, /tmp, __pycache__).
|
|
167
|
+
Also blocks `find ... | xargs rm` when the null-delimited pair `find -print0 | xargs -0` is
|
|
168
|
+
missing — without it, a path with spaces (`./Google Photos/a.jpg`) splits into two targets and
|
|
169
|
+
`rm -rf` can wipe an unrelated directory (#69793). Use `find -delete`, `find -exec rm {} +`, or
|
|
170
|
+
`find -print0 | xargs -0 rm`.
|
|
167
171
|
|
|
168
172
|
## Auto Mode False Positive Fix
|
|
169
173
|
|
|
170
174
|
Stop the safety classifier from blocking read-only commands:
|
|
171
175
|
|
|
172
176
|
```bash
|
|
173
|
-
npx cc-safe-setup --install-example auto-mode-safe-commands
|
|
177
|
+
npx github:yurukusa/cc-safe-setup --install-example auto-mode-safe-commands
|
|
174
178
|
```
|
|
175
179
|
|
|
176
180
|
Auto-approves: cat, grep, git status, ls, find, jq, curl GET, echo.
|
|
@@ -180,7 +184,7 @@ Auto-approves: cat, grep, git status, ls, find, jq, curl GET, echo.
|
|
|
180
184
|
Stop permission prompts for `cd /path && git log`:
|
|
181
185
|
|
|
182
186
|
```bash
|
|
183
|
-
npx cc-safe-setup --install-example compound-command-allow
|
|
187
|
+
npx github:yurukusa/cc-safe-setup --install-example compound-command-allow
|
|
184
188
|
```
|
|
185
189
|
|
|
186
190
|
Splits compound commands and checks each component. Approves when all are safe.
|
|
@@ -190,7 +194,7 @@ Splits compound commands and checks each component. Approves when all are safe.
|
|
|
190
194
|
Block secrets from being written into source files:
|
|
191
195
|
|
|
192
196
|
```bash
|
|
193
|
-
npx cc-safe-setup --install-example write-secret-guard
|
|
197
|
+
npx github:yurukusa/cc-safe-setup --install-example write-secret-guard
|
|
194
198
|
```
|
|
195
199
|
|
|
196
200
|
Detects AWS, GitHub, OpenAI, Anthropic, Slack, Stripe, Google keys + PEM + database URLs. Allows .env.example and test files.
|
|
@@ -200,7 +204,7 @@ Detects AWS, GitHub, OpenAI, Anthropic, Slack, Stripe, Google keys + PEM + datab
|
|
|
200
204
|
Log every tool call for debugging permission rules:
|
|
201
205
|
|
|
202
206
|
```bash
|
|
203
|
-
npx cc-safe-setup --install-example permission-audit-log
|
|
207
|
+
npx github:yurukusa/cc-safe-setup --install-example permission-audit-log
|
|
204
208
|
```
|
|
205
209
|
|
|
206
210
|
Writes JSONL to `~/.claude/tool-usage.jsonl`. Analyze with `cat ~/.claude/tool-usage.jsonl | jq -s 'group_by(.tool) | map({tool: .[0].tool, count: length})'`.
|
|
@@ -210,7 +214,7 @@ Writes JSONL to `~/.claude/tool-usage.jsonl`. Analyze with `cat ~/.claude/tool-u
|
|
|
210
214
|
Auto-approve read-only commands when Auto Mode's classifier is unavailable:
|
|
211
215
|
|
|
212
216
|
```bash
|
|
213
|
-
npx cc-safe-setup --install-example classifier-fallback-allow
|
|
217
|
+
npx github:yurukusa/cc-safe-setup --install-example classifier-fallback-allow
|
|
214
218
|
```
|
|
215
219
|
|
|
216
220
|
PermissionRequest hook that approves cat, ls, grep, git read-only when the classifier can't respond.
|
|
@@ -220,7 +224,7 @@ PermissionRequest hook that approves cat, ls, grep, git read-only when the class
|
|
|
220
224
|
Prevent the agent from displaying tokens in conversations by reading package manager credential files:
|
|
221
225
|
|
|
222
226
|
```bash
|
|
223
|
-
npx cc-safe-setup --install-example credential-file-cat-guard
|
|
227
|
+
npx github:yurukusa/cc-safe-setup --install-example credential-file-cat-guard
|
|
224
228
|
```
|
|
225
229
|
|
|
226
230
|
Blocks `cat`, `head`, `tail`, `grep` on `~/.netrc`, `~/.npmrc`, `~/.cargo/credentials`, `~/.docker/config.json`, `~/.kube/config`, and more. Complements `credential-exfil-guard` which blocks hunting patterns. See [#34819](https://github.com/anthropics/claude-code/issues/34819).
|
|
@@ -230,8 +234,8 @@ Blocks `cat`, `head`, `tail`, `grep` on `~/.netrc`, `~/.npmrc`, `~/.cargo/creden
|
|
|
230
234
|
Block `git push` to protected branches unless tests have passed in the current session:
|
|
231
235
|
|
|
232
236
|
```bash
|
|
233
|
-
npx cc-safe-setup --install-example push-requires-test-pass
|
|
234
|
-
npx cc-safe-setup --install-example push-requires-test-pass-record
|
|
237
|
+
npx github:yurukusa/cc-safe-setup --install-example push-requires-test-pass
|
|
238
|
+
npx github:yurukusa/cc-safe-setup --install-example push-requires-test-pass-record
|
|
235
239
|
```
|
|
236
240
|
|
|
237
241
|
Two-hook system: the PostToolUse `record` hook detects successful test runs (`npm test`, `pytest`, `cargo test`, etc.) and saves a timestamp. The PreToolUse hook blocks push to main/master/production if no recent test pass exists (30-minute window). See [#36673](https://github.com/anthropics/claude-code/issues/36673).
|
|
@@ -239,9 +243,9 @@ Two-hook system: the PostToolUse `record` hook detects successful test runs (`np
|
|
|
239
243
|
## Recipe: Protect CI/CD Pipelines
|
|
240
244
|
|
|
241
245
|
```bash
|
|
242
|
-
npx cc-safe-setup --install-example github-actions-secret-guard
|
|
243
|
-
npx cc-safe-setup --install-example ci-workflow-guard
|
|
244
|
-
npx cc-safe-setup --install-example gitops-drift-guard
|
|
246
|
+
npx github:yurukusa/cc-safe-setup --install-example github-actions-secret-guard
|
|
247
|
+
npx github:yurukusa/cc-safe-setup --install-example ci-workflow-guard
|
|
248
|
+
npx github:yurukusa/cc-safe-setup --install-example gitops-drift-guard
|
|
245
249
|
```
|
|
246
250
|
|
|
247
251
|
Three-hook system: `github-actions-secret-guard` (PostToolUse) detects hardcoded secrets in workflow files. `ci-workflow-guard` (PostToolUse) flags `--no-verify`, remote script execution, and broad write permissions. `gitops-drift-guard` (PreToolUse) warns when editing infrastructure files on protected branches.
|
|
@@ -249,7 +253,7 @@ Three-hook system: `github-actions-secret-guard` (PostToolUse) detects hardcoded
|
|
|
249
253
|
## Recipe: Kubernetes Production Safety
|
|
250
254
|
|
|
251
255
|
```bash
|
|
252
|
-
npx cc-safe-setup --install-example k8s-production-guard
|
|
256
|
+
npx github:yurukusa/cc-safe-setup --install-example k8s-production-guard
|
|
253
257
|
# Set production contexts/namespaces:
|
|
254
258
|
export CC_K8S_PROD_CONTEXTS="prod:production"
|
|
255
259
|
export CC_K8S_PROD_NAMESPACES="production:prod"
|
|
@@ -260,8 +264,8 @@ Blocks `kubectl delete`, `scale --replicas=0`, `drain`, and `helm uninstall` on
|
|
|
260
264
|
## Recipe: MCP Server Allowlist
|
|
261
265
|
|
|
262
266
|
```bash
|
|
263
|
-
npx cc-safe-setup --install-example mcp-server-allowlist
|
|
264
|
-
npx cc-safe-setup --install-example mcp-tool-audit-log
|
|
267
|
+
npx github:yurukusa/cc-safe-setup --install-example mcp-server-allowlist
|
|
268
|
+
npx github:yurukusa/cc-safe-setup --install-example mcp-tool-audit-log
|
|
265
269
|
export CC_MCP_ALLOWED="github:filesystem:memory"
|
|
266
270
|
```
|
|
267
271
|
|
|
@@ -270,7 +274,7 @@ Only allows MCP tool calls from whitelisted servers. Blocks calls from unknown/s
|
|
|
270
274
|
## Recipe: Role-Based Agent Teams
|
|
271
275
|
|
|
272
276
|
```bash
|
|
273
|
-
npx cc-safe-setup --install-example role-tool-guard
|
|
277
|
+
npx github:yurukusa/cc-safe-setup --install-example role-tool-guard
|
|
274
278
|
echo "pm" > .claude/current-role.txt
|
|
275
279
|
```
|
|
276
280
|
|
|
@@ -281,7 +285,7 @@ Restricts tools based on agent role. PM can only read and delegate (no Edit/Writ
|
|
|
281
285
|
Claude Code frequently runs `git show <ref> --no-stat`, which fails because `--no-stat` is not a valid git-show flag. This wastes context on error output. The hook silently rewrites the command.
|
|
282
286
|
|
|
283
287
|
```bash
|
|
284
|
-
npx cc-safe-setup --install-example git-show-flag-sanitizer
|
|
288
|
+
npx github:yurukusa/cc-safe-setup --install-example git-show-flag-sanitizer
|
|
285
289
|
```
|
|
286
290
|
|
|
287
291
|
Install in `.claude/settings.json` as a PreToolUse hook with matcher `Bash`. The hook detects `git show` + `--no-stat`, strips the invalid flag, and returns the corrected command via `updatedInput`. See [#13071](https://github.com/anthropics/claude-code/issues/13071).
|
|
@@ -292,10 +296,10 @@ If your Max Plan 5-hour limit is exhausting too fast, install these two hooks to
|
|
|
292
296
|
|
|
293
297
|
```bash
|
|
294
298
|
# Log every prompt with timestamps
|
|
295
|
-
npx cc-safe-setup --install-example prompt-usage-logger
|
|
299
|
+
npx github:yurukusa/cc-safe-setup --install-example prompt-usage-logger
|
|
296
300
|
|
|
297
301
|
# Alert when auto-compaction fires
|
|
298
|
-
npx cc-safe-setup --install-example compact-alert-notification
|
|
302
|
+
npx github:yurukusa/cc-safe-setup --install-example compact-alert-notification
|
|
299
303
|
```
|
|
300
304
|
|
|
301
305
|
After a session, check `/tmp/claude-usage-log.txt` for prompt frequency and `/tmp/claude-compact-log.txt` for compaction count. If you see 3+ compactions per session, the compact-rebuild cycle is a major token sink — use manual `/compact` before the threshold.
|
|
@@ -307,7 +311,7 @@ Quick wins: reduce MCP servers (`claude mcp list`), use `offset`/`limit` on larg
|
|
|
307
311
|
Back up session JSONL files on every start (protects against silent deletion):
|
|
308
312
|
|
|
309
313
|
```bash
|
|
310
|
-
npx cc-safe-setup --install-example session-backup-on-start
|
|
314
|
+
npx github:yurukusa/cc-safe-setup --install-example session-backup-on-start
|
|
311
315
|
```
|
|
312
316
|
|
|
313
317
|
Keeps last 5 timestamped backups in `~/.claude/session-backups/`. Restore with `cp`. See [#41874](https://github.com/anthropics/claude-code/issues/41874).
|
|
@@ -315,7 +319,7 @@ Keeps last 5 timestamped backups in `~/.claude/session-backups/`. Restore with `
|
|
|
315
319
|
Back up the full transcript before compaction (protects against rate-limit data loss):
|
|
316
320
|
|
|
317
321
|
```bash
|
|
318
|
-
npx cc-safe-setup --install-example pre-compact-transcript-backup
|
|
322
|
+
npx github:yurukusa/cc-safe-setup --install-example pre-compact-transcript-backup
|
|
319
323
|
```
|
|
320
324
|
|
|
321
325
|
Keeps last 3 backups in `~/.claude/compact-backups/`. If compaction fails and your transcript is corrupted, restore from the backup. See [#40352](https://github.com/anthropics/claude-code/issues/40352).
|
|
@@ -325,7 +329,7 @@ Keeps last 3 backups in `~/.claude/compact-backups/`. If compaction fails and yo
|
|
|
325
329
|
Power users who manage context manually can block auto-compaction entirely:
|
|
326
330
|
|
|
327
331
|
```bash
|
|
328
|
-
npx cc-safe-setup --install-example compact-blocker
|
|
332
|
+
npx github:yurukusa/cc-safe-setup --install-example compact-blocker
|
|
329
333
|
```
|
|
330
334
|
|
|
331
335
|
Install as a PreCompact hook (no matcher needed). Exit code 2 blocks compaction. For conditional control, add a guard: `[ -f /tmp/allow-compact ] && exit 0`. See [#6689](https://github.com/anthropics/claude-code/issues/6689).
|
|
@@ -335,7 +339,7 @@ Install as a PreCompact hook (no matcher needed). Exit code 2 blocks compaction.
|
|
|
335
339
|
`WebFetch(domain:*)` in settings.json fails in sandbox mode. This hook auto-approves WebFetch requests by domain:
|
|
336
340
|
|
|
337
341
|
```bash
|
|
338
|
-
npx cc-safe-setup --install-example webfetch-domain-allow
|
|
342
|
+
npx github:yurukusa/cc-safe-setup --install-example webfetch-domain-allow
|
|
339
343
|
```
|
|
340
344
|
|
|
341
345
|
Install as a PreToolUse hook with matcher `WebFetch`. By default allows all domains. Set `CC_WEBFETCH_ALLOW_DOMAINS=github.com,docs.anthropic.com` for specific domains. See [#9329](https://github.com/anthropics/claude-code/issues/9329).
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 yurukusa
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/MIGRATION.md
CHANGED
|
@@ -18,7 +18,7 @@ Permissions are binary: allow or deny. Hooks are programmable: inspect the comma
|
|
|
18
18
|
## Step 1: Audit Your Current Setup
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
npx cc-safe-setup --audit
|
|
21
|
+
npx github:yurukusa/cc-safe-setup --audit
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
This scores your current settings (0-100) and shows what's missing.
|
|
@@ -113,7 +113,7 @@ This means you can keep your working `allow` rules and layer hooks on top for th
|
|
|
113
113
|
## Step 3: Install Everything Automatically
|
|
114
114
|
|
|
115
115
|
```bash
|
|
116
|
-
npx cc-safe-setup
|
|
116
|
+
npx github:yurukusa/cc-safe-setup
|
|
117
117
|
```
|
|
118
118
|
|
|
119
119
|
This creates the hook scripts and merges the config into your existing settings.json. Your current `permissions` are preserved.
|
|
@@ -121,13 +121,13 @@ This creates the hook scripts and merges the config into your existing settings.
|
|
|
121
121
|
## Step 4: Verify
|
|
122
122
|
|
|
123
123
|
```bash
|
|
124
|
-
npx cc-safe-setup --verify
|
|
124
|
+
npx github:yurukusa/cc-safe-setup --verify
|
|
125
125
|
```
|
|
126
126
|
|
|
127
127
|
Tests each hook with sample inputs. If something fails:
|
|
128
128
|
|
|
129
129
|
```bash
|
|
130
|
-
npx cc-safe-setup --doctor
|
|
130
|
+
npx github:yurukusa/cc-safe-setup --doctor
|
|
131
131
|
```
|
|
132
132
|
|
|
133
133
|
This checks jq installation, file permissions, shebang lines, and common misconfigurations.
|
|
@@ -139,7 +139,7 @@ This checks jq installation, file permissions, shebang lines, and common misconf
|
|
|
139
139
|
You're trading speed for safety. Keep `Bash(*)` but add hooks to catch the dangerous commands:
|
|
140
140
|
|
|
141
141
|
```bash
|
|
142
|
-
npx cc-safe-setup
|
|
142
|
+
npx github:yurukusa/cc-safe-setup
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
Now `Bash(*)` auto-approves commands, but hooks still run and block dangerous ones. Best of both worlds.
|
|
@@ -207,18 +207,18 @@ echo $? # Should be 2 (blocked)
|
|
|
207
207
|
Watch what's being blocked in real time:
|
|
208
208
|
|
|
209
209
|
```bash
|
|
210
|
-
npx cc-safe-setup --watch
|
|
210
|
+
npx github:yurukusa/cc-safe-setup --watch
|
|
211
211
|
```
|
|
212
212
|
|
|
213
213
|
After a few sessions, generate custom hooks from your block patterns:
|
|
214
214
|
|
|
215
215
|
```bash
|
|
216
|
-
npx cc-safe-setup --learn
|
|
216
|
+
npx github:yurukusa/cc-safe-setup --learn
|
|
217
217
|
```
|
|
218
218
|
|
|
219
219
|
## Resources
|
|
220
220
|
|
|
221
|
-
- [Official Hooks Documentation](https://
|
|
221
|
+
- [Official Hooks Documentation](https://code.claude.com/docs/en/hooks)
|
|
222
222
|
- [COOKBOOK.md](https://github.com/yurukusa/claude-code-hooks/blob/main/COOKBOOK.md) — 19 hook recipes
|
|
223
223
|
- [cc-safe-setup](https://github.com/yurukusa/cc-safe-setup) — automated setup
|
|
224
224
|
- [Web Audit Tool](https://yurukusa.github.io/cc-safe-setup/) — browser-based setup generator
|