Borrowing it
Nothing to install: this file belongs to ingen084/KyoshinEewViewerIngen. 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/ingen084/KyoshinEewViewerIngen/develop/.claude/skills/kevi-ui-tests/SKILL.mdgit clone --depth 1 https://github.com/ingen084/KyoshinEewViewerIngenWrote 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/ingen084/kyoshineewvieweringen/kevi-ui-tests)<a href="https://agentmods.dev/skills/ingen084/kyoshineewvieweringen/kevi-ui-tests"><img src="https://agentmods.dev/badge/skills/ingen084/kyoshineewvieweringen/kevi-ui-tests/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/ingen084/kyoshineewvieweringen/kevi-ui-tests"><img src="https://agentmods.dev/badge/skills/ingen084/kyoshineewvieweringen/kevi-ui-tests.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.00133 | $0.02491 |
| Opus 5.5 | $0.00053 | $0.00996 |
| Sonnet 5.5 | $0.00027 | $0.00498 |
| Haiku 4.5 | $0.00013 | $0.00249 |
Grade A, and why
kevi-ui-tests 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 today.
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 — 76 lines — stays where its author put it; the contents beside it link to each section on GitHub.
KEViのUIテスト
Instructions
対象
実際のAXAML画面と通常のViewModelをAvalonia Headlessで操作する、小規模な回帰テスト。コンストラクターを省略したりprivateフィールドを書き換えたりしない。対象は初期設定ウィザード、テーマ編集画面、緊急地震速報パネル、災危通報の詳細表示、設定画面からの自動更新、電文の受信 (回線断・dmdataの障害からの復旧)。
自動更新のテストは、更新確認からLinux向けの自己更新処理 (展開・実行権限の付与・旧バージョンの終了を待って置き換え、起動するスクリプト) までを実際に動かす。旧バージョンのプロセスにはsleepを使い、アプリケーションの終了だけを差し替える。単一ファイル形式の実行ファイルでの更新は tests/IntegrationTest の結合テストで確認する。
実行
bash tests/UiTests/run.sh # Linux (.NET 10 SDK・Python 3・iproute2・util-linux が必要)
pwsh tests/UiTests/run.ps1 # Windows (WSL の Ubuntu-22.04 で run.sh を動かす)
pwsh tests/UiTests/run.ps1 -Filter 'FullyQualifiedName~TelegramRecovery' # 一部だけ
--filter/-Filterは dotnet test のフィルタ。指定した場合は通信禁止の失敗検査を省くので、仕上げには全体を実行する--skip-build/-SkipBuildはビルド済みの同じソースを再検査するときだけ使う- WSL 側の
dotnetが .NET 10 でない場合は--dotnet/-DotnetPathで実行ファイルを指定する - 結果は
tmp/ui-tests/<日時>-<PID>/の TRX とaudit/network-audit.json - 通常の
dotnet testで直接実行すると隔離の確認で失敗する。条件を満たさないときに黙ってスキップはしない - CI は
.github/workflows/ui-tests.yml(pull_request で Linux の1ジョブ)。macOS のジョブは追加しない - Claude から実行するときは PowerShell ツールで run.ps1 を呼ぶ。Bash ツール (Git Bash) から
wsl.exeに/mnt/...などのパスを渡すとC:/Program Files/Git/mnt/...に変換されるため、MSYS_NO_PATHCONV=1を付ける
通信禁止の要点
- テスト対象は、ループバックしかない別のLinuxネットワーク名前空間で実行する。UIテストで設定を有効にしても外部へ接続できない
- 専用のApplicationは共通スタイルと画面だけを初期化する。本番のサービス登録・受信開始・Sentry初期化は呼ばない。HOMEは実行ごとの一時プロファイル
- HTTPはテスト用のハンドラー (
FixtureHttpHandler、電文のテストではSimulatedTelegramNetwork) が応答を生成する。未登録の要求・DNS解決・IPソケット接続は監査 (OfflineNetworkAttribute) で検出し、アプリが例外を捕捉してもテストを失敗させる。テストの前後に発生した要求もアセンブリ終了時に検査する - 全体の実行では、通常のテストのあとに「未登録のテスト用HTTP要求」「直接作成したHttpClient」「DNS」「IPソケット」の4つの失敗検査を各1プロセスで実行し、監査で失敗することを確かめる
仕組みの詳細 (名前空間の作り方、EventSource、子プロセスの扱い) は references/isolation.md。
テストを追加するとき
[AvaloniaFact]で実際の画面と通常のViewModelを作る。画面は必ず finally で閉じ、静的なテーマ選択等も復元する- 実時間のタイマーやバックグラウンド処理は
Ui.WaitUntilAsyncで待つ (UIスレッドのジョブとアニメーションを進めながら待つ)。クリックはUi.Clickを使う (ヘッドレス環境では表示が変わった直後のボタンが反応しないことがあり、押されるまで押し直す) - 数秒〜数分後に動くタイマーは、本体側で
TimeProviderを受け取れるようにし、ManualTimeProviderで進める。タイマーは非同期の処理のあとに予約されることがあるため、まとめて進めずに条件を満たすまで1秒ずつ進める - HTTPが必要なサービスには
new HttpClient(new FixtureHttpHandler())を渡して応答を事前登録する。HTTP以外の入力は保存済みデータ・模擬受信・固定時計に差し替える - テストデータのURLは名前解決できない改変ホスト (
*.fixture.invalidなど。CLAUDE.md の「テストデータのURL規則」) - 通信設定をOFFにするだけで禁止を実現しない。サービスを追加して要求が漏れると、名前空間で外部接続が止まり、監査でテストが失敗する
- 原版の観測結果を期待値に使う場合も、維持したい仕様かを確認する。調査時の不具合を正解として固定しない
What ships with it
1 file 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.
- today First seen · 76 lines · 133 tokens per session scan A 739f49944fdf
kevi-ui-tests is a skill published in the GitHub repository ingen084/KyoshinEewViewerIngen (197 stars, last pushed yesterday), licensed MIT. It adds 133 tokens to every session and 2,491 once invoked, about $0.0005 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-11-06.
kevi-ui-tests compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| kevi-ui-testsingen084/KyoshinEewViewerIngen | Skill | 197 | yesterday | MIT | A | 133 | Claude Code |
| field-testcyanheads/earthquake-mcp-server | Skill | 3 | 2d ago | Apache-2.0 | D | 106 | Claude Code |
| verify-omnigentomnigent-ai/omnigent | Skill | 11k | yesterday | Apache-2.0 | A | 100 | Claude Code, Codex |
| test-masterJeffallan/claude-skills | Skill | 12k | 7d ago | MIT | A | 104 | Claude Code |
| eval-dataset-designbojieli/ai-agent-book | Skill | 57k | 29d ago | Apache-2.0 | A | 138 | Claude Code, Codex |
| dogfoodcallstack/agent-device | Skill | 5.3k | yesterday | MIT | A | 55 | Claude Code |
| test-warp-uiwarpdotdev/warp | Skill | 66k | yesterday | AGPL-3.0 | A | 55 | Claude Code |