{"data":{"skill":{"slug":"lllllllama-ai-research-reproduction","name":"ai-research-reproduction","icon":"📦","repo":"https://github.com/lllllllama/rigorpilot-skills/tree/main/skills/ai-research-reproduction/","status":"approved","author":"lllllllama","authorVersion":null,"skillstoreRevision":2},"audit":{"id":"42249a14-befa-46b0-b6c1-e1a0dcd0346c","skill_id":"d968a007-4a53-4313-a1bf-2893122b5ab8","version":5,"content_hash":"v3:656be3040aef5c047555a908cd5c695d22a4a548:2dd32f685ef0b2154ab960ba06548e675cbd4533fbf4499518f98d9bd2607bc3:ae2e707197dad62a5bce67ff854dfd1093d46586831bad4055e2ed523257cae0:736b696c6c732f6c6c6c6c6c6c6c616d612f61692d72657365617263682d726570726f64756374696f6e:0e6e362c1e05c842354d2126b7f91ca1","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 static findings are Markdown backticks, prose, safe temporary-file handling, or fixed argument-array subprocess calls. Confirmed risks include executing README-derived commands, loading files outside the skill directory, accessing a hidden home file, and dynamically importing external sibling code.","remediation":[{"issue":"A documented command extracted from an untrusted repository can execute with the agent process permissions.","severity":"high","suggestion":"Show the exact command and working directory, require immediate approval, and run it in a restricted container without secrets or host write access."},{"issue":"The skill directs agents to load policies outside its package and consult a hidden file in the user home directory.","severity":"high","suggestion":"Bundle required policies inside the skill, enforce skill-root path containment, and require explicit consent before reading user-specific files."},{"issue":"The orchestrator dynamically imports and executes a sibling lessons module without verifying its integrity.","severity":"high","suggestion":"Use a packaged dependency with a pinned integrity check, or remove dynamic loading and expose lesson recording through a trusted API."}],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"scripts/annotate_readme.py","line_end":119,"line_start":71},{"file":"scripts/annotate_readme.py","line_end":137,"line_start":119},{"file":"scripts/annotate_readme.py","line_end":143,"line_start":137},{"file":"scripts/annotate_readme.py","line_end":150,"line_start":143},{"file":"scripts/annotate_readme.py","line_end":150,"line_start":150},{"file":"scripts/annotate_readme.py","line_end":178,"line_start":178},{"file":"scripts/annotate_readme.py","line_end":196,"line_start":196},{"file":"scripts/annotate_readme.py","line_end":207,"line_start":207},{"file":"scripts/annotate_readme.py","line_end":216,"line_start":216},{"file":"scripts/annotate_readme.py","line_end":374,"line_start":374},{"file":"scripts/orchestrate_repro.py","line_end":84,"line_start":84},{"file":"scripts/orchestrate_repro.py","line_end":95,"line_start":95},{"file":"scripts/orchestrate_repro.py","line_end":357,"line_start":357},{"file":"scripts/orchestrate_repro.py","line_end":306,"line_start":306},{"file":"scripts/orchestrate_repro.py","line_end":556,"line_start":556},{"file":"scripts/orchestrate_repro.py","line_end":557,"line_start":557},{"file":"scripts/orchestrate_repro.py","line_end":613,"line_start":613},{"file":"scripts/orchestrate_repro.py","line_end":634,"line_start":634},{"file":"scripts/orchestrate_repro.py","line_end":635,"line_start":635},{"file":"scripts/orchestrate_repro.py","line_end":696,"line_start":696},{"file":"scripts/orchestrate_repro.py","line_end":701,"line_start":701},{"file":"SKILL.md","line_end":3,"line_start":3},{"file":"SKILL.md","line_end":12,"line_start":12},{"file":"SKILL.md","line_end":20,"line_start":20},{"file":"SKILL.md","line_end":21,"line_start":21},{"file":"SKILL.md","line_end":22,"line_start":22},{"file":"SKILL.md","line_end":50,"line_start":50},{"file":"SKILL.md","line_end":56,"line_start":56},{"file":"SKILL.md","line_end":59,"line_start":59},{"file":"SKILL.md","line_end":61,"line_start":61},{"file":"SKILL.md","line_end":63,"line_start":63},{"file":"SKILL.md","line_end":65,"line_start":65},{"file":"SKILL.md","line_end":86,"line_start":86},{"file":"SKILL.md","line_end":87,"line_start":87},{"file":"SKILL.md","line_end":89,"line_start":89},{"file":"SKILL.md","line_end":93,"line_start":93},{"file":"SKILL.md","line_end":104,"line_start":95},{"file":"SKILL.md","line_end":106,"line_start":104},{"file":"SKILL.md","line_end":106,"line_start":106},{"file":"SKILL.md","line_end":109,"line_start":108},{"file":"SKILL.md","line_end":110,"line_start":109},{"file":"SKILL.md","line_end":111,"line_start":110},{"file":"SKILL.md","line_end":112,"line_start":111},{"file":"SKILL.md","line_end":113,"line_start":112},{"file":"SKILL.md","line_end":114,"line_start":113},{"file":"SKILL.md","line_end":115,"line_start":114},{"file":"SKILL.md","line_end":120,"line_start":115},{"file":"SKILL.md","line_end":121,"line_start":120},{"file":"SKILL.md","line_end":122,"line_start":121},{"file":"SKILL.md","line_end":123,"line_start":122}]},{"factor":"filesystem","evidence":[{"file":"scripts/annotate_readme.py","line_end":104,"line_start":104},{"file":"scripts/orchestrate_repro.py","line_end":12,"line_start":12},{"file":"scripts/orchestrate_repro.py","line_end":90,"line_start":90},{"file":"SKILL.md","line_end":20,"line_start":20},{"file":"SKILL.md","line_end":21,"line_start":21},{"file":"SKILL.md","line_end":22,"line_start":22},{"file":"SKILL.md","line_end":121,"line_start":121},{"file":"SKILL.md","line_end":122,"line_start":122},{"file":"SKILL.md","line_end":123,"line_start":123},{"file":"SKILL.md","line_end":123,"line_start":123},{"file":"SKILL.md","line_end":123,"line_start":123}]}],"critical_findings":[],"high_findings":[{"title":"Python subprocess.run","locations":[{"file":"scripts/orchestrate_repro.py","line_end":357,"line_start":357}],"confidence":0.98,"description":"result = subprocess.run(","review_kind":"capability","source_category":"external_commands","source_severity":"high","confidence_reasoning":"This executes a command extracted from an untrusted target repository README. The opt-in flag limits surprise, but there is no allowlist, sandbox, or final command approval."},{"title":"Path traversal sequence","locations":[{"file":"SKILL.md","line_end":20,"line_start":20}],"confidence":0.96,"description":"`../../references/agent-operating-principles.md`, then load","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"The skill instructs the agent to load a path two directories above its package. This expands the trust boundary beyond marketplace-audited files."},{"title":"Path traversal sequence","locations":[{"file":"SKILL.md","line_end":21,"line_start":21}],"confidence":0.96,"description":"`../../references/research-rigor-principles.md` and","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"The required policy is resolved outside the skill directory. External content could alter behavior without changing this audited package."},{"title":"Path traversal sequence","locations":[{"file":"SKILL.md","line_end":22,"line_start":22}],"confidence":0.96,"description":"`../../references/deep-learning-experiment-principles.md` when scientific meaning, comparability, or","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"This directs the agent to read an out-of-package experiment policy. The referenced content is outside the report's scanned file set."},{"title":"Path traversal sequence","locations":[{"file":"SKILL.md","line_end":121,"line_start":121}],"confidence":0.96,"description":"- Load `../../references/research-rigor-principles.md` before making comparability, contribution, or","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"The instruction repeats an out-of-package policy read before research claims. The external file is not covered by this audit."},{"title":"Path traversal sequence","locations":[{"file":"SKILL.md","line_end":122,"line_start":122}],"confidence":0.96,"description":"- Load `../../references/deep-learning-experiment-principles.md` when dataset, split, metric, checkp","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"The agent is told to load a policy through parent-directory traversal. This creates an unaudited instruction dependency."},{"title":"Path traversal sequence","locations":[{"file":"SKILL.md","line_end":123,"line_start":123}],"confidence":0.97,"description":"- Consult `~/.rigorpilot/PERSONAL_RIGOR.md` if present, under `../../references/continuous-learning-","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"The line references both a home-directory file and a parent-relative external policy. These reads cross the packaged skill boundary."},{"title":"Hidden file in home directory","locations":[{"file":"SKILL.md","line_end":123,"line_start":123}],"confidence":0.98,"description":"- Consult `~/.rigorpilot/PERSONAL_RIGOR.md` if present, under `../../references/continuous-learning-","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"The skill explicitly instructs the agent to consult a hidden user-home file. Its contents may be private and are not marketplace audited."},{"title":"Hidden file access","locations":[{"file":"SKILL.md","line_end":123,"line_start":123}],"confidence":0.98,"description":"- Consult `~/.rigorpilot/PERSONAL_RIGOR.md` if present, under `../../references/continuous-learning-","review_kind":"capability","source_category":"filesystem","source_severity":"medium","confidence_reasoning":"The requested hidden-file read introduces user-specific, unaudited instructions into the agent context. Explicit consent and scope controls are absent."},{"title":"Unaudited Dynamic Module Execution","locations":[{"file":"scripts/orchestrate_repro.py","line_end":31,"line_start":23}],"confidence":0.97,"description":"The orchestrator resolves a sibling lessons_store.py outside the skill package and executes it through importlib without provenance or integrity verification.","review_kind":"security","source_category":"semantic","source_severity":"high","confidence_reasoning":"The code directly constructs an out-of-package path and calls exec_module. The external module is not included in the scanned file set."}],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":14,"total_lines":2038,"audit_model":"codex","audited_at":"2026-08-08T08:37:07.496+00:00","created_at":"2026-08-08T14:57:44.784996+00:00","static_findings":[{"id":"blocker:references/output-spec.md:44:system-reconnaissance","file":"references/output-spec.md","pattern":"System reconnaissance","snippet":"- avoid dumping noise from the shell history","category":"blocker","line_end":44,"severity":"low","line_start":44},{"id":"blocker:references/patch-policy.md:5:system-reconnaissance","file":"references/patch-policy.md","pattern":"System reconnaissance","snippet":"Avoid patching repository code unless reproduction is blocked and the change is both conservative an","category":"blocker","line_end":5,"severity":"low","line_start":5},{"id":"external_commands:scripts/annotate_readme.py:71:ruby-shell-backtick-execution","file":"scripts/annotate_readme.py","pattern":"Ruby/shell backtick execution","snippet":"if stripped.startswith(\"```\"):","category":"external_commands","line_end":119,"severity":"medium","line_start":71},{"id":"external_commands:scripts/annotate_readme.py:119:ruby-shell-backtick-execution","file":"scripts/annotate_readme.py","pattern":"Ruby/shell backtick execution","snippet":"lines = [f\"`{item.get('command', '')}`\" for item in matched[:limit]]","category":"external_commands","line_end":137,"severity":"medium","line_start":119},{"id":"external_commands:scripts/annotate_readme.py:137:ruby-shell-backtick-execution","file":"scripts/annotate_readme.py","pattern":"Ruby/shell backtick execution","snippet":"f\"`{name}={value}`\"","category":"external_commands","line_end":143,"severity":"medium","line_start":137},{"id":"external_commands:scripts/annotate_readme.py:143:ruby-shell-backtick-execution","file":"scripts/annotate_readme.py","pattern":"Ruby/shell backtick execution","snippet":"shown = [f\"`{best_metric['name']}={best_metric['value']}`\"]","category":"external_commands","line_end":150,"severity":"medium","line_start":143},{"id":"external_commands:scripts/annotate_readme.py:150:ruby-shell-backtick-execution","file":"scripts/annotate_readme.py","pattern":"Ruby/shell backtick execution","snippet":"lines: List[str] = [text(user_language, f\"Command: `{command}`\", f\"命令:`{command}`\")]","category":"external_commands","line_end":150,"severity":"medium","line_start":150},{"id":"external_commands:scripts/annotate_readme.py:178:ruby-shell-backtick-execution","file":"scripts/annotate_readme.py","pattern":"Ruby/shell backtick execution","snippet":"lines.append(text(user_language, f\"Error excerpt: `{excerpt}`\", f\"错误摘录:`{excerpt}`\"))","category":"external_commands","line_end":178,"severity":"medium","line_start":178},{"id":"external_commands:scripts/annotate_readme.py:196:ruby-shell-backtick-execution","file":"scripts/annotate_readme.py","pattern":"Ruby/shell backtick execution","snippet":"text(user_language, f\"Command sourced from linked doc `{source_file}`.\", f\"命令来自 README 链接的文档 `{sourc","category":"external_commands","line_end":196,"severity":"medium","line_start":196},{"id":"external_commands:scripts/annotate_readme.py:207:ruby-shell-backtick-execution","file":"scripts/annotate_readme.py","pattern":"Ruby/shell backtick execution","snippet":"text(user_language, f\"Command: `{command}`\", f\"命令:`{command}`\"),","category":"external_commands","line_end":207,"severity":"medium","line_start":207},{"id":"external_commands:scripts/annotate_readme.py:216:ruby-shell-backtick-execution","file":"scripts/annotate_readme.py","pattern":"Ruby/shell backtick execution","snippet":"text(user_language, f\"Command sourced from linked doc `{source_file}`.\", f\"命令来自 README 链接的文档 `{sourc","category":"external_commands","line_end":216,"severity":"medium","line_start":216},{"id":"external_commands:scripts/annotate_readme.py:374:ruby-shell-backtick-execution","file":"scripts/annotate_readme.py","pattern":"Ruby/shell backtick execution","snippet":"f\"{status_style} `{status}` · `{selected_goal}` · `{context.get('lane')}` · {evidence_links(selected","category":"external_commands","line_end":374,"severity":"medium","line_start":374},{"id":"filesystem:scripts/annotate_readme.py:104:path-traversal-sequence","file":"scripts/annotate_readme.py","pattern":"Path traversal sequence","snippet":"links += \" · [train status](../train_outputs/status.json)\"","category":"filesystem","line_end":104,"severity":"high","line_start":104},{"id":"blocker:scripts/annotate_readme.py:6:system-reconnaissance","file":"scripts/annotate_readme.py","pattern":"System reconnaissance","snippet":"annotation describing what the reproduction run did there, colored by risk:","category":"blocker","line_end":6,"severity":"low","line_start":6},{"id":"external_commands:scripts/orchestrate_repro.py:84:python-subprocess-run","file":"scripts/orchestrate_repro.py","pattern":"Python subprocess.run","snippet":"result = subprocess.run(command, check=True, capture_output=True, text=True)","category":"external_commands","line_end":84,"severity":"high","line_start":84},{"id":"external_commands:scripts/orchestrate_repro.py:95:python-subprocess-run","file":"scripts/orchestrate_repro.py","pattern":"Python subprocess.run","snippet":"subprocess.run(","category":"external_commands","line_end":95,"severity":"high","line_start":95},{"id":"external_commands:scripts/orchestrate_repro.py:357:python-subprocess-run","file":"scripts/orchestrate_repro.py","pattern":"Python subprocess.run","snippet":"result = subprocess.run(","category":"external_commands","line_end":357,"severity":"high","line_start":357},{"id":"external_commands:scripts/orchestrate_repro.py:306:ruby-shell-backtick-execution","file":"scripts/orchestrate_repro.py","pattern":"Ruby/shell backtick execution","snippet":"f\"README had no runnable commands; delegated extraction to linked doc `{rel}`.\"","category":"external_commands","line_end":306,"severity":"medium","line_start":306},{"id":"external_commands:scripts/orchestrate_repro.py:556:ruby-shell-backtick-execution","file":"scripts/orchestrate_repro.py","pattern":"Ruby/shell backtick execution","snippet":"f\"Selected goal `{chosen['selected_goal']}` from README evidence.\",","category":"external_commands","line_end":556,"severity":"medium","line_start":556},{"id":"external_commands:scripts/orchestrate_repro.py:557:ruby-shell-backtick-execution","file":"scripts/orchestrate_repro.py","pattern":"Ruby/shell backtick execution","snippet":"f\"已根据 README 证据选择目标 `{chosen['selected_goal']}`。\",","category":"external_commands","line_end":557,"severity":"medium","line_start":557},{"id":"external_commands:scripts/orchestrate_repro.py:613:ruby-shell-backtick-execution","file":"scripts/orchestrate_repro.py","pattern":"Ruby/shell backtick execution","snippet":"source_note += text(user_language, f\", section `{section}`\", f\",章节 `{section}`\")","category":"external_commands","line_end":613,"severity":"medium","line_start":613},{"id":"external_commands:scripts/orchestrate_repro.py:634:ruby-shell-backtick-execution","file":"scripts/orchestrate_repro.py","pattern":"Ruby/shell backtick execution","snippet":"f\"Review `train_outputs/status.json`, then decide whether to authorize a fuller training reproductio","category":"external_commands","line_end":634,"severity":"medium","line_start":634},{"id":"external_commands:scripts/orchestrate_repro.py:635:ruby-shell-backtick-execution","file":"scripts/orchestrate_repro.py","pattern":"Ruby/shell backtick execution","snippet":"f\"先检查 `train_outputs/status.json`,再决定是否授权更完整的训练复现。计划继续执行的命令是:`{chosen['documented_command']}`。保守预估时长","category":"external_commands","line_end":635,"severity":"medium","line_start":635},{"id":"external_commands:scripts/orchestrate_repro.py:696:ruby-shell-backtick-execution","file":"scripts/orchestrate_repro.py","pattern":"Ruby/shell backtick execution","snippet":"text(user_language, f\"Selected `{chosen['selected_goal']}` as the smallest trustworthy target.\", f\"已","category":"external_commands","line_end":696,"severity":"medium","line_start":696},{"id":"external_commands:scripts/orchestrate_repro.py:701:ruby-shell-backtick-execution","file":"scripts/orchestrate_repro.py","pattern":"Ruby/shell backtick execution","snippet":"timeline.append(text(user_language, f\"Training lane `{lane}` selected with run mode `{run_data.get('","category":"external_commands","line_end":701,"severity":"medium","line_start":701},{"id":"filesystem:scripts/orchestrate_repro.py:12:temp-file-creation","file":"scripts/orchestrate_repro.py","pattern":"Temp file creation","snippet":"import tempfile","category":"filesystem","line_end":12,"severity":"low","line_start":12},{"id":"filesystem:scripts/orchestrate_repro.py:90:temp-file-creation","file":"scripts/orchestrate_repro.py","pattern":"Temp file creation","snippet":"with tempfile.NamedTemporaryFile(\"w\", encoding=\"utf-8\", suffix=\".json\", delete=False) as handle:","category":"filesystem","line_end":90,"severity":"low","line_start":90},{"id":"blocker:scripts/orchestrate_repro.py:383:system-reconnaissance","file":"scripts/orchestrate_repro.py","pattern":"System reconnaissance","snippet":"f\"Selected documented command did not finish within {timeout} seconds.\",","category":"blocker","line_end":383,"severity":"low","line_start":383},{"id":"blocker:scripts/orchestrate_repro.py:579:system-reconnaissance","file":"scripts/orchestrate_repro.py","pattern":"System reconnaissance","snippet":"\"Selected documented command started but did not complete cleanly.\",","category":"blocker","line_end":579,"severity":"low","line_start":579},{"id":"external_commands:SKILL.md:3:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"description: Rigor Reproduce compatible skill slug for README-first deep learning repository reprodu","category":"external_commands","line_end":3,"severity":"medium","line_start":3},{"id":"external_commands:SKILL.md:12:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`ai-research-reproduction` for compatibility. The skill guides the agent toward","category":"external_commands","line_end":12,"severity":"medium","line_start":12},{"id":"external_commands:SKILL.md:20:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`../../references/agent-operating-principles.md`, then load","category":"external_commands","line_end":20,"severity":"medium","line_start":20},{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`../../references/research-rigor-principles.md` and","category":"external_commands","line_end":21,"severity":"medium","line_start":21},{"id":"external_commands:SKILL.md:22:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`../../references/deep-learning-experiment-principles.md` when scientific meaning, comparability, or","category":"external_commands","line_end":22,"severity":"medium","line_start":22},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"conflict, record the conflict and use `paper-context-resolver` only for the","category":"external_commands","line_end":50,"severity":"medium","line_start":50},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"2. Use `repo-intake-and-plan` to extract documented commands and candidate","category":"external_commands","line_end":56,"severity":"medium","line_start":56},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"4. Use `env-and-assets-bootstrap` only for target-specific environment,","category":"external_commands","line_end":59,"severity":"medium","line_start":59},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"5. Use `analyze-project` only when structure, insertion points, or suspicious","category":"external_commands","line_end":61,"severity":"medium","line_start":61},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"6. Use `minimal-run-and-audit` for documented inference, evaluation, smoke, or","category":"external_commands","line_end":63,"severity":"medium","line_start":63},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"7. Use `run-train` instead when the selected trusted target is training startup,","category":"external_commands","line_end":65,"severity":"medium","line_start":65},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`repro/YYYY-MM-DD-short-task`, keep verified patch commits sparse, and record","category":"external_commands","line_end":86,"severity":"medium","line_start":86},{"id":"external_commands:SKILL.md:87:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"README-fidelity impact in `PATCHES.md`.","category":"external_commands","line_end":87,"severity":"medium","line_start":87},{"id":"external_commands:SKILL.md:89:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"See `references/patch-policy.md`.","category":"external_commands","line_end":89,"severity":"medium","line_start":89},{"id":"external_commands:SKILL.md:93:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Always target `repro_outputs/`:","category":"external_commands","line_end":93,"severity":"medium","line_start":93},{"id":"external_commands:SKILL.md:95:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```text","category":"external_commands","line_end":104,"severity":"medium","line_start":95},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":106,"severity":"medium","line_start":104},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Use the templates under `assets/` and the field rules in `references/output-spec.md`.","category":"external_commands","line_end":106,"severity":"medium","line_start":106},{"id":"external_commands:SKILL.md:108:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Put the shortest high-value summary in `SUMMARY.md`.","category":"external_commands","line_end":109,"severity":"medium","line_start":108},{"id":"external_commands:SKILL.md:109:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Put copyable commands in `COMMANDS.md`.","category":"external_commands","line_end":110,"severity":"medium","line_start":109},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Put process evidence, assumptions, failures, and decisions in `LOG.md`.","category":"external_commands","line_end":111,"severity":"medium","line_start":110},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Put scientific meaning and change effects in `SCIENTIFIC_CHANGELOG.md`.","category":"external_commands","line_end":112,"severity":"medium","line_start":111},{"id":"external_commands:SKILL.md:112:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Put comparison anchors and protocol deviations in `COMPARABILITY_REPORT.md`.","category":"external_commands","line_end":113,"severity":"medium","line_start":112},{"id":"external_commands:SKILL.md:113:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Put durable machine-readable state in `status.json`.","category":"external_commands","line_end":114,"severity":"medium","line_start":113},{"id":"external_commands:SKILL.md:114:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Put branch, commit, validation, and README-fidelity impact in `PATCHES.md` when needed.","category":"external_commands","line_end":115,"severity":"medium","line_start":114},{"id":"external_commands:SKILL.md:115:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Put the researcher's at-a-glance view in `ANNOTATED_README.md`: the README replayed verbatim, each","category":"external_commands","line_end":120,"severity":"medium","line_start":115},{"id":"external_commands:SKILL.md:120:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Load `references/language-policy.md` when writing human-readable outputs.","category":"external_commands","line_end":121,"severity":"medium","line_start":120},{"id":"external_commands:SKILL.md:121:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Load `../../references/research-rigor-principles.md` before making comparability, contribution, or","category":"external_commands","line_end":122,"severity":"medium","line_start":121},{"id":"external_commands:SKILL.md:122:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Load `../../references/deep-learning-experiment-principles.md` when dataset, split, metric, checkp","category":"external_commands","line_end":123,"severity":"medium","line_start":122},{"id":"external_commands:SKILL.md:123:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Consult `~/.rigorpilot/PERSONAL_RIGOR.md` if present, under `../../references/continuous-learning-","category":"external_commands","line_end":123,"severity":"medium","line_start":123},{"id":"external_commands:SKILL.md:124:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Failed and later-resolved runs are auto-recorded as lessons via `shared/scripts/lessons_store.py` ","category":"external_commands","line_end":124,"severity":"medium","line_start":124},{"id":"external_commands:SKILL.md:125:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Load `references/research-safety-principles.md` before protocol-sensitive","category":"external_commands","line_end":127,"severity":"medium","line_start":125},{"id":"filesystem:SKILL.md:20:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"`../../references/agent-operating-principles.md`, then load","category":"filesystem","line_end":20,"severity":"high","line_start":20},{"id":"filesystem:SKILL.md:21:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"`../../references/research-rigor-principles.md` and","category":"filesystem","line_end":21,"severity":"high","line_start":21},{"id":"filesystem:SKILL.md:22:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"`../../references/deep-learning-experiment-principles.md` when scientific meaning, comparability, or","category":"filesystem","line_end":22,"severity":"high","line_start":22},{"id":"filesystem:SKILL.md:121:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- Load `../../references/research-rigor-principles.md` before making comparability, contribution, or","category":"filesystem","line_end":121,"severity":"high","line_start":121},{"id":"filesystem:SKILL.md:122:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- Load `../../references/deep-learning-experiment-principles.md` when dataset, split, metric, checkp","category":"filesystem","line_end":122,"severity":"high","line_start":122},{"id":"filesystem:SKILL.md:123:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- Consult `~/.rigorpilot/PERSONAL_RIGOR.md` if present, under `../../references/continuous-learning-","category":"filesystem","line_end":123,"severity":"high","line_start":123},{"id":"filesystem:SKILL.md:123:hidden-file-in-home-directory","file":"SKILL.md","pattern":"Hidden file in home directory","snippet":"- Consult `~/.rigorpilot/PERSONAL_RIGOR.md` if present, under `../../references/continuous-learning-","category":"filesystem","line_end":123,"severity":"high","line_start":123},{"id":"filesystem:SKILL.md:123:hidden-file-access","file":"SKILL.md","pattern":"Hidden file access","snippet":"- Consult `~/.rigorpilot/PERSONAL_RIGOR.md` if present, under `../../references/continuous-learning-","category":"filesystem","line_end":123,"severity":"medium","line_start":123},{"id":"blocker:SKILL.md:83:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- Avoid changing model architecture, core inference semantics, training logic,","category":"blocker","line_end":83,"severity":"low","line_start":83},{"id":"blocker:SKILL.md:115:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- Put the researcher's at-a-glance view in `ANNOTATED_README.md`: the README replayed verbatim, each","category":"blocker","line_end":115,"severity":"low","line_start":115},{"id":"obfuscation:scripts/orchestrate_repro.py:1:heuristic-multiple-bracket-chains-15-jsfuck-obfu","file":"scripts/orchestrate_repro.py","pattern":"[HEURISTIC] Multiple bracket chains (15) - JSFuck/obfuscation pattern","snippet":"[])[, ())], []))","category":"obfuscation","line_end":1,"severity":"high","line_start":1}],"finding_verdicts":[{"id":"blocker:references/output-spec.md:44:system-reconnaissance","reason":"The line advises against copying shell-history noise into a report. It performs no reconnaissance or command execution.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/patch-policy.md:5:system-reconnaissance","reason":"The line is a conservative patching policy. It does not inspect the host system.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/annotate_readme.py:71:ruby-shell-backtick-execution","reason":"The Python code detects Markdown fence delimiters while parsing text. It is not Ruby or shell backtick execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/annotate_readme.py:119:ruby-shell-backtick-execution","reason":"The backticks are emitted as Markdown code formatting around report text. No process is launched.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/annotate_readme.py:137:ruby-shell-backtick-execution","reason":"The backticks format a metric name and value in Markdown. They have no execution semantics in Python.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/annotate_readme.py:143:ruby-shell-backtick-execution","reason":"The code creates Markdown text for an observed metric. It does not invoke a command interpreter.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/annotate_readme.py:150:ruby-shell-backtick-execution","reason":"The command string is displayed inside Markdown backticks for reporting. This line does not execute it.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/annotate_readme.py:178:ruby-shell-backtick-execution","reason":"The error excerpt is wrapped in Markdown backticks. The operation is text rendering only.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/annotate_readme.py:196:ruby-shell-backtick-execution","reason":"The source filename is formatted as inline Markdown code. There is no shell evaluation.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/annotate_readme.py:207:ruby-shell-backtick-execution","reason":"The line renders a command for human review using Markdown. It does not execute the command.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/annotate_readme.py:216:ruby-shell-backtick-execution","reason":"The backticks are Markdown around a source path. They do not trigger external execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/annotate_readme.py:374:ruby-shell-backtick-execution","reason":"The line builds an annotated README header with inline-code formatting. No command runner is involved.","verdict":"false_positive","confidence":1},{"id":"filesystem:scripts/annotate_readme.py:104:path-traversal-sequence","reason":"The parent segment appears only in a generated Markdown link to a sibling output directory. It is not used for filesystem access.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/annotate_readme.py:6:system-reconnaissance","reason":"This docstring describes annotations for reproduction results. It does not direct system reconnaissance.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/orchestrate_repro.py:84:python-subprocess-run","reason":"The subprocess executes a fixed Python interpreter and a package-derived helper path with an argument array. No shell or user-controlled executable is used here.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:scripts/orchestrate_repro.py:95:python-subprocess-run","reason":"The subprocess invokes a package-derived report writer through a fixed Python interpreter and argument list. The call does not use a shell.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:scripts/orchestrate_repro.py:357:python-subprocess-run","reason":"This executes a command extracted from an untrusted target repository README. The opt-in flag limits surprise, but there is no allowlist, sandbox, or final command approval.","verdict":"confirmed","severity":"high","confidence":0.98},{"id":"external_commands:scripts/orchestrate_repro.py:306:ruby-shell-backtick-execution","reason":"The linked document path is formatted in a warning string. Python does not execute Markdown backticks.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/orchestrate_repro.py:556:ruby-shell-backtick-execution","reason":"The selected goal is wrapped in Markdown backticks for output. This is text interpolation only.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/orchestrate_repro.py:557:ruby-shell-backtick-execution","reason":"The localized report text uses Markdown inline-code formatting. It has no command execution behavior.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/orchestrate_repro.py:613:ruby-shell-backtick-execution","reason":"The section name is placed inside Markdown backticks in a report note. No shell is called.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/orchestrate_repro.py:634:ruby-shell-backtick-execution","reason":"This line displays a file path and planned command for review. The backticks are Markdown formatting.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/orchestrate_repro.py:635:ruby-shell-backtick-execution","reason":"The localized line formats a path and command as inline code. It does not perform execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/orchestrate_repro.py:696:ruby-shell-backtick-execution","reason":"The selected goal is rendered as inline Markdown code in the timeline. No external command is invoked.","verdict":"false_positive","confidence":1},{"id":"external_commands:scripts/orchestrate_repro.py:701:ruby-shell-backtick-execution","reason":"The lane and run mode are formatted for a human-readable timeline. Backticks remain literal output characters.","verdict":"false_positive","confidence":1},{"id":"filesystem:scripts/orchestrate_repro.py:12:temp-file-creation","reason":"This line only imports Python's tempfile module. The later code uses secure named temporary-file creation.","verdict":"false_positive","confidence":0.98},{"id":"filesystem:scripts/orchestrate_repro.py:90:temp-file-creation","reason":"NamedTemporaryFile creates a randomized file securely, and the surrounding finally block deletes it. The file contains generated context, not credentials.","verdict":"false_positive","confidence":0.96},{"id":"blocker:scripts/orchestrate_repro.py:383:system-reconnaissance","reason":"The line reports a command timeout to the user. It does not collect system information.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/orchestrate_repro.py:579:system-reconnaissance","reason":"The line is a status message about incomplete execution. It contains no reconnaissance behavior.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:3:ruby-shell-backtick-execution","reason":"The skill description uses Markdown backticks around an output directory. It is documentation, not shell syntax.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:12:ruby-shell-backtick-execution","reason":"The installed skill slug is formatted as inline Markdown code. No execution is requested.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:20:ruby-shell-backtick-execution","reason":"Backticks only format a referenced policy path. The separate filesystem finding covers the out-of-package read risk.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","reason":"The backticks denote a policy filename in Markdown. They are not command substitution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:22:ruby-shell-backtick-execution","reason":"The policy path is displayed as inline code. The line contains no shell execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","reason":"The referenced sub-skill name is Markdown inline code. No command is executed.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","reason":"This line names a workflow sub-skill using Markdown. It has no shell semantics.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","reason":"The text identifies a setup sub-skill. Markdown backticks do not execute it as a shell command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","reason":"This is a documented sub-skill name in inline-code formatting. It is not Ruby or shell execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","reason":"The line names an execution sub-skill in Markdown. The backticks remain documentation characters.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","reason":"The line references a training sub-skill by name. It does not itself launch any process.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","reason":"The proposed branch naming convention is formatted as inline code. No command is present.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:87:ruby-shell-backtick-execution","reason":"The report filename is enclosed in Markdown backticks. It does not trigger execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:89:ruby-shell-backtick-execution","reason":"The referenced local documentation path is formatted as inline code. No shell command exists.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:93:ruby-shell-backtick-execution","reason":"The output directory name appears in Markdown. This line does not access or execute it.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:95:ruby-shell-backtick-execution","reason":"This is the opening delimiter for a Markdown text fence. It is not executable syntax.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","reason":"This is the closing delimiter for a Markdown code fence. It does not invoke a shell.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","reason":"The line references packaged templates and a specification. Backticks are inline-code formatting.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:108:ruby-shell-backtick-execution","reason":"The line names an output file in Markdown. It does not execute external code.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:109:ruby-shell-backtick-execution","reason":"The output filename is formatted as inline code. No command substitution occurs.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","reason":"The line documents the purpose of a log file. It has no process execution behavior.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","reason":"The changelog filename is Markdown inline code. It is not a shell expression.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:112:ruby-shell-backtick-execution","reason":"The report filename is rendered with Markdown backticks. Nothing is executed.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:113:ruby-shell-backtick-execution","reason":"The status filename is formatted as inline code. This line is documentation only.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:114:ruby-shell-backtick-execution","reason":"The patch report filename uses Markdown formatting. There is no command invocation.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:115:ruby-shell-backtick-execution","reason":"The annotated README filename is shown as inline code. This prose does not execute anything.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:120:ruby-shell-backtick-execution","reason":"The packaged language-policy path is formatted as Markdown. It is not shell execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:121:ruby-shell-backtick-execution","reason":"Backticks only format the external policy path. Its filesystem scope risk is adjudicated separately.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:122:ruby-shell-backtick-execution","reason":"The line contains an inline-code policy path, not a command substitution expression.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:123:ruby-shell-backtick-execution","reason":"The backticks are Markdown around filesystem paths. Separate findings cover the home-file and traversal risks.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:124:ruby-shell-backtick-execution","reason":"The module path and environment setting are displayed as inline code. This prose line does not launch a process.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:125:ruby-shell-backtick-execution","reason":"The safety-policy path is Markdown inline code. No external command is executed.","verdict":"false_positive","confidence":1},{"id":"filesystem:SKILL.md:20:path-traversal-sequence","reason":"The skill instructs the agent to load a path two directories above its package. This expands the trust boundary beyond marketplace-audited files.","verdict":"confirmed","severity":"high","confidence":0.96},{"id":"filesystem:SKILL.md:21:path-traversal-sequence","reason":"The required policy is resolved outside the skill directory. External content could alter behavior without changing this audited package.","verdict":"confirmed","severity":"high","confidence":0.96},{"id":"filesystem:SKILL.md:22:path-traversal-sequence","reason":"This directs the agent to read an out-of-package experiment policy. The referenced content is outside the report's scanned file set.","verdict":"confirmed","severity":"high","confidence":0.96},{"id":"filesystem:SKILL.md:121:path-traversal-sequence","reason":"The instruction repeats an out-of-package policy read before research claims. The external file is not covered by this audit.","verdict":"confirmed","severity":"high","confidence":0.96},{"id":"filesystem:SKILL.md:122:path-traversal-sequence","reason":"The agent is told to load a policy through parent-directory traversal. This creates an unaudited instruction dependency.","verdict":"confirmed","severity":"high","confidence":0.96},{"id":"filesystem:SKILL.md:123:path-traversal-sequence","reason":"The line references both a home-directory file and a parent-relative external policy. These reads cross the packaged skill boundary.","verdict":"confirmed","severity":"high","confidence":0.97},{"id":"filesystem:SKILL.md:123:hidden-file-in-home-directory","reason":"The skill explicitly instructs the agent to consult a hidden user-home file. Its contents may be private and are not marketplace audited.","verdict":"confirmed","severity":"high","confidence":0.98},{"id":"filesystem:SKILL.md:123:hidden-file-access","reason":"The requested hidden-file read introduces user-specific, unaudited instructions into the agent context. Explicit consent and scope controls are absent.","verdict":"confirmed","severity":"high","confidence":0.98},{"id":"blocker:SKILL.md:83:system-reconnaissance","reason":"The line prohibits semantic changes to model and training behavior. It does not inspect system state.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:115:system-reconnaissance","reason":"The line describes a reproduction report assembled from README sections and generated evidence. It does not request host reconnaissance.","verdict":"false_positive","confidence":0.99},{"id":"obfuscation:scripts/orchestrate_repro.py:1:heuristic-multiple-bracket-chains-15-jsfuck-obfu","reason":"The file is readable Python source with ordinary lists, indexing, and calls. There is no encoded or JSFuck-style payload.","verdict":"false_positive","confidence":0.99}],"semantic_findings":[{"title":"Unaudited Dynamic Module Execution","severity":"high","locations":[{"file":"scripts/orchestrate_repro.py","line_end":31,"line_start":23}],"confidence":0.97,"description":"The orchestrator resolves a sibling lessons_store.py outside the skill package and executes it through importlib without provenance or integrity verification.","confidence_reasoning":"The code directly constructs an out-of-package path and calls exec_module. The external module is not included in the scanned file set."}],"subject_marketplace_commit_sha":"656be3040aef5c047555a908cd5c695d22a4a548","subject_content_hash":"2dd32f685ef0b2154ab960ba06548e675cbd4533fbf4499518f98d9bd2607bc3","subject_tree_hash":"ae2e707197dad62a5bce67ff854dfd1093d46586831bad4055e2ed523257cae0","subject_plugin_path":"skills/lllllllama/ai-research-reproduction","audit_payload_hash":"0e6e362c1e05c842354d2126b7f91ca1","confirmed_risk_level":"high","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"656be3040aef5c047555a908cd5c695d22a4a548","contentHash":"2dd32f685ef0b2154ab960ba06548e675cbd4533fbf4499518f98d9bd2607bc3","treeHash":"ae2e707197dad62a5bce67ff854dfd1093d46586831bad4055e2ed523257cae0","pluginPath":"skills/lllllllama/ai-research-reproduction","auditPayloadHash":"0e6e362c1e05c842354d2126b7f91ca1"},"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/lllllllama-ai-research-reproduction/audits/5/attestation","status":"active"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"high","confirmedFindingCount":1,"capabilityReviewCount":9,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"confirmation_required","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"active","verificationState":"not_verified"},"isLatest":true}}