plugins/lisa-copilot/skills/lisa-security-zap-scan/SKILL.md
Run an OWASP ZAP baseline security scan locally using Docker. Checks for the ZAP baseline script, executes the scan, and summarizes findings by risk level with remediation recommendations.
npx skillsauth add codyswanngt/lisa lisa-security-zap-scanInstall 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.
Run a ZAP baseline security scan against the local application.
Check prerequisites:
docker infoscripts/zap-baseline.sh exists in the projectExecute scan:
bash scripts/zap-baseline.shAnalyze results:
zap-report.html (or zap-report.md for text)reason, even when compressed to one line each.Apply the impact-or-exploitability bar -- the same bar the lisa-security-review skill
defines; follow that skill, do not restate it. A ZAP alert is not a reproducer by itself: the
alert names a pattern, not an exercised impact path.
claim-evidence-mapping contract (BCE-1, #1835): a ZAP request/response transcript is an
http-transcript and reaches the http-api boundary only. An alert whose claim is about
rendered UI (browser) or persisted state (data) needs evidence at that boundary -- a
transcript never proves it.reason (typically
"alert only, no reproducer / no bounded impact", or "transcript does not reach the claim's
boundary"). Unproven alerts are not dropped and not demoted out of the security summary --
they render in the unproven bucket so a reader still sees them.security.review.unprovenBucket is set to something other
than security-unproven; no other classification changes.Handle failures:
Run the scan now.
tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.
tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.
tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.
tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.