agentsclimarketplace

Security

Skill jhlee0409/all-for-claudecode/skills/security

Security scan — vulnerability check and threat assessmentFrom its SKILL.md

Install
npx -y skills add jhlee0409/all-for-claudecode --skill security

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.9 KB, as published. Nobody here has run it

/afc:security — Security Scan

Detects and reports security vulnerabilities in the codebase. Inspects against OWASP Top 10. Read-only — does not modify code.

Arguments

  • $ARGUMENTS — (optional) scan scope (file/directory path, or "full" for full scan)
    • If not specified: scans only files changed in the current branch

Config Load

Architecture, Code Style, and Project Context are auto-loaded via .claude/rules/afc-project.md. Read .claude/afc.config.md if CI commands are needed.

If neither rules file nor config exists: read CLAUDE.md for framework info. Assume "unknown" if no source has it.

For dependency audit command: infer from packageManager field in package.json or the lockfile (e.g., npm audit, yarn audit, pnpm audit).

Execution Steps

1. Determine Scan Scope

  • $ARGUMENTS = path → that path only
  • $ARGUMENTS = "full" → entire codebase
  • Not specified → changed files from: !git diff --name-only HEAD 2>/dev/null || echo "[GIT_DIFF_FAILED]"

2. Agent Teams (when scan complexity warrants it)

Use Agent Teams when the scan scope is complex enough that a single-pass review would miss cross-file vulnerability patterns. Assess holistically:

  • File types: Auth handlers, trust boundary code, and input-processing layers warrant deeper multi-agent scrutiny than config files or simple utilities
  • Code volume: Large files with dense logic benefit from focused agent attention
  • Diversity of concerns: Multiple distinct security domains (auth + injection + data exposure) across separate modules
  • Trust boundaries: Files that cross privilege levels (user input → DB, client → server, public → internal API)

Use Agent Teams when any of the following apply:

  • Scan includes auth handlers, session management, or access control logic spanning multiple files
  • Input entry points and their sanitization/consumption code live in different directories
  • The scope spans multiple distinct security domains that cannot be assessed in a single coherent pass

Use direct scan (orchestrator only) when:

  • Scope is a single module or tightly-coupled set of files
  • Security concerns are localized (e.g., one feature, one data flow)
  • No cross-file trust boundary transitions are involved

Pre-scan: Data Flow Context (before distributing to agents, when using Agent Teams):

  1. For each changed file, identify input entry points (user input, API params, URL params, form data) and sanitization calls (validation, escaping, encoding)
  2. Trace input flow across changed files: where does user input enter? Where is it sanitized? Where is it consumed?
  3. Include this context in each agent's prompt:
    ## Data Flow Context
    Input flows relevant to your scan scope:
    - User input enters via `req.body` in api/routes.ts → sanitized by `validateInput()` in shared/validation.ts → consumed in features/user.ts
    - URL params enter via `req.params` in api/routes.ts → NO sanitization found → used in features/search.ts
    Account for these flows when assessing injection/XSS severity.
    
Task("Security scan: src/features/", subagent_type: general-purpose,
  prompt: "... {include Data Flow Context} ...")
Task("Security scan: src/shared/api/", subagent_type: general-purpose,
  prompt: "... {include Data Flow Context} ...")

For direct scans (orchestrator only): skip pre-scan — orchestrator has full context.

2.5. Cross-Boundary Verification

Read ${CLAUDE_SKILL_DIR}/cross-boundary-verification.md and apply it after parallel agent results are collected.

3. Security Check Items

A. Injection (A03:2021)

  • Uses of dangerouslySetInnerHTML
  • User input inserted directly into DOM/URL/queries
  • Uses of eval(), new Function()

B. Broken Authentication (A07:2021)

  • Hardcoded tokens or credentials
  • API routes accessible without authentication
  • Session management vulnerabilities

C. Sensitive Data Exposure (A02:2021)

  • .env values exposed to the client (check framework-specific public env variables from Project Context)
  • Sensitive information printed via console.log
  • Internal details exposed in error messages

D. Security Misconfiguration (A05:2021)

  • CORS configuration
  • CSP headers
  • Unnecessary debug mode enabled

E. XSS (A03:2021)

  • Patterns that bypass React's default escaping
  • URL parameters rendered without validation
  • Dynamic injection of iframes or scripts

F. Dependencies (A06:2021)

  • Packages with known vulnerabilities (dependency audit tool results)
  • Outdated dependencies

4. Output Results

## Security Scan Results

### Summary
| Severity | Count |
|----------|-------|
| Critical | {N} |
| High | {N} |
| Medium | {N} |
| Low | {N} |

### Findings

#### SEC-{NNN}: {title}
- **Category**: {OWASP code}
- **File**: {path}:{line}
- **Description**: {vulnerability details}
- **Impact**: {impact if exploited}
- **Mitigation**: {how to fix}

### Dependency Audit
{dependency audit command result summary — if executable}

### Recommended Actions
{prioritized fix suggestions}

5. Final Output

Security scan complete
├─ Scope: {file count} files
├─ Found: Critical {N} / High {N} / Medium {N} / Low {N}
└─ Recommended: {most urgent action}

Notes

  • Read-only: Does not modify code. Reports security issues only.
  • Minimize false positives: Account for React's default XSS defenses. Report only genuinely dangerous patterns.
  • Handle sensitive data carefully: Do not include actual token or password values in scan results.
  • Consider context: Reflect security specifics for the project's framework environment (from Project Context).

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.