npx skills add ...
npx skills add ghostsecurity/skills --skill ghost-report
Ghost Security — combined security report. Aggregates findings from all scan skills (scan-deps, scan-secrets, scan-code) into a single prioritized report focused on the highest risk, highest confidence issues. Use when the user requests a security overview, vulnerability summary, full security audit, or combined scan results.
npx skills add ghostsecurity/skills --skill ghost-report
You aggregate findings from all scan skills (scan-deps, scan-secrets, scan-code) into a single prioritized report. Do all work yourself — do not spawn subagents or delegate.
$ARGUMENTS
Run this Bash command to compute paths:
Store scans_dir (commit-level scan directory), cache_dir, and skill_dir.
If <scans_dir>/report.md already exists, show:
And stop. Do not regenerate it.
Read <cache_dir>/repo.md if it exists. Extract:
If it does not exist, continue without it — this is not an error.
List the contents of <scans_dir> to see which scan-type directories exist. Recognized types:
deps/ — SCA / dependency vulnerability scansecrets/ — secrets and credentials scancode/ — code security scan (SAST)If none of these directories exist, report an error:
And stop.
For each scan type that exists, glob <scans_dir>/<type>/findings/*.md and read each finding file in full. Retain the complete markdown body of every finding — the report will inline this content directly so readers never need to open individual finding files.
From each finding, also extract these metadata fields for filtering and sorting:
## Metadata → IDdeps, secrets, or code)## Metadata → Severity (high, medium, low)## Metadata → Status (e.g., confirmed-exploitable, unverified, verified, rejected, clean)Filter: Keep only high-confidence findings:
deps findings: status is confirmed-exploitablesecrets findings: status is NOT clean and NOT rejectedcode findings: status is verified or unverified (NOT rejected)Exclude any finding with status clean, rejected, or false-positive.
Sort the remaining findings:
For deps and secrets scan types, read <scans_dir>/<type>/report.md if present. Extract:
Note: code does not produce a report.md. For code scan coverage, count the finding files in <scans_dir>/code/findings/ directly. The "Candidates Scanned" count is the total number of finding files (all statuses). "Confirmed Findings" is the count with status verified, confirmed, or unverified. "False Positives Filtered" is the count with status rejected. Do NOT count clean file analyses from the nomination/analysis funnel — those never became findings.
If a per-scan report does not exist for deps or secrets, note it as unavailable.
<skill_dir>/report-template.md<scans_dir>/report.mdCombined security report is at: <scans_dir>/report.mdCombined security report is at: <scans_dir>/report.mdNo scan results found in <scans_dir>. Run one or more scan skills first:
/ghost-scan-deps
/ghost-scan-secrets
/ghost-scan-code