Ensure accessibility in UI components including semantic HTML, ARIA attributes, keyboard navigation, and WCAG 2.2 AA compliance.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Automated security scanning pipeline covering SAST (Semgrep), SCA (OWASP dependency-check), SBOM generation (Syft), vulnerability scanning (Grype), and secrets detection (detect-secrets). Invoked by security-architect for pre-commit gates, CI integration, and finding triage.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Automated security scanning pipeline: SAST, SCA, SBOM, and secrets detection.
| Tool | Purpose | Install |
|---|---|---|
| Semgrep | SAST — static analysis | pip install semgrep |
| OWASP dependency-check | SCA — known CVEs in deps | brew install dependency-check |
| Syft | SBOM generation | brew install anchore/syft/syft |
| Grype | Vulnerability scanner (uses SBOM) | brew install anchore/grype/grype |
| detect-secrets | Secrets detection | pip install detect-secrets |
# Run default ruleset
semgrep --config auto .
# Run security-focused rules only
semgrep --config p/security-audit .
# Run OWASP Top 10 rules
semgrep --config p/owasp-top-ten .
# Output JSON for CI
semgrep --config auto --json --output semgrep-results.json .
# Fail CI on any HIGH or CRITICAL finding
semgrep --config auto --severity ERROR .
Recommended rulesets:
p/security-audit — broad security auditp/owasp-top-ten — OWASP Top 10 coveragep/javascript — JS/TS patterns (injection, XSS, prototype pollution)p/python — Python patterns (SQL injection, insecure deserialization)p/secrets — hardcoded credential detection# Scan Node.js project
dependency-check --project myapp --scan . --format JSON --out dependency-check-report
# Scan with NVD API key (avoids rate limiting)
dependency-check --project myapp --scan . \
--nvdApiKey "$NVD_API_KEY" \
--format HTML --out reports/
# CI integration: fail on CVSS >= 7.0
dependency-check --project myapp --scan . \
--failOnCVSS 7 \
--format JSON --out reports/
# Suppress false positives
dependency-check --project myapp --scan . \
--suppression suppressions.xml
# Generate SBOM for current directory
syft . -o spdx-json > sbom.spdx.json
# SBOM from Docker image
syft my-image:latest -o cyclonedx-json > sbom.cyclonedx.json
# Multiple formats
syft . -o spdx-json -o cyclonedx-json -o syft-json
# Sign SBOM with cosign
cosign attest --predicate sbom.spdx.json --type spdx $IMAGE_DIGEST
# Scan from SBOM
grype sbom:sbom.spdx.json
# Scan Docker image directly
grype my-image:latest
# Scan current directory
grype .
# Fail on CRITICAL or HIGH
grype sbom:sbom.spdx.json --fail-on high
# Output JSON for CI
grype sbom:sbom.spdx.json -o json > grype-results.json
# Filter by severity
grype sbom:sbom.spdx.json --only-fixed
# Create baseline (initial scan)
detect-secrets scan > .secrets.baseline
# Audit baseline interactively
detect-secrets audit .secrets.baseline
# Scan for new secrets (CI check)
detect-secrets scan --baseline .secrets.baseline
# Add to pre-commit hook
# .pre-commit-config.yaml:
# - repo: https://github.com/Yelp/detect-secrets
# rev: v1.4.0
# hooks:
# - id: detect-secrets
# args: ['--baseline', '.secrets.baseline']
# .pre-commit-config.yaml
repos:
- repo: https://github.com/returntocorp/semgrep
rev: v1.58.0
hooks:
- id: semgrep
args: ['--config', 'p/security-audit', '--error']
- repo: https://github.com/Yelp/detect-secrets
rev: v1.4.0
hooks:
- id: detect-secrets
args: ['--baseline', '.secrets.baseline']
# .github/workflows/security.yml
name: Security Scan
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: SAST (Semgrep)
uses: returntocorp/semgrep-action@v1
with:
config: p/security-audit
- name: Generate SBOM
uses: anchore/sbom-action@v0
with:
format: spdx-json
output-file: sbom.spdx.json
- name: Vulnerability Scan (Grype)
uses: anchore/scan-action@v3
with:
sbom: sbom.spdx.json
fail-build: true
severity-cutoff: high
- name: Secrets Detection
run: |
pip install detect-secrets
detect-secrets scan --baseline .secrets.baseline
HIGH/CRITICAL findings:
→ Create security issue immediately
→ Assign to security-architect for review
→ Block merge until resolved or suppressed with justification
MEDIUM findings:
→ Log in security backlog
→ Review in next sprint
→ Add to suppression file with justification if false positive
LOW/INFO findings:
→ Weekly review
→ Suppress with justification or accept risk
Semgrep (inline):
# nosemgrep: python.lang.security.audit.hardcoded-password.hardcoded-password
PASSWORD = os.environ["PASSWORD"]
detect-secrets (.secrets.baseline):
# Mark as false positive during audit
detect-secrets audit .secrets.baseline
# Press 'n' to mark as not a secret
Grype (grype.yaml):
ignore:
- vulnerability: CVE-2021-44228
reason: 'Not affected — log4j not in classpath'
Skill({ skill: 'security-scanning' }) — before any security review| Anti-Pattern | Why It Fails | Correct Approach |
|---|---|---|
| Skipping SCA for "known" deps | CVEs are discovered continuously | Always run SCA; pin versions + audit |
| Suppressing all Semgrep findings | Breaks the safety net | Suppress only with justification + owner |
| Not rotating detected secrets | Secret is already compromised | Rotate immediately, then suppress |
| SBOM generated but not scanned | SBOM alone adds no security value | Always run Grype against generated SBOM |
| Scanning only in CI | Developers get slow feedback loop | Add pre-commit hooks for SAST + secrets |
Before starting:
Read .claude/context/memory/learnings.md
After completing:
.claude/context/memory/learnings.md.claude/context/memory/issues.md.claude/context/memory/decisions.mdASSUME INTERRUPTION: If it's not in memory, it didn't happen.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Ensure accessibility in UI components including semantic HTML, ARIA attributes, keyboard navigation, and WCAG 2.2 AA compliance.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when you want to improve response quality through meta-cognitive reasoning. Applies 15+ reasoning methods to reconsider and refine initial outputs.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
N-round opposing-stance debates for trade-off analysis. Assigns pro/con roles to agents, runs structured debate rounds with quality scoring, and produces a moderator synthesis with confidence-rated recommendation. Generalizable to architecture, technology, security, and design decisions.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Force adversarial code review stance that eliminates confirmation bias — reviewer must find issues or re-analyze
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Creates specialized AI agents on-demand when no existing agent matches a request. Use when the Router cannot find a suitable agent for a task. Enables self-evolution by generating persistent agents.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
LLM-as-judge evaluation framework with 5-dimension rubric (accuracy, groundedness, coherence, completeness, helpfulness) for scoring AI-generated content quality with weighted composite scores and evidence citations
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.