verify-code — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited verify-code (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
A bulleted imperative like {match} tells the agent to never reveal, disclose, or mention something to the user. Used adversarially it can instruct the agent to hide its tool calls or lie about what it did — stripping the transparency a user relies on to trust the agent.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Perform a security review of the following code:
$ARGUMENTS
Review the code provided in the arguments above. If no code was provided, ask the user to paste the code or specify a file path to read. If a file path is mentioned, read the file first.
Identify language and frameworks from:
.py → Python, .ts/.tsx → TypeScript, .go → Go, .java → Java, .rb → Ruby, .php → PHP, .sql → SQLimport django, require('express'), import React, use actix_webdef/class → Python, func → Go, public class → Java, fn → Rust@app.route → Flask, useState → React, @Controller → SpringPython:
os.system(), subprocess with shell=Truepickle.loads() on untrusted dataeval() / exec() with user-controlled input% formatting in queriesopen() with user-supplied pathsJavaScript / TypeScript:
innerHTML, document.write(), dangerouslySetInnerHTML without sanitizationObject.assign / spread with user dataeval() or new Function() with dynamic contentpostMessage handlerslocalStorage or sessionStorageReact:
dangerouslySetInnerHTML without DOMPurify or equivalentJava:
Statement instead of PreparedStatement for SQLRuntime.exec() with user-controlled inputObjectInputStream)Go:
database/sql queriesexec.Command with user inputSQL:
UPDATE/DELETE without WHERE clauseSELECT * returning sensitive columns unnecessarilyVerify ALL of these, regardless of language:
Secrets & Credentials:
Injection:
eval, exec) with user dataInput Validation:
Authentication & Authorization:
Cryptography:
Error Handling & Logging:
Data Exposure:
Produce this exact structure:
File: [file path if known, or "provided code"] Language/Frameworks: [detected list] Risk Level: [LOW | MEDIUM | HIGH | CRITICAL]
[SECURE | NEEDS ATTENTION | INSECURE]
[1–2 sentences summarizing the security posture]
For each vulnerability found:
#### [SEVERITY: Critical/High/Medium/Low] — [Vulnerability Type] Location: [function name or line number if identifiable] Description: [what the vulnerability is and why it matters]
Vulnerable code:
[the problematic snippet]Secure fix:
[the corrected code]~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.