{"data":{"skill":{"slug":"emilkowalski-animation-vocabulary","name":"animation-vocabulary","icon":"📦","repo":"https://github.com/emilkowalski/skills/tree/main/skills/animation-vocabulary/","status":"approved","author":"emilkowalski","authorVersion":null,"skillstoreRevision":null},"audit":{"id":"b7e29a86-7076-46bb-bb88-3e37a3cd4aed","skill_id":"3f2b9b1c-4d6d-48f5-beb5-05aebfa894e5","version":1,"content_hash":"v2:e82d22ace449afa2495e5c931b687eb19f360093:245d572036583ebc960a6cc11b72a6c42fe7ef7b35957f63e65399ebf4db2540:d6153af66bd50a2e8ce0275811f0641667402abc6e40491540fc58a227059659:416cf58838d4700bd0ae85520f2e05f0","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All external command findings are false positives caused by Markdown code fences around examples. The blocker findings are glossary entries for animation vocabulary and do not request system reconnaissance. No prompt injection or malicious intent was found in SKILL.md.","remediation":[],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":16,"line_start":14},{"file":"SKILL.md","line_end":34,"line_start":16},{"file":"SKILL.md","line_end":36,"line_start":34},{"file":"SKILL.md","line_end":41,"line_start":36},{"file":"SKILL.md","line_end":47,"line_start":41},{"file":"SKILL.md","line_end":52,"line_start":47},{"file":"SKILL.md","line_end":54,"line_start":52},{"file":"SKILL.md","line_end":58,"line_start":54}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":1,"total_lines":174,"audit_model":"codex","audited_at":"2026-07-06T12:54:48.462+00:00","created_at":"2026-07-06T15:52:27.191599+00:00","static_findings":[{"id":"external_commands:SKILL.md:14:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":16,"severity":"medium","line_start":14},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":34,"severity":"medium","line_start":16},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":36,"severity":"medium","line_start":34},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":41,"severity":"medium","line_start":36},{"id":"external_commands:SKILL.md:41:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":47,"severity":"medium","line_start":41},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":52,"severity":"medium","line_start":47},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":54,"severity":"medium","line_start":52},{"id":"external_commands:SKILL.md:54:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":58,"severity":"medium","line_start":54},{"id":"blocker:SKILL.md:120:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- **Linear** — Constant speed. Avoid for UI; reserve for spinners or marquees.","category":"blocker","line_end":120,"severity":"low","line_start":120},{"id":"blocker:SKILL.md:148:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- **Before / after slider** — A draggable divider that wipes between two overlaid images to compare ","category":"blocker","line_end":148,"severity":"low","line_start":148}],"finding_verdicts":[{"id":"external_commands:SKILL.md:14:ruby-shell-backtick-execution","reason":"The backticks at SKILL.md line 14 open a Markdown code fence for a sample glossary response. They are not Ruby backticks, shell execution, or command instructions.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","reason":"This range closes one Markdown example block and leads into another prose example. No executable command, interpreter call, or user-controlled shell input is present.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","reason":"The flagged backticks open a Markdown output example for the term Origin-aware animation. The content is static explanatory text, not a shell command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","reason":"The flagged range is Markdown formatting around an example answer and nearby prose. It does not invoke Ruby, a shell, or any external program.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:41:ruby-shell-backtick-execution","reason":"The backticks mark a Markdown example response for Morph and related animation terms. The fenced text contains glossary output only, with no executable syntax.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","reason":"This is the closing Markdown fence for an example answer. The surrounding content is instructional prose and does not run external commands.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","reason":"The flagged backticks open a Markdown example for Rubber-banding. The example is a text answer and contains no command execution behavior.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:54:ruby-shell-backtick-execution","reason":"The flagged range closes a Markdown example and begins the glossary section. It is documentation text, not shell or Ruby backtick execution.","verdict":"false_positive","confidence":0.96},{"id":"blocker:SKILL.md:120:system-reconnaissance","reason":"SKILL.md line 120 defines the animation term Linear as constant speed. It does not instruct the agent to inspect the host system or gather environment data.","verdict":"false_positive","confidence":0.94},{"id":"blocker:SKILL.md:148:system-reconnaissance","reason":"SKILL.md line 148 defines Before / after slider as a UI comparison pattern. It is not system reconnaissance and does not request filesystem, network, or environment inspection.","verdict":"false_positive","confidence":0.94}],"semantic_findings":[],"subject_marketplace_commit_sha":null,"subject_content_hash":null,"subject_tree_hash":null,"subject_plugin_path":null,"audit_payload_hash":null,"confirmed_risk_level":null,"scanner_version":null,"policy_version":null,"subject":{"marketplaceCommitSha":null,"contentHash":null,"treeHash":null,"pluginPath":null,"auditPayloadHash":null},"scannerVersion":null,"policyVersion":null},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"not_attestable","url":null,"status":null,"reason":"confirmed_risk_level does not match the canonical trust resolver"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"safe","confirmedFindingCount":0,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":false}}