Borrowing it
Nothing to install: this file belongs to ayutaz/piper-plus. 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/ayutaz/piper-plus/dev/.claude/skills/check-runtime-parity/SKILL.mdgit clone --depth 1 https://github.com/ayutaz/piper-plusWrote 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/ayutaz/piper-plus/check-runtime-parity)<a href="https://agentmods.dev/skills/ayutaz/piper-plus/check-runtime-parity"><img src="https://agentmods.dev/badge/skills/ayutaz/piper-plus/check-runtime-parity/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/ayutaz/piper-plus/check-runtime-parity"><img src="https://agentmods.dev/badge/skills/ayutaz/piper-plus/check-runtime-parity.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00078 | $0.01562 |
| Opus 5.5 | $0.00031 | $0.00625 |
| Sonnet 5.5 | $0.00016 | $0.00312 |
| Haiku 4.5 | $0.00008 | $0.00156 |
Grade A, and why
check-runtime-parity 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 14d 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.
How it starts
The opening of the file, as written. The whole thing — 120 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ランタイム推論 parity チェック
src/python/piper_train/export_onnx.py か src/python/piper_train/vits/models.py
の VitsModel.infer (ONNX グラフ入出力定義) を変更した PR で、他 5 ランタイムの
inference path も同じ変更を反映しているかを PR 提出前に 確認する。
何をチェックするか
PR #391 → PR #443 の事故パターン:
- PR #391 は Python ランタイムだけ
speaker_embedding形状を修正 - 他 5 ランタイム (Rust / Go / C# / C++ / WASM 推論) は古い形状のまま放置
- PR #443 で気付くまで silent regression 状態
このパターンを検出するため、カノニカルファイル が触られている PR で 他ランタイムの inference path も同 PR で触れているかを確認する:
| Canonical (Python) | 対応する他ランタイム file |
|---|---|
src/python/piper_train/export_onnx.py |
(ONNX export 自体は Python 専用、ただし出力スキーマを変える場合は下記の loader も更新必要) |
src/python/piper_train/vits/models.py:VitsModel.infer |
src/python_run/piper_plus/voice.py (Python runtime) |
ONNX グラフ入出力名 (speaker_embedding / prosody_features / language_id) |
src/rust/piper-core/src/engine.rs (Rust) |
| 同上 | src/go/piperplus/engine.go / synthesize.go (Go) |
| 同上 | src/csharp/PiperPlus.Core/Inference/PiperSession.cs (C#) |
| 同上 | src/cpp/piper.cpp / main.cpp (C++) |
| 同上 | src/wasm/openjtalk-web/src/index.js または piper-wasm (WASM) |
実行手順
1. canonical ファイルが触られているか確認
CANONICAL_TOUCHED=$(git diff --name-only origin/dev...HEAD | \
grep -E '^(src/python/piper_train/(export_onnx|vits/models)\.py)$')
if [ -z "$CANONICAL_TOUCHED" ]; then
echo "canonical inference file は変更されていない — このチェックは skip 可"
exit 0
fi
echo "Canonical 変更検出: $CANONICAL_TOUCHED"
2. 他 5 ランタイムの inference path も触られているか確認
RUNTIME_FILES=(
"src/python_run/piper_plus/voice.py"
"src/rust/piper-core/src/engine.rs"
"src/go/piperplus/engine.go"
"src/go/piperplus/synthesize.go"
"src/csharp/PiperPlus.Core/Inference/PiperSession.cs"
"src/cpp/piper.cpp"
"src/cpp/main.cpp"
"src/wasm/openjtalk-web/src/index.js"
)
echo "=== 他ランタイム inference path の touch 状況 ==="
for f in "${RUNTIME_FILES[@]}"; do
if git diff --name-only origin/dev...HEAD | grep -q "^${f}$"; then
echo " TOUCHED $f"
else
echo " UNTOUCHED $f ← 追随必要かもしれない"
fi
done
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.
- 14d ago Changed · +2 lines 1cb1b4da8d1e
- 2mo ago First seen · 118 lines · 78 tokens per session scan A 262e28f19092
check-runtime-parity is a skill published in the GitHub repository ayutaz/piper-plus (239 stars, last pushed today), licensed MIT. It adds 78 tokens to every session and 1,562 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
adk-go-self-review
Review an ADK Go change the way a maintainer will — a fresh-context pass over the whole diff, five lenses (correctness and tests, scope, simplicity, style, adk-python parity), and the mutation check that proves your tests pin the change. Use before opening a PR, before any later push that changes code, and when asked…
adversarial-reviewer
Stress-test a code change for concrete correctness defects, unsafe assumptions, and failure modes. Use when the user explicitly asks for an adversarial review, a deep bug hunt, or to tear a change apart, or to check your own change before submitting it. Do not use for ordinary review, style feedback, or general…
go-testing
Trigger: Go tests, go test coverage, Bubbletea teatest, golden files. Apply focused Go testing patterns.
brooks-sweep
Full-sweep mode: runs a unified analysis across all quality dimensions — code decay, architecture, tech debt, and test quality — then applies fixes directly to the codebase. Safe changes are auto-applied; risky changes are confirmed before execution. Drawing on twelve classic engineering books. Triggers when: user…
plugin-review
Review plugin quality with tiered checks and dependency scoping. Use for PR and pre-release audits.
audit-ci
Run and analyze Elements cold CI performance profiles and propose evidence-backed build, test, lint, and dependency-graph improvements. Use whenever asked to profile or benchmark pnpm run ci, rerun ci:profile, create a CI performance audit, compare CI timings, find bottlenecks or the completion path, investigate a CI…