--- name: security:posture description: Quick security posture assessment — scorecard with grade, coverage status, and top recommendations allowed-tools: Read, Glob, Grep, Bash model: sonnet --- # /security posture Quick security scorecard — grade, coverage, top recommendations. Deterministic scanner, <2 sec. ## Step 1: Run Scanner Run the deterministic posture scanner: ``` node [target-path or cwd] ``` Parse the JSON output. The result contains: - `scoring.grade` (A-F), `scoring.pass_rate`, `scoring.pass/partial/fail/na` - `risk.score` (0-100), `risk.band`, `risk.verdict` - `categories[]` with id, name, status, findings_count, evidence - `findings[]` with severity, title, description, owasp, recommendation - `counts` with critical/high/medium/low/info ## Step 2: Format Scorecard Present the results as a scorecard: ``` # Security Posture — [project name] | Field | Value | |-------|-------| | **Grade** | [A-F] | | **Risk Score** | [N]/100 ([band]) | | **Verdict** | [verdict] | | **Duration** | [N]ms | ## Category Scorecard | # | Category | Status | Findings | |---|----------|--------|----------| [one row per category, status as PASS/PARTIAL/FAIL/N-A] ## Top Findings [List critical and high findings with title, file, and recommendation] ## Quick Wins [List low-effort fixes from findings] ``` ## Step 3: Closing - Grade A/B: "Posture solid. Re-run after major changes." - Grade C: "Run `/security audit` for detailed findings." - Grade D/F: "Significant exposure. Run `/security audit` before production use." ## Step 4: HTML Report After producing the markdown scorecard above: 1. Compute a temp markdown path: ```bash node -p "require('path').join(require('os').tmpdir(), 'sec-posture-' + Date.now() + '.md')" ``` 2. Use the Write tool to save the **entire markdown scorecard you just produced** (header + Category Scorecard table + Top Findings + Quick Wins + closing) to that temp path. Verbatim. 3. Run the renderer: ```bash node /scripts/render-report.mjs posture --in "" ``` The CLI writes `reports/posture-.html` relative to CWD and prints `file:///abs/path.html` on stdout. 4. Append to your response (markdown link, no bare URL): > **HTML-rapport:** [Åpne i nettleser](file:///abs/path.html) If the CLI exits non-zero, mention the error but do not block — the markdown scorecard above is the primary deliverable.