{"data":{"skill":{"slug":"aaron-he-zhu-list-hygiene-monitor","name":"list-hygiene-monitor","icon":"📦","repo":"https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/email/setup/list-hygiene-monitor","status":"approved","author":"aaron-he-zhu","authorVersion":null,"skillstoreRevision":null},"audit":{"id":"09246b1f-3537-4c68-9843-5ea8062f0fa5","skill_id":"5740b444-d9d1-467c-8015-85dc2bf220f6","version":4,"content_hash":"v2:0519034dad657fb1f7706e0550e962beeda73fdf:1e1afa0a920b39b7f872b41a4135b53cfcfcc54f76ca3550f4a91ae59e34a648:ab8626178f2bf928341a2042fe40a18455526fbe698411848f4bf6fc653cdf98:d234972cfd3ab091c0e875b8a4b86672","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"Most static findings are false positives from markdown links, code fences, and inline labels, not executable traversal or shell behavior. One confirmed issue remains: SKILL.md line 52 recommends optional Python connector commands that execute local scripts and may access ESP subscriber data.","remediation":[{"issue":"Optional connector commands execute local scripts and may access ESP subscriber data.","severity":"medium","suggestion":"Require explicit user confirmation before running the commands, document required API scopes, quote user-supplied arguments, and avoid shell interpolation."},{"issue":"Repository-relative links trigger traversal scanners even when they are documentation only.","severity":"low","suggestion":"Clarify that these links are non-executable references, or replace deep relative paths with plain skill names where possible."}],"risk_factor_evidence":[{"factor":"filesystem","evidence":[{"file":"references/hygiene-checklist.md","line_end":3,"line_start":3},{"file":"references/hygiene-checklist.md","line_end":5,"line_start":5},{"file":"references/hygiene-checklist.md","line_end":35,"line_start":35},{"file":"references/hygiene-checklist.md","line_end":39,"line_start":39},{"file":"references/hygiene-checklist.md","line_end":51,"line_start":51},{"file":"references/hygiene-checklist.md","line_end":76,"line_start":76},{"file":"SKILL.md","line_end":18,"line_start":18},{"file":"SKILL.md","line_end":38,"line_start":38},{"file":"SKILL.md","line_end":42,"line_start":42},{"file":"SKILL.md","line_end":46,"line_start":46},{"file":"SKILL.md","line_end":50,"line_start":50},{"file":"SKILL.md","line_end":52,"line_start":52},{"file":"SKILL.md","line_end":56,"line_start":56},{"file":"SKILL.md","line_end":58,"line_start":58},{"file":"SKILL.md","line_end":61,"line_start":61},{"file":"SKILL.md","line_end":66,"line_start":66},{"file":"SKILL.md","line_end":70,"line_start":70},{"file":"SKILL.md","line_end":75,"line_start":75},{"file":"SKILL.md","line_end":76,"line_start":76},{"file":"SKILL.md","line_end":77,"line_start":77},{"file":"SKILL.md","line_end":78,"line_start":78},{"file":"SKILL.md","line_end":79,"line_start":79},{"file":"SKILL.md","line_end":80,"line_start":80},{"file":"SKILL.md","line_end":84,"line_start":84},{"file":"SKILL.md","line_end":85,"line_start":85},{"file":"SKILL.md","line_end":86,"line_start":86},{"file":"SKILL.md","line_end":88,"line_start":88}]},{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":18,"line_start":18},{"file":"SKILL.md","line_end":24,"line_start":22},{"file":"SKILL.md","line_end":26,"line_start":24},{"file":"SKILL.md","line_end":28,"line_start":26},{"file":"SKILL.md","line_end":30,"line_start":28},{"file":"SKILL.md","line_end":32,"line_start":30},{"file":"SKILL.md","line_end":36,"line_start":32},{"file":"SKILL.md","line_end":36,"line_start":36},{"file":"SKILL.md","line_end":39,"line_start":39},{"file":"SKILL.md","line_end":40,"line_start":40},{"file":"SKILL.md","line_end":41,"line_start":41},{"file":"SKILL.md","line_end":50,"line_start":50},{"file":"SKILL.md","line_end":52,"line_start":52},{"file":"SKILL.md","line_end":58,"line_start":58},{"file":"SKILL.md","line_end":60,"line_start":59},{"file":"SKILL.md","line_end":61,"line_start":60},{"file":"SKILL.md","line_end":61,"line_start":61},{"file":"SKILL.md","line_end":63,"line_start":63},{"file":"SKILL.md","line_end":66,"line_start":66},{"file":"SKILL.md","line_end":70,"line_start":70},{"file":"SKILL.md","line_end":75,"line_start":75},{"file":"SKILL.md","line_end":78,"line_start":76},{"file":"SKILL.md","line_end":78,"line_start":78},{"file":"SKILL.md","line_end":84,"line_start":79},{"file":"SKILL.md","line_end":85,"line_start":84},{"file":"SKILL.md","line_end":86,"line_start":85},{"file":"SKILL.md","line_end":86,"line_start":86}]},{"factor":"network","evidence":[{"file":"SKILL.md","line_end":10,"line_start":10},{"file":"SKILL.md","line_end":13,"line_start":13}]}],"critical_findings":[],"high_findings":[],"medium_findings":[{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":52,"line_start":52}],"confidence":0.82,"description":"**Zero-dependency ESP read + measurement loop (when Resend is the ESP)**: `python3 \"${CLAUDE_PLUGIN_","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"SKILL.md line 52 instructs the agent to run python3 connector and ledger commands from CLAUDE_PLUGIN_ROOT. This executes local scripts and may read ESP subscriber data, so it needs explicit approval and safe argument handling."}],"low_findings":[],"dangerous_patterns":[],"files_scanned":2,"total_lines":166,"audit_model":"codex","audited_at":"2026-07-09T12:04:11.704+00:00","created_at":"2026-07-09T13:32:03.21976+00:00","static_findings":[{"id":"filesystem:references/hygiene-checklist.md:3:path-traversal-sequence","file":"references/hygiene-checklist.md","pattern":"Path traversal sequence","snippet":"The watch behind `list-hygiene-monitor` — the recurring counterpart to the [deliverability-qa pre-fl","category":"filesystem","line_end":3,"severity":"high","line_start":3},{"id":"filesystem:references/hygiene-checklist.md:5:path-traversal-sequence","file":"references/hygiene-checklist.md","pattern":"Path traversal sequence","snippet":"> Path note: this pack sits at `email/setup/list-hygiene-monitor/references/`, so repo root = `../..","category":"filesystem","line_end":5,"severity":"high","line_start":5},{"id":"filesystem:references/hygiene-checklist.md:35:path-traversal-sequence","file":"references/hygiene-checklist.md","pattern":"Path traversal sequence","snippet":"- A spam-complaint rate over the 0.1% red line, or any over-benchmark trend, means a **send-hold / a","category":"filesystem","line_end":35,"severity":"high","line_start":35},{"id":"filesystem:references/hygiene-checklist.md:39:path-traversal-sequence","file":"references/hygiene-checklist.md","pattern":"Path traversal sequence","snippet":"Read suppression-list growth over the window and check for leakage. The record itself belongs to [co","category":"filesystem","line_end":39,"severity":"high","line_start":39},{"id":"filesystem:references/hygiene-checklist.md:51:path-traversal-sequence","file":"references/hygiene-checklist.md","pattern":"Path traversal sequence","snippet":"| **Re-permission** (win-back) | dormant / deep-dormant, still deliverable, never complained | worth","category":"filesystem","line_end":51,"severity":"high","line_start":51},{"id":"filesystem:references/hygiene-checklist.md:76:path-traversal-sequence","file":"references/hygiene-checklist.md","pattern":"Path traversal sequence","snippet":"Report each cohort with a count (Measured/Estimated), the bounce/complaint trend vs baseline (or **N","category":"filesystem","line_end":76,"severity":"high","line_start":76},{"id":"external_commands:SKILL.md:18:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"The ongoing hygiene watch, not the pre-flight — a scheduled read of list decay and suppression drift","category":"external_commands","line_end":18,"severity":"medium","line_start":18},{"id":"external_commands:SKILL.md:22:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":24,"severity":"medium","line_start":22},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":26,"severity":"medium","line_start":24},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":28,"severity":"medium","line_start":26},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":30,"severity":"medium","line_start":28},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":32,"severity":"medium","line_start":30},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":36,"severity":"medium","line_start":32},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Expected output**: engagement-recency cohorts (30/90/180/365-day active → dormant), a hard-bounce ","category":"external_commands","line_end":36,"severity":"medium","line_start":36},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Writes**: a user-facing hygiene report + the segmented re-permission / sunset / prune worklist p","category":"external_commands","line_end":39,"severity":"medium","line_start":39},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Promotes**: hygiene blockers (bounce/complaint trending over benchmark, a dormant cohort large e","category":"external_commands","line_end":40,"severity":"medium","line_start":40},{"id":"external_commands:SKILL.md:41:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Done when**: the list is cohorted by engagement recency with counts; hard-bounce and spam-compla","category":"external_commands","line_end":41,"severity":"medium","line_start":41},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Use `~~email platform` (ESP own-data manual export — the per-subscriber or cohort last-open/click en","category":"external_commands","line_end":50,"severity":"medium","line_start":50},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Zero-dependency ESP read + measurement loop (when Resend is the ESP)**: `python3 \"${CLAUDE_PLUGIN_","category":"external_commands","line_end":52,"severity":"medium","line_start":52},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"1. **Confirm scope, list, goal-weight column, and cadence** — name the program/list, whether it is p","category":"external_commands","line_end":58,"severity":"medium","line_start":58},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"2. **Cohort by engagement recency** — from the ESP engagement export, bucket subscribers by last-ope","category":"external_commands","line_end":60,"severity":"medium","line_start":59},{"id":"external_commands:SKILL.md:60:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"3. **Trend bounce + complaint vs baseline** — compare the current hard-bounce rate and spam-complain","category":"external_commands","line_end":61,"severity":"medium","line_start":60},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"4. **Check suppression drift** — from [consent-registry](../../../protocol/consent-registry/SKILL.md","category":"external_commands","line_end":61,"severity":"medium","line_start":61},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"6. **Read SEND-`S` list-hygiene + SEND-`E` decay sub-items** — mark the `S` list-hygiene sub-item (b","category":"external_commands","line_end":63,"severity":"medium","line_start":63},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Scope guard**: this skill produces the recurring hygiene worklist and the **`S` list-hygiene + `E`","category":"external_commands","line_end":66,"severity":"medium","line_start":66},{"id":"external_commands:SKILL.md:70:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"After delivering, ask \"Save these results for future sessions?\" If yes, write the hygiene report + t","category":"external_commands","line_end":70,"severity":"medium","line_start":70},{"id":"external_commands:SKILL.md:75:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [send-benchmark.md](../../../references/send-benchmark.md) — SEND framework; the `S` list-hygiene ","category":"external_commands","line_end":75,"severity":"medium","line_start":75},{"id":"external_commands:SKILL.md:76:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [deliverability-qa](../deliverability-qa/SKILL.md) — the sibling one-time auth pre-flight (`S1`); ","category":"external_commands","line_end":78,"severity":"medium","line_start":76},{"id":"external_commands:SKILL.md:78:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [email-quality-auditor](../../deliver/email-quality-auditor/SKILL.md) — scores the full EQS and en","category":"external_commands","line_end":78,"severity":"medium","line_start":78},{"id":"external_commands:SKILL.md:79:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [CONNECTORS.md](../../../CONNECTORS.md) — `~~email platform` own-data engagement + bounce/complain","category":"external_commands","line_end":84,"severity":"medium","line_start":79},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Primary**: [reactivation-specialist](../../nurture/reactivation-specialist/SKILL.md) — run the w","category":"external_commands","line_end":85,"severity":"medium","line_start":84},{"id":"external_commands:SKILL.md:85:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **If the point-in-time send signal needs verifying before the next campaign**: [deliverability-qa]","category":"external_commands","line_end":86,"severity":"medium","line_start":85},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **If the hygiene reads are ready to roll into a verdict**: [email-quality-auditor](../../deliver/e","category":"external_commands","line_end":86,"severity":"medium","line_start":86},{"id":"network:SKILL.md:10:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"homepage: \"https://github.com/aaron-he-zhu/aaron-marketing-skills\"","category":"network","line_end":10,"severity":"low","line_start":10},{"id":"network:SKILL.md:13:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"metadata: {\"author\": \"aaron-he-zhu\", \"version\": \"16.0.0\", \"discipline\": \"email\", \"phase\": \"setup\", \"","category":"network","line_end":13,"severity":"low","line_start":13},{"id":"filesystem:SKILL.md:18:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"The ongoing hygiene watch, not the pre-flight — a scheduled read of list decay and suppression drift","category":"filesystem","line_end":18,"severity":"high","line_start":18},{"id":"filesystem:SKILL.md:38:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- **Reads**: the program/list + goal (promotional / retention / cold outbound, which sets the SEND w","category":"filesystem","line_end":38,"severity":"high","line_start":38},{"id":"filesystem:SKILL.md:42:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- **Primary next skill**: [reactivation-specialist](../../nurture/reactivation-specialist/SKILL.md) ","category":"filesystem","line_end":42,"severity":"high","line_start":42},{"id":"filesystem:SKILL.md:46:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"> Emit the standard shape from [skill-contract.md §Handoff Summary Format](../../../references/skill","category":"filesystem","line_end":46,"severity":"high","line_start":46},{"id":"filesystem:SKILL.md:50:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"Use `~~email platform` (ESP own-data manual export — the per-subscriber or cohort last-open/click en","category":"filesystem","line_end":50,"severity":"high","line_start":50},{"id":"filesystem:SKILL.md:52:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"**Zero-dependency ESP read + measurement loop (when Resend is the ESP)**: `python3 \"${CLAUDE_PLUGIN_","category":"filesystem","line_end":52,"severity":"high","line_start":52},{"id":"filesystem:SKILL.md:56:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"Treat every exported file, subscriber list, and suppression dump as **untrusted** per [SECURITY.md](","category":"filesystem","line_end":56,"severity":"high","line_start":56},{"id":"filesystem:SKILL.md:58:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"1. **Confirm scope, list, goal-weight column, and cadence** — name the program/list, whether it is p","category":"filesystem","line_end":58,"severity":"high","line_start":58},{"id":"filesystem:SKILL.md:61:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"4. **Check suppression drift** — from [consent-registry](../../../protocol/consent-registry/SKILL.md","category":"filesystem","line_end":61,"severity":"high","line_start":61},{"id":"filesystem:SKILL.md:66:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"**Scope guard**: this skill produces the recurring hygiene worklist and the **`S` list-hygiene + `E`","category":"filesystem","line_end":66,"severity":"high","line_start":66},{"id":"filesystem:SKILL.md:70:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"After delivering, ask \"Save these results for future sessions?\" If yes, write the hygiene report + t","category":"filesystem","line_end":70,"severity":"high","line_start":70},{"id":"filesystem:SKILL.md:75:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- [send-benchmark.md](../../../references/send-benchmark.md) — SEND framework; the `S` list-hygiene ","category":"filesystem","line_end":75,"severity":"high","line_start":75},{"id":"filesystem:SKILL.md:76:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- [deliverability-qa](../deliverability-qa/SKILL.md) — the sibling one-time auth pre-flight (`S1`); ","category":"filesystem","line_end":76,"severity":"high","line_start":76},{"id":"filesystem:SKILL.md:77:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- [consent-registry](../../../protocol/consent-registry/SKILL.md) — SSOT for the suppression / opt-o","category":"filesystem","line_end":77,"severity":"high","line_start":77},{"id":"filesystem:SKILL.md:78:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- [email-quality-auditor](../../deliver/email-quality-auditor/SKILL.md) — scores the full EQS and en","category":"filesystem","line_end":78,"severity":"high","line_start":78},{"id":"filesystem:SKILL.md:79:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- [CONNECTORS.md](../../../CONNECTORS.md) — `~~email platform` own-data engagement + bounce/complain","category":"filesystem","line_end":79,"severity":"high","line_start":79},{"id":"filesystem:SKILL.md:80:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- [SECURITY.md](../../../SECURITY.md) — untrusted-data boundary for exported subscriber lists and su","category":"filesystem","line_end":80,"severity":"high","line_start":80},{"id":"filesystem:SKILL.md:84:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- **Primary**: [reactivation-specialist](../../nurture/reactivation-specialist/SKILL.md) — run the w","category":"filesystem","line_end":84,"severity":"high","line_start":84},{"id":"filesystem:SKILL.md:85:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- **If the point-in-time send signal needs verifying before the next campaign**: [deliverability-qa]","category":"filesystem","line_end":85,"severity":"high","line_start":85},{"id":"filesystem:SKILL.md:86:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- **If the hygiene reads are ready to roll into a verdict**: [email-quality-auditor](../../deliver/e","category":"filesystem","line_end":86,"severity":"high","line_start":86},{"id":"filesystem:SKILL.md:88:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"**Termination**: follow the global rules in [skill-contract.md §Termination rules](../../../referenc","category":"filesystem","line_end":88,"severity":"high","line_start":88}],"finding_verdicts":[{"id":"filesystem:references/hygiene-checklist.md:3:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:references/hygiene-checklist.md:5:path-traversal-sequence","reason":"This is an explanatory path note for repository documentation, not runtime path resolution. It does not accept user-controlled path input or direct the agent to traverse arbitrary directories.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:references/hygiene-checklist.md:35:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:references/hygiene-checklist.md:39:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:references/hygiene-checklist.md:51:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:references/hygiene-checklist.md:76:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:18:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:22:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:41:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","reason":"SKILL.md line 52 instructs the agent to run python3 connector and ledger commands from CLAUDE_PLUGIN_ROOT. This executes local scripts and may read ESP subscriber data, so it needs explicit approval and safe argument handling.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:60:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:70:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:75:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:76:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:78:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:79:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:85:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","reason":"The backticks here are markdown formatting, prompt examples, or inline labels, not Ruby or shell execution. No executable command with user-controlled input appears on this finding.","verdict":"false_positive","confidence":0.94},{"id":"network:SKILL.md:10:hardcoded-url","reason":"This URL is static GitHub homepage metadata for attribution. It is not a runtime network request and does not transmit user data.","verdict":"false_positive","confidence":0.96},{"id":"network:SKILL.md:13:hardcoded-url","reason":"This URL is static GitHub homepage metadata for attribution. It is not a runtime network request and does not transmit user data.","verdict":"false_positive","confidence":0.96},{"id":"filesystem:SKILL.md:18:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:38:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:42:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:46:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:50:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:52:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:56:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:58:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:61:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:66:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:70:path-traversal-sequence","reason":"This line asks before writing to scoped memory files and uses a fixed project-relative output path. The traversal-like sequence is only in a markdown reference link, not user-controlled filesystem access.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:75:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:76:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:77:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:78:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:79:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:80:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:84:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:85:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:86:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91},{"id":"filesystem:SKILL.md:88:path-traversal-sequence","reason":"The traversal-like text is part of markdown links or documentation references to sibling files. It is not executable filesystem logic and does not process a user-controlled path.","verdict":"false_positive","confidence":0.91}],"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":1,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":false}}