{"data":{"skill":{"slug":"aaron-he-zhu-offsite-signal-analyzer","name":"offsite-signal-analyzer","icon":"📦","repo":"https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/seo-geo/monitor/offsite-signal-analyzer","status":"approved","author":"aaron-he-zhu","authorVersion":null,"skillstoreRevision":null},"audit":{"id":"196f045c-3775-435a-912c-f49b00728976","skill_id":"28e62c4f-a524-47e1-afb4-783ae57cf84d","version":4,"content_hash":"v2:0519034dad657fb1f7706e0550e962beeda73fdf:1bb63778faeb9776a7a4ccb438a06dd8fe45c12161f315ae24cd1a727a104dd5:0080b8c05c4fad6e5ee63bfee034582af523ad6aee93b18fe40865fb18b4ad15:de78b1e5dcfbb036eb4f4949c8f3a4f3","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 code formatting, relative documentation links, metadata URLs, and SEO reference examples. I confirmed the three lines that explicitly tell the agent to run local Python connector or ledger commands; I found no prompt injection or malicious exfiltration intent.","remediation":[{"issue":"Local connector commands in skill instructions","severity":"medium","suggestion":"Require explicit user confirmation before running connector or ledger commands, and pass user input as arguments without shell interpolation."},{"issue":"Generated memory filenames use a free-form topic","severity":"low","suggestion":"Sanitize the topic before saving under memory/monitoring. Remove slashes, traversal tokens, and control characters from filenames."},{"issue":"Optional external benchmark references are broad","severity":"low","suggestion":"State that public benchmark links may be fetched only when useful and must not include user analytics or log data."}],"risk_factor_evidence":[{"factor":"network","evidence":[{"file":"references/link-quality-rubric.md","line_end":103,"line_start":103},{"file":"SKILL.md","line_end":10,"line_start":10},{"file":"SKILL.md","line_end":14,"line_start":14},{"file":"SKILL.md","line_end":75,"line_start":75}]},{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":25,"line_start":25},{"file":"SKILL.md","line_end":26,"line_start":26},{"file":"SKILL.md","line_end":28,"line_start":28},{"file":"SKILL.md","line_end":37,"line_start":32},{"file":"SKILL.md","line_end":39,"line_start":37},{"file":"SKILL.md","line_end":39,"line_start":39},{"file":"SKILL.md","line_end":43,"line_start":43},{"file":"SKILL.md","line_end":47,"line_start":46},{"file":"SKILL.md","line_end":48,"line_start":47},{"file":"SKILL.md","line_end":49,"line_start":48},{"file":"SKILL.md","line_end":49,"line_start":49},{"file":"SKILL.md","line_end":52,"line_start":51},{"file":"SKILL.md","line_end":65,"line_start":52},{"file":"SKILL.md","line_end":67,"line_start":65},{"file":"SKILL.md","line_end":67,"line_start":67},{"file":"SKILL.md","line_end":69,"line_start":69},{"file":"SKILL.md","line_end":71,"line_start":71},{"file":"SKILL.md","line_end":73,"line_start":73},{"file":"SKILL.md","line_end":81,"line_start":79},{"file":"SKILL.md","line_end":83,"line_start":81},{"file":"SKILL.md","line_end":83,"line_start":83},{"file":"SKILL.md","line_end":88,"line_start":88},{"file":"SKILL.md","line_end":129,"line_start":89},{"file":"SKILL.md","line_end":129,"line_start":129},{"file":"SKILL.md","line_end":140,"line_start":136},{"file":"SKILL.md","line_end":140,"line_start":140},{"file":"SKILL.md","line_end":152,"line_start":151},{"file":"SKILL.md","line_end":154,"line_start":152}]},{"factor":"filesystem","evidence":[{"file":"SKILL.md","line_end":19,"line_start":19},{"file":"SKILL.md","line_end":53,"line_start":53},{"file":"SKILL.md","line_end":57,"line_start":57},{"file":"SKILL.md","line_end":61,"line_start":61},{"file":"SKILL.md","line_end":65,"line_start":65},{"file":"SKILL.md","line_end":83,"line_start":83},{"file":"SKILL.md","line_end":113,"line_start":113},{"file":"SKILL.md","line_end":134,"line_start":134},{"file":"SKILL.md","line_end":140,"line_start":140},{"file":"SKILL.md","line_end":147,"line_start":147},{"file":"SKILL.md","line_end":151,"line_start":151},{"file":"SKILL.md","line_end":152,"line_start":152},{"file":"SKILL.md","line_end":154,"line_start":154}]}],"critical_findings":[],"high_findings":[],"medium_findings":[{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":69,"line_start":69}],"confidence":0.86,"description":"**Keyless unlinked-mention read (backlinks mode)**: `python3 \"${CLAUDE_PLUGIN_ROOT}/scripts/connecto","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"Line 69 explicitly suggests running python3 connector scripts with a brand argument and piping results into ledger.py. That is local command execution from skill instructions and needs user approval plus safe argument handling."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":73,"line_start":73}],"confidence":0.88,"description":"**Keyless upstream AI-citation spot-check (ai-referrals mode)**: referral logs only show clicks *aft","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"Line 73 explicitly suggests running tavily.py and ledger.py with a user-supplied query. This is local command execution plus network-backed connector activity from skill instructions."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":83,"line_start":83}],"confidence":0.85,"description":"**Zero-dependency measurement loop (ai-referrals)**: store each period's AI-channel KPIs and let the","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"Line 83 instructs the agent to run ledger.py record, diff, and trend commands with user-provided domain and KPI data. This is local command execution from skill instructions and should be gated."}],"low_findings":[],"dangerous_patterns":[],"files_scanned":4,"total_lines":525,"audit_model":"codex","audited_at":"2026-07-09T12:10:25.829+00:00","created_at":"2026-07-09T13:32:03.251462+00:00","static_findings":[{"id":"network:references/link-quality-rubric.md:103:hardcoded-url","file":"references/link-quality-rubric.md","pattern":"Hardcoded URL","snippet":"https://spam-site.example/toxic-page","category":"network","line_end":103,"severity":"low","line_start":103},{"id":"blocker:references/link-quality-rubric.md:74:system-reconnaissance","file":"references/link-quality-rubric.md","pattern":"System reconnaissance","snippet":"| Paid links you cannot get removed | Yes | Only after attempting removal |","category":"blocker","line_end":74,"severity":"low","line_start":74},{"id":"blocker:references/link-quality-rubric.md:100:system-reconnaissance","file":"references/link-quality-rubric.md","pattern":"System reconnaissance","snippet":"# Reason: [toxic link cleanup / negative SEO / paid links not removable]","category":"blocker","line_end":100,"severity":"low","line_start":100},{"id":"blocker:references/outreach-templates.md:7:system-reconnaissance","file":"references/outreach-templates.md","pattern":"System reconnaissance","snippet":"| Rule | Do | Avoid |","category":"blocker","line_end":7,"severity":"low","line_start":7},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `backlinks` (default) | backlink-analyzer | `~~link database` export / pasted CSV | Referring doma","category":"external_commands","line_end":25,"severity":"medium","line_start":25},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `ai-referrals` | ai-traffic | GA4 / GSC / server-log export | AI-assistant referral sessions, tren","category":"external_commands","line_end":26,"severity":"medium","line_start":26},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**The seam**: backlinks answers \"is this domain worth trusting as a source?\" from the link graph; ai","category":"external_commands","line_end":28,"severity":"medium","line_start":28},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```text","category":"external_commands","line_end":37,"severity":"medium","line_start":32},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":39,"severity":"medium","line_start":37},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"If no mode is given, infer it: link/anchor/toxic/referring-domain wording → `backlinks`; AI-assistan","category":"external_commands","line_end":39,"severity":"medium","line_start":39},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Expected output**: for `backlinks`, a backlink report (profile overview, quality/anchors/toxicity,","category":"external_commands","line_end":43,"severity":"medium","line_start":43},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `backlinks` — target domain, backlink/referring-domain exports, competitor domains, anchor data, a","category":"external_commands","line_end":47,"severity":"medium","line_start":46},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `ai-referrals` — domain, date range, the user's GA4 export / Search Console data and/or server acc","category":"external_commands","line_end":48,"severity":"medium","line_start":47},{"id":"external_commands:SKILL.md:48:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Writes**: a user-facing monitoring deliverable and a reusable handoff summary under `memory/moni","category":"external_commands","line_end":49,"severity":"medium","line_start":48},{"id":"external_commands:SKILL.md:49:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Promotes**: significant changes, confirmed anomalies, new AI sources appearing, and follow-up ac","category":"external_commands","line_end":49,"severity":"medium","line_start":49},{"id":"external_commands:SKILL.md:51:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `backlinks` — referring domains, anchor mix, and toxic-link share are reported with each metric so","category":"external_commands","line_end":52,"severity":"medium","line_start":51},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `ai-referrals` — the AI source list is explicit, every figure is source-tagged, AI sessions and co","category":"external_commands","line_end":65,"severity":"medium","line_start":52},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"All integrations optional and keyless on your own data (see [CONNECTORS.md](../../../CONNECTORS.md))","category":"external_commands","line_end":67,"severity":"medium","line_start":65},{"id":"external_commands:SKILL.md:67:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**backlinks mode** — pull backlink profiles from `~~link database` and competitor data from `~~SEO t","category":"external_commands","line_end":67,"severity":"medium","line_start":67},{"id":"external_commands:SKILL.md:69:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Keyless unlinked-mention read (backlinks mode)**: `python3 \"${CLAUDE_PLUGIN_ROOT}/scripts/connecto","category":"external_commands","line_end":69,"severity":"medium","line_start":69},{"id":"external_commands:SKILL.md:71:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**ai-referrals mode** — pull referral source/medium and conversions from `~~web analytics` (GA4 own ","category":"external_commands","line_end":71,"severity":"medium","line_start":71},{"id":"external_commands:SKILL.md:73:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Keyless upstream AI-citation spot-check (ai-referrals mode)**: referral logs only show clicks *aft","category":"external_commands","line_end":73,"severity":"medium","line_start":73},{"id":"external_commands:SKILL.md:79:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":81,"severity":"medium","line_start":79},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":83,"severity":"medium","line_start":81},{"id":"external_commands:SKILL.md:83:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Zero-dependency measurement loop (ai-referrals)**: store each period's AI-channel KPIs and let the","category":"external_commands","line_end":83,"severity":"medium","line_start":83},{"id":"external_commands:SKILL.md:88:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `backlinks` — no backlink data is provided and no `~~link database` is connected; link counts cann","category":"external_commands","line_end":88,"severity":"medium","line_start":88},{"id":"external_commands:SKILL.md:89:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `ai-referrals` — no GA4/GSC/log export is provided and no analytics tool is connected; AI sessions","category":"external_commands","line_end":129,"severity":"medium","line_start":89},{"id":"external_commands:SKILL.md:129:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"3. **Pull AI-referral sessions** — in GA4 use an Exploration on `Session source / medium` filtered b","category":"external_commands","line_end":129,"severity":"medium","line_start":129},{"id":"external_commands:SKILL.md:136:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**CITE item mapping** (ai-referrals): these figures are an **engagement signal that informs (does no","category":"external_commands","line_end":140,"severity":"medium","line_start":136},{"id":"external_commands:SKILL.md:140:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Ask \"Save these results for future sessions?\" If yes, write to `memory/monitoring/` using filename `","category":"external_commands","line_end":140,"severity":"medium","line_start":140},{"id":"external_commands:SKILL.md:151:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `backlinks`, toxic ratio > 15% or authority concern → [domain-authority-auditor](../domain-authori","category":"external_commands","line_end":152,"severity":"medium","line_start":151},{"id":"external_commands:SKILL.md:152:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `ai-referrals` → roll the AI channel into a full stakeholder report with [performance-monitor](../","category":"external_commands","line_end":154,"severity":"medium","line_start":152},{"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:14:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"metadata: {\"author\": \"aaron-he-zhu\", \"version\": \"16.0.0\", \"discipline\": \"seo-geo\", \"phase\": \"monitor","category":"network","line_end":14,"severity":"low","line_start":14},{"id":"network:SKILL.md:75:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"**Industry baseline for AI-crawler traffic (keyless)**: [Cloudflare Radar AI Insights](https://radar","category":"network","line_end":75,"severity":"low","line_start":75},{"id":"filesystem:SKILL.md:19:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"Reports the two off-site signal families a domain earns from the outside world: the **backlink profi","category":"filesystem","line_end":19,"severity":"high","line_start":19},{"id":"filesystem:SKILL.md:53:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- **Primary next skill**: [domain-authority-auditor](../domain-authority-auditor/SKILL.md) when toxi","category":"filesystem","line_end":53,"severity":"high","line_start":53},{"id":"filesystem:SKILL.md:57: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":57,"severity":"high","line_start":57},{"id":"filesystem:SKILL.md:61:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"This skill does **not**: score CITE or run vetoes (that is the [domain-authority-auditor](../domain-","category":"filesystem","line_end":61,"severity":"high","line_start":61},{"id":"filesystem:SKILL.md:65:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"All integrations optional and keyless on your own data (see [CONNECTORS.md](../../../CONNECTORS.md))","category":"filesystem","line_end":65,"severity":"high","line_start":65},{"id":"filesystem:SKILL.md:83:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"**Zero-dependency measurement loop (ai-referrals)**: store each period's AI-channel KPIs and let the","category":"filesystem","line_end":83,"severity":"high","line_start":83},{"id":"filesystem:SKILL.md:113:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"**CITE item mapping** (what feeds [domain-authority-auditor](../domain-authority-auditor/SKILL.md) i","category":"filesystem","line_end":113,"severity":"high","line_start":113},{"id":"filesystem:SKILL.md:134:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"8. **Read movement against a control** — before crediting any change to an AI-traffic shift, apply [","category":"filesystem","line_end":134,"severity":"high","line_start":134},{"id":"filesystem:SKILL.md:140:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"Ask \"Save these results for future sessions?\" If yes, write to `memory/monitoring/` using filename `","category":"filesystem","line_end":140,"severity":"high","line_start":140},{"id":"filesystem:SKILL.md:147:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- [Measurement & Attribution Protocol](../../../references/measurement-protocol.md) — readback windo","category":"filesystem","line_end":147,"severity":"high","line_start":147},{"id":"filesystem:SKILL.md:151:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- `backlinks`, toxic ratio > 15% or authority concern → [domain-authority-auditor](../domain-authori","category":"filesystem","line_end":151,"severity":"high","line_start":151},{"id":"filesystem:SKILL.md:152:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- `ai-referrals` → roll the AI channel into a full stakeholder report with [performance-monitor](../","category":"filesystem","line_end":152,"severity":"high","line_start":152},{"id":"filesystem:SKILL.md:154:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"Termination: visited-set check (if the target already ran in this chain, STOP and report chain-compl","category":"filesystem","line_end":154,"severity":"high","line_start":154}],"finding_verdicts":[{"id":"network:references/link-quality-rubric.md:103:hardcoded-url","reason":"The URL is a placeholder example inside a disavow-file template. It is not fetched and does not receive user data.","verdict":"false_positive","confidence":0.94},{"id":"blocker:references/link-quality-rubric.md:74:system-reconnaissance","reason":"This line is backlink, disavow, or outreach guidance, not system reconnaissance. It does not enumerate host, user, process, or network details.","verdict":"false_positive","confidence":0.93},{"id":"blocker:references/link-quality-rubric.md:100:system-reconnaissance","reason":"This line is backlink, disavow, or outreach guidance, not system reconnaissance. It does not enumerate host, user, process, or network details.","verdict":"false_positive","confidence":0.93},{"id":"blocker:references/outreach-templates.md:7:system-reconnaissance","reason":"This line is backlink, disavow, or outreach guidance, not system reconnaissance. It does not enumerate host, user, process, or network details.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:48:ruby-shell-backtick-execution","reason":"This line describes a report and handoff write under memory/monitoring, not shell execution. No interpreter, subprocess, or command string is invoked here.","verdict":"false_positive","confidence":0.87},{"id":"external_commands:SKILL.md:49:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:51:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:67:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:69:ruby-shell-backtick-execution","reason":"Line 69 explicitly suggests running python3 connector scripts with a brand argument and piping results into ledger.py. That is local command execution from skill instructions and needs user approval plus safe argument handling.","verdict":"confirmed","severity":"medium","confidence":0.86},{"id":"external_commands:SKILL.md:71:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:73:ruby-shell-backtick-execution","reason":"Line 73 explicitly suggests running tavily.py and ledger.py with a user-supplied query. This is local command execution plus network-backed connector activity from skill instructions.","verdict":"confirmed","severity":"medium","confidence":0.88},{"id":"external_commands:SKILL.md:79:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:83:ruby-shell-backtick-execution","reason":"Line 83 instructs the agent to run ledger.py record, diff, and trend commands with user-provided domain and KPI data. This is local command execution from skill instructions and should be gated.","verdict":"confirmed","severity":"medium","confidence":0.85},{"id":"external_commands:SKILL.md:88:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:89:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:129:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:136:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:140:ruby-shell-backtick-execution","reason":"This line tells the agent to ask before saving a Markdown memory file. It is filesystem guidance, not shell execution or Ruby backtick evaluation.","verdict":"false_positive","confidence":0.84},{"id":"external_commands:SKILL.md:151:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:152:ruby-shell-backtick-execution","reason":"The snippet is Markdown documentation, inline code, a table label, or an example block. It does not invoke an interpreter or run a shell command at this location.","verdict":"false_positive","confidence":0.88},{"id":"network:SKILL.md:10:hardcoded-url","reason":"This URL is homepage metadata for the skill repository. It is not an outbound request or data transfer path.","verdict":"false_positive","confidence":0.95},{"id":"network:SKILL.md:14:hardcoded-url","reason":"This URL is homepage metadata inside the skill metadata block. It is not an outbound request or data transfer path.","verdict":"false_positive","confidence":0.95},{"id":"network:SKILL.md:75:hardcoded-url","reason":"The Cloudflare Radar URL is a public benchmark reference for optional manual comparison. It does not send user analytics, logs, or secrets to an external service.","verdict":"false_positive","confidence":0.9},{"id":"filesystem:SKILL.md:19:path-traversal-sequence","reason":"The ../ sequence appears in a Markdown link to another repository document or skill, not in path construction or file IO. No user-controlled traversal target is created at this location.","verdict":"false_positive","confidence":0.9},{"id":"filesystem:SKILL.md:53:path-traversal-sequence","reason":"The ../ sequence appears in a Markdown link to another repository document or skill, not in path construction or file IO. No user-controlled traversal target is created at this location.","verdict":"false_positive","confidence":0.9},{"id":"filesystem:SKILL.md:57:path-traversal-sequence","reason":"The ../ sequence appears in a Markdown link to another repository document or skill, not in path construction or file IO. No user-controlled traversal target is created at this location.","verdict":"false_positive","confidence":0.9},{"id":"filesystem:SKILL.md:61:path-traversal-sequence","reason":"The ../ sequence appears in a Markdown link to another repository document or skill, not in path construction or file IO. No user-controlled traversal target is created at this location.","verdict":"false_positive","confidence":0.9},{"id":"filesystem:SKILL.md:65:path-traversal-sequence","reason":"The ../ sequence appears in a Markdown link to another repository document or skill, not in path construction or file IO. No user-controlled traversal target is created at this location.","verdict":"false_positive","confidence":0.9},{"id":"filesystem:SKILL.md:83:path-traversal-sequence","reason":"The ../ sequence appears in a Markdown link to another repository document or skill, not in path construction or file IO. No user-controlled traversal target is created at this location.","verdict":"false_positive","confidence":0.9},{"id":"filesystem:SKILL.md:113:path-traversal-sequence","reason":"The ../ sequence appears in a Markdown link to another repository document or skill, not in path construction or file IO. No user-controlled traversal target is created at this location.","verdict":"false_positive","confidence":0.9},{"id":"filesystem:SKILL.md:134:path-traversal-sequence","reason":"The ../ sequence appears in a Markdown link to another repository document or skill, not in path construction or file IO. No user-controlled traversal target is created at this location.","verdict":"false_positive","confidence":0.9},{"id":"filesystem:SKILL.md:140:path-traversal-sequence","reason":"The flagged traversal sequence is a relative Markdown link to skill-contract.md. The memory write is constrained to memory/monitoring and occurs only after user confirmation.","verdict":"false_positive","confidence":0.86},{"id":"filesystem:SKILL.md:147:path-traversal-sequence","reason":"The ../ sequence appears in a Markdown link to another repository document or skill, not in path construction or file IO. No user-controlled traversal target is created at this location.","verdict":"false_positive","confidence":0.9},{"id":"filesystem:SKILL.md:151:path-traversal-sequence","reason":"The ../ sequence appears in a Markdown link to another repository document or skill, not in path construction or file IO. No user-controlled traversal target is created at this location.","verdict":"false_positive","confidence":0.9},{"id":"filesystem:SKILL.md:152:path-traversal-sequence","reason":"The ../ sequence appears in a Markdown link to another repository document or skill, not in path construction or file IO. No user-controlled traversal target is created at this location.","verdict":"false_positive","confidence":0.9},{"id":"filesystem:SKILL.md:154:path-traversal-sequence","reason":"The ../ sequence appears in a Markdown link to another repository document or skill, not in path construction or file IO. No user-controlled traversal target is created at this location.","verdict":"false_positive","confidence":0.9}],"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":3,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":false}}