{"data":{"skill":{"slug":"agentkitco-agents-md-audit","name":"agents-md-audit","icon":"📦","repo":"https://github.com/agentkitco/agentkit-dev-skills/tree/a5058856442fcb89bd538b1c01f94558488bfac3/skills/agents-md-audit","status":"approved","author":"agentkitco","authorVersion":"1.0","skillstoreRevision":2},"audit":{"id":"c7c01c78-1641-4a4e-82a4-56652c4f3802","skill_id":"0232eadf-7bdf-4e2a-aec9-cacc93f2ae9d","version":2,"content_hash":"v3:18efac79a818d7e997295839638fdd21906cfd1c:43e4da8c75b16ea459422c9a6bc6043a392345bebbbc844d546624b72a228e61:ab422e508aa5eeb9bbd3529d3e98adea0f898256962146e11ec352097ebdcf7e:736b696c6c732f6167656e746b6974636f2f6167656e74732d6d642d6175646974:29f6885c9021ce473e50d7b9f6322439","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 13 static findings are false positives involving regex literals, comments, Markdown formatting, dictionary access, or report placeholders. The checker reads local files and reports heuristics without executing extracted commands; the workflow separately permits safe command verification. No evidence found of prompt injection, credential extraction, or network exfiltration in the reviewed files.","remediation":[],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"scripts/audit_instructions.py","line_end":26,"line_start":26},{"file":"scripts/audit_instructions.py","line_end":27,"line_start":27},{"file":"scripts/audit_instructions.py","line_end":29,"line_start":29},{"file":"scripts/audit_instructions.py","line_end":147,"line_start":98},{"file":"scripts/audit_instructions.py","line_end":153,"line_start":147},{"file":"SKILL.md","line_end":16,"line_start":16},{"file":"SKILL.md","line_end":18,"line_start":18},{"file":"SKILL.md","line_end":19,"line_start":19},{"file":"SKILL.md","line_end":20,"line_start":20},{"file":"SKILL.md","line_end":49,"line_start":31}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":2,"total_lines":250,"audit_model":"codex","audited_at":"2026-10-22T19:09:49.866+00:00","created_at":"2026-10-22T22:24:59.215654+00:00","static_findings":[{"id":"external_commands:scripts/audit_instructions.py:26:ruby-shell-backtick-execution","file":"scripts/audit_instructions.py","pattern":"Ruby/shell backtick execution","snippet":"PATH_RE = re.compile(r\"`([A-Za-z0-9_./@-]+(?:/[A-Za-z0-9_.@*-]+)+|[A-Za-z0-9_.-]+\\.%s)`\" % PATH_EXT)","category":"external_commands","line_end":26,"severity":"medium","line_start":26},{"id":"external_commands:scripts/audit_instructions.py:27:ruby-shell-backtick-execution","file":"scripts/audit_instructions.py","pattern":"Ruby/shell backtick execution","snippet":"CMD_RE = re.compile(r\"`((?:npm|pnpm|yarn|bun)\\s+(?:run\\s+)?([A-Za-z0-9:_-]+)[^`]*|make\\s+([A-Za-z0-9","category":"external_commands","line_end":27,"severity":"medium","line_start":27},{"id":"external_commands:scripts/audit_instructions.py:29:ruby-shell-backtick-execution","file":"scripts/audit_instructions.py","pattern":"Ruby/shell backtick execution","snippet":"# `npm test`, `npm start`, `npm stop`, `npm restart` run package.json scripts without \"run\".","category":"external_commands","line_end":29,"severity":"medium","line_start":29},{"id":"external_commands:scripts/audit_instructions.py:98:ruby-shell-backtick-execution","file":"scripts/audit_instructions.py","pattern":"Ruby/shell backtick execution","snippet":"if line.startswith(\"```\"):","category":"external_commands","line_end":147,"severity":"medium","line_start":98},{"id":"external_commands:scripts/audit_instructions.py:147:ruby-shell-backtick-execution","file":"scripts/audit_instructions.py","pattern":"Ruby/shell backtick execution","snippet":"findings.append(dict(level=\"check\", line=i, msg=\"no package.json script named '%s'; `npm %s` only wo","category":"external_commands","line_end":153,"severity":"medium","line_start":147},{"id":"sensitive:scripts/audit_instructions.py:90:certificate-key-files","file":"scripts/audit_instructions.py","pattern":"Certificate/key files","snippet":"scripts = set((pkg or {}).get(\"scripts\", {}).keys()) if pkg else None","category":"sensitive","line_end":90,"severity":"high","line_start":90},{"id":"sensitive:scripts/audit_instructions.py:22:crypto-seed-private-key-mention","file":"scripts/audit_instructions.py","pattern":"Crypto seed/private key mention","snippet":"(r\"-----BEGIN [A-Z ]*PRIVATE KEY-----\", \"private key block\"),","category":"sensitive","line_end":22,"severity":"high","line_start":22},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"1. **Find the files.** Look for `AGENTS.md`, `CLAUDE.md`, `CLAUDE.local.md`, `.claude/rules/*.md`, `","category":"external_commands","line_end":16,"severity":"medium","line_start":16},{"id":"external_commands:SKILL.md:18:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`python3 scripts/audit_instructions.py <file> [<file> ...]`","category":"external_commands","line_end":18,"severity":"medium","line_start":18},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"(The path is relative to this skill's folder; use the full path to the installed skill.) It reports ","category":"external_commands","line_end":19,"severity":"medium","line_start":19},{"id":"external_commands:SKILL.md:20:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"3. **Check each command yourself.** For every command in the file, confirm it exists (script in `pac","category":"external_commands","line_end":20,"severity":"medium","line_start":20},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":49,"severity":"medium","line_start":31},{"id":"blocker:SKILL.md:45:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- <command>: <why you did not run it>","category":"blocker","line_end":45,"severity":"low","line_start":45}],"finding_verdicts":[{"id":"external_commands:scripts/audit_instructions.py:26:ruby-shell-backtick-execution","reason":"The backticks are literal characters inside a Python regex matching Markdown file references. The regex does not execute matched text.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/audit_instructions.py:27:ruby-shell-backtick-execution","reason":"This Python regex extracts command names from Markdown for comparison with repository metadata. No shell or command execution occurs.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/audit_instructions.py:29:ruby-shell-backtick-execution","reason":"The backtick-delimited npm examples appear in a Python comment explaining script aliases. Comments cannot execute commands.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/audit_instructions.py:98:ruby-shell-backtick-execution","reason":"The code tests whether a text line starts with a Markdown fence and performs heuristic checks. Backticks in string literals are not execution operators in Python.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/audit_instructions.py:147:ruby-shell-backtick-execution","reason":"These backticks format npm and make examples inside diagnostic messages. The code appends findings rather than executing the displayed commands.","verdict":"false_positive","confidence":1},{"id":"sensitive:scripts/audit_instructions.py:90:certificate-key-files","reason":"The keys() call enumerates script names in the parsed package.json dictionary. It does not access certificate files or cryptographic keys.","verdict":"false_positive","confidence":1},{"id":"sensitive:scripts/audit_instructions.py:22:crypto-seed-private-key-mention","reason":"The private-key header is a regex signature used to detect possible secrets in selected instruction files. No actual private key appears here.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","reason":"Backticks format instruction-file names and discovery patterns in Markdown. They are not shell command substitution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:18:ruby-shell-backtick-execution","reason":"This documents invoking the bundled Python checker with selected files. The reviewed checker performs local reads and reporting without executing extracted commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","reason":"The backticks format the literal placeholder marker [BRACKET] within a description of checker output. This text contains no executable shell expression.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:20:ruby-shell-backtick-execution","reason":"The backticks format repository manifest filenames used to verify commands. The workflow excludes deploy, migrate, and delete commands rather than requesting arbitrary shell execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","reason":"The flagged range is a fenced Markdown report template containing headings and placeholders. It is not an executable command block.","verdict":"false_positive","confidence":1},{"id":"blocker:SKILL.md:45:system-reconnaissance","reason":"The line is a report placeholder documenting commands that were not run and why. It requests no system reconnaissance.","verdict":"false_positive","confidence":1}],"semantic_findings":[],"subject_marketplace_commit_sha":"18efac79a818d7e997295839638fdd21906cfd1c","subject_content_hash":"43e4da8c75b16ea459422c9a6bc6043a392345bebbbc844d546624b72a228e61","subject_tree_hash":"ab422e508aa5eeb9bbd3529d3e98adea0f898256962146e11ec352097ebdcf7e","subject_plugin_path":"skills/agentkitco/agents-md-audit","audit_payload_hash":"29f6885c9021ce473e50d7b9f6322439","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"18efac79a818d7e997295839638fdd21906cfd1c","contentHash":"43e4da8c75b16ea459422c9a6bc6043a392345bebbbc844d546624b72a228e61","treeHash":"ab422e508aa5eeb9bbd3529d3e98adea0f898256962146e11ec352097ebdcf7e","pluginPath":"skills/agentkitco/agents-md-audit","auditPayloadHash":"29f6885c9021ce473e50d7b9f6322439"},"scannerVersion":"3.0.0","policyVersion":"skillstore-security-audit-policy-v1"},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"issued","url":"/api/skills/agentkitco-agents-md-audit/audits/2/attestation","status":"active"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"safe","confirmedFindingCount":0,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"active","verificationState":"not_verified"},"isLatest":true}}