{"data":{"skill":{"slug":"sliense-ysd-skill-marketplace-publisher","name":"skill-marketplace-publisher","icon":"📦","repo":"https://github.com/Sliense-ysd/skill-marketplace-publisher-public/tree/main/skills/skill-marketplace-publisher/","status":"approved","author":"Sliense-ysd","authorVersion":null,"skillstoreRevision":null},"audit":{"id":"1eda95c6-7f58-4a1d-88a7-58e52306e5ed","skill_id":"26812a99-caaf-46e8-bedb-999f97a08553","version":3,"content_hash":"46d6f2c60dedba7184073d003ada867f","risk_level":"high","is_blocked":false,"safe_to_publish":false,"analysis_status":"ok","agent_auto_install_policy":"confirmation_required","manual_install_policy":"allowed","summary":"Most secret-pattern and Markdown static hits are false positives from scanner signatures or formatting. Real risks remain in outbound marketplace submissions, public GitHub publishing commands, relative helper script execution, and audit output that can reveal matched secret lines.","remediation":[{"issue":"Secret-bearing audit output","severity":"high","suggestion":"Redact matched values before storing or printing findings. Show kind, file, line, and a masked value or hash instead."},{"issue":"Unbundled relative helper scripts","severity":"high","suggestion":"Replace parent-directory helper paths with bundled scripts, installed commands, or preflight checks that resolve trusted locations."},{"issue":"Public repository publishing commands","severity":"medium","suggestion":"Add a dry run and explicit confirmation before copying files, staging changes, or pushing a public repository."},{"issue":"Outbound marketplace submissions","severity":"low","suggestion":"Document the fields sent to each endpoint and require confirmation before posting to Skillstore or SkillMap."}],"risk_factor_evidence":[{"factor":"env_access","evidence":[{"file":"scripts/public_skill_audit.py","line_end":59,"line_start":59},{"file":"scripts/public_skill_audit.py","line_end":99,"line_start":99},{"file":"scripts/public_skill_audit.py","line_end":48,"line_start":48},{"file":"scripts/public_skill_audit.py","line_end":52,"line_start":52}]},{"factor":"network","evidence":[{"file":"scripts/submit_marketplace.py","line_end":10,"line_start":10},{"file":"scripts/submit_marketplace.py","line_end":18,"line_start":18},{"file":"scripts/submit_marketplace.py","line_end":28,"line_start":28},{"file":"scripts/submit_marketplace.py","line_end":39,"line_start":39},{"file":"scripts/submit_marketplace.py","line_end":52,"line_start":52},{"file":"scripts/submit_marketplace.py","line_end":75,"line_start":75},{"file":"SKILL.md","line_end":111,"line_start":111},{"file":"SKILL.md","line_end":120,"line_start":120},{"file":"SKILL.md","line_end":128,"line_start":128},{"file":"SKILL.md","line_end":144,"line_start":144}]},{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":15,"line_start":15},{"file":"SKILL.md","line_end":16,"line_start":16},{"file":"SKILL.md","line_end":17,"line_start":17},{"file":"SKILL.md","line_end":26,"line_start":26},{"file":"SKILL.md","line_end":30,"line_start":30},{"file":"SKILL.md","line_end":31,"line_start":31},{"file":"SKILL.md","line_end":32,"line_start":32},{"file":"SKILL.md","line_end":42,"line_start":40},{"file":"SKILL.md","line_end":46,"line_start":42},{"file":"SKILL.md","line_end":47,"line_start":46},{"file":"SKILL.md","line_end":48,"line_start":47},{"file":"SKILL.md","line_end":56,"line_start":48},{"file":"SKILL.md","line_end":58,"line_start":56},{"file":"SKILL.md","line_end":61,"line_start":58},{"file":"SKILL.md","line_end":65,"line_start":61},{"file":"SKILL.md","line_end":65,"line_start":65},{"file":"SKILL.md","line_end":71,"line_start":71},{"file":"SKILL.md","line_end":74,"line_start":73},{"file":"SKILL.md","line_end":74,"line_start":74},{"file":"SKILL.md","line_end":80,"line_start":78},{"file":"SKILL.md","line_end":84,"line_start":80},{"file":"SKILL.md","line_end":97,"line_start":84},{"file":"SKILL.md","line_end":106,"line_start":97},{"file":"SKILL.md","line_end":110,"line_start":106},{"file":"SKILL.md","line_end":112,"line_start":110},{"file":"SKILL.md","line_end":118,"line_start":112},{"file":"SKILL.md","line_end":122,"line_start":118},{"file":"SKILL.md","line_end":126,"line_start":122},{"file":"SKILL.md","line_end":127,"line_start":126},{"file":"SKILL.md","line_end":128,"line_start":127},{"file":"SKILL.md","line_end":134,"line_start":128},{"file":"SKILL.md","line_end":142,"line_start":134},{"file":"SKILL.md","line_end":147,"line_start":142},{"file":"SKILL.md","line_end":149,"line_start":147},{"file":"SKILL.md","line_end":165,"line_start":149},{"file":"SKILL.md","line_end":168,"line_start":165},{"file":"SKILL.md","line_end":174,"line_start":168},{"file":"SKILL.md","line_end":178,"line_start":174},{"file":"SKILL.md","line_end":179,"line_start":178},{"file":"SKILL.md","line_end":180,"line_start":179},{"file":"SKILL.md","line_end":180,"line_start":180},{"file":"SKILL.md","line_end":193,"line_start":184},{"file":"SKILL.md","line_end":197,"line_start":193},{"file":"SKILL.md","line_end":198,"line_start":197},{"file":"SKILL.md","line_end":202,"line_start":198}]},{"factor":"filesystem","evidence":[{"file":"SKILL.md","line_end":59,"line_start":59},{"file":"SKILL.md","line_end":60,"line_start":60},{"file":"SKILL.md","line_end":79,"line_start":79}]}],"critical_findings":[{"title":"SSH private key file","locations":[{"file":"scripts/public_skill_audit.py","line_end":58,"line_start":58}],"confidence":1,"description":"(\"secret_hub\", re.compile(r\"(ai-shared/secrets|\\.secrets/|authorized_keys|id_rsa|id_ed25519)\")),","review_kind":"false_positive","source_category":"sensitive","source_severity":"critical","confidence_reasoning":"Force-confirmed sensitive/critical static finding; AI dismissal overridden."}],"high_findings":[{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":106,"line_start":97}],"confidence":0.9,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This command block copies files, creates commits, and pushes a public GitHub repository. If run on the wrong artifact, it can publish unintended content."},{"title":"Path traversal sequence","locations":[{"file":"SKILL.md","line_end":59,"line_start":59}],"confidence":0.87,"description":"python3 ../../skill-package/scripts/skill_package.py analyze /absolute/path/to/skill","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"The command executes packaging helpers through parent-directory paths outside the skill root. In a different install layout, that can execute unexpected local code."},{"title":"Path traversal sequence","locations":[{"file":"SKILL.md","line_end":60,"line_start":60}],"confidence":0.87,"description":"python3 ../../skill-package/scripts/skill_package.py build /absolute/path/to/skill --mode public","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"The command executes packaging helpers through parent-directory paths outside the skill root. In a different install layout, that can execute unexpected local code."},{"title":"Path traversal sequence","locations":[{"file":"SKILL.md","line_end":79,"line_start":79}],"confidence":0.83,"description":"python3 ../skill-creator/scripts/quick_validate.py /absolute/path/to/skill-marketplace-publisher","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"The command executes a validator through a parent-directory path outside the skill root. In a different install layout, that can execute unexpected local code."},{"title":"Secret Audit Output Can Expose Matched Values","locations":[{"file":"scripts/public_skill_audit.py","line_end":93,"line_start":86},{"file":"scripts/public_skill_audit.py","line_end":147,"line_start":143},{"file":"scripts/public_skill_audit.py","line_end":162,"line_start":159}],"confidence":0.91,"description":"The audit script stores matched line text and prints it in reports. When a real secret is detected, logs or JSON output can reveal the secret-bearing line.","review_kind":"security","source_category":"semantic","source_severity":"high","confidence_reasoning":"The code copies matching line text into Finding.text and emits findings through JSON and console output. The scanner targets secret patterns, so a true positive can leak the detected secret value."}],"medium_findings":[{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":42,"line_start":40}],"confidence":0.78,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This command block instructs the agent to run a local Python audit script against a user-supplied skill path. The command is intended, but it requires trusting the local script and path."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":61,"line_start":58}],"confidence":0.86,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This command block runs packaging helper scripts from relative paths outside the skill directory. The workflow is intended, but behavior depends on local checkout layout."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":80,"line_start":78}],"confidence":0.8,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This command block runs an adjacent validation script that is not included in the skill package. The command is expected, but it executes external local code."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":122,"line_start":118}],"confidence":0.86,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This command block runs the Skillstore submission script and sends repository details to an external endpoint. The behavior is expected but security relevant."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":147,"line_start":142}],"confidence":0.86,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This command block runs the SkillMap feedback submission script and can send repository details plus contact email externally. The behavior is expected but security relevant."}],"low_findings":[{"title":"Python HTTP libraries","locations":[{"file":"scripts/submit_marketplace.py","line_end":10,"line_start":10}],"confidence":0.82,"description":"import urllib.request","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The urllib request code supports outbound POST requests to marketplace endpoints. It is intentional, but it creates a real external data-sharing surface."},{"title":"Python HTTP libraries","locations":[{"file":"scripts/submit_marketplace.py","line_end":18,"line_start":18}],"confidence":0.82,"description":"request = urllib.request.Request(","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The urllib request code supports outbound POST requests to marketplace endpoints. It is intentional, but it creates a real external data-sharing surface."},{"title":"Python HTTP libraries","locations":[{"file":"scripts/submit_marketplace.py","line_end":28,"line_start":28}],"confidence":0.82,"description":"with urllib.request.urlopen(request, timeout=30) as response:","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The urllib request code supports outbound POST requests to marketplace endpoints. It is intentional, but it creates a real external data-sharing surface."},{"title":"Hardcoded URL","locations":[{"file":"scripts/submit_marketplace.py","line_end":39,"line_start":39}],"confidence":0.9,"description":"response = post_json(\"https://skillstore.io/api/submit\", payload)","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The script posts the repository URL and optional notes to the Skillstore endpoint. This is expected publishing behavior, but it transmits user-provided data externally."},{"title":"Hardcoded URL","locations":[{"file":"scripts/submit_marketplace.py","line_end":75,"line_start":75}],"confidence":0.9,"description":"response = post_json(\"https://skillmaps.net/v1/feedback\", payload)","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The script posts listing request content and optional email to the SkillMap feedback endpoint. This is expected, but it shares user-provided data with a third party."}],"dangerous_patterns":[{"title":"SSH private key file","locations":[{"file":"scripts/public_skill_audit.py","line_end":58,"line_start":58}],"confidence":1,"description":"(\"secret_hub\", re.compile(r\"(ai-shared/secrets|\\.secrets/|authorized_keys|id_rsa|id_ed25519)\")),","review_kind":"false_positive","source_category":"sensitive","source_severity":"critical","confidence_reasoning":"Force-confirmed sensitive/critical static finding; AI dismissal overridden."}],"files_scanned":5,"total_lines":574,"audit_model":"codex","audited_at":"2026-07-07T05:47:41.035+00:00","created_at":"2026-07-07T06:24:31.955446+00:00","static_findings":[{"id":"blocker:references/marketplaces.md:21:system-reconnaissance","file":"references/marketplaces.md","pattern":"System reconnaissance","snippet":"- official marketplace repo states submitted skills must contain a valid `SKILL.md`","category":"blocker","line_end":21,"severity":"low","line_start":21},{"id":"blocker:references/marketplaces.md:26:system-reconnaissance","file":"references/marketplaces.md","pattern":"System reconnaissance","snippet":"- valid `SKILL.md`","category":"blocker","line_end":26,"severity":"low","line_start":26},{"id":"env_access:scripts/public_skill_audit.py:59:dotenv-library","file":"scripts/public_skill_audit.py","pattern":"dotenv library","snippet":"(\"dotenv_secret_name\", re.compile(r\"\\b(API[_-]?KEY|ACCESS[_-]?TOKEN|SECRET[_-]?KEY|PASSWORD|PRIVATE[","category":"env_access","line_end":59,"severity":"low","line_start":59},{"id":"env_access:scripts/public_skill_audit.py:99:dotenv-library","file":"scripts/public_skill_audit.py","pattern":"dotenv library","snippet":"if kind == \"dotenv_secret_name\" and (is_placeholder(line) or is_pattern_definition(line)):","category":"env_access","line_end":99,"severity":"low","line_start":99},{"id":"env_access:scripts/public_skill_audit.py:48:generic-api-secret-keys","file":"scripts/public_skill_audit.py","pattern":"Generic API/secret keys","snippet":"(\"private_key\", re.compile(r\"BEGIN [A-Z ]*PRIVATE KEY\")),","category":"env_access","line_end":48,"severity":"high","line_start":48},{"id":"env_access:scripts/public_skill_audit.py:52:generic-api-secret-keys","file":"scripts/public_skill_audit.py","pattern":"Generic API/secret keys","snippet":"(\"google_api_key\", re.compile(r\"\\bAIza[0-9A-Za-z\\-_]{20,}\\b\")),","category":"env_access","line_end":52,"severity":"high","line_start":52},{"id":"sensitive:scripts/public_skill_audit.py:58:ssh-private-key-file","file":"scripts/public_skill_audit.py","pattern":"SSH private key file","snippet":"(\"secret_hub\", re.compile(r\"(ai-shared/secrets|\\.secrets/|authorized_keys|id_rsa|id_ed25519)\")),","category":"sensitive","line_end":58,"severity":"critical","line_start":58},{"id":"sensitive:scripts/public_skill_audit.py:58:ssh-host-auth-files","file":"scripts/public_skill_audit.py","pattern":"SSH host/auth files","snippet":"(\"secret_hub\", re.compile(r\"(ai-shared/secrets|\\.secrets/|authorized_keys|id_rsa|id_ed25519)\")),","category":"sensitive","line_end":58,"severity":"high","line_start":58},{"id":"sensitive:scripts/public_skill_audit.py:32:environment-file-access","file":"scripts/public_skill_audit.py","pattern":"Environment file access","snippet":"\".env\",","category":"sensitive","line_end":32,"severity":"high","line_start":32},{"id":"sensitive:scripts/public_skill_audit.py:48:crypto-seed-private-key-mention","file":"scripts/public_skill_audit.py","pattern":"Crypto seed/private key mention","snippet":"(\"private_key\", re.compile(r\"BEGIN [A-Z ]*PRIVATE KEY\")),","category":"sensitive","line_end":48,"severity":"high","line_start":48},{"id":"network:scripts/submit_marketplace.py:10:python-http-libraries","file":"scripts/submit_marketplace.py","pattern":"Python HTTP libraries","snippet":"import urllib.request","category":"network","line_end":10,"severity":"low","line_start":10},{"id":"network:scripts/submit_marketplace.py:18:python-http-libraries","file":"scripts/submit_marketplace.py","pattern":"Python HTTP libraries","snippet":"request = urllib.request.Request(","category":"network","line_end":18,"severity":"low","line_start":18},{"id":"network:scripts/submit_marketplace.py:28:python-http-libraries","file":"scripts/submit_marketplace.py","pattern":"Python HTTP libraries","snippet":"with urllib.request.urlopen(request, timeout=30) as response:","category":"network","line_end":28,"severity":"low","line_start":28},{"id":"network:scripts/submit_marketplace.py:39:hardcoded-url","file":"scripts/submit_marketplace.py","pattern":"Hardcoded URL","snippet":"response = post_json(\"https://skillstore.io/api/submit\", payload)","category":"network","line_end":39,"severity":"low","line_start":39},{"id":"network:scripts/submit_marketplace.py:52:hardcoded-url","file":"scripts/submit_marketplace.py","pattern":"Hardcoded URL","snippet":"print(f\"\\nStatus URL: https://skillstore.io/submissions/{submission_id}\")","category":"network","line_end":52,"severity":"low","line_start":52},{"id":"network:scripts/submit_marketplace.py:75:hardcoded-url","file":"scripts/submit_marketplace.py","pattern":"Hardcoded URL","snippet":"response = post_json(\"https://skillmaps.net/v1/feedback\", payload)","category":"network","line_end":75,"severity":"low","line_start":75},{"id":"blocker:scripts/submit_marketplace.py:50:system-reconnaissance","file":"scripts/submit_marketplace.py","pattern":"System reconnaissance","snippet":"submission_id = data.get(\"submission_id\")","category":"blocker","line_end":50,"severity":"low","line_start":50},{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `Skillstore` self-serve submission","category":"external_commands","line_end":15,"severity":"medium","line_start":15},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `SkillMap` listing request via its current public intake channels","category":"external_commands","line_end":16,"severity":"medium","line_start":16},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- any future marketplace that expects a public GitHub repo with a valid `SKILL.md`","category":"external_commands","line_end":17,"severity":"medium","line_start":17},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"4. whether the source skill is already public-safe or must be packaged in `public` mode first","category":"external_commands","line_end":26,"severity":"medium","line_start":26},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- target mode: `public`","category":"external_commands","line_end":30,"severity":"medium","line_start":30},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- source of truth stays in `ai-shared/skills/`","category":"external_commands","line_end":31,"severity":"medium","line_start":31},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- packaged output goes to `ai-shared/skill-packages/`","category":"external_commands","line_end":32,"severity":"medium","line_start":32},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":42,"severity":"medium","line_start":40},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":46,"severity":"medium","line_start":42},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- no `HIGH` findings: okay to continue","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":"- `HIGH` findings: stop and sanitize first","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":"- `MEDIUM` findings: review manually before publishing","category":"external_commands","line_end":56,"severity":"medium","line_start":48},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"If the skill is not obviously portable, package it in `public` mode:","category":"external_commands","line_end":58,"severity":"medium","line_start":56},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":61,"severity":"medium","line_start":58},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":65,"severity":"medium","line_start":61},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Default packaged output root is the shared `skill-packages/` directory configured by the local `skil","category":"external_commands","line_end":65,"severity":"medium","line_start":65},{"id":"external_commands:SKILL.md:71:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- a valid `SKILL.md` with frontmatter `name` and `description`","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":"- `agents/openai.yaml` when available","category":"external_commands","line_end":74,"severity":"medium","line_start":73},{"id":"external_commands:SKILL.md:74:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- a permissive repo-level license such as `MIT` or `Apache-2.0`","category":"external_commands","line_end":74,"severity":"medium","line_start":74},{"id":"external_commands:SKILL.md:78:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":80,"severity":"medium","line_start":78},{"id":"external_commands:SKILL.md:80:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":84,"severity":"medium","line_start":80},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `SKILL.md` loads cleanly","category":"external_commands","line_end":97,"severity":"medium","line_start":84},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":106,"severity":"medium","line_start":97},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":110,"severity":"medium","line_start":106},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```text","category":"external_commands","line_end":112,"severity":"medium","line_start":110},{"id":"external_commands:SKILL.md:112:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":118,"severity":"medium","line_start":112},{"id":"external_commands:SKILL.md:118:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":122,"severity":"medium","line_start":118},{"id":"external_commands:SKILL.md:122:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":126,"severity":"medium","line_start":122},{"id":"external_commands:SKILL.md:126:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- JSON response with `success`","category":"external_commands","line_end":127,"severity":"medium","line_start":126},{"id":"external_commands:SKILL.md:127:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- a `submission_id`","category":"external_commands","line_end":128,"severity":"medium","line_start":127},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- a status URL of the form `https://skillstore.io/submissions/<id>`","category":"external_commands","line_end":134,"severity":"medium","line_start":128},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"As of `2026-03-26`, SkillMap exposes public marketplace pages and public feedback/contact channels, ","category":"external_commands","line_end":142,"severity":"medium","line_start":134},{"id":"external_commands:SKILL.md:142:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":147,"severity":"medium","line_start":142},{"id":"external_commands:SKILL.md:147:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":149,"severity":"medium","line_start":147},{"id":"external_commands:SKILL.md:149:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"If needed, also use the contact email listed in `references/marketplaces.md`.","category":"external_commands","line_end":165,"severity":"medium","line_start":149},{"id":"external_commands:SKILL.md:165:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- If the skill depends on local-only files, prefer packaged `public` output.","category":"external_commands","line_end":168,"severity":"medium","line_start":165},{"id":"external_commands:SKILL.md:168:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- If a marketplace name cannot be verified with a public live submission path, mark it `unverified` ","category":"external_commands","line_end":174,"severity":"medium","line_start":168},{"id":"external_commands:SKILL.md:174:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/marketplaces.md`","category":"external_commands","line_end":178,"severity":"medium","line_start":174},{"id":"external_commands:SKILL.md:178:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `Skillstore`: verified live submission route","category":"external_commands","line_end":179,"severity":"medium","line_start":178},{"id":"external_commands:SKILL.md:179:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `SkillMap`: verified live marketplace plus verified public intake channels, but no confirmed self-","category":"external_commands","line_end":180,"severity":"medium","line_start":179},{"id":"external_commands:SKILL.md:180:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `CrowdHub`: unverified for this workflow as of `2026-03-26`","category":"external_commands","line_end":180,"severity":"medium","line_start":180},{"id":"external_commands:SKILL.md:184:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"### `scripts/public_skill_audit.py`","category":"external_commands","line_end":193,"severity":"medium","line_start":184},{"id":"external_commands:SKILL.md:193:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"### `scripts/submit_marketplace.py`","category":"external_commands","line_end":197,"severity":"medium","line_start":193},{"id":"external_commands:SKILL.md:197:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `skillstore` submission","category":"external_commands","line_end":198,"severity":"medium","line_start":197},{"id":"external_commands:SKILL.md:198:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `skillmap-feedback` listing request","category":"external_commands","line_end":202,"severity":"medium","line_start":198},{"id":"network:SKILL.md:111:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"https://github.com/<owner>/<repo>/tree/main/path/to/skill","category":"network","line_end":111,"severity":"low","line_start":111},{"id":"network:SKILL.md:120:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"--repo-url https://github.com/<owner>/<repo>/tree/main/path/to/skill \\","category":"network","line_end":120,"severity":"low","line_start":120},{"id":"network:SKILL.md:128:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- a status URL of the form `https://skillstore.io/submissions/<id>`","category":"network","line_end":128,"severity":"low","line_start":128},{"id":"network:SKILL.md:144:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"--repo-url https://github.com/<owner>/<repo>/tree/main/path/to/skill \\","category":"network","line_end":144,"severity":"low","line_start":144},{"id":"filesystem:SKILL.md:59:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"python3 ../../skill-package/scripts/skill_package.py analyze /absolute/path/to/skill","category":"filesystem","line_end":59,"severity":"high","line_start":59},{"id":"filesystem:SKILL.md:60:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"python3 ../../skill-package/scripts/skill_package.py build /absolute/path/to/skill --mode public","category":"filesystem","line_end":60,"severity":"high","line_start":60},{"id":"filesystem:SKILL.md:79:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"python3 ../skill-creator/scripts/quick_validate.py /absolute/path/to/skill-marketplace-publisher","category":"filesystem","line_end":79,"severity":"high","line_start":79},{"id":"blocker:SKILL.md:17:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- any future marketplace that expects a public GitHub repo with a valid `SKILL.md`","category":"blocker","line_end":17,"severity":"low","line_start":17},{"id":"blocker:SKILL.md:71:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- a valid `SKILL.md` with frontmatter `name` and `description`","category":"blocker","line_end":71,"severity":"low","line_start":71}],"finding_verdicts":[{"id":"blocker:references/marketplaces.md:21:system-reconnaissance","reason":"This line documents marketplace requirements, not host or system reconnaissance. It does not collect local environment details.","verdict":"false_positive","confidence":0.94},{"id":"blocker:references/marketplaces.md:26:system-reconnaissance","reason":"This line documents marketplace requirements, not host or system reconnaissance. It does not collect local environment details.","verdict":"false_positive","confidence":0.94},{"id":"env_access:scripts/public_skill_audit.py:59:dotenv-library","reason":"This is a scanner pattern definition or classifier branch used to detect secret-looking text. It does not read environment variables or load dotenv secrets.","verdict":"false_positive","confidence":0.95},{"id":"env_access:scripts/public_skill_audit.py:99:dotenv-library","reason":"This is a scanner pattern definition or classifier branch used to detect secret-looking text. It does not read environment variables or load dotenv secrets.","verdict":"false_positive","confidence":0.95},{"id":"env_access:scripts/public_skill_audit.py:48:generic-api-secret-keys","reason":"This is a scanner pattern definition or classifier branch used to detect secret-looking text. It does not read environment variables or load dotenv secrets.","verdict":"false_positive","confidence":0.95},{"id":"env_access:scripts/public_skill_audit.py:52:generic-api-secret-keys","reason":"This is a scanner pattern definition or classifier branch used to detect secret-looking text. It does not read environment variables or load dotenv secrets.","verdict":"false_positive","confidence":0.95},{"id":"sensitive:scripts/public_skill_audit.py:58:ssh-private-key-file","reason":"This is detection logic for public-safety auditing, not an embedded credential or private key. No actual secret value is present on the cited line.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:scripts/public_skill_audit.py:58:ssh-host-auth-files","reason":"This is detection logic for public-safety auditing, not an embedded credential or private key. No actual secret value is present on the cited line.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:scripts/public_skill_audit.py:32:environment-file-access","reason":"The .env entry is a file suffix included so the audit tool can inspect submitted skill trees. It does not load process environment values or embed a secret.","verdict":"false_positive","confidence":0.9},{"id":"sensitive:scripts/public_skill_audit.py:48:crypto-seed-private-key-mention","reason":"This is detection logic for public-safety auditing, not an embedded credential or private key. No actual secret value is present on the cited line.","verdict":"false_positive","confidence":0.96},{"id":"network:scripts/submit_marketplace.py:10:python-http-libraries","reason":"The urllib request code supports outbound POST requests to marketplace endpoints. It is intentional, but it creates a real external data-sharing surface.","verdict":"confirmed","severity":"low","confidence":0.82},{"id":"network:scripts/submit_marketplace.py:18:python-http-libraries","reason":"The urllib request code supports outbound POST requests to marketplace endpoints. It is intentional, but it creates a real external data-sharing surface.","verdict":"confirmed","severity":"low","confidence":0.82},{"id":"network:scripts/submit_marketplace.py:28:python-http-libraries","reason":"The urllib request code supports outbound POST requests to marketplace endpoints. It is intentional, but it creates a real external data-sharing surface.","verdict":"confirmed","severity":"low","confidence":0.82},{"id":"network:scripts/submit_marketplace.py:39:hardcoded-url","reason":"The script posts the repository URL and optional notes to the Skillstore endpoint. This is expected publishing behavior, but it transmits user-provided data externally.","verdict":"confirmed","severity":"low","confidence":0.9},{"id":"network:scripts/submit_marketplace.py:52:hardcoded-url","reason":"This line prints a status URL from a marketplace response. It does not initiate a network request or access sensitive data.","verdict":"false_positive","confidence":0.93},{"id":"network:scripts/submit_marketplace.py:75:hardcoded-url","reason":"The script posts listing request content and optional email to the SkillMap feedback endpoint. This is expected, but it shares user-provided data with a third party.","verdict":"confirmed","severity":"low","confidence":0.9},{"id":"blocker:scripts/submit_marketplace.py:50:system-reconnaissance","reason":"This line documents marketplace requirements, not host or system reconnaissance. It does not collect local environment details.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","reason":"This command block instructs the agent to run a local Python audit script against a user-supplied skill path. The command is intended, but it requires trusting the local script and path.","verdict":"confirmed","severity":"medium","confidence":0.78},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:48:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","reason":"This command block runs packaging helper scripts from relative paths outside the skill directory. The workflow is intended, but behavior depends on local checkout layout.","verdict":"confirmed","severity":"medium","confidence":0.86},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:71:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:73:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:74:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:78:ruby-shell-backtick-execution","reason":"This command block runs an adjacent validation script that is not included in the skill package. The command is expected, but it executes external local code.","verdict":"confirmed","severity":"medium","confidence":0.8},{"id":"external_commands:SKILL.md:80:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","reason":"This command block copies files, creates commits, and pushes a public GitHub repository. If run on the wrong artifact, it can publish unintended content.","verdict":"confirmed","severity":"high","confidence":0.9},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:112:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:118:ruby-shell-backtick-execution","reason":"This command block runs the Skillstore submission script and sends repository details to an external endpoint. The behavior is expected but security relevant.","verdict":"confirmed","severity":"medium","confidence":0.86},{"id":"external_commands:SKILL.md:122:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:126:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:127:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:142:ruby-shell-backtick-execution","reason":"This command block runs the SkillMap feedback submission script and can send repository details plus contact email externally. The behavior is expected but security relevant.","verdict":"confirmed","severity":"medium","confidence":0.86},{"id":"external_commands:SKILL.md:147:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:149:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:165:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:168:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:174:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:178:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:179:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:180:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:184:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:193:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:197:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:198:ruby-shell-backtick-execution","reason":"The cited text is Markdown formatting, a file name, a status label, or prose. It is not Ruby backtick execution or dynamic shell evaluation.","verdict":"false_positive","confidence":0.91},{"id":"network:SKILL.md:111:hardcoded-url","reason":"This is placeholder documentation for a repository or status URL. The URL itself is not code execution or hidden network activity.","verdict":"false_positive","confidence":0.89},{"id":"network:SKILL.md:120:hardcoded-url","reason":"This is placeholder documentation for a repository or status URL. The URL itself is not code execution or hidden network activity.","verdict":"false_positive","confidence":0.89},{"id":"network:SKILL.md:128:hardcoded-url","reason":"This is placeholder documentation for a repository or status URL. The URL itself is not code execution or hidden network activity.","verdict":"false_positive","confidence":0.89},{"id":"network:SKILL.md:144:hardcoded-url","reason":"This is placeholder documentation for a repository or status URL. The URL itself is not code execution or hidden network activity.","verdict":"false_positive","confidence":0.89},{"id":"filesystem:SKILL.md:59:path-traversal-sequence","reason":"The command executes packaging helpers through parent-directory paths outside the skill root. In a different install layout, that can execute unexpected local code.","verdict":"confirmed","severity":"high","confidence":0.87},{"id":"filesystem:SKILL.md:60:path-traversal-sequence","reason":"The command executes packaging helpers through parent-directory paths outside the skill root. In a different install layout, that can execute unexpected local code.","verdict":"confirmed","severity":"high","confidence":0.87},{"id":"filesystem:SKILL.md:79:path-traversal-sequence","reason":"The command executes a validator through a parent-directory path outside the skill root. In a different install layout, that can execute unexpected local code.","verdict":"confirmed","severity":"high","confidence":0.83},{"id":"blocker:SKILL.md:17:system-reconnaissance","reason":"This line documents marketplace requirements, not host or system reconnaissance. It does not collect local environment details.","verdict":"false_positive","confidence":0.94},{"id":"blocker:SKILL.md:71:system-reconnaissance","reason":"This line documents marketplace requirements, not host or system reconnaissance. It does not collect local environment details.","verdict":"false_positive","confidence":0.94}],"semantic_findings":[{"title":"Secret Audit Output Can Expose Matched Values","severity":"high","locations":[{"file":"scripts/public_skill_audit.py","line_end":93,"line_start":86},{"file":"scripts/public_skill_audit.py","line_end":147,"line_start":143},{"file":"scripts/public_skill_audit.py","line_end":162,"line_start":159}],"confidence":0.91,"description":"The audit script stores matched line text and prints it in reports. When a real secret is detected, logs or JSON output can reveal the secret-bearing line.","confidence_reasoning":"The code copies matching line text into Finding.text and emits findings through JSON and console output. The scanner targets secret patterns, so a true positive can leak the detected secret value."}],"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":"high","confirmedFindingCount":1,"capabilityReviewCount":14,"needsReviewCount":0,"falsePositiveCount":1,"agentAutoInstallPolicy":"confirmation_required","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":false}}