trustworthy-code-security — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited trustworthy-code-security (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
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.
Author: Audrent Version: 1.0.0 Last reviewed: 2026-05-01 License: MIT
Performs a deterministic, transparent security review of source code provided to you. The review walks through a fixed set of checks — secrets detection, injection vulnerabilities, authentication and authorization issues, cryptographic weaknesses, dependency risks, information disclosure, prompt-injection vulnerabilities, and AI-specific risks — and produces structured findings with severity ratings, exact locations, and specific remediation guidance.
This skill is designed to be auditable, transparent, and conservative. It tells you exactly what it checked, exactly what it found, and exactly what it cannot detect. It does not hide instructions, does not exfiltrate code, does not contact external services, and does not embed prompt injections in its output. Its complete check list is documented below in plain text.
For honesty and to prevent customer overreliance:
Use this skill when:
Do not invoke this skill as a substitute for:
When invoked, work through these eight categories in order. For each category, run every applicable check, document each finding with the specified output format, and note explicitly when a check was inapplicable to the code provided (e.g., "skipped — no SQL queries found").
Check for:
AKIA[0-9A-Z]{16} or similar 20-character all-caps strings near "aws"ghp_[A-Za-z0-9]{36}, gho_, ghu_, ghs_, ghr_ prefixessk_live_, sk_test_, pk_live_, pk_test_ prefixessk-ant-, sk-proj-, sk- prefixes near AI library importskey, token, secret, password, apikey, etc.xox[baprs]-eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+-----BEGIN PRIVATE KEY-----, -----BEGIN RSA PRIVATE KEY-----, -----BEGIN OPENSSH PRIVATE KEY-----.env, config.json, secrets.yaml, or similar files that appear to contain credentials and are tracked in git. Recommend .gitignore additions and immediate credential rotation if found.postgres://user:password@host/db flagged regardless of whether they appear in tests or production code.Severity guidance: Hardcoded production secrets are Critical. Hardcoded test/sandbox secrets are High (still flagged because they leak through git history and signal poor practice). Generic high-entropy strings without confirmed secret context are Medium for further verification.
Check for:
f"SELECT * FROM users WHERE name = '{name}'", "SELECT ... " + user_input, cursor.execute(query % user_input) SELECT * FROM users WHERE id = ${userId} , query("...where id=" + req.body.id)`os.system(user_input), subprocess.run(cmd, shell=True) with user-controlled cmd, eval(user_input), exec(user_input)child_process.exec(userInput), eval(userInput)subprocess.run([list, of, args], shell=False) or equivalent argv-based execution.open(user_path), fs.readFile(req.body.file), joins of user input with base directories that allow ../ traversal. Recommend os.path.realpath() validation against an allowlist directory.lxml.etree.parse() or xml.etree.ElementTree.parse() without explicit resolve_entities=False configuration.pickle.loads(), yaml.load() (without safe_load), marshal.loads() on user-controlled data. Flag as Critical when present.Template(user_input).render(), similar in Mustache/Handlebars/Liquid.Severity guidance: All confirmed injection vulnerabilities with user-controlled input are Critical or High. Static patterns (hardcoded values, no user input) are Low or informational.
Check for:
db.users.get(req.params.user_id) without check that req.params.user_id == authenticated_user.id or equivalent role check.Math.random() in JS, non-cryptographic random in Python), session IDs in URL parameters rather than cookies/headers.alg: none accepted, hardcoded HMAC secrets, missing expiration validation, JWT used where session cookies would be more appropriate.Severity guidance: Missing auth on sensitive endpoints and broken authorization are Critical. Plaintext password storage is Critical. Weak hashing of passwords is High.
Check for:
random.random() (Python) or Math.random() (JS) used for security-critical purposes. Recommend secrets module (Python) or crypto.randomBytes() (Node.js).verify=False (Python requests), rejectUnauthorized: false (Node), or InsecureSkipVerify: true (Go).time.time(), sequential counters, or other predictable sources.Severity guidance: Weak algorithms in security contexts are High. Weak randomness for security tokens is High. Missing cert validation is High (degrades transport security to unencrypted-equivalent). Hardcoded keys are Critical.
Check for:
requirements.txt, package.json, go.mod, Cargo.toml use exact pinning (==, =) rather than ranges (>=, ^, ~). Note that pinning is a tradeoff — it prevents auto-update of vulnerable transitive dependencies but also prevents auto-update of patches. Flag for review, not as a definitive issue.package-lock.json, yarn.lock, poetry.lock, Pipfile.lock, Cargo.lock should exist and be committed. Their absence means reproducible builds aren't guaranteed.requirements.txt or package.json is provided, list specific dependencies and recommend running pip-audit, npm audit, cargo audit, or safety check for full known-vulnerability scanning. This skill does not maintain a CVE database — defer to those purpose-built tools for known-CVE checking.Severity guidance: Suspicious-looking dependencies are High for review. Unpinned dependencies are Medium. Missing lock files are Low. Known-CVE checks are deferred to dedicated tools.
Check for:
DEBUG = True (Django, Flask), app.debug = true (Express), verbose stack-trace exposure in error handlers.logger.info(f"User {user} logged in with password {password}") and similar. Look for password, token, key, SSN, credit-card-like patterns being logged.# TODO: this is the temporary master password, # FIXME: known SQL injection here, comments containing API keys or staging credentials..map files served alongside production assets.X-Powered-By, Server headers revealing version information.Severity guidance: Debug mode in production code is High. Sensitive data logging is High. Comments revealing credentials are Critical. Other information disclosure is Medium to Low.
For codebases that integrate with LLMs (Anthropic, OpenAI, etc.), this category is uniquely important and frequently overlooked.
Check for:
prompt = f"You are a helpful assistant. The user said: {user_input}. Respond helpfully." allow prompt injection — a user can include instructions in their input that the LLM follows. Flag every case where user-provided text becomes part of a prompt without any escaping or boundary marker.<user_message>...</user_message>) and explicit instructions to the model that content inside the tags is data, not instructions.Severity guidance: Prompt injection on user-controlled inputs is High by default, Critical if the model has access to sensitive tools or data. Missing rate limits are High. Training-data PII risk is Critical.
Check for:
Access-Control-Allow-Origin: * combined with credentialed requests is dangerous; flag.helmet, Django without SECURE_* settings, etc.).Severity guidance: case-by-case based on actual exploitability.
For every finding, produce an entry in this exact structure:
## Finding [N]: [Brief title]
- **Severity:** Critical | High | Medium | Low | Informational
- **Category:** [1-8 from above]
- **Location:** [file path]:[line number(s)]
- **Reference:** [CWE-XXX | OWASP A0X:2021 | None applicable]
### Description
[2-4 sentences explaining the specific issue in this code.]
### Why this matters
[1-2 sentences on the practical risk — what could an attacker do?]
### Remediation
[Specific, actionable code-level fix. Show before/after where useful. Prefer recommending specific functions/libraries.]
### Verification
[How to confirm the fix works — unit test description, runtime check, or manual review step.]After the individual findings, produce a summary section:
## Audit Summary
- Files reviewed: [count]
- Total findings: [count]
- By severity: Critical: [N] | High: [N] | Medium: [N] | Low: [N] | Informational: [N]
- By category: [breakdown]
## Categories where no findings were identified
[List the 1-8 categories where the code passed all checks. This documents what was checked, not just what failed.]
## Categories that were skipped or not applicable
[List categories that didn't apply — e.g., "Category 7 (AI-specific risks) — skipped, no LLM integration found in code"]
## Limitations of this audit
This audit is rule-based static analysis. The following are NOT covered and should be assessed separately:
- Runtime behavior, race conditions discoverable only at execution.
- Business-logic vulnerabilities that depend on the application's domain.
- Configuration of cloud infrastructure, CI/CD, or deployment pipelines.
- Vulnerabilities in transitive dependencies (use `pip-audit`, `npm audit`, etc.).
- Novel attacks against frameworks not enumerated in the methodology above.
For high-stakes production systems, supplement this audit with: (1) a dedicated SAST tool (Semgrep, Snyk, SonarQube), (2) dependency vulnerability scanning, and (3) human security review by a qualified professional.audrent.com/skills/trustworthy-code-security (when published)[email protected]~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.