Run authorized repository security scans for vulnerabilities, dependency risk, secrets, and binary policy. Triggers: "security", "run repository security scans for", "security skill".
npx skills add https://github.com/boshu2/agentops --skill security
> Purpose: Run repeatable security checks across code, scripts, authorized binaries, and repo-managed prompt surfaces.
Use this skill for a caller-requested repository scan, authorized binary assurance, dependency risk, secrets, or offline prompt-surface redteam.
--require-tools when complete tool coverage is required. Why: absent evidence is not evidence of absence.risk acceptance, reruns, and promotion are caller decisions.
scripts/security-gate.sh composes available scanners for quick/full/release checks.scripts/security_suite.py provides static, dynamic, contract, baseline, and policy primitives for authorized binaries.scripts/prompt_redteam.py checks repo-owned prompt and tool-control surfaces against the attack pack.This is the canonical security runbook. Suite policy gating produces machine-consumable outputs, including policy/policy-verdict.json when a policy file is supplied.
Read the suite runbook before binary, policy, baseline, or redteam work. Use the OWASP checklist for code-level review.
Run:
scripts/security-gate.sh --mode quick
Checkpoint: preserve the exit code and verify the reported security-gate-summary.json exists and parses before triage.
Run:
scripts/security-gate.sh --mode full
Add --require-tools when skipped scanners would invalidate the assurance claim. Checkpoint: report the result as incomplete unless the selected artifact validator and process both succeed.
Scheduled automation runs the full gate against the intended branch and retains its artifact directory. A failing scheduled run creates actionable tracked work; AgentOps itself does not supply the scheduler.
For review work beyond the scripted gates (code-level or redteam passes), hunt
against the full taxonomy, not your first hunch:
the OWASP checklist (or the attack pack for
prompt surfaces) and record a per-class result: finding, clean, or
not-assessed. An unvisited class is a coverage gap, not a clean. Chasing one
suspicious lead to the exclusion of the taxonomy is the **first-scent
fixation** failure mode.
concrete input, request, or command demonstrating the behavior, captured in
the artifact. Pattern-match-only findings are reported as suspicions, ranked
below proven ones.
what happens when it errors or hangs — then probe it where safe. A control
that fails open under error is a finding even when its happy path is correct.
the effective identity is at each hop (user, service, token, hook). A hop
where identity is assumed rather than verified — the borrowed identity
failure mode — is a finding.
yields nothing new: no new finding, no new coverage gap. That quiet round is
the stop condition. Stopping after a loud round (findings still arriving) is
premature; report the hunt as unconverged if the budget ends before a quiet
round.
Artifact directory: repository gates write ${SECURITY_GATE_OUTPUT_DIR:-${TMPDIR:-/tmp}/agentops-security}/<run-id>/; composable-suite and redteam runs use their explicit --out-dir.
Filename convention: repository gates require security-gate-summary.json (and raw summary.json); suite runs require suite-summary.json; redteam runs require redteam/redteam-results.json.
Serialization/schema format: security-gate-summary.json is JSON with nonempty mode, run_id, output_dir, and gate_status, numeric missing_tool_count, boolean require_tools, and object toolchain.
Validator command: with OUT=<security-gate-run-dir>, run jq -e '(.mode|type)=="string" and (.mode|length)>0 and (.run_id|type)=="string" and (.run_id|length)>0 and (.output_dir|type)=="string" and (.output_dir|length)>0 and .gate_status=="PASS" and (.missing_tool_count|type)=="number" and (.require_tools|type)=="boolean" and (.toolchain|type)=="object"' "$OUT/security-gate-summary.json" >/dev/null.
Output: report the artifact path, command/exit code, mode, gate status,
missing-tool coverage, ranked findings, and authorization boundary. Do not add
an owner, next action, approval, release, or retry decision.
Run the skill and redteam validators:
bash skills/security/scripts/validate.sh
bash tests/scripts/test-security-suite-redteam.sh
For a bounded suite smoke test, use an owned binary and a temporary output directory as shown in the suite runbook.
| Problem | Response |
|---------|----------|
| Scanner missing/error | Record the coverage gap; install it or rerun with --require-tools when required |
| Local/CI mismatch | Compare scanner versions, config, mode, and both artifact directories |
| Suspected false positive | Reproduce narrowly; document any authorized suppression and its owner |
| Suite/baseline failure | Inspect the named compare/policy artifact; never refresh baseline reflexively |
| Redteam failure after wording change | Decide whether the control regressed or the attack-pack matcher needs intentional revision |
You are a dependency security expert specializing in vulnerability scanning, license compliance, and supply chain security. Analyze project dependencies for known vulnerabilities, licensing issues, outdated packages, and provide actionable remediation strategies.
Perform language and framework specific security best-practice reviews and suggest improvements. Trigger only when the user explicitly requests security best practices guidance, a security review/report, or secure-by-default coding help. Trigger only for supported languages (python, javascript/typescript, go). Do not trigger for general code review, debugging, or non-security tasks.
Implement authentication and authorization with Better Auth - a framework-agnostic TypeScript authentication framework. Features include email/password authentication with verification, OAuth providers (Google, GitHub, Discord, etc.), two-factor authentication (TOTP, SMS), passkeys/WebAuthn support, session management, role-based access control (RBAC), rate limiting, and database adapters. Use when adding authentication to applications, implementing OAuth flows, setting up 2FA/MFA, managing user sessions, configuring authorization rules, or building secure authentication systems for web applications.
Package entire code repositories into single AI-friendly files using Repomix. Capabilities include pack codebases with customizable include/exclude patterns, generate multiple output formats (XML, Markdown, plain text), preserve file structure and context, optimize for AI consumption with token counting, filter by file types and directories, add custom headers and summaries. Use when packaging codebases for AI analysis, creating repository snapshots for LLM context, analyzing third-party libraries, preparing for security audits, generating documentation context, or evaluating unfamiliar codebases.
You are a dependency security expert specializing in vulnerability scanning, license compliance, and supply chain security. Analyze project dependencies for known vulnerabilities, licensing issues, outdated packages, and provide actionable remediation strategies.
Expert patterns for HubSpot CRM integration including OAuth authentication, CRM objects, associations, batch operations, webhooks, and custom objects. Covers Node.js and Python SDKs.
Perform language and framework specific security best-practice reviews and suggest improvements. Use when the user explicitly requests security best practices guidance, a security review or report, or secure-by-default coding help. Supports Python, JavaScript/TypeScript, and Go. Do NOT use for general code review, debugging, threat modeling (use security-threat-model), or non-security tasks.
Configures API gateways for routing, authentication, rate limiting, and request transformation in microservice architectures. Use when setting up Kong, Nginx, AWS API Gateway, or Traefik for centralized API management.
Take boshu2/security from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.