Skills/ClawHub/paper-polisher-pro

paper-polisher-pro@7.7.0

CAUTION· static only

Publisher claims: "AI-rate self-check and polish guidance for academic writing: sentence-level rewrite suggestions (locates and advises, never auto-rewrites), terminology and consistency checks, translation-smell, paragraph attribution, journal precheck with discipline context, style-norm conventions check, quality report, AIGC label check, plus `--batch DIR` with HTML summary. Reads .docx directly. Not for: document/PDF translation (doc-holmes), plagiarism checking (institutional systems), ghost-writing or executing rewrites (paper-rewriter); texts under 100 chars get no verdict by design. 100% local, zero upload; bundled tests + AST zero-network self-verification. Multi-layer rule engine + token spectrum + optional supervised Qwen3-0.6B ONNX layer + LLM fingerprint attribution + freshness pipeline. Base-engine numbers reproduce from bundled held-out evals; supervised columns are author-side (model not bundled)." Observed in sandbox: static analysis only — behavior not yet observed.

Registry ClawHubPublisher docsor1212 · publishing for 92 daysInstalls 2,830Last detonated 2d ago

Coverage

Static only; nothing was run yet.

The label rests on the code, the instruction files and the publisher. The honeypot run replaces this verdict when it completes.

Is [email protected] safe to install?

KillerSkills analysed it statically (a sandbox run is pending) on 2026-11-12 and scored it 63/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Summary: static analysis only — behavior not yet observed.

Behavior trace

Queued for honeypot run · static analysis only
t+CategoryObserved action

This version has not been detonated yet. The score above counts behavior as unknown (50/100), so it cannot read Verified until the honeypot run completes and replaces this verdict.

Static findings

MEDIUM
Python subprocess execution detectedscripts/pp_evidence_report.py:84 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(HERE / "ai_detector.py"), str(path),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedeval/release_smoke.py:644 · Python subprocess execution detected_pp = subprocess.run([sys.executable, str(SCRIPTS / "pp.py")],Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST05
MEDIUM
Python subprocess execution detectedscripts/deai_gate.py:38 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / script)] + args,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
File type combined with upload actionSKILL.md:210 · File type combined with upload action — agent may exfiltrate local data files…_suggest / workflow / term_report) ship JSON-Schema contracts (`schemas/*.schema.json`, draft-2020-12 subset). Self-check: `python3 scripts/pp.py schema --selfcheck` runs real engine outputs against every contract — contract/implementation…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Python subprocess execution detectedscripts/pp_doctor.py:34 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / script)] + args,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedeval/release_smoke.py:202 · Python subprocess execution detected_gc = subprocess.run([sys.executable, str(_gen), "--check"],Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST05
MEDIUM
Python subprocess execution detectedscripts/pp.py:226 · Python subprocess execution detectedsubprocess.run([sys.executable, str(HERE / "pp_explain.py"), str(wf)], timeout=180)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedeval/release_smoke.py:57 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / script)] + args,Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST05
MEDIUM
Python subprocess execution detectedeval/release_smoke.py:477 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "ai_detector.py"), empty_f, "--format", "json"],Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST05
MEDIUM
File type combined with upload actionSKILL.md:283 · File type combined with upload action — agent may exfiltrate local data files…ndensed) - **v7.7.0 (2026-11-12)** — output contract schemas (`schemas/*.schema.json` + zero-dep validator `pp.py schema --selfcheck`, real-output-validated); manifest generator single-sourced (generated reads skill.json, --ch…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Unicode escape sequence detectedeval/release_smoke.py:417 · Unicode escape sequence detected — may contain obfuscated payloads_raw = (ZH_HUMAN[:40] + "\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd") * 6Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST07
MEDIUM
Python subprocess execution detectedscripts/pp.py:184 · Python subprocess execution detectedsubprocess.run([sys.executable, str(HERE / "ai_detector.py"), demo], timeout=180)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedeval/verify_ch_form.py:37 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(copy / "eval" / "release_smoke.py"),Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST05
MEDIUM
MCP server using network transport (SSE/HTTP)scripts/pp_mcp_server.py:14 · MCP server using network transport (SSE/HTTP) — data sent over networkpython3 scripts/pp_mcp_server.py --transport http --port 8815 # 本地 HTTP(v7.2.0)Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.
AST04
MEDIUM
Python subprocess execution detectedscripts/pp_mcp_server.py:62 · Python subprocess execution detectedp = subprocess.run([sys.executable] + args, capture_output=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedeval/release_smoke.py:631 · Python subprocess execution detected_p = subprocess.run([sys.executable, str(SCRIPTS / "ai_detector.py"), _hu_file_hold,Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST05
MEDIUM
Python subprocess execution detectedeval/verify_forms.py:47 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(copy / "eval" / "release_smoke.py"), "--fast"],Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST05
MEDIUM
Python subprocess execution detectedscripts/pp.py:188 · Python subprocess execution detectedsubprocess.run([sys.executable, str(HERE / "pp_doctor.py")], timeout=180)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedscripts/pp_report_bundle.py:71 · Python subprocess execution detectedsubprocess.run([sys.executable, str(HERE / "paragraph_report.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedscripts/freshness_refresh.py:28 · Python subprocess execution detectedr = subprocess.run(cmd, capture_output=True, text=True, encoding="utf-8", errors="ignore",Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedscripts/pp.py:217 · Python subprocess execution detectedsubprocess.run([sys.executable, str(HERE / "ai_detector.py"), demo], timeout=180)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
File type combined with upload actionSKILL.md:112 · File type combined with upload action — agent may exfiltrate local data files| batch mode (--batch) | .txt/.md/.docx <5 MB per file | >5 MB skipped by design; encrypted/image-only docx yield an explicit error, not silent empty output |Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Python subprocess execution detectedscripts/pp.py:186 · Python subprocess execution detectedsubprocess.run([sys.executable, str(HERE / "pp_fix_suggest.py"), demo, "--top", "3"], timeout=180)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedscripts/freshness_refresh.py:136 · Python subprocess execution detectedr = subprocess.run([py, ev, "--corpus", a.corpus, "--split", "test",Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
MCP server using network transport (SSE/HTTP)SKILL.md:225 · MCP server using network transport (SSE/HTTP) — data sent over network… (12k chars). Local HTTP form (v7.2.0, multi-client reuse): `python scripts/pp_mcp_server.py --transport http --port 8815` — listens on 127.0.0.1 loopback only (consistent with the zero-net…Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.
AST04
MEDIUM
File type combined with upload actionscripts/pp_term_consistency.py:240 · File type combined with upload action — agent may exfiltrate local data filesif a.json and not a.output:Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionskill.json:6 · File type combined with upload action — agent may exfiltrate local data files…DoctorQ Lab", "changelog": "v7.7.0: output contract schemas — schemas/*.schema.json (draft-2020-12 subset) for the four core outputs, a zero-dependency minimal validator (scripts/pp_schema.py) self-checking real engine outputs against all …Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Python subprocess execution detectedscripts/ai_detector.py:1161 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(Path(__file__).resolve()),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v50800.py:20 · Python subprocess execution detectedreturn subprocess.run([PY, str(SCRIPTS / "pp.py"), *args],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_rewrite_check.py:58 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / "pp_rewrite_check.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_rewrite_check.py:64 · Python subprocess execution detectedbad = subprocess.run([sys.executable, str(SCRIPTS / "pp_rewrite_check.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_batch_report.py:65 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / "pp_batch_report.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60400.py:121 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp.py"), "tour"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60100.py:24 · Python subprocess execution detectedreturn subprocess.run([PY, *map(str, args)], capture_output=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60200.py:16 · Python subprocess execution detectedreturn subprocess.run([PY, *map(str, args)], capture_output=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_fix_suggest.py:82 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / "pp_fix_suggest.py"), "--demo"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_entry.py:22 · Python subprocess execution detectedout = subprocess.run([sys.executable, "-c", code],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v50800.py:67 · Python subprocess execution detectedr = subprocess.run([PY, str(SCRIPTS / "pp_report_html.py"), str(evil),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_batch_report.py:76 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / "pp_batch_report.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v540.py:107 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / script), str(p)],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_style_norm.py:71 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / "pp_style_norm.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60400.py:146 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp.py")],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60300.py:21 · Python subprocess execution detectedreturn subprocess.run([PY, *map(str, args)], capture_output=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60400.py:112 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp.py"), "tour"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v50800.py:75 · Python subprocess execution detectedr = subprocess.run([PY, str(SCRIPTS / "pp_report_html.py"), str(junk),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_docx_bundle.py:119 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / "pp_report_bundle.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_entry.py:34 · Python subprocess execution detectedout = subprocess.run([sys.executable, PP, "no-such-cmd"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60500.py:28 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SERVER)], input="\n".join(lines),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_rewrite_check.py:71 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / "pp_rewrite_check.py"), "--demo"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60400.py:128 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp.py"), "recommend", "功能太多不知从哪开始"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_fix_suggest.py:53 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / "pp_fix_suggest.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_docx_bundle.py:71 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / "ai_detector.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v50800.py:31 · Python subprocess execution detectedr = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_entry.py:27 · Python subprocess execution detectedout = subprocess.run([sys.executable, PP], capture_output=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v540.py:54 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / "ai_detector.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_entry.py:39 · Python subprocess execution detectedout = subprocess.run([sys.executable, PP, "quickstart"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v540.py:82 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / "freshness_refresh.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v50900.py:19 · Python subprocess execution detectedreturn subprocess.run([PY, *map(str, args)], capture_output=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60000.py:25 · Python subprocess execution detectedreturn subprocess.run([PY, *map(str, args)], capture_output=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_fix_suggest.py:74 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / "pp_fix_suggest.py"), p],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_docx_bundle.py:82 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / "ai_detector.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60500.py:78 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SERVER)], input="{broken",Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60900.py:77 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp.py")],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
LOW
Latin word with Cyrillic or Greek look-alike letters (homoglyph)examples/outputs/workflow_sample.json:2843 · Latin word with Cyrillic or Greek look-alike letters (homoglyph) · informational: not an instruction filenγδFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
MEDIUM
Python subprocess execution detectedtests/test_v70200.py:36 · Python subprocess execution detectedcls.proc = subprocess.Popen(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60900.py:30 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp_project.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v70600.py:40 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp_doctor.py"), "--deep"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v70100.py:37 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "term_check.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v70600.py:52 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp_doctor.py"), "--deep"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_verify.py:36 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / "pp_verify.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60900.py:80 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp.py"), "scenarios", "项目"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60600.py:25 · Python subprocess execution detectedreturn subprocess.run([sys.executable] + args, capture_output=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60800.py:28 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "ai_detector.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v70600.py:60 · Python subprocess execution detectedr2 = subprocess.run([sys.executable, str(SCRIPTS / "pp_doctor.py"), "--deep"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60900.py:68 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp_project.py"), str(d)],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60900.py:53 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp_project.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60700.py:19 · Python subprocess execution detectedreturn subprocess.run([sys.executable] + args, capture_output=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60500.py:162 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp.py")],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v70100.py:64 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp_term_consistency.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v70700.py:55 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(PKG / "eval" / "gen_integrity_manifest.py"), "--check"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_verify.py:23 · Python subprocess execution detectedout = subprocess.run([sys.executable, str(SCRIPTS / "pp_verify.py"), "--json"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v70100.py:54 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "term_check.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
LOW
Latin word with Cyrillic or Greek look-alike letters (homoglyph)examples/outputs/workflow_sample.json:2859 · Latin word with Cyrillic or Greek look-alike letters (homoglyph) · informational: not an instruction filenγδFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
MEDIUM
Python subprocess execution detectedtests/test_v70300.py:18 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp_mcp_server.py")],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v60800.py:96 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "ai_detector.py"), "--help"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v70700.py:84 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp.py")],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v70000.py:28 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp_fix_suggest.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v70000.py:41 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp_fix_suggest.py"),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v70600.py:31 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(PKG / "eval" / "gen_integrity_manifest.py")],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_v70700.py:26 · Python subprocess execution detectedp = subprocess.run([sys.executable, str(SCRIPTS / "pp_schema.py"), "--selfcheck"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
LOW
Latin word with Cyrillic or Greek look-alike letters (homoglyph)examples/outputs/workflow_sample.json:2851 · Latin word with Cyrillic or Greek look-alike letters (homoglyph) · informational: not an instruction filenγδFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
MEDIUM
Python subprocess execution detectedtests/test_v60700.py:73 · Python subprocess execution detectedr_en = subprocess.run([sys.executable, str(SCRIPTS / "pp.py"), "scenarios"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05

Cost to the agent

Instructions loaded
≈7,796 tok
1 file · 175 in bundle

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.

What would make this Verified

17 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%
  1. Unclaimed publisher≈ +8 on the totalClaim docsor1212: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
  2. Python subprocess execution detected≈ +2 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
  3. File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.
  4. Unicode escape sequence detected≈ +2 on the totalPut hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
  5. MCP server using network transport (SSE/HTTP)≈ +2 on the totalNamespace tool names and keep tool descriptions literal; no instructions to the agent inside them.
Publish a new version to ClawHub, then queue it here. Not your skill? Claim the handle to get verdict changes by email.Claim docsor1212Propose a patch to the maintainer