一键导入
agentic-security-security-fix-finding
Apply a remediation patch via the deterministic MCP toolchain. Activate when user asks to fix a scanner finding.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Apply a remediation patch via the deterministic MCP toolchain. Activate when user asks to fix a scanner finding.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Guard risky writes. Activate before eval/exec, string-concat SQL, md5/sha1/DES/RC4 crypto, or auth/jwt/oauth/cipher.
Explain or teach a vuln. Activate on a CVE/GHSA id, "what is this vuln", "explain finding", or a Socratic walkthrough.
Rotate a leaked secret end-to-end. Activate on leaked API key, exposed credential, or pushed-secret reports.
Run the security scanner. Activate on ship / deploy / launch / "is this safe?" — before the deploy happens.
Privacy review before handling user data. Activate on PII/PHI/PCI shapes (email, SSN, CC, MRN). Writes DATA_FLOW.md.
Walk through the six-step recipe for adding a new SAST detector — pick the module, export scan*(), wire, fixture, test.
| name | agentic-security:security-fix-finding |
| description | Apply a remediation patch via the deterministic MCP toolchain. Activate when user asks to fix a scanner finding. |
Activates when the user is pointing at a specific finding from a prior
scan and wants to remediate it. The deterministic toolchain
(synthesize_fix → verify_fix → apply_fix) is the only correct path —
do NOT use Edit directly.
struct:src/api.js:42:SQL_Injection)
or a stableId (abc12345) and asks for action.Confirm the finding still exists. Read
.agentic-security/last-scan.json and look up the finding by id /
stableId / file+line. If it's gone, tell the user and stop — don't
patch a finding that's already been resolved.
Decide appropriateness. Read the file around finding.line ± 30
via the Read tool. Is the canonical fix actually right here? If
the surrounding code already validates upstream, or there's a custom
sanitizer, or the file is a test fixture — STOP and report
refused: <reason>. Don't proceed.
Route via MCP, not Edit. The deterministic path is:
MCP synthesize_fix → MCP verify_fix → MCP apply_fix
synthesize_fix({ finding_id }) returns the stored replacement
text. You do NOT modify it. You do NOT retype it.verify_fix({ stable_id, files: {…} }) re-scans the patched file
in memory and runs the project linter. Read the structured
introduced[] array on failure (template-incomplete vs codebase-
prior vs lint-failed — see agents/security-fixer.md for the
decision tree).apply_fix({ finding_id, confirm: true }) writes via
fix-history.js with HMAC verification + reserved-path refusal +
attempt-budget enforcement.Batch mode. If the user wants to fix more than one finding, hand
off to the security-fixer subagent with a list (≤ 10 findings per
invocation per _CONFINEMENT.md). The subagent writes a PLAN.md
to the scratchpad.
Run the project tests after apply. If the project has
npm test, pytest, cargo test, or similar — invoke it via
Bash. Surface pass/fail in the final report.
Edit to apply security patches. The deterministic
toolchain is the only path with HMAC + audit + budget + backup.verify_fix./fix --one <id> — patch a single finding (interactive)/fix --all --critical — batch by severity/fix --pr — bundle into a PR branch