All skills & plugins / Claude Code official plugins
security-guidance
Security review for Claude-generated code. Pattern-based warnings on edits, LLM-powered diff review on Stop, and an agentic commit reviewer that catches injection, XSS, SSRF, hardcoded secrets, and 25+ other vulnerability classes.
- Type
- Plugin by Anthropic
- Catalog
- Claude Code official plugins
- Source
- anthropics/claude-plugins-official/plugins/security-guidance (61 files scanned)
- Install and details
- Agent Skills Index entry
- License
- Apache-2.0 (LICENSE file)
- Signals
- HooksBundled scriptsNetwork calls in codeReads credentialsSpawns processes
Pre-approved tools
No allowed-tools or tools list in its SKILL.md, command or agent files, so the agent asks before using tools as usual.
Hooks
Hooks run automatically on these agent events, without you invoking the skill: PostToolUse, SessionStart, Stop, UserPromptSubmit.
| Event | Matcher | Runs |
|---|---|---|
| SessionStart | all | bash "${CLAUDE_PLUGIN_ROOT}/hooks/sg-python.sh" "${CLAUDE_PLUGIN_ROOT}/hooks/ensure_agent_sdk.py" |
| UserPromptSubmit | all | bash "${CLAUDE_PLUGIN_ROOT}/hooks/sg-python.sh" "${CLAUDE_PLUGIN_ROOT}/hooks/security_reminder_hook.py" |
| PostToolUse | Edit|Write|MultiEdit|NotebookEdit | bash "${CLAUDE_PLUGIN_ROOT}/hooks/sg-python.sh" "${CLAUDE_PLUGIN_ROOT}/hooks/security_reminder_hook.py" |
| PostToolUse | Bash | bash "${CLAUDE_PLUGIN_ROOT}/hooks/sg-python.sh" "${CLAUDE_PLUGIN_ROOT}/hooks/security_reminder_hook.py" |
| PostToolUse | Bash | bash "${CLAUDE_PLUGIN_ROOT}/hooks/sg-python.sh" "${CLAUDE_PLUGIN_ROOT}/hooks/security_reminder_hook.py" |
| PostToolUse | Bash | bash "${CLAUDE_PLUGIN_ROOT}/hooks/sg-python.sh" "${CLAUDE_PLUGIN_ROOT}/hooks/security_reminder_hook.py" |
| Stop | all | bash "${CLAUDE_PLUGIN_ROOT}/hooks/sg-python.sh" "${CLAUDE_PLUGIN_ROOT}/hooks/security_reminder_hook.py" |
MCP servers and apps
None.
Bundled code
57 code files (Python, Shell); first 40 listed:
security-guidance/tests/test_temp_index_cleanup.pysecurity-guidance/tests/test_nested_repos.pysecurity-guidance/tests/test_prompt_cache.pysecurity-guidance/tests/test_inflight_reviews.pysecurity-guidance/tests/test_review_model.pysecurity-guidance/tests/test_stop_review_paths.pysecurity-guidance/tests/test_launcher_process_count.pysecurity-guidance/tests/test_git_index_locks.pysecurity-guidance/tests/test_reviewer_tools.pysecurity-guidance/tests/test_review_outcomes.pysecurity-guidance/tests/test_sdk_emptied_install.pysecurity-guidance/tests/test_stop_baseline_checkout.pysecurity-guidance/tests/test_untracked_cap.pysecurity-guidance/tests/test_diff_parsing.pysecurity-guidance/tests/test_reviewer_context_metrics.py- and 42 more
Network calls
4 files with a network call pattern. First match per file:
plugins/security-guidance/tests/test_network_failure_class.py:4import http.client
plugins/security-guidance/tests/test_tls_store_unreadable_cert.py:14import urllib.request
plugins/security-guidance/hooks/security_reminder_hook.py:71import urllib.request
plugins/security-guidance/hooks/llm.py:32import urllib.request
Starts other programs
33 files. First match per file:
plugins/security-guidance/tests/test_temp_index_cleanup.py:174p = subprocess.Popen([sys.executable, "-c", "pass"])
plugins/security-guidance/tests/test_nested_repos.py:113listed = subprocess.run(
plugins/security-guidance/tests/test_inflight_reviews.py:35p = subprocess.Popen(
plugins/security-guidance/tests/test_stop_review_paths.py:62where subprocess.run and the bounded diff reader both start theirs."""
plugins/security-guidance/tests/test_launcher_process_count.py:33BASH_MAJOR = int(subprocess.run([BASH, "-c", "echo ${BASH_VERSINFO[0]}"], capture_output=True,
Credentials referenced
ANTHROPIC_API_KEYANTHROPIC_AUTH_TOKENDB_PASSWORDSECRETSECRET_KEYSESSION_SECRET
Static scan of commit 41f619d on 2026-10-27. Signals are patterns found in the files, not a verdict: a network call can be the whole point of a skill. Read the linked lines before you decide. How the scan works.