agent-os-asset@0.2.0
VERIFIED· install onlyPublisher claims: "Turn forgotten files into AI-ready assets / 将吃灰文件变成 AI 资产" Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Nothing executable in the bundle ran; the trace covers the install step only.- Tested
- every file read, file written and host contacted by what ran
- Not tested
- use of the skill by an agent
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (1 scenario; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-07 and scored it 82/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 1 scenarios · 0 deviationsStatic findings
index_result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(["osascript", "-e", script], check=False, capture_output=True, text=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(["launchctl", "bootout", f"gui/{uid}", str(path)], check=False, capture_output=True, text=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.audit_result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.The durable decision ledger must be machine-readable, such as `.cleanup-extracted/asset-decisions.json`. Dry-run and apply reports are audit outputs, not the source of truth. / Durable decision ledgerFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.audit_result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.f"- Source format / 来源格式: `{fmt}`\n"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.semantic_result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(["osascript", "-e", f'tell application "Finder" to delete POSIX file "{escaped}"'], check=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(command, cwd=root, check=False, text=True, capture_output=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(["launchctl", "bootout", f"gui/{uid}", str(path)], check=False, capture_output=True, text=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.return checked_path(root, boundary / f"{bundle_id}.json", allowed_roots=(boundary,), output=True)Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.EN: 11. After validation, preview archival with `python <skill-root>/scripts/archive_sources.py --vault-root <vault-root> --map-output <extracted/archive-map.json> <sources...>`. Dry-run is the defaulFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.EN: 3. Review `manifest.json` and create a batch plan. Merge tiny, related, same-directory sources when that improves retrieval; otherwise keep one source per output document.Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.result = subprocess.run(["open", str(target)], check=False, timeout=10)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.document.getElementById('saveJson').onclick=()=>{if(isStatic()){downloadDecisions();document.getElementById('openStatus').textContent='Downloaded decisions.json / 已下载 decisions.json';return;}postJson(Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(["open", url], check=False)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run([executable, "list"], text=True, capture_output=True, check=False, timeout=3)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.insights.append(source_claim(rel(repo / "AGENTS.md"), "The project includes AGENTS.md; check applicable rules only when the user authorizes work on this project / 项目包含 AGENTS.md;仅在用户授权操作该项目时核对其适用规则。")Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.literal = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.def test_summary_remote_configuration_is_explicit_and_https_only(monkeypatch) -> None:Fix: Pin versions and sources; vendor anything fetched at install time.missing_root = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.preview = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.return subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run([shutil.which("node"), "-e", harness],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.help_result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.unknown_result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.execute = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.