skills/security-validation/SKILL.md
Pre-merge security validation detecting secrets, user-specific paths, insecure SSH configurations, and security-weakening flags. Use before committing code/documentation, before creating PRs, or during QA validation. Supports automated scanning with severity-based enforcement (CRITICAL blocks merge, HIGH requires fixes).
npx skillsauth add auldsyababua/instructor-workflow security-validationInstall 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.
Comprehensive security scanning for code and documentation changes before merge. Detects and enforces remediation of:
Execute security-validation at these critical gates:
Execute the security scanner script on your changes:
Scan entire repository:
./scripts/security_scanner.sh .
Scan specific directory:
./scripts/security_scanner.sh docs/
JSON output (for programmatic parsing):
./scripts/security_scanner.sh . json
Continue on CRITICAL findings (for reporting):
./scripts/security_scanner.sh . text false
🔍 Scanning for hardcoded secrets...
🔍 Scanning for user-specific paths...
🔍 Scanning for insecure SSH configurations...
🔍 Scanning for security-weakening flags...
📊 Scan complete!
CRITICAL: 2
HIGH: 3
MEDIUM: 1
❌ CRITICAL FINDINGS (BLOCK MERGE):
• docs/setup.md:42 - Potential hardcoded secret detected
• infrastructure/ssh-config:15 - AWS credential detected
⚠️ HIGH PRIORITY FINDINGS (FIX REQUIRED):
• docs/deployment.md:78 - macOS user-specific path detected
• scripts/deploy.sh:23 - StrictHostKeyChecking disabled
• src/config.ts:105 - Potential hardcoded secret detected
ℹ️ MEDIUM PRIORITY FINDINGS (REVIEW):
• docs/troubleshooting.md:67 - Insecure connection flag (has warning)
{
"scan_path": "./",
"total_findings": 6,
"findings_by_severity": {
"CRITICAL": 2,
"HIGH": 3,
"MEDIUM": 1
},
"findings": [
{
"severity": "CRITICAL",
"file": "docs/setup.md",
"line": 42,
"category": "secret_exposure",
"message": "Potential hardcoded secret detected",
"context": "API_KEY=sk_live_abc123..."
},
{
"severity": "HIGH",
"file": "docs/deployment.md",
"line": 78,
"category": "path_portability",
"message": "macOS user-specific path detected",
"context": "cd /Users/colinaulds/Desktop/project"
}
]
}
Action: Stop immediately, do NOT proceed with commit/PR.
Common CRITICAL findings:
.md, .txt, .rst)AKIA..., aws_access_key_idsk_live_...ghp_...AIza...Resolution:
Example Report:
❌ SECURITY VIOLATION - BLOCKING MERGE
CRITICAL findings detected:
1. docs/setup.md:42 - Hardcoded API key detected
Context: API_KEY=sk_live_abc123...
Fix: Replace with placeholder: API_KEY=<your-stripe-secret-key>
2. docs/deployment.md:78 - User-specific path in documentation
Context: cd /Users/colinaulds/Desktop/project
Fix: Use repo-relative path: cd ~/project-name
Cannot proceed until ALL CRITICAL findings resolved.
Action: Report to Action Agent, request fixes before approval.
Common HIGH findings:
Resolution:
references/security-standards.md)Example Report:
⚠️ HIGH PRIORITY - FIXES REQUIRED
3 HIGH findings require attention:
1. src/config.ts:105 - Hardcoded API key in code
Remediation: Load from environment variable
Example: const apiKey = process.env.STRIPE_SECRET_KEY;
2. scripts/deploy.sh:23 - StrictHostKeyChecking disabled
Remediation: Use StrictHostKeyChecking yes or accept-new
Example: ssh -o StrictHostKeyChecking=accept-new user@host
3. docs/api-guide.md:67 - curl --insecure without warning
Remediation: Add security warning block above command
See security-standards.md for warning format
Action: Review findings, accept if appropriate (e.g., has warning), or request fixes.
Common MEDIUM findings:
Resolution:
Combine scan results with LLM review for comprehensive report:
## Security Validation for [ISSUE-ID]
### Automated Scan Summary
- Files Scanned: [path]
- Total Findings: X
- CRITICAL: Y findings
- HIGH: Z findings
- MEDIUM: W findings
### Critical Findings (BLOCK)
[If any CRITICAL findings, list with file:line and remediation]
[If zero CRITICAL, state: "No critical findings - scan passed"]
### High Priority Findings (FIX REQUIRED)
[List HIGH findings with file:line and remediation guidance]
### Medium Priority Findings (REVIEW)
[List MEDIUM findings with justification or fix request]
### Manual Review Notes
- [Any context-dependent concerns not caught by scanner]
- [False positives identified and verified]
- [Additional security considerations]
### Recommendation
[BLOCKED | CHANGES REQUIRED | APPROVED]
### Action Items
[Specific fixes needed with file:line references]
[Or: "All security checks passed - approved for merge"]
Hardcoded credentials, API keys, tokens, passwords detected. Action: Replace with environment variables or placeholders.
User-specific absolute paths that won't work for other developers. Action: Convert to repo-relative paths.
Insecure SSH configurations bypassing host verification. Action: Enable StrictHostKeyChecking or use accept-new.
Commands using security-weakening flags. Action: Remove flag, add security warning, or justify usage.
At Step 8: Security & Quality Gates:
Before committing:
After QA feedback:
Before creating PR:
Wrong:
const apiKey = "sk_live_abc123...";
Right:
const apiKey = process.env.STRIPE_SECRET_KEY;
Documentation:
\`\`\`bash
export API_KEY=<your-stripe-secret-key>
# Or use .env file:
API_KEY=$STRIPE_SECRET_KEY
\`\`\`
Wrong:
cd /Users/colinaulds/Desktop/project-name
Right:
cd ~/project-name
# Or: Navigate to the project directory
Wrong:
ssh -o StrictHostKeyChecking=no user@host
Right:
ssh -o StrictHostKeyChecking=accept-new user@host
# Or pre-populate:
ssh-keyscan -p <port> <hostname> >> ~/.ssh/known_hosts
Wrong (no warning):
curl --insecure https://api.example.com
Right (with warning):
⚠️ **Security Warning:** This command uses `--insecure` which disables SSL certificate verification. Only use in controlled development environments.
\`\`\`bash
curl --insecure https://localhost:8443/api
\`\`\`
Scripts:
scripts/security_scanner.sh - Automated security scanning with severity-based findingsReferences:
references/security-standards.md - Detailed patterns, examples, remediation guidance, enforcement rulestools
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
testing
Three-step Linear update protocol after job completion - update child issue, check parent completion, update parent if all children done
testing
This skill should be used whenever users need help planning trips, creating travel itineraries, managing travel budgets, or seeking destination advice. On first use, collects comprehensive travel preferences including budget level, travel style, interests, and dietary restrictions. Generates detailed travel plans with day-by-day itineraries, budget breakdowns, packing checklists, cultural do's and don'ts, and region-specific schedules. Maintains database of preferences and past trips for personalized recommendations.
tools
Proactive token budget assessment and task chunking strategy. Use this skill when queries involve multiple large file uploads, requests for comprehensive multi-document analysis, complex multi-step workflows with heavy research (10+ tool calls), phrases like "complete analysis", "full audit", "thorough review", "deep dive", or tasks combining extensive research with large output artifacts. This skill helps assess token consumption risk early and recommend chunking strategies before beginning work.