valory-xyz/open-autonomy/triage-security
Claude Code and agent skill by valory-xyz/open-autonomy
- community
Checking that the SKILL.md file is still in the repository.
Triage open security alerts on the current GitHub repo — both Dependabot (dependency CVEs) and Code Scanning (CodeQL / SnykCode / other tools that emit to GitHub's code-scanning API). For each alert, decide whether the bug's threat model is actually exploitable given this codebase's archetype, calling code, and reachability. Applicable findings get a tracking issue opened; not-applicable findings get dismissed with the appropriate per-source reason (`inaccurate` / `not_used` for Dependabot; `false positive` / `used in tests` for Code Scanning). Repo-agnostic — works across the Valory fleet.
Install
npx vskill@latest install valory-xyz/open-autonomy/triage-securitySKILL.md
Triage security alerts (Dependabot + Code Scanning)
Walk every open security alert on the current repo from both Dependabot (/repos/{r}/dependabot/alerts) and Code Scanning (/repos/{r}/code-scanning/alerts). For each alert, classify by whether it is reachable from production code and then whether the bug's threat model preconditions are satisfied by this codebase's actual usage. Then act in one pass:
| Source | Classification | Confidence + extras | Action | |
|---|---|---|---|---|
| Dependabot | Production-reachable AND exploit-applicable | any | Open tracking issue, leave Dependabot alert open. | |
| Dependabot | Production-reachable but exploit NOT applicable — cli-tool | high | Dismiss with inaccurate (+ audit issue per §3.1c). | |
| Dependabot | Production-reachable but exploit NOT applicable — framework / scaffold + §2.5.6b passes | high | Dismiss with inaccurate (+ audit issue). | |
| Dependabot | Production-reachable but exploit NOT applicable — moderate/low conf OR framework + §2.5.6b fails | — | Open issue + needs-human-review. Do NOT dismiss. | |
| Dependabot | Test / dev / CI-only import path | n/a | Dismiss with not_used (+ audit issue). | |
| Code Scanning | Rule matches RULE_HUMAN_REVIEW_PATTERNS (cert/TLS bypass, injection in prod, hardcoded secrets non-test, auth/authz, RCE/deserialization, path traversal) | any | Open issue + needs-human-review. Never auto-dismiss this rule class. | |
| Code Scanning | Applicable — flagged code is reachable from prod entry point AND §2.5 preconditions hold | any | Open tracking issue, leave code-scanning alert open. | |
| Code Scanning | NOT applicable (false positive) — cli-tool + §2.5 ruled preconditions absent | high | Dismiss with false positive (+ audit issue). | |
| Code Scanning | NOT applicable — framework/service archetype OR moderate/low confidence | — | Open issue + needs-human-review. Do NOT dismiss. | |
| Code Scanning | Flagged file is under tests/ / PKG_TEST_DIRS | n/a | Dismiss with used in tests (+ audit issue). | |
| Either source | Unclassifiable | n/a | Skip. stderr line for manual review. Never auto-dismiss without evidence. |
Conservative defaults: when uncertain, open the issue. A false-positive issue is cheap to close; a false-negative dismissal hides a real vulnerability. `won't fix` (code-scanning) and `tolerable_risk` (Dependabot) are never set by the skill — those are maintainer-only risk-accept calls.
Three paths to autonomous dismissal:
- Dependabot: cli-tool + high confidence + preconditions absent →
inaccurate - Dependabot: framework/scaffold + high confidence + §2.5.6b structural-impossibility passes →
inaccurate - Dependabot: test/dev-only import path (Signal C) →
not_used - Code-scanning: file under tests/ →
used in tests - Code-scanning: cli-tool + high confidence + §2.5 preconditions absent + rule NOT in
RULE_HUMAN_REVIEW_PATTERNS→false positive
Every dismissal produces a closed audit-trail issue (§3.1c) labelled security-audit. The 280-char dismissed_comment carries a one-line summary + audit-issue URL pointer.
This skill runs fully autonomously on invocation — it mutates GitHub state (dismisses alerts, opens issues). Do not invoke from conversational context; require explicit /triage-security.
Phase 0 — Ground truth
0.2 RULE_HUMAN_REVIEW_PATTERNS — code-scanning rule classes that NEVER auto-dismiss
For code-scanning alerts (Phase 2-cs), some bug classes carry asymmetric risk: a false-positive dismissal of a real vulnerability is catastrophic, while a false-positive issue is cheap to close. For these classes the skill bypasses §2.5 and routes directly to a needs-human-review issue — regardless of how clean the confidence-tier analysis looks.
Pattern-match each alert's rule.id (and rule.tags for CWE-based matching) against this list. Match → force needs-human-review.
The list is deliberately conservative on injection / RCE / auth — false-positive issues on *PathTraversal* are cheap; false-negative dismissals of a real one are expensive. Refine over time based on the actual false-positive rate observed in dismissed audit issues.
The skill does NOT match rule IDs with a /test suffix (e.g. python/NoHardcodedPasswords/test) against these patterns — those are tool-vendor-tagged test variants and are handled by the file-path-in-tests/ check in Phase 2-cs. Pattern matching applies to the bare (non-/test) rule IDs.
Capture into working memory:
| Field | Source | |
|---|---|---|
REPO | <owner>/<name> from gh repo view | |
PROD_PATHS | Default: autonomy/ packages/ agent/ — adjust to repo. See Phase 2.1 for repo-specific overrides. | |
TEST_PATHS | Default: tests/ scripts/ .github/ plus every **/tests/ subdir under packages/. | |
LIMIT | Optional --limit N arg; otherwise process all open alerts. | |
ARCHETYPE | Repo archetype (see §0.1). Drives the exploit-surface threshold in Phase 2.5. |
0.1 Repo archetype
Different archetypes have radically different exploit surfaces for the same CVE. A header-leak CVE in urllib3 matters for an internet-facing web service handling user auth tokens; it doesn't matter for a CLI link checker that holds no auth state. The skill needs this distinction baked into Phase 2.5's reasoning, not bolted on after the fact.
Classify the current repo into one of:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingclaude-skills/triage-security/SKILL.md
Popularity
- Repository stars
- 122
- Repository forks
- 47
- 7-day trend score
- 24
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/valory-xyz/open-autonomy/triage-security)