{"data":{"skill":{"slug":"sentdm-messaging-performance-analyzer","name":"messaging-performance-analyzer","icon":"📦","repo":"https://github.com/sentdm/sent-plugin/tree/bfc21e75db359a9c4022b4654055b04830342cbc/skills/messaging-performance-analyzer","status":"approved","author":"sentdm","authorVersion":null,"skillstoreRevision":1},"audit":{"id":"09a3ce80-638f-4812-9eaf-482a54ee7cf1","skill_id":"f2128fc7-3ba6-4bcf-b3b4-cbda27e885de","version":1,"content_hash":"v3:403a72913d563cb23b8c54ebfae13b3ab6ebdb34:c50f9395374a5d10d78da97f8215f97221f99d0d366eb37ce523e73cfa5e6585:884961cb890fe9a813ac5889b1cd60ab7249aee2c8d328c6677cc134a93224db:736b696c6c732f73656e74646d2f6d6573736167696e672d706572666f726d616e63652d616e616c797a6572:c1ef7afe3214f2d9895401eb51bf3bf9","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 57 static findings are false positives caused by Markdown code formatting, documentation terminology, Python docstrings, and ordinary error handling. The script only reads a user-selected CSV or JSON file, computes local statistics, and prints results; no prompt injection, command execution, network access, or malicious intent was found.","remediation":[],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"scripts/analyze_mdr_funnel.py","line_end":5,"line_start":5},{"file":"scripts/analyze_mdr_funnel.py","line_end":6,"line_start":6},{"file":"SKILL.md","line_end":9,"line_start":9},{"file":"SKILL.md","line_end":18,"line_start":18},{"file":"SKILL.md","line_end":32,"line_start":32},{"file":"SKILL.md","line_end":33,"line_start":33},{"file":"SKILL.md","line_end":34,"line_start":34},{"file":"SKILL.md","line_end":35,"line_start":35},{"file":"SKILL.md","line_end":36,"line_start":36},{"file":"SKILL.md","line_end":37,"line_start":37},{"file":"SKILL.md","line_end":43,"line_start":43},{"file":"SKILL.md","line_end":47,"line_start":47},{"file":"SKILL.md","line_end":51,"line_start":51},{"file":"SKILL.md","line_end":53,"line_start":53},{"file":"SKILL.md","line_end":55,"line_start":55},{"file":"SKILL.md","line_end":59,"line_start":59},{"file":"SKILL.md","line_end":63,"line_start":63},{"file":"SKILL.md","line_end":64,"line_start":64},{"file":"SKILL.md","line_end":65,"line_start":65},{"file":"SKILL.md","line_end":66,"line_start":66},{"file":"SKILL.md","line_end":67,"line_start":67},{"file":"SKILL.md","line_end":74,"line_start":74},{"file":"SKILL.md","line_end":88,"line_start":88},{"file":"SKILL.md","line_end":96,"line_start":96},{"file":"SKILL.md","line_end":104,"line_start":104},{"file":"SKILL.md","line_end":106,"line_start":106},{"file":"SKILL.md","line_end":110,"line_start":110},{"file":"SKILL.md","line_end":115,"line_start":115},{"file":"SKILL.md","line_end":116,"line_start":116},{"file":"SKILL.md","line_end":124,"line_start":124},{"file":"SKILL.md","line_end":126,"line_start":126},{"file":"SKILL.md","line_end":128,"line_start":128},{"file":"SKILL.md","line_end":130,"line_start":130},{"file":"SKILL.md","line_end":132,"line_start":132},{"file":"SKILL.md","line_end":138,"line_start":138},{"file":"SKILL.md","line_end":139,"line_start":139},{"file":"SKILL.md","line_end":140,"line_start":140},{"file":"SKILL.md","line_end":141,"line_start":141},{"file":"SKILL.md","line_end":142,"line_start":142}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":7,"total_lines":1252,"audit_model":"codex","audited_at":"2026-09-11T12:31:14.381+00:00","created_at":"2026-09-11T13:32:58.857356+00:00","static_findings":[{"id":"blocker:references/mdr-status-codes.md:53:system-reconnaissance","file":"references/mdr-status-codes.md","pattern":"System reconnaissance","snippet":"| `AUTH_002` | 401 | Invalid / unrecognized API key. |","category":"blocker","line_end":53,"severity":"low","line_start":53},{"id":"blocker:references/mdr-status-codes.md:55:system-reconnaissance","file":"references/mdr-status-codes.md","pattern":"System reconnaissance","snippet":"| `AUTH_005` | 403 | Account valid + setup complete but pending final activation by Sent. |","category":"blocker","line_end":55,"severity":"low","line_start":55},{"id":"blocker:references/mdr-status-codes.md:70:system-reconnaissance","file":"references/mdr-status-codes.md","pattern":"System reconnaissance","snippet":"| `VALIDATION_006` | 400 | Invalid enum (case-sensitive). |","category":"blocker","line_end":70,"severity":"low","line_start":70},{"id":"blocker:references/mdr-status-codes.md:191:system-reconnaissance","file":"references/mdr-status-codes.md","pattern":"System reconnaissance","snippet":"| `131026` | Message undeliverable | Recipient not on WhatsApp / number invalid / blocked sender. |","category":"blocker","line_end":191,"severity":"low","line_start":191},{"id":"blocker:references/mdr-status-codes.md:205:system-reconnaissance","file":"references/mdr-status-codes.md","pattern":"System reconnaissance","snippet":"- Invalid / landline / unknown subscriber","category":"blocker","line_end":205,"severity":"low","line_start":205},{"id":"blocker:references/performance-diagnosis-playbook.md:46:system-reconnaissance","file":"references/performance-diagnosis-playbook.md","pattern":"System reconnaissance","snippet":"| `VALIDATION_006` | Invalid enum (case-sensitive) | Caller bug — enums are case-sensitive. |","category":"blocker","line_end":46,"severity":"low","line_start":46},{"id":"external_commands:scripts/analyze_mdr_funnel.py:5:ruby-shell-backtick-execution","file":"scripts/analyze_mdr_funnel.py","pattern":"Ruby/shell backtick execution","snippet":"only ``status=DELIVERED`` contributes one observed DELIVERED status; it does not","category":"external_commands","line_end":5,"severity":"medium","line_start":5},{"id":"external_commands:scripts/analyze_mdr_funnel.py:6:ruby-shell-backtick-execution","file":"scripts/analyze_mdr_funnel.py","pattern":"Ruby/shell backtick execution","snippet":"implicitly contribute QUEUED, ROUTED, or SENT transitions. Full ``statuses``","category":"external_commands","line_end":6,"severity":"medium","line_start":6},{"id":"blocker:scripts/analyze_mdr_funnel.py:48:system-reconnaissance","file":"scripts/analyze_mdr_funnel.py","pattern":"System reconnaissance","snippet":"\"\"\"Raised for missing or structurally invalid input. Maps to exit code 2.\"\"\"","category":"blocker","line_end":48,"severity":"low","line_start":48},{"id":"blocker:scripts/analyze_mdr_funnel.py:98:system-reconnaissance","file":"scripts/analyze_mdr_funnel.py","pattern":"System reconnaissance","snippet":"raise InputError(f\"invalid JSON in {path}: {exc}\") from exc","category":"blocker","line_end":98,"severity":"low","line_start":98},{"id":"blocker:scripts/analyze_mdr_funnel.py:109:system-reconnaissance","file":"scripts/analyze_mdr_funnel.py","pattern":"System reconnaissance","snippet":"raise InputError(f\"invalid CSV in {path}: {exc}\") from exc","category":"blocker","line_end":109,"severity":"low","line_start":109},{"id":"external_commands:SKILL.md:9:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Sent exposes its own normalized error codes (AUTH_*, VALIDATION_*, RESOURCE_*, BUSINESS_*, CONFLIC","category":"external_commands","line_end":9,"severity":"medium","line_start":9},{"id":"external_commands:SKILL.md:18:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Sent’s v3 send endpoint accepts a template-based request and returns per-recipient `message_id` valu","category":"external_commands","line_end":18,"severity":"medium","line_start":18},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Send response | `POST /v3/messages` | Identify request ID, accepted recipients, channel fan-out, a","category":"external_commands","line_end":32,"severity":"medium","line_start":32},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Current status | `GET /v3/messages/{id}` | Confirm the latest known lifecycle status and any error","category":"external_commands","line_end":33,"severity":"medium","line_start":33},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Activity timeline | `GET /v3/messages/{id}/activities` | Reconstruct acceptance, routing, sending,","category":"external_commands","line_end":34,"severity":"medium","line_start":34},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Webhook configuration | `GET /v3/webhooks`, `GET /v3/webhooks/event-types` | Confirm whether the c","category":"external_commands","line_end":35,"severity":"medium","line_start":35},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Webhook event history | `GET /v3/webhooks/{id}/events` | Compare delivered events against API stat","category":"external_commands","line_end":36,"severity":"medium","line_start":36},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Webhook connectivity | `POST /v3/webhooks/{id}/test` | Verify endpoint reachability before blaming","category":"external_commands","line_end":37,"severity":"medium","line_start":37},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Restate the user’s exact question as a measurable comparison. “WhatsApp is bad” becomes “Did WhatsAp","category":"external_commands","line_end":43,"severity":"medium","line_start":43},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Example.** If a user says “RCS fallback stopped working,” define the cohort as sends that omitted ","category":"external_commands","line_end":47,"severity":"medium","line_start":47},{"id":"external_commands:SKILL.md:51:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Use Sent `message_id` as the primary unit. A v3 send can create separate messages for each recipient","category":"external_commands","line_end":51,"severity":"medium","line_start":51},{"id":"external_commands:SKILL.md:53:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Distinguish an activity history from a latest-status snapshot. A history can prove the transitions i","category":"external_commands","line_end":53,"severity":"medium","line_start":53},{"id":"external_commands:SKILL.md:55:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Do not use provider IDs such as WhatsApp `wamid`, SMS carrier IDs, or RCS message IDs as the primary","category":"external_commands","line_end":55,"severity":"medium","line_start":55},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Use Sent’s documented delivery lifecycle as the first-pass funnel: `QUEUED`, `ROUTED`, `SENT`, and `","category":"external_commands","line_end":59,"severity":"medium","line_start":59},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `QUEUED` | Sent accepted the request for processing. | Is the backlog growing or did the request n","category":"external_commands","line_end":63,"severity":"medium","line_start":63},{"id":"external_commands:SKILL.md:64:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `ROUTED` | Sent selected a channel/provider path. | Did routing choose the expected channel or fal","category":"external_commands","line_end":64,"severity":"medium","line_start":64},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `SENT` | The message left Sent/provider processing toward the destination network. | Are provider ","category":"external_commands","line_end":65,"severity":"medium","line_start":65},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `DELIVERED` | Delivery was confirmed where supported. | Did the destination network confirm receip","category":"external_commands","line_end":66,"severity":"medium","line_start":66},{"id":"external_commands:SKILL.md:67:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `READ` | WhatsApp/RCS engagement receipt was observed where available. | Did users open the messag","category":"external_commands","line_end":67,"severity":"medium","line_start":67},{"id":"external_commands:SKILL.md:74:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Example.** If Sent status shows `DELIVERED` but the customer database shows “no delivery callbacks","category":"external_commands","line_end":74,"severity":"medium","line_start":74},{"id":"external_commands:SKILL.md:88:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Report raw counts and rates together. A 40% failure rate over 15 messages is a different decision th","category":"external_commands","line_end":88,"severity":"medium","line_start":88},{"id":"external_commands:SKILL.md:96:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Example.** “The largest leak is after `ROUTED` for SMS traffic on profile `support-us`, starting a","category":"external_commands","line_end":96,"severity":"medium","line_start":96},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Do not treat `READ` as a universal stage. Sent documents read receipts for WhatsApp and RCS; SMS gen","category":"external_commands","line_end":104,"severity":"medium","line_start":104},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Do not mistake broadcast for fallback. Omitted `channel` or `[\"sent\"]` enables automatic routing; on","category":"external_commands","line_end":106,"severity":"medium","line_start":106},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] The analysis uses Sent `message_id` values as the primary unit.","category":"external_commands","line_end":110,"severity":"medium","line_start":110},{"id":"external_commands:SKILL.md:115:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] SMS delivery analysis stops at `DELIVERED`; WhatsApp/RCS `READ` is labeled engagement.","category":"external_commands","line_end":115,"severity":"medium","line_start":115},{"id":"external_commands:SKILL.md:116:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] Global and channel × direction totals reconcile, including malformed and explicit `unknown` bu","category":"external_commands","line_end":116,"severity":"medium","line_start":116},{"id":"external_commands:SKILL.md:124:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Use `sms-10dlc-registration` when the leak points to US A2P SMS compliance, brand registration, camp","category":"external_commands","line_end":124,"severity":"medium","line_start":124},{"id":"external_commands:SKILL.md:126:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Use `rcs-agent-onboarding` when the symptom points to RCS agent approval, launch readiness, capabili","category":"external_commands","line_end":126,"severity":"medium","line_start":126},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Use `sender-profile-architect` when the issue is tenant/profile isolation, webhook routing, credenti","category":"external_commands","line_end":128,"severity":"medium","line_start":128},{"id":"external_commands:SKILL.md:130:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Use `waba-template-author` or `template-builder-ui` when the root cause is WhatsApp template categor","category":"external_commands","line_end":130,"severity":"medium","line_start":130},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Use the `sent` skill for shared Sent terminology and routing.","category":"external_commands","line_end":132,"severity":"medium","line_start":132},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `references/mdr-status-codes.md` | Lookup table | Normalize observed SMS, WhatsApp, and RCS provid","category":"external_commands","line_end":138,"severity":"medium","line_start":138},{"id":"external_commands:SKILL.md:139:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `references/performance-diagnosis-playbook.md` | Worked examples | Decision tree for which signal ","category":"external_commands","line_end":139,"severity":"medium","line_start":139},{"id":"external_commands:SKILL.md:140:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `scripts/analyze_mdr_funnel.py` | Validation script | Reads an MDR export (CSV or JSON), groups ch","category":"external_commands","line_end":140,"severity":"medium","line_start":140},{"id":"external_commands:SKILL.md:141:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `scripts/fixtures/good.json` | Fixture | Synthetic healthy-funnel MDR export. |","category":"external_commands","line_end":141,"severity":"medium","line_start":141},{"id":"external_commands:SKILL.md:142:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `scripts/fixtures/bad.json` | Fixture | Synthetic MDR export with deliberate >50% SENT→DELIVERED d","category":"external_commands","line_end":142,"severity":"medium","line_start":142},{"id":"blocker:SKILL.md:96:at-command-scheduling","file":"SKILL.md","pattern":"at command scheduling","snippet":"**Example.** “The largest leak is after `ROUTED` for SMS traffic on profile `support-us`, starting a","category":"blocker","line_end":96,"severity":"medium","line_start":96},{"id":"blocker:SKILL.md:3:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"description: Analyzes Sent message delivery, webhook, and activity data to explain funnel drop-offs,","category":"blocker","line_end":3,"severity":"low","line_start":3},{"id":"blocker:SKILL.md:43:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"Restate the user’s exact question as a measurable comparison. “WhatsApp is bad” becomes “Did WhatsAp","category":"blocker","line_end":43,"severity":"low","line_start":43},{"id":"blocker:SKILL.md:63:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"| `QUEUED` | Sent accepted the request for processing. | Is the backlog growing or did the request n","category":"blocker","line_end":63,"severity":"low","line_start":63},{"id":"blocker:SKILL.md:64:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"| `ROUTED` | Sent selected a channel/provider path. | Did routing choose the expected channel or fal","category":"blocker","line_end":64,"severity":"low","line_start":64},{"id":"blocker:SKILL.md:66:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"| `DELIVERED` | Delivery was confirmed where supported. | Did the destination network confirm receip","category":"blocker","line_end":66,"severity":"low","line_start":66},{"id":"blocker:SKILL.md:67:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"| `READ` | WhatsApp/RCS engagement receipt was observed where available. | Did users open the messag","category":"blocker","line_end":67,"severity":"low","line_start":67},{"id":"blocker:SKILL.md:94:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"End with one primary diagnosis, one confidence level, and the next verification step. Avoid long lis","category":"blocker","line_end":94,"severity":"low","line_start":94},{"id":"blocker:SKILL.md:98:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"## Common rationalizations to avoid","category":"blocker","line_end":100,"severity":"low","line_start":98}],"finding_verdicts":[{"id":"blocker:references/mdr-status-codes.md:53:system-reconnaissance","reason":"This line documents the AUTH_002 response for an invalid API key; it does not inspect the host system or discover credentials.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/mdr-status-codes.md:55:system-reconnaissance","reason":"This line is a status-code description for an account awaiting activation, not a system reconnaissance instruction.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/mdr-status-codes.md:70:system-reconnaissance","reason":"This line documents case-sensitive enum validation and contains no host, account, or network discovery behavior.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/mdr-status-codes.md:191:system-reconnaissance","reason":"This is a lookup-table explanation of a WhatsApp delivery error, not an instruction to probe recipients or systems.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/mdr-status-codes.md:205:system-reconnaissance","reason":"The words invalid and unknown describe an SMS carrier rejection category; no reconnaissance operation is present.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/performance-diagnosis-playbook.md:46:system-reconnaissance","reason":"This row maps a documented validation code to a caller enum error and does not gather system information.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/analyze_mdr_funnel.py:5:ruby-shell-backtick-execution","reason":"The double backticks are reStructuredText docstring markup around status=DELIVERED, not Python, Ruby, or shell execution syntax.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/analyze_mdr_funnel.py:6:ruby-shell-backtick-execution","reason":"The double backticks are documentation markup around statuses inside a Python docstring and cannot execute a command.","verdict":"false_positive","confidence":1},{"id":"blocker:scripts/analyze_mdr_funnel.py:48:system-reconnaissance","reason":"This is the InputError class docstring explaining validation failures and exit code 2; it performs no reconnaissance.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/analyze_mdr_funnel.py:98:system-reconnaissance","reason":"This statement converts a JSON parsing exception into a local input error and does not inspect system state.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/analyze_mdr_funnel.py:109:system-reconnaissance","reason":"This statement reports a CSV parsing or file error for the requested input path and performs no system discovery.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:9:ruby-shell-backtick-execution","reason":"The backticks format the description field as inline Markdown code within a comment; they do not invoke a shell.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:18:ruby-shell-backtick-execution","reason":"The backticks format an API field and HTTP paths as inline Markdown documentation, with no command execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","reason":"The backticks mark a documented POST endpoint and message_id field in a Markdown table; no shell syntax is evaluated.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","reason":"The backticks mark a documented GET endpoint in a Markdown table and do not execute an external command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","reason":"The backticks mark a documented activity endpoint in prose; they are Markdown delimiters, not shell operators.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","reason":"The backticks format two webhook API paths in documentation and do not cause the endpoints or commands to run.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","reason":"The backticks format a webhook-history API path in documentation; no executable shell context exists.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","reason":"The backticks format a webhook test endpoint in a table and are not used for command substitution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","reason":"The backticks format the DELIVERED status in an analytical example and do not enclose an executable command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","reason":"The backticks format request field names and values in a cohort example; they have no execution semantics in Markdown.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:51:ruby-shell-backtick-execution","reason":"The backticks identify message_id as an inline code term and do not invoke an external process.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:53:ruby-shell-backtick-execution","reason":"The backticks format status names and N/A in explanatory prose; they are not executable constructs.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:55:ruby-shell-backtick-execution","reason":"The backticks format the provider identifier wamid in documentation and cannot execute a shell command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","reason":"The backticks label lifecycle statuses in Markdown prose and are unrelated to process execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","reason":"The backticks format the QUEUED status in a Markdown table and do not execute a command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:64:ruby-shell-backtick-execution","reason":"The backticks format the ROUTED status in a Markdown table and do not execute a command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","reason":"The backticks format the SENT status in a Markdown table and do not execute a command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","reason":"The backticks format the DELIVERED status in a Markdown table and do not execute a command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:67:ruby-shell-backtick-execution","reason":"The backticks format the READ status in a Markdown table and do not execute a command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:74:ruby-shell-backtick-execution","reason":"The backticks format the DELIVERED status and an API path in a troubleshooting example; no command is run.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:88:ruby-shell-backtick-execution","reason":"This analytical guidance contains no shell command; the scanner matched ordinary Markdown formatting elsewhere on the line.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:96:ruby-shell-backtick-execution","reason":"The backticks format a lifecycle status and profile name in a sample diagnosis, not an executable command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","reason":"The backticks label the READ status in channel-specific guidance and have only Markdown formatting meaning.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","reason":"The backticks format request fields and values in routing guidance; no external process is invoked.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","reason":"The backticks format message_id in a Markdown checklist item and do not represent command substitution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:115:ruby-shell-backtick-execution","reason":"The backticks format DELIVERED and READ status labels in a checklist and are not executable.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:116:ruby-shell-backtick-execution","reason":"The backticks format the unknown bucket name in a data-reconciliation checklist and do not invoke a command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:124:ruby-shell-backtick-execution","reason":"The backticks identify a related skill by name in documentation and have no shell execution context.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:126:ruby-shell-backtick-execution","reason":"The backticks identify a related RCS skill in documentation and have no shell execution context.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","reason":"The backticks identify a related sender-profile skill in documentation and do not execute it.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:130:ruby-shell-backtick-execution","reason":"The backticks identify related template skills in documentation and are only inline-code formatting.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","reason":"The backticks identify the related sent skill in prose and do not invoke any external command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","reason":"The backticks format a bundled reference path in a Markdown table and do not execute the file.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:139:ruby-shell-backtick-execution","reason":"The backticks format a bundled playbook path in a Markdown table and do not execute the file.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:140:ruby-shell-backtick-execution","reason":"The backticks present file paths, options, and an explicit Python invocation as documentation; Markdown does not execute them automatically.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:141:ruby-shell-backtick-execution","reason":"The backticks format the path to a synthetic fixture in a Markdown table and do not execute it.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:142:ruby-shell-backtick-execution","reason":"The backticks format the path to a synthetic fixture in a Markdown table and do not execute it.","verdict":"false_positive","confidence":1},{"id":"blocker:SKILL.md:96:at-command-scheduling","reason":"The phrase starting at 14:10 UTC describes an incident timestamp; it is not the Unix at scheduler or a scheduling instruction.","verdict":"false_positive","confidence":1},{"id":"blocker:SKILL.md:3:system-reconnaissance","reason":"The skill metadata describes analysis of user-provided messaging data and does not request host or network reconnaissance.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:43:system-reconnaissance","reason":"This line asks the analyst to define a measurable messaging cohort; it does not probe system configuration or services.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:63:system-reconnaissance","reason":"The question about a message backlog is domain-specific delivery diagnosis, not host process or service enumeration.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:64:system-reconnaissance","reason":"The routing question concerns a messaging channel selected from supplied evidence and does not discover network routes.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:66:system-reconnaissance","reason":"The question explains the DELIVERED lifecycle state and does not inspect devices or destination networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:67:system-reconnaissance","reason":"The question interprets an observed READ receipt and contains no system reconnaissance instruction.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:94:system-reconnaissance","reason":"This line defines the structure of an evidence-based diagnosis and does not request discovery of system information.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:98:system-reconnaissance","reason":"This is a section heading introducing analytical mistakes to avoid and contains no reconnaissance behavior.","verdict":"false_positive","confidence":0.99}],"semantic_findings":[],"subject_marketplace_commit_sha":"403a72913d563cb23b8c54ebfae13b3ab6ebdb34","subject_content_hash":"c50f9395374a5d10d78da97f8215f97221f99d0d366eb37ce523e73cfa5e6585","subject_tree_hash":"884961cb890fe9a813ac5889b1cd60ab7249aee2c8d328c6677cc134a93224db","subject_plugin_path":"skills/sentdm/messaging-performance-analyzer","audit_payload_hash":"c1ef7afe3214f2d9895401eb51bf3bf9","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"403a72913d563cb23b8c54ebfae13b3ab6ebdb34","contentHash":"c50f9395374a5d10d78da97f8215f97221f99d0d366eb37ce523e73cfa5e6585","treeHash":"884961cb890fe9a813ac5889b1cd60ab7249aee2c8d328c6677cc134a93224db","pluginPath":"skills/sentdm/messaging-performance-analyzer","auditPayloadHash":"c1ef7afe3214f2d9895401eb51bf3bf9"},"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/sentdm-messaging-performance-analyzer/audits/1/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}}