cli.sgit.ai / Research / Agent skills for security review — what exists, what it would do here

Agent skills for security review — what exists, what it would do here

Date2026-10-11 · 16:32 UTCKindresearchTopicssecurity skills agentsWritten bythe sgit-ai CLI team (Claude Code sessions), for Dinis CruzSourceteam/humans/dinis_cruz/claude-code-web/10/11/research__security-review-skills.md in SGit-AI__CLI at 5597526. Published here as written; the CLI repository is where the work happened.

From: the sgit-ai CLI agent · Date: 2026-10-11 · For: skills.sgit.ai (Documents), then the case study once used.

Method. Each entry was checked at its source (the repository README or SKILL.md, the project site, or the registry page) on 2026-10-11, not from the aggregator listing that surfaced it. Where a claim could not be confirmed it says so. "On this code" means the sgit-ai CLI: 469 Python files, Type_Safe throughout, two runtime dependencies (osbot-utils, cryptography), AES-256-GCM / PBKDF2 / HKDF / ECDSA P-256 in sgit_ai/crypto/, a host boundary in sgit_ai/network/api/, a local boundary in sgit_ai/storage/.

The ranking rule. A skill earns a place on this review if it does one of three things the existing work does not already do: (a) brings a method (not a pattern list) that reaches crypto, trust boundaries and file handling; (b) brings a tool with deterministic output (SARIF, JSON) we can join to the threat model; (c) vets the other skills. Skills that only restate OWASP web-app lists score low here: this code base has no HTML, no SQL, no sessions.

1. The catalogue

1.1 From the screenshot

#SkillSource, licenceWhat it isOn this codeVerdict
S1security-reviewgetsentry/skills, skills/security-review/SKILL.md, Apache-2.0 (references credit the OWASP Cheat Sheet Series, CC BY-SA 4.0)A review method: research the whole code base first, trace data flow, then report only high-confidence findings (VULN-###) with a separate "needs verification" list (VERIFY-###). Do-not-flag rules for tests, dead code, server-controlled config. Loads reference guides per topic (17: injection, XSS, authorization, authentication, cryptography, deserialization, file security, SSRF, CSRF, data protection, API, business logic, modern threats, misconfiguration, error handling, supply chain, logging) and per language (Python among five)The cryptography, file-security, supply-chain and logging guides fit. The confidence discipline matches the house rule that a finding needs a reproducing test. Timon Weber's comparison of five Claude Code security skills picked this one as the only one worth installingUse. Primary code-review skill for the slice
S2Cisco software.security → Project CodeGuardcosai-oasis/project-codeguard (was project-codeguard/rules), CC BY 4.0; Tessl registry lists cisco/software-security at 82 % qualitySecure-by-default rules for AI coding agents, eight categories: cryptography, input validation, authentication, authorization, supply chain, cloud, platform, data protection. Ships a .claude-plugin and a skills/ folder; translators to Cursor, Copilot, WindsurfThe cryptography and supply-chain rules are a checklist to read the slice against (safe algorithms, key management, dependency pinning). It is guidance for writing code; it has no review loop, no output format, no verification stepReference only. Read its crypto and supply-chain rules once; cite them in findings where they apply. Do not install as a plugin for this review
S3"Anthropic Cybersecurity Skills"mukul975/Anthropic-Cybersecurity-Skills, Apache-2.0, community project by Mahipal Jangra; README: "Not affiliated with Anthropic PBC"About 817 skills in 34 domains mapped to MITRE ATT&CK v19.1, NIST CSF 2.0, ATLAS, D3FEND, NIST AI RMF, F3. SKILL.md with When to Use / Prerequisites / Workflow / VerificationNo threat-modeling or secure-code-review domain. Cryptography (16 skills) is TLS, Ed25519, PQ migration, key management at the operations level, not code review. Much of it is offensive and dual-use (C2, exploitation). The review queue is self-described as months longSkip. The name misleads; the content is a SOC and red-team library, not a code-review method
S4audit-website (squirrelscan)squirrelscan/skills; the squirrel CLI from squirrelscan.com, installed by curl | shSite audit: SEO, performance, accessibility, security headers, mixed content, leaked-secret patterns (96). Gen Agent Trust Hub rated the skill Fail / high risk for the pipe-to-shell install and agent-run fixesNothing to audit in a CLI. Possible later use on the published *.sgit.ai sites and on sgit vault serve / published static vaults, with the binary installed by hand and the agent never running its fixesSkip for the CLI. Park for the website estate
S5Varlockwrsmith108/varlock-claude-skill wrapping dmno-dev/varlock (varlock.dev)A .env.schema with sensitivity flags; the skill's rules are "never echo environment variables, never read .env directly, validate with masked output". Thin: no support files in the skill repoThe rule is the point, and it is already a sgit concern: TM-R14 (keys in argv and logs, re-ranked High on 10/09 because agents' command lines are read by many tools), TM-R09 (.env tracked-wins), the always-ignored set in Vault__Ignore. We do not use .env at runtimeSkip the skill, keep the rule. Fold "never print a vault key, token or read key" into the sgit skill (library/skills/sg-send-cli__SKILL.md) as a stated rule; see plan step 5
S6OWASP Agentic Skills Top 10 (AST10)OWASP/www-project-agentic-skills-top-10, incubator, "1.0-2026", leads Ken Huang and Fabio Cerullo, CC BY-SA 4.0Ten risks for the skill layer (between model and tools): AST01 malicious skills, AST02 supply-chain compromise (both Critical), AST03 over-privileged, AST04 insecure metadata, AST05 untrusted external instructions, AST06 weak isolation (High), AST07 update drift, AST08 poor scanning, AST09 no governance, AST10 cross-platform reuse (Medium). A pre-install checklistNot a review skill; it is the rubric for installing the others into a repository whose whole point is key custody. Every skill on this list is a third-party instruction file that will run with read access to the code and, in a careless session, to a vault keyUse as the gate. Plan step 0 applies its checklist to each installed skill and records the answers
S7Behavioral verification (canary run, signed manifest)AST10 checklist items; tools: cisco-ai-defense/skill-scanner (Apache-2.0, PyPI cisco-ai-skill-scanner, SARIF, YARA + dataflow + optional LLM pass, pre-commit hook and reusable workflow), getsentry/skills skill-scanner skill, skillsign (Ed25519 over a skill folder), SkillLedger (content-addressed, SLSA L3)The checklist asks for a valid Ed25519 signature with a content hash matching the manifest, and a run in an isolated canary environment with a report that observed behaviour matches declared behaviourNone of the skills above ship a signed manifest, so the signature check fails for all of them today (the skills.sgit.ai catalogue already shows version and permissions fields undeclared on our own eight). What we can do: scan each SKILL.md with the Cisco scanner, pin to a commit SHA, read it, and run it first in this cloud session (which has no vault key) before any session that holds oneUse the scanner, note the gap. The gap (no signatures anywhere in the ecosystem) is itself a skills.sgit.ai finding

1.2 Not in the screenshot, and stronger for this code

#SkillSource, licenceWhat it isOn this codeVerdict
S8Trail of Bits skillstrailofbits/skills, CC BY-SA 4.0, plugin marketplace (/plugin marketplace add trailofbits/skills)About 49 skills in named plugins. The ones that matter here: audit-context-building (a dossier per function: invariants, assumptions with the line that establishes each or "nothing found", callees; explicitly no verdicts; runs each function in its own subagent), differential-review (security review of a diff with git history), insecure-defaults (parallel hunt for fail-open defaults with a verifier per file), sharp-edges (error-prone APIs; AES-GCM nonce handling is their own example), variant-analysis, fp-check (gate review of each finding), static-analysis (CodeQL, Semgrep, SARIF), semgrep-rule-creator, supply-chain-risk-auditor (PyPI advisories, abandoned upstreams), spec-to-code-compliance, property-based-testing (Hypothesis), mutation-testing (surviving mutants), post-patch-validation (missed variants after a fix), agentic-actions-auditor (GitHub Actions used by agents). constant-time-analysis targets compiled code, so it is marginal for pure PythonThis is the only set written by people who audit cryptographic code for a living. The context dossier is the data asset the code-review-graphs brief wants at the "explanation layer", written by an agent, with a line cited for every claim. post-patch-validation is tailor-made for 0.21.0, where two of the fixes introduced regressions (TM-F29, TM-F30). supply-chain-risk-auditor is TM-R21Use. The backbone of the review: context, then insecure-defaults and sharp-edges on crypto/ and storage/, differential-review on 0.20.0→0.21.0, fp-check on everything, post-patch-validation on the 0.21 fixes
S9Anthropic /security-review and the claude-code-security-review GitHub Actionanthropics/claude-code-security-review, MIT; the slash command is built into Claude Code (present in this session)Reviews pending changes (command) or a PR diff (Action). Categories: injection, auth, data exposure, cryptography (weak algorithms, key management, randomness), input validation, business logic (race, TOCTOU), configuration, supply chain, code execution, XSS. A second model pass filters false positives (excludes DoS, rate limiting, resource exhaustion, generic validation, open redirects). Prompt is customisable by copying .claude/commands/security-review.md. Not hardened against prompt injection: the README says review trusted PRs onlyCheap, already here, diff-scoped. The exclusions matter: three of our accepted rows are DoS-shaped (TM-R18 tree shapes, TM-R35 --grep), which this tool would not report by design. Useful as the PR gate once a baseline exists; the Action needs pull-requests: write and an API key secretUse on diffs, not as the whole-slice review. Candidate for the CI job later, after the Bandit / pip-audit baseline (TM-R21), with the fork-approval setting on
S10find-bugs, secret-serialization, gha-security-reviewgetsentry/skills, Apache-2.0find-bugs: bugs and security issues in local branch changes. secret-serialization: secrets leaking through serialization, logs or spans. gha-security-review: GitHub Actions workflows for exploitation risksecret-serialization is the exact shape of TM-R14 and TM-F05/F16 (keys written, printed, logged): sgit vault info prints the full key; Vault__Secret_File, Secrets__Store, CLI__Debug_Log are its targets. gha-security-review covers the three CI workflows and the SP-10 "template pins nothing" findingUse secret-serialization on crypto/, secrets/, cli/CLI__Debug_Log.py, cli/CLI__Vault.py; gha-security-review on .github/workflows/. find-bugs overlaps S9; skip
S11Classical scanners: Semgrep (p/python, python.cryptography.* rules), Bandit, pip-audit, CodeQLOSS; Trail of Bits semgrep-rules adds crypto rulesDeterministic pattern scanners with SARIF outputTM-R21 already asks for Bandit and pip-audit in the security CI job with a baseline; KI-SEC-06 counted about 23 Bandit mediums. Semgrep's crypto rules (insecure hash, insecure cipher, PKCS#1 v1.5) are the right first pass over crypto/. Their SARIF is what threat-led-triage consumesUse, and keep: these become the CI baseline the threat model has wanted since 10/08

2. What the vetting gate looks like (AST10 applied)

For every skill the plan installs, record this table in the case study before the first run:

Check (AST10 checklist)Evidence we can produce today
Provenance: author identity, content hash, signatureRepository and commit SHA pinned; sha256 of each SKILL.md recorded; no signature exists for any of them
Scan statusskill-scanner scan-all <dir> --format sarif output kept under the case study; HIGH fails the install
Permissions: files, tools, networkRead from the frontmatter (allowed-tools); Sentry's security-review declares Read, Grep, Glob, Bash, Task. Any skill that fetches remote instructions at run time fails AST05 unless pinned
Identity filesDoes it ask to write CLAUDE.md, AGENTS.md, memory? Sentry's agents-md does by design; the review skills must not
External contentmcp-stride-gpt hosted at mcp.stridegpt.ai sends the app description off-machine; use the skill copy or self-host on loopback (see the threat-modeling doc)
Dependencies pinnedstride-gpt from PyPI pinned by version and hash; the scanner itself pinned
Risk tier matches scopeA review skill that only reads is Low; anything that writes fixes is Medium and runs with --dry-run or not at all
Canary runFirst run in a session with no vault key, no .env, no token on disk (this cloud environment qualifies: find / -name .sg_vault is empty)

The honest finding for skills.sgit.ai: the ecosystem's best security-review skills cannot pass their own community's checklist, because nobody signs skills yet. The skills.sgit.ai thesis (skills as packages with version, permissions and provenance) is exactly the missing piece, and this review is a worked example of the gap.

3. Two ideas worth taking, not installing

4. Sources checked

This page as markdown · its source, admin/content/articles/security-review-skills.md