← All skills
eval-answer
92 / 100 · Low risk
Fine to try. Some of what it can do is expected: a data skill usually connects to databases or online services with your credentials.
By malloydata/publisher (GitHub) · data · 132 stars · scanned at commit bb8ce0d
Score one analytical answer against a verified golden, and score which of the entities the golden depends on retrieval delivered to the answerer. Run the contamination checklist, re-execute the submitted query yourself, then spawn a judge subagent per skill:eval-judge. Append attempt, tool_call, score, and retrieval_score events to the file ledger (reference/ledger-schema.md). Never explain the failure (eval-diagnose) or edit the model (eval-improve). Use when asked whether an answer was correc…
Works with any agent that supports SKILL.md skills.
What this skill can do
Connects to the internet
The author does not mention this. Expected for a data skill.
Found in 38 places.
Show 17 more
- skills/eval-answer/scripts/check_coverage.py, line 133
with urllib.request.urlopen(url, timeout=timeout) as r: - skills/eval-answer/scripts/check_findable.py, line 60
import urllib.request - skills/eval-answer/scripts/check_findable.py, line 93
req = urllib.request.Request( - skills/eval-answer/scripts/check_findable.py, line 97
raw = urllib.request.urlopen(req, timeout=timeout).read().decode() - skills/eval-answer/scripts/check_findable.py, line 159
req = urllib.request.Request( - skills/eval-answer/scripts/check_findable.py, line 161
models = json.load(urllib.request.urlopen(req, timeout=30)) - skills/eval-answer/scripts/check_findable.py, line 170
req = urllib.request.Request( - skills/eval-answer/scripts/check_findable.py, line 173
doc = json.load(urllib.request.urlopen(req, timeout=30)) - skills/eval-answer/scripts/check_findable.py, line 218
with urllib.request.urlopen(f"{package_url}/embedding-index", - skills/eval-answer/scripts/check_findable.py, line 225
with urllib.request.urlopen(package_url, timeout=timeout) as r: - skills/eval-answer/scripts/check_findable.py, line 317
req = urllib.request.Request(f"{rest_url.rstrip('/')}/api/v0/status") - skills/eval-answer/scripts/check_findable.py, line 318
doc = json.load(urllib.request.urlopen(req, timeout=timeout)) - skills/eval-answer/scripts/check_findable_test.py, line 282
import urllib.request as _u - skills/eval-answer/scripts/check_findable_test.py, line 283
real = _u.urlopen - skills/eval-answer/scripts/check_findable_test.py, line 296
_u.urlopen = fake - skills/eval-answer/scripts/check_findable_test.py, line 300
_u.urlopen = real - skills/eval-answer/scripts/check_findable_test.py, line 338
import urllib.request as _u
and 18 more places
Runs commands on your computer
This is disclosed by the author in the skill's SKILL.md or README.
Found in 5 places.
Show 2 more
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'eval-answer' ] || [ -L ~/.agents/skills/'eval-answer' ]; then echo 'A skill folder named eval-answer already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/malloydata/publisher' "$d" && git -C "$d" checkout --quiet 'bb8ce0db61c90d45273e4b65c5ccfc6475a9193a' -- 'skills/eval-answer' && mkdir -p ~/.agents/skills && cp -R "$d"/'skills/eval-answer' ~/.agents/skills/'eval-answer' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'eval-answer' ~/.claude/skills/'eval-answer' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for malloydata/publisher shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/malloydata/publisher/)
Score history
| Date | Version | Score |
|---|
| 2026-11-14 | bb8ce0d | 92 |