Skip to content
Back to skills

Verify Security

ASecurity

Security verification gate. Scans code for vulnerabilities, detects dangerous patterns, and ensures security decisions are documented. Use when the user mentions security scans, vulnerability detection, security audits, code security, OWASP, injection detection, or sensitive-data leaks. Auto-triggers for new modules, security-related changes, offensive/defensive tasks, and completed refactors.

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 5, 2026
ai-agentsjavascriptpythonrustgojavashellbashsqlnodeaws

Works with

  • cursor
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 5, 2026

npx -y skills add me-cedric/agent-compass --skill verify-security --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Verify Security?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Verify Security
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/me-cedric-verify-security/badge)](https://www.skillsdirectory.com/skills/me-cedric-verify-security)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: verify-security
description: Security verification gate. Scans code for vulnerabilities, detects dangerous patterns, and ensures security decisions are documented. Use when the user mentions security scans, vulnerability detection, security audits, code security, OWASP, injection detection, or sensitive-data leaks. Auto-triggers for new modules, security-related changes, offensive/defensive tasks, and completed refactors.
license: MIT
compatibility: node>=18
user-invocable: true
disable-model-invocation: false
allowed-tools: Bash, Read, Grep
argument-hint: <scan-path>
risk_level: medium
writes_files: false
requires_tools: []
---

# βš– Verification Gate Β· Security

## Core principle

```
Security is the foundation; a breach sinks the release.
Security decisions must be traceable.
Critical/High findings must be fixed before delivery.
```

## Automatic scan

Run the security scanner script (cross-platform):

```bash
# from the skill directory
node scripts/security_scanner.cjs <scan-path>
node scripts/security_scanner.cjs <scan-path> -v           # verbose mode
node scripts/security_scanner.cjs <scan-path> --json       # JSON output
node scripts/security_scanner.cjs <scan-path> --exclude vendor  # exclude a directory
```

## Coverage

### Vulnerability classes detected

| Class | Checks | Severity |
|------|--------|--------|
| **Injection** | SQL injection, command injection, code injection | πŸ”΄ Critical |
| **Secrets** | Hardcoded keys, AWS keys, private keys | πŸ”΄ Critical |
| **XSS** | innerHTML, dangerouslySetInnerHTML | 🟠 High |
| **Deserialization** | pickle.loads, yaml.load | 🟠 High |
| **Path traversal** | Unvalidated file-path operations | 🟠 High |
| **SSRF** | Unvalidated URL requests | 🟠 High |
| **XXE** | Unsafe XML parsing | 🟠 High |
| **Weak crypto** | MD5/SHA1 in security contexts | 🟑 Medium |
| **Insecure randomness** | Non-crypto RNG in security contexts | 🟑 Medium |
| **Debug code** | console.log, print, debugger | πŸ”΅ Low |

### Documentation-level checks

Security-relevant code must be recorded in DESIGN.md:

- [ ] **Threat model** β€” which attacks are defended against
- [ ] **Security decisions** β€” why this approach was chosen
- [ ] **Security boundaries** β€” where the trust boundaries sit
- [ ] **Accepted risks** β€” which risks were consciously accepted

## Dangerous-pattern quick reference

### Python
```python
# πŸ”΄ Dangerous
eval(), exec(), os.system()
subprocess(..., shell=True)
pickle.loads(), yaml.load()
cursor.execute(f"SELECT * FROM t WHERE id = {id}")

# βœ… Safe alternative
ast.literal_eval()
subprocess([...], shell=False)
yaml.safe_load()
cursor.execute("SELECT * FROM t WHERE id = %s", (id,))
```

### JavaScript
```javascript
// πŸ”΄ Dangerous
eval(), innerHTML, document.write()
new Function(userInput)

// βœ… Safe alternative
JSON.parse(), textContent
template engines with auto-escaping
```

### Go
```go
// πŸ”΄ Dangerous
exec.Command("sh", "-c", userInput)
template.HTML(userInput)

// βœ… Safe alternative
exec.Command("cmd", args...)
html/template auto-escaping
```

## Verification flow

```
1. Run security_scanner.cjs
2. Review findings, sorted by severity
3. Check that security decisions are documented
4. Emit the security report
5. Critical/High findings must be fixed before delivery
```

## Auto-trigger moments

| Scenario | Trigger |
|------|----------|
| New module | When module creation completes |
| Security-related change | Auth, authorization, crypto, input handling |
| Offensive/defensive task | When a red/blue-team task completes |
| Refactor done | When a refactoring task completes |
| Pre-commit | Before committing code |

## Report format

```
## Security Verification Report

βœ“ pass | βœ— fail

- πŸ”΄ Critical: N
- 🟠 High: N
- 🟑 Medium: N
- πŸ”΅ Low: N

### Findings

| File | Line | Kind | Severity | Description |
|------|------|------|--------|------|
| ... | ... | ... | ... | ... |

### Verdict

Deliverable / fix before delivery
```

---

Files in this skill

  • SKILL.md3.9 KB
  • scripts/security_scanner.cjs12 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.