resources/skills/x-evaluate-runtime/SKILL.md
Evaluates runtime protection (rate limits, WAF, CSP) with SARIF + ASVS scoring.
npx skillsauth add edercnj/claude-environment x-evaluate-runtimeInstall 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.
Evaluate runtime protection controls for {{PROJECT_NAME}} by analyzing active defense mechanisms including rate limiting, WAF rules, bot protection, account lockout, brute force mitigation, CSP enforcement, and permissions policy. Produce SARIF 2.1.0 output with ASVS compliance mapping and a scored Markdown report.
/x-evaluate-runtime --target https://app.example.com — evaluate all dimensions/x-evaluate-runtime --target https://app.example.com --scope rate-limit — rate limiting only/x-evaluate-runtime --target https://app.example.com --scope waf — WAF rules only/x-evaluate-runtime --target https://app.example.com --scope account-lockout --login-endpoint /api/auth/login — account lockout/x-evaluate-runtime --target https://app.example.com --intensity passive — observe headers only/x-evaluate-runtime --target https://app.example.com --intensity aggressive — full volume testing (local/dev only)| Parameter | Type | Required | Default | Validation | Example |
|-----------|------|----------|---------|------------|---------|
| --target | URL | Yes | — | Valid HTTP/HTTPS URL | https://app.example.com |
| --scope | Enum | No | all | all, rate-limit, waf, bot-protection, account-lockout, brute-force, csp, permissions | rate-limit |
| --intensity | Enum | No | moderate | passive, moderate, aggressive | passive |
| --login-endpoint | Path | No | — | Relative path starting with / | /api/auth/login |
| Level | Behavior | Allowed Environments | |-------|----------|---------------------| | passive | Observe headers and configurations only; no payloads sent | All environments | | moderate | Send non-destructive test payloads (default) | All environments | | aggressive | Test limits with higher volume of requests | Local and dev only |
--intensity=aggressive in production is automatically downgraded to passive with a warning.
1. VALIDATE -> Verify --target URL, reachability, scope, login-endpoint dependency
2. INTENSITY -> Resolve effective intensity (downgrade aggressive→passive in prod)
3. BASELINE -> Single GET request to capture security-relevant headers
4. DIMENSIONS -> Execute checks per scope (Rate-Limit, WAF, Bot, Lockout, BruteForce, CSP, Permissions)
5. SCORE -> Per-dimension (PROTECTED@80+/PARTIAL@40+/UNPROTECTED) + overall + grade A..F
6. REPORT -> SARIF 2.1.0 + Markdown to results/security/runtime-protection-{ts}.{sarif.json,md}
7 dimension check matrices, SARIF/Markdown templates, and ASVS mapping in references/full-protocol.md:
X-RateLimit-*, CSP, Permissions-Policy, X-Content-Type-Options, HSTS).properties.dimension/asvs-ref/severity/fix-recommendation; Markdown report template with Dimension Summary table + Critical Gaps + Detailed Findings + Recommendations.| Dimension Score | Status | |-----------------|--------| | 80–100 | PROTECTED | | 40–79 | PARTIAL | | 0–39 | UNPROTECTED | | N/A | SKIPPED |
| Overall Score | Grade | |---------------|-------| | 90-100 | A | | 80-89 | B | | 70-79 | C | | 60-69 | D | | 0-59 | F |
Overall: overallScore = max(0, 100 - sum(severityWeight × findingCount)).
| Scenario | Action |
|----------|--------|
| Target unreachable | Emit "Target unreachable: {url}", abort with no score |
| Connection timeout | Retry once with doubled timeout, then report error |
| Target returns 5xx | Report as finding (server error under load) |
| Login endpoint not provided for --scope=account-lockout | Warn and skip account-lockout dimension |
| Aggressive in production | Downgrade to passive, emit warning |
| Partial dimension failure | Complete other dimensions, mark failed as SKIPPED |
| SSL certificate error (untrusted CA, hostname mismatch, expired) | Emit WARNING with the certificate error details; record it as a finding under the tls/hardening dimension; continue evaluating the remaining HTTP-level checks. TLS verification is NOT silently disabled. |
| Skill | Relationship | Context |
|-------|-------------|---------|
| x-generate-security-dashboard | called-by | Dashboard aggregates runtime protection results |
| x-evaluate-hardening | complements | Hardening evaluates static config; runtime evaluates live behavior |
| x-run-dast | complements | DAST tests vulnerabilities; runtime tests defensive controls |
| Knowledge Pack | Usage |
|----------------|-------|
| .claude/knowledge/security/ | OWASP ASVS compliance mapping, remediation recommendations |
| .claude/knowledge/security/application-security.md | Security headers and CSP guidance |
Minimum viable contract above. Detailed 7-dimension check matrices (passive/moderate/aggressive per dimension), non-destructive test payloads, scoring formulas, SARIF 2.1.0 schema, and Markdown report template live in references/full-protocol.md per ADR-0012 (skill body slim-by-default).
tools
Documentation automation v2: stack-aware generation from documentation.targets.
development
Generates or updates CI/CD pipelines per project stack with actionlint validation.
tools
Generates ADRs from architecture-plan mini-ADRs with sequential numbering and index update.
development
Formats source code; first step of the pre-commit chain (format -> lint -> compile).