Borrowing it
Nothing to install: this file belongs to harry189/ha-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/harry189/ha-mcp/chore/gate-demo-throwaway/.claude/skills/bat-story-eval/SKILL.mdgit clone --depth 1 https://github.com/harry189/ha-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/harry189/ha-mcp/bat-story-eval)<a href="https://agentmods.dev/skills/harry189/ha-mcp/bat-story-eval"><img src="https://agentmods.dev/badge/skills/harry189/ha-mcp/bat-story-eval/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/harry189/ha-mcp/bat-story-eval"><img src="https://agentmods.dev/badge/skills/harry189/ha-mcp/bat-story-eval.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00026 | $0.03305 |
| Opus 5 | $0.00013 | $0.01653 |
| Sonnet 5 | $0.00005 | $0.00661 |
| Haiku 4.5 | $0.00003 | $0.00331 |
Grade A, and why
bat-story-eval scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
91% identical to bat-story-eval — 22 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 366 lines — stays where its author put it; the contents beside it link to each section on GitHub.
BAT Story Evaluation
You are the evaluator. Follow these steps IN ORDER. Do not skip steps.
Parse Arguments
From $ARGUMENTS, extract:
--baseline: REQUIRED. Git tag/branch of the released version (e.g.,v6.6.1).--agents: Agent list (default:gemini). Comma-separated.--stories: Force specific pre-built story IDs (e.g.,s01,s02). Overrides triage selection.--all-stories: Skip triage, run ALL pre-built stories.--keep-container: Keep HA containers alive after run for manual inspection.--model: Model for Claude agent (e.g.,haiku,sonnet).
If $ARGUMENTS is --help or missing --baseline, show usage and stop:
/bat-story-eval --baseline v6.6.1
/bat-story-eval --baseline v6.6.1 --agents gemini,claude
/bat-story-eval --baseline v6.6.1 --stories s01,s02
/bat-story-eval --baseline v6.6.1 --all-stories --agents claude --model haiku
Step 0: Triage (Diff Analysis + Custom Story Design)
0a. Compute Diff
cd /home/julien/github/ha-mcp/worktree/uat-stories
git diff <baseline>..HEAD -- src/ha_mcp/ --stat
git diff <baseline>..HEAD -- src/ha_mcp/ --name-only
Classify changed files:
- Tool modules (
tools/tools_*.py): specific tool implementations changed - Core code (
client/,server.py,errors.py,tools/util_helpers.py): affects all tools - Utilities (
utils/,resources/): may affect all tools - No src/ changes: only tests/docs/config — select 2 smoke-test stories
0b. Select Pre-built Stories
Skip if --stories or --all-stories was passed.
- Read the diff from 0a
- Read all story YAMLs in
tests/uat/stories/catalog/s*.yaml(title, description, prompt, setup) - For each story, reason about whether the diff could affect its outcome:
- What tools/code paths would this story exercise?
- Do any of those overlap with what changed?
- Rules:
- Story likely exercises changed code -> selected
- Core code changed (
client/,server.py,errors.py) -> all stories selected - No src/ changes -> 2 representative stories as smoke test
- Report which stories were selected and why (one sentence per story)
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 366 lines · 26 tokens per session scan A 8022d4d10acc
bat-story-eval is a skill published in the GitHub repository harry189/ha-mcp (0 stars, last pushed 1mo ago), licensed MIT. It adds 26 tokens to every session and 3,305 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. It is 91% identical to bat-story-eval, differing in 22 lines, and is treated as a copy.
Other skills, from other repositories
research-engineer
An uncompromising Academic Research Engineer. Operates with absolute scientific rigor, objective criticism, and zero flair. Focuses on theoretical correctness, formal verification, and optimal implementation across any required technology.
tika-eval-compare
Compare extracts from two Tika builds over a corpus to detect regressions in content, encoding, exceptions, and embedded-document handling. Use for "compare before/after extracts", "eval this change against the corpus".
neuron-evaluation-engineer
Create and run AI evaluations with datasets, assertions, and output drivers in Neuron AI. Use this skill whenever the user mentions evaluation, testing AI systems, creating evaluators, dataset-driven testing, assertion-based validation, or wants to measure AI system performance. Also trigger for tasks involving…
jetson-validate-image
Use after jetson-flash-image to run static BSP checks, on-target smoke/regression tests on a flashed DUT, or both. Not for build or flash steps. Triggers: validate bsp, on-target validation.
atmos-validation
Validate Atmos projects, components, arbitrary JSON Schema inputs, EditorConfig, and GitHub Actions; use affected-file selection and native CI annotations.
skill-benchmark
Benchmark AI skill effectiveness by measuring implementation quality against legacy constraints.