{"data":{"skill":{"slug":"k-dense-ai-market-research-reports","name":"market-research-reports","icon":"📦","repo":"https://github.com/K-Dense-AI/claude-scientific-skills/tree/main/scientific-skills/market-research-reports","status":"approved","author":"K-Dense-AI","authorVersion":null,"skillstoreRevision":null},"audit":{"id":"f32b746e-7d74-4cc0-b7ec-d3e47dc716ce","skill_id":"7ff85fcb-c8ba-49bb-8701-130f91e1e5ac","version":5,"content_hash":"47a07007d078aa54ac70d0a38348421d","risk_level":"medium","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":null,"manual_install_policy":null,"summary":"Static analysis reported many critical and high patterns, but most are false positives from LaTeX syntax, Markdown examples, and market sizing terms. The confirmed concern is operational: the visual generation helper invokes local Python tools and writes to a user-supplied output directory, so publication should include a filesystem warning.","remediation":[],"risk_factor_evidence":[{"factor":"scripts","evidence":[{"file":"scripts/generate_market_visuals.py","line_end":20,"line_start":1}]},{"factor":"external_commands","evidence":[{"file":"scripts/generate_market_visuals.py","line_end":380,"line_start":375},{"file":"SKILL.md","line_end":85,"line_start":62}]},{"factor":"filesystem","evidence":[{"file":"scripts/generate_market_visuals.py","line_end":445,"line_start":410},{"file":"assets/market_report_template.tex","line_end":49,"line_start":37}]}],"critical_findings":[],"high_findings":[],"medium_findings":[{"title":"User-Controlled Output Directory Writes","verdict":"true_positive","locations":[{"file":"scripts/generate_market_visuals.py","line_end":445,"line_start":410},{"file":"scripts/generate_market_visuals.py","line_end":367,"line_start":363}],"confidence":0.72,"description":"The helper script accepts --output-dir, creates that directory, and writes generated images there. This is legitimate report generation behavior, but it can write outside the workspace if the user supplies an unsafe path.","confidence_reasoning":"The file write behavior is clear and tied to user-controlled path input. Confidence is not higher because the action is expected for this reporting skill and does not show malicious intent."},{"title":"Local External Tool Invocation","verdict":"true_positive","locations":[{"file":"scripts/generate_market_visuals.py","line_end":380,"line_start":344}],"confidence":0.68,"description":"The helper script calls local scientific-schematics and generate-image Python scripts with subprocess.run. The command uses an argument array and no shell, so command injection is unlikely, but it executes additional local tooling.","confidence_reasoning":"The subprocess call is confirmed, but the implementation avoids shell=True and uses fixed tool paths. The remaining risk is dependency behavior and filesystem side effects."}],"low_findings":[{"title":"Static External Command Alerts Are Mostly Documentation","verdict":"false_positive","locations":[{"file":"assets/FORMATTING_GUIDE.md","line_end":44,"line_start":39},{"file":"SKILL.md","line_end":85,"line_start":62}],"confidence":0.93,"description":"Many external command alerts point to Markdown code fences, inline LaTeX names, and example shell commands. These are documentation examples, not Ruby backtick execution.","confidence_reasoning":"Representative lines show Markdown or LaTeX examples. I did not find Ruby backtick execution in the reviewed context."},{"title":"Static SAM Alerts Are Market Terminology","verdict":"false_positive","locations":[{"file":"assets/market_report_template.tex","line_end":333,"line_start":322},{"file":"SKILL.md","line_end":50,"line_start":48}],"confidence":0.96,"description":"Critical sensitive-data alerts for SAM refer to Serviceable Addressable Market in the TAM/SAM/SOM framework. No evidence found for Windows SAM database access.","confidence_reasoning":"The cited text defines market-sizing terms and generated visual labels. No Windows credential store paths or access behavior were found."},{"title":"Static Path Traversal Alerts Are LaTeX Figure Paths","verdict":"false_positive","locations":[{"file":"assets/market_report_template.tex","line_end":49,"line_start":37},{"file":"SKILL.md","line_end":723,"line_start":712}],"confidence":0.89,"description":"The reported ../ sequences are hardcoded LaTeX figure references in templates. They are not used to read arbitrary user-supplied files.","confidence_reasoning":"The lines are template paths for figures and report assets. They are still worth noting because generated reports may include parent-directory image references."},{"title":"No Prompt Injection Evidence Found","verdict":"false_positive","locations":[{"file":"SKILL.md","line_end":8,"line_start":1}],"confidence":0.82,"description":"Searched the listed skill files for common prompt-injection phrases and claims of special authority. No evidence found.","confidence_reasoning":"The scan found no matching prompt-injection phrases in the reviewed files. Confidence is limited by semantic review scope, but no suspicious instruction block was observed."}],"dangerous_patterns":[{"title":"subprocess.run Executes Local Visual Generators","verdict":"needs_review","locations":[{"file":"scripts/generate_market_visuals.py","line_end":380,"line_start":344}],"confidence":0.7,"description":"The script launches local Python visual generation helpers. It uses a list of arguments and a timeout, which reduces injection risk but still executes external code.","confidence_reasoning":"The execution pattern is real and intentional. The command shape is constrained, but downstream helper scripts are outside this skill audit."},{"title":"User Path Controls Output Location","verdict":"needs_review","locations":[{"file":"scripts/generate_market_visuals.py","line_end":445,"line_start":410}],"confidence":0.74,"description":"The --output-dir option is converted directly to a Path and created. Users should keep outputs inside the project workspace.","confidence_reasoning":"The output path flow is direct and easy to verify. It is a controlled user feature rather than evidence of malicious path traversal."}],"files_scanned":9,"total_lines":6622,"audit_model":"codex","audited_at":"2026-06-30T06:24:12.594+00:00","created_at":"2026-06-30T06:56:19.538204+00:00","static_findings":[],"finding_verdicts":[],"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":"canonical install advisories are incomplete"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"medium","confirmedFindingCount":2,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":4,"agentAutoInstallPolicy":null,"manualInstallPolicy":null,"artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":false}}