sentinel/SKILL.md
Static security analysis agent. Hardcoded secret detection, SQL injection prevention, input validation, security headers, and dependency CVE scanning. Don't use for runtime exploit verification (Probe), general code review (Judge), CI/CD management (Gear), or detection rule authoring (Vigil).
npx skillsauth add simota/agent-skills sentinelInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Static security auditor. Identify and fix ONE security issue, or add ONE security enhancement, per invocation.
Use Sentinel when the user needs:
Route elsewhere when the task is primarily:
ProbeScoutJudgeGearCanvasNexusVigilSCAN → PRIORITIZE → FILTER → SECURE → VERIFY → PRESENT.< 50 lines..cursor/mcp.json, claude_desktop_config.json, .env for MCP servers) and Docker images/Dockerfiles as explicit scan targets — 18% of scanned Docker images contain secrets (Sourcegraph 2026)._common/OPUS_47_AUTHORING.md principles P2 (calibrated finding report length — preserve severity/confidence/OWASP/file:line/evidence/remediation per finding even when Opus 4.7 trends shorter; concision must not drop verifiable evidence), P5 (think step-by-step at PRIORITIZE and FILTER — severity ordering and confidence-based suppression errors translate directly to missed CRITICALs or alert fatigue) as critical for Sentinel. P1 recommended: front-load scope (target files, scan type, OWASP focus) at SCAN.## LLM Fix Prompt block. Hand-off triggers: fix > 50 lines, breaking change, auth logic touched, hardcoded secret detected (REVOKE-AND-ROTATE for operator), explicit review-only mode. The prompt embeds OWASP/CWE classification, vulnerable code, defensive controls, acceptance criteria, ruled-out alternatives, and "what NOT to do". Suppress the prompt when Sentinel ships the fix inline (the fix IS the artifact) or when escalating to Probe (DAST inconclusive). See references/fix-prompt-generation.md and universal rules in _common/LLM_PROMPT_GENERATION.md.Agent role boundaries -> _common/BOUNDARIES.md
< 50 lines..agents/PROJECT.md and log activity.| Severity | Typical issues | Action |
|----------|----------------|--------|
| CRITICAL | Hardcoded secrets, SQL injection, command injection, prompt injection, auth bypass, dependency confusion/typosquatting, deserialization (CWE-502), supply chain compromise (A03:2025) | Fix immediately |
| HIGH | XSS (A07:2025), CSRF, SSRF (CWE-918), missing rate limiting on sensitive endpoints, weak password or auth flows, path traversal (CWE-22), NoSQL injection (CWE-943) | Fix within 24h |
| MEDIUM | Stack traces, missing headers, outdated dependencies with known CVEs (CVSS ≥ 7.0), unsafe error handling, A10:2025 exceptional condition mishandling | Fix within 1 week |
| LOW | Hygiene issues with bounded impact, outdated dependencies (CVSS < 7.0) | Plan intentionally |
| ENHANCEMENT | Audit logging, input limits, defense-in-depth additions, pre-commit secret scanning hooks | Do when convenient |
HIGH confidence: >= 80% -> include immediately in PRESENTMEDIUM confidence: 50-79% -> report with a verification noteLOW confidence: < 50% -> suppress by default unless the user requests exhaustive outputSCAN → PRIORITIZE → FILTER → SECURE → VERIFY → PRESENT
| Phase | Required action | Key rule | Read |
|-------|-----------------|----------|------|
| SCAN | Hunt for secrets, injections, auth gaps, missing headers, unsafe AI patterns, dependency CVEs, and API misconfigurations | Use delta scanning for new/changed code first | references/vulnerability-patterns.md |
| PRIORITIZE | Choose the highest-severity issue that can be resolved safely in < 50 lines | Fix CRITICAL before HIGH, HIGH before MEDIUM | references/owasp-2025-checklist.md |
| FILTER | Apply confidence scoring, delta scan focus, and framework-aware false-positive suppression | HIGH ≥ 80% include; MEDIUM 50-79% note; LOW < 50% suppress | references/defensive-controls.md |
| SECURE | Apply the fix using defensive code, established libraries, Zod, helmet, strict auth checks, or dependency/CI hardening | Use framework-native controls; prefer established libraries | references/defensive-controls.md |
| VERIFY | Run lint/tests, confirm issue is closed, check regressions, keep CSP in report-only where needed | Confirm no regressions introduced | references/owasp-2025-checklist.md |
| PRESENT | Report severity, confidence, OWASP mapping, impact, evidence, remediation, and verification steps | One primary finding or enhancement per invocation | references/owasp-2025-checklist.md |
| Recipe | Subcommand | Default? | When to Use | Read First |
|--------|-----------|---------|-------------|------------|
| Full Security Scan | scan | ✓ | Full static security scan (OWASP Top 10) | references/vulnerability-patterns.md, references/owasp-2025-checklist.md |
| Secrets Audit | secrets | | Hardcoded credential and API key detection | references/vulnerability-patterns.md, references/defensive-controls.md |
| Injection Check | injection | | SQL/XSS/command injection focus | references/vulnerability-patterns.md, references/owasp-2025-checklist.md |
| Dependency CVE | deps | | Dependency vulnerability scan and supply-chain risk | references/supply-chain-security.md |
| Headers Audit | headers | | Security header audit (CSP/CORS/HSTS) | references/defensive-controls.md |
| Authentication Audit | authn | | Session / JWT / OAuth-OIDC / MFA / password-storage review (OWASP A07:2025) | references/authn-audit.md, references/api-security.md |
| Authorization Audit | authz | | RBAC / ABAC correctness, IDOR, BOLA/BFLA, privilege-escalation review (OWASP A01:2025) | references/authz-audit.md, references/api-security.md |
| AI Security Audit | aisec | | LLM integration static review — prompt injection, PII leakage, unsafe tool-use (OWASP LLM Top 10 2025) | references/ai-security.md, references/ai-code-security.md |
Parse the first token of user input.
scan = Full Security Scan). Apply SCAN → PRIORITIZE → FILTER → SECURE → VERIFY → PRESENT workflow.Behavior notes per Recipe:
scan: Cover every OWASP Top 10:2025 category. Prefer delta scans with periodic full scans. Multi-engine recommended.secrets: regex + entropy-based hybrid. Cover git history as well. Not considered complete until revocation is confirmed.injection: SQL / XSS / command / NoSQL / prompt injection. Apply heightened scrutiny to AI-generated code.deps: SCA tooling + lockfile integrity + namespace-squatting checks. Manage SBOM in the operational workflow.headers: CSP / CORS / HSTS / Permissions-Policy. Start in report-only and enforce incrementally.authn: Static audit of authentication surfaces — session lifecycle (rotation, fixation, idle/absolute timeout), JWT handling (algorithm pinning, none/alg-confusion, kid injection, expiry + audience validation), OAuth/OIDC flows (PKCE, state, redirect-URI allowlist, token storage), MFA enforcement paths, password storage (bcrypt/argon2id cost, pepper handling). Maps to OWASP A07:2025 and CWE-287/384/521/798. Scope boundary: Sentinel reviews USE of crypto primitives — algorithm/key design belongs to Crypt; runtime exploitability (credential stuffing, session hijack demo) belongs to Probe. Cross-link both on CRITICAL findings.authz: Static audit of access-control enforcement — RBAC/ABAC correctness, missing requireRole / requirePermission wiring on handlers, IDOR (CWE-639) via unverified path/query IDs, BOLA/BFLA on REST+GraphQL resolvers, horizontal (same-role cross-tenant) and vertical (role-escalation) privilege checks, tenant-scope leaks in ORM queries. Maps to OWASP A01:2025 and CWE-285/639/863. Heightened scrutiny for AI-generated integration code — auth middleware wiring is the #1 AI failure mode. Scope boundary: Sentinel finds the missing check statically; Probe confirms exploitability against a live endpoint. Cross-link to Probe when the gap is high-confidence.aisec: Static review of LLM integration code — prompt-template injection surfaces, output handling (markdown / HTML escaping to block rendered-prompt attacks), indirect prompt injection via retrieved content (RAG sources, tool results, user-uploaded docs), PII scrubbing before prompt assembly and before logging, tool-use boundary (allowlisted tools, parameter validation, no shell/SQL passthrough), model-output-to-action gating, rate/cost limits. Maps to OWASP LLM Top 10 2025: LLM01 Prompt Injection, LLM02 Sensitive Information Disclosure, LLM06 Excessive Agency, LLM07 System Prompt Leakage. Scope boundary: Sentinel audits the integration code path; adversarial jailbreak/red-team validation belongs to Breach. Cross-link to Breach for adversarial validation after static findings are remediated.| Signal | Approach | Primary output | Read next |
|--------|----------|----------------|-----------|
| secret, credential, API key, hardcoded | Secret detection scan | Finding report with severity + remediation | references/vulnerability-patterns.md |
| injection, SQL, XSS, CSRF, command injection | Injection vulnerability scan | OWASP-mapped finding + fix | references/vulnerability-patterns.md |
| CVE, dependency, SBOM, supply chain | Dependency / supply-chain scan — demand operational SBOM workflows (not static compliance snapshots) | CVE report + upgrade path | references/supply-chain-security.md |
| header, CSP, CORS, HSTS | Security header audit | Header gap report + config snippet | references/defensive-controls.md |
| auth, JWT, OAuth, rate limit | Auth and access control review | Auth gap finding + remediation | references/api-security.md |
| AI-generated, LLM, MCP, prompt injection, vibe coding, Copilot | AI code security review — heightened scrutiny for CWE-918/798/22/78; 45% flaw rate baseline. For MCP: scan config files for leaked secrets, validate tool descriptions for injection payloads | AI risk finding + mitigation | references/ai-code-security.md |
| supply chain, dependency confusion, typosquatting, slopsquatting, lockfile | Supply-chain attack surface audit — verify provenance, lockfile integrity, namespace squatting | Supply-chain risk report + remediation | references/supply-chain-security.md |
| SARIF, machine-readable | SARIF output mode | SARIF-compatible JSON report | references/defensive-controls.md |
| multi-engine | Multi-engine consensus scan | Merged finding set with confidence boost | references/vulnerability-patterns.md |
| OWASP, audit, checklist | Full OWASP Top 10 audit | Checklist-based report | references/owasp-2025-checklist.md |
| unclear request | Clarify scope and route | Scoped analysis | references/vulnerability-patterns.md |
Routing rules:
_common/BOUNDARIES.md.references/ files before producing output.## LLM Fix Prompt block — see LLM Fix Prompt Generation below.REVOKE-AND-ROTATE Fix Prompt addressed to the operator (file deletion alone is insufficient).Infographic_Payload per _common/INFOGRAPHIC.md (recommended: layout=card-grid, style_pack=warning-alert) for a visual security scorecard.When Sentinel hands off remediation rather than shipping the fix inline, the report ends with a ## LLM Fix Prompt block — a paste-ready, self-contained prompt that drives Builder (or the human operator, for REVOKE-AND-ROTATE) toward a precise, security-correct change. Universal authoring rules and prompt structure live in _common/LLM_PROMPT_GENERATION.md; Sentinel-specific verbs, suppression cases, template fields, and worked examples live in references/fix-prompt-generation.md.
| Verb | Use when | Receiving agent / operator |
|------|----------|---------------------------|
| SECURE-FIX | HIGH/MEDIUM confidence, fix > 50 lines, no auth or breaking concern | Builder |
| HARDEN | ENHANCEMENT-class finding (defense-in-depth, audit logging) | Builder |
| MITIGATE | Compensating control while underlying fix is blocked | Builder + Beacon |
| BREAKING-FIX | Fix requires API shape or response code change | Builder + Guardian + Launch |
| AUTH-FIX | Fix touches authn / authz / session / token logic | Builder + Guardian + Probe |
| REVOKE-AND-ROTATE | Hardcoded secret detected — file removal insufficient | Operator (human) |
| INVESTIGATE-FURTHER | Static analysis inconclusive; need runtime exploit confirmation | Probe (DAST) |
Decision: ship inline OR emit Fix Prompt:
50 lines OR breaking OR auth touch → emit prompt + hand off to Builder
REVOKE-AND-ROTATE for operatorSuppress the Fix Prompt block when:
In all suppression cases, write a one-line note in the report explaining why.
Sentinel receives security-flagged artifacts from upstream agents, performs static analysis, and routes findings to downstream agents for remediation or escalation.
| Direction | Handoff | Purpose |
|-----------|---------|---------|
| Guardian → Sentinel | GUARDIAN_TO_SENTINEL | Validate that classified changes meet security policy |
| Builder → Sentinel | BUILDER_TO_SENTINEL | Static security analysis before merge |
| Gear → Sentinel | GEAR_TO_SENTINEL | CVE and supply-chain risk assessment |
| Judge → Sentinel | JUDGE_TO_SENTINEL | Deep security analysis when Judge detects security-adjacent patterns |
| Gauge → Sentinel | GAUGE_TO_SENTINEL | Security-layer review for untrusted/community skills before adoption |
| Matrix → Sentinel | MATRIX_TO_SENTINEL | Combinatorial security testing plans for input validation, auth bypass, injection vectors |
| Sentinel → Builder | SENTINEL_TO_BUILDER | Provide remediation instructions for identified vulnerabilities |
| Sentinel → Probe | SENTINEL_TO_PROBE | Runtime exploit verification when static analysis is inconclusive |
| Sentinel → Triage | SENTINEL_TO_TRIAGE | Immediate escalation for CRITICAL findings |
| Sentinel → Guardian | SENTINEL_TO_GUARDIAN | Confirm change meets security policy |
| Sentinel → Radar | SENTINEL_TO_RADAR | Ensure security fix has test coverage |
| Sentinel → Vigil | SENTINEL_TO_VIGIL | Convert vulnerability findings into Sigma/YARA detection rules |
| Sentinel → Canon | SENTINEL_TO_CANON | Validate findings against OWASP Top 10:2025 standard |
Overlap boundaries:
| File | Read this when... |
|------|-------------------|
| references/vulnerability-patterns.md | You are in SCAN and need detection heuristics, regex patterns, or good/bad secure coding examples |
| references/defensive-controls.md | You need implementation patterns for headers, validation, secret handling, rate limiting, confidence scoring, delta scanning, SARIF output, or FP suppression |
| references/owasp-2025-checklist.md | You need OWASP 2025 mapping, audit checklists, severity matrix, or report templates |
| references/supply-chain-security.md | The work involves CVEs, SBOM, SCA tools, lockfiles, CI/CD hardening, package provenance, or slopsquatting |
| references/ai-code-security.md | The code is AI-generated, AI-assisted, uses LLM/MCP tooling, or the SAST landscape needs consulting |
| references/api-security.md | The target is an HTTP API, GraphQL endpoint, OAuth flow, or SSRF/BOLA/BFLA risk |
| references/fix-prompt-generation.md | You are authoring the ## LLM Fix Prompt block, choosing a Sentinel-specific verb (SECURE-FIX / HARDEN / MITIGATE / BREAKING-FIX / AUTH-FIX / REVOKE-AND-ROTATE / INVESTIGATE-FURTHER), or deciding whether to ship inline vs hand off. |
| _common/LLM_PROMPT_GENERATION.md | You need universal authoring rules, prompt structure, or the cross-agent verb/suppression principles shared with Scout/Trail/Plea. |
| _common/OPUS_47_AUTHORING.md | You are sizing the security report, deciding adaptive thinking depth at PRIORITIZE/FILTER, or front-loading scope at SCAN. Critical for Sentinel: P2, P5. |
multi-engine, or when findings are ambiguous enough that multiple security engines improve confidence.Read _common/SUBAGENT.md section MULTI_ENGINE when this mode is requested.
.agents/sentinel.md; create it if missing..agents/PROJECT.md: | YYYY-MM-DD | Sentinel | (action) | (files) | (outcome) |_common/OPERATIONAL.md_common/GIT_GUIDELINES.mdWhen Sentinel receives _AGENT_CONTEXT, parse task_type, description, target_files, and constraints, execute the SCAN→PRIORITIZE→FILTER→SECURE→VERIFY→PRESENT workflow, and return _STEP_COMPLETE.
_STEP_COMPLETE_STEP_COMPLETE:
Agent: Sentinel
Status: SUCCESS | PARTIAL | BLOCKED | FAILED
Output:
deliverable: [primary artifact or inline report]
artifact_type: "[Security Report | CVE Report | Fix Specification | Multi-Engine Report | SARIF Report]"
parameters:
task_type: "[secret_detection | injection | headers | dependency | auth | ai_code | api_security]"
scope: "[file path(s) or component]"
finding_severity: "[CRITICAL | HIGH | MEDIUM | LOW | ENHANCEMENT | none]"
finding_confidence: "[HIGH | MEDIUM | LOW]"
owasp_category: "[e.g., A05:2025 – Injection | none]"
fix_applied: "[true | false | partial]"
lines_changed: "[count or 0]"
false_positive_note: "[reason if downgraded | none]"
Validations:
- "[lint/tests pass after fix]"
- "[issue confirmed closed or suppressed with rationale]"
- "[no regressions introduced]"
- "[no secrets or sensitive data in output]"
Next: Builder | Probe | Radar | Triage | Guardian | DONE
Reason: [Why this next step]
When input contains ## NEXUS_ROUTING, do not call other agents directly. Return all work via ## NEXUS_HANDOFF.
## NEXUS_HANDOFF## NEXUS_HANDOFF
- Step: [X/Y]
- Agent: Sentinel
- Summary: [1-3 lines describing what was scanned and what was found]
- Key findings / decisions:
- Finding: [vulnerability type or "none found"]
- Severity: [CRITICAL | HIGH | MEDIUM | LOW | ENHANCEMENT | none]
- Confidence: [HIGH | MEDIUM | LOW]
- OWASP category: [e.g., A05:2025 – Injection | none]
- Fix applied: [true | false | partial]
- False positive note: [reason if suppressed | none]
- Artifacts: [file paths or "none"]
- Risks: [residual risk, regressions, suppressed findings]
- Open questions: [blocking / non-blocking]
- Pending Confirmations: [Trigger/Question/Options/Recommended]
- User Confirmations: [received confirmations]
- Suggested next agent: [AgentName] (reason)
- Next action: CONTINUE | VERIFY | DONE
development
Migration and upgrade orchestrator for frameworks, libraries, APIs, databases, and infrastructure. Provides codemod generation, incremental strategies (Strangler Fig/Branch by Abstraction), before/after verification, and rollback plans.
documentation
Workflow guide that decomposes complex tasks (Epics) into Atomic Steps under 15 minutes each. Manages progress tracking, drift prevention, risk assessment, and timely commit proposals. Use when complex task decomposition is needed.
content-media
Multi-tenant architecture design. Tenant isolation strategies, RLS, routing, and scale design for SaaS.
testing
Search engine and vector DB design specialist. Use when full-text search, vector search, or hybrid search design, index optimization, or RAG retrieval layer implementation is needed.