Skills/ClawHub/academic-figures

academic-figures@7.8.0

VERIFIED· install only

Publisher claims: "Publication-ready scientific figures from one command — 40 chart types (bar, slope, volcano, ridgeline, dumbbell, grouped bar, scatter, heatmap, forest plot (incl. Cox), KM survival curve with risk table, competing-risk cumulative incidence (Aalen-Johansen), ROC, calibration curve, decision curve (DCA), nomogram, RCS spline, subgroup forest, violin, box, composite panels, PRISMA 2020 flow, funnel, Galbraith radial, Bland-Altman, PCA, venn 2-4 sets, upset set intersections (5+ sets), oncology waterfall (RECIST), raincloud, swimmer, clustered heatmap, dual-axis), 9 themes (colorblind-safe Okabe-Ito, NEJM/Lancet/Science), 9 journal presets, YAML pipeline, TIFF/PNG/PDF, Python API, --wizard, render watchdog, overlap gate, 600dpi. 100% local, data never leaves the machine. Use for — paper/submission figures, data files to publication charts, batch re-rendering. Skip when — text polishing, translation or rewriting (writing tools); business dashboards or slide/poster decoration; diagrams with no data behind them." Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry ClawHubPublisher docsor1212 · publishing for 92 daysInstalls 4,444Last detonated 21 h ago
$clawhub install academic-figures
WatchReport an issue

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-13 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 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
0.0sprocessscript backend runs setup only
0.0sprocessscript backend runs setup only
0.0sprocessno install scripts to re-run

Static findings

CRITICAL
HTML comment carrying imperative instructions to the agentSKILL.md:33 · HTML comment carrying imperative instructions to the agent═══ Metadata archive (2026-09-13 frontmatter normalization; compressed 2026-10-14) ═══ ZCode skill auto-discovery reads ONLY the frontmatter whitelist keys (namFix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST01
HIGH
Latin word with Cyrillic or Greek look-alike letters (homoglyph)SKILL.md:170 · Latin word with Cyrillic or Greek look-alike letters (homoglyph)ΔRMSTFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
MEDIUM
Python subprocess execution detectedscripts/detect_cjk_font.py:42 · Python subprocess execution detectedresult = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
HIGH
Latin word with Cyrillic or Greek look-alike letters (homoglyph)SKILL.md:197 · Latin word with Cyrillic or Greek look-alike letters (homoglyph)ΔRMSTFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
HIGH
Latin word with Cyrillic or Greek look-alike letters (homoglyph)references/scenario-cards.md:108 · Latin word with Cyrillic or Greek look-alike letters (homoglyph)ΔRMSTFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
MEDIUM
Python subprocess execution detectedtests/run_tests.py:117 · Python subprocess execution detectedproc = subprocess.run(cmd, capture_output=True, text=True, timeout=180)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
HIGH
Latin word with Cyrillic or Greek look-alike letters (homoglyph)references/composite-layouts.md:73 · Latin word with Cyrillic or Greek look-alike letters (homoglyph)ΔFVCFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
MEDIUM
Python subprocess execution detectedtests/stress_200.py:62 · Python subprocess execution detectedr = subprocess.run([sys.executable, GEN, "-t", t, "--data", p,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedmcp/server.py:122 · Python subprocess execution detectedp = subprocess.run(cmd, capture_output=True, text=True,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:319 · File type combined with upload action — agent may exfiltrate local data files…utput; exit 2 on overlaps | | `--audit` / `--repro` | `--audit`: `<output>.audit.json` number-check sidecar (stats recomputed from input, v5.0); `--repro`: `<output>.repro/` reproduce bundle (command+data copy+figure copy+audit+README, v5.…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/setup_env.py:23 · Python subprocess execution detectedreturn subprocess.run(cmd, capture_output=True, text=True, timeout=timeout).returncode == 0Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
HIGH
Latin word with Cyrillic or Greek look-alike letters (homoglyph)references/changelog-full.md:826 · Latin word with Cyrillic or Greek look-alike letters (homoglyph)ΣCIFFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
MEDIUM
Python subprocess execution detectedtests/run_tests.py:177 · Python subprocess execution detectedproc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
HIGH
Latin word with Cyrillic or Greek look-alike letters (homoglyph)references/changelog-full.md:692 · Latin word with Cyrillic or Greek look-alike letters (homoglyph)ΣCIFFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
MEDIUM
Python subprocess execution detectedscripts/gen_figure.py:569 · Python subprocess execution detectedresult = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedscripts/af_resilience.py:55 · Python subprocess execution detectedproc = subprocess.Popen([sys.executable, script] + sys.argv[1:], env=env)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
HIGH
Latin word with Cyrillic or Greek look-alike letters (homoglyph)references/changelog-full.md:186 · Latin word with Cyrillic or Greek look-alike letters (homoglyph)ΔRMSTFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
MEDIUM
File type combined with upload actionSKILL.md:321 · File type combined with upload action — agent may exfiltrate local data files| `--debug` | On failure write `<output>.debug.json` sidecar (input fingerprint / field mapping / diagnosis suggestions — programmatic troubleshooting, v6.4) |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 detectedtests/run_tests.py:149 · Python subprocess execution detectedproc = 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/run_tests.py:163 · Python subprocess execution detectedproc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
HIGH
Latin word with Cyrillic or Greek look-alike letters (homoglyph)SKILL.md:203 · Latin word with Cyrillic or Greek look-alike letters (homoglyph)ΔRMSTFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
MEDIUM
Python subprocess execution detectedscripts/setup_env.py:83 · Python subprocess execution detectedresult = subprocess.run([sys.executable, detect], capture_output=True, text=True, timeout=30)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
HIGH
Latin word with Cyrillic or Greek look-alike letters (homoglyph)references/changelog.md:40 · Latin word with Cyrillic or Greek look-alike letters (homoglyph)ΔRMSTFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
MEDIUM
Python subprocess execution detectedtests/run_tests.py:136 · Python subprocess execution detectedproc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedscripts/gen_figure.py:2088 · Python subprocess execution detectedproc = subprocess.run(argv, capture_output=True, text=True, timeout=300)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)templates/rmst.json:4 · Latin word with Cyrillic or Greek look-alike letters (homoglyph) · informational: not an instruction fileΔRMSTFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01

Cost to the agent

Instructions loaded
≈8,091 tok
1 file · 148 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.