Borrowing it
Nothing to install: this file belongs to Kewton/CommandMate. 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/Kewton/CommandMate/main/.agents/skills/cmate-verify/SKILL.mdgit clone --depth 1 https://github.com/Kewton/CommandMateWrote 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/kewton/commandmate/cmate-verify)<a href="https://agentmods.dev/skills/kewton/commandmate/cmate-verify"><img src="https://agentmods.dev/badge/skills/kewton/commandmate/cmate-verify/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/kewton/commandmate/cmate-verify"><img src="https://agentmods.dev/badge/skills/kewton/commandmate/cmate-verify.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium MCP Rug Pull · line 137 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
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.00106 | $0.08199 |
| Opus 5.5 | $0.00042 | $0.03280 |
| Sonnet 5.5 | $0.00021 | $0.01640 |
| Haiku 4.5 | $0.00011 | $0.00820 |
Grade A, and why
cmate-verify 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 27d 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 — 416 lines — stays where its author put it; the contents beside it link to each section on GitHub.
cmate-verify
「このリポジトリで何が通れば合格か」を .commandmate/verify.yaml に宣言し、
実 exit code で 判定するランナー。CommandMate 本体の検証ゲート
(commandmate verify <worktree-id> / commandmate wait <worktree-id> --verify)の
代替ではなく、verify.yaml の起案(手順 1)と、CommandMate が無い環境でも bash と git
だけで同じ判定を出すスタンドアロンランナー(手順 2)の 2 役である。
正準仕様は CommandMate リポジトリの docs/design/verification-config.md。
本体のローダ(src/lib/verification/verify-config.ts)は同じ仕様を一般的な YAML パーサで
実装するので、この Skill で書いた verify.yaml はそのまま引き継げる。
なぜ exit code か:
cmd | grep ...は$?を grep に渡して非ゼロ終了を隠す。vitest は 全テスト緑でも Unhandled Rejection で exit 1 を出しうるので、出力を grep した要約は それを PASS と報告してしまう。ゲートは必ずsh -c "$cmd" > log 2>&1で走らせ$?を直接読む。
構成
cmate-verify/
├── SKILL.md
└── scripts/
├── verify-run.sh # ゲート実行ランナー(bash 3.2 互換)
└── tests/
├── run-tests.sh # fixture ベーステスト(bash + git だけで動く)
└── fixtures/*.yaml
scripts/tests/run-tests.sh は vitest に依存しない。Node の無い導入先でも
bash scripts/tests/run-tests.sh だけで検証できる(CommandMate 本体では
tests/unit/skills/cmate-verify/ の薄いラッパが npm run test:unit から同じ suite を回す)。
install 先は .claude/skills/cmate-verify/ と .agents/skills/cmate-verify/ の両方で、
中身は byte-identical である(Claude は前者、Codex と Command Code は後者を読む)。以下のコマンド例の
<skills-root> は、worktree の root(git rev-parse --show-toplevel)の下の .agents/skills と
.claude/skills のうち cmate-verify/SKILL.md が在る方である。どちらから実行しても同じものが走る。
手順 1: init(.commandmate/verify.yaml が無い場合)
コードを書かず、リポジトリをスキャンしてゲートを起案し、ユーザーの確認を得てから書き出す。 検出優先順位は次のとおり。上位が見つかったら下位は補助として扱う。
.github/workflows/*.ymlの CI ジョブ — そのリポジトリにおける「何が通れば合格か」の 既存の定義。run:の各ステップが第一候補。package.jsonのscripts—lint/test/test:unit/typecheck/build系。Makefileのターゲット —make lint/make test等。- 言語マニフェスト —
Cargo.toml(cargo clippy/cargo test)、pyproject.toml(ruff/pytest/mypy)、go.mod(go vet/go test ./...)等。
What ships with it
57 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.
- scripts/tests/fixtures/all-pass.yaml 299 B
- scripts/tests/fixtures/bad-anchor.yaml 55 B
- scripts/tests/fixtures/bad-block-scalar.yaml 57 B
- scripts/tests/fixtures/bad-duplicate-id.yaml 86 B
- scripts/tests/fixtures/bad-env-clean-ignore-dotdot.yaml 96 B
- scripts/tests/fixtures/bad-env-clean-ignore-empty-item.yaml 96 B
- scripts/tests/fixtures/bad-env-clean-ignore-scalar.yaml 96 B
- scripts/tests/fixtures/bad-env-clean-ignore-slash.yaml 101 B
- scripts/tests/fixtures/bad-env-clean-ignore-too-many.yaml 253 B
- scripts/tests/fixtures/bad-env-clean.yaml 81 B
- scripts/tests/fixtures/bad-flaky-alone.yaml 71 B
- scripts/tests/fixtures/bad-flaky-type.yaml 89 B
- scripts/tests/fixtures/bad-flow.yaml 52 B
- scripts/tests/fixtures/bad-gate-key.yaml 64 B
- scripts/tests/fixtures/bad-indent.yaml 50 B
- scripts/tests/fixtures/bad-invalid-id.yaml 57 B
- scripts/tests/fixtures/bad-missing-command.yaml 28 B
- scripts/tests/fixtures/bad-missing-id.yaml 39 B
- scripts/tests/fixtures/bad-mutex-length.yaml 126 B
- scripts/tests/fixtures/bad-mutex-name.yaml 69 B
- scripts/tests/fixtures/bad-no-gates.yaml 43 B
- scripts/tests/fixtures/bad-no-version.yaml 38 B
- scripts/tests/fixtures/bad-option-key.yaml 75 B
- scripts/tests/fixtures/bad-option-value.yaml 89 B
- scripts/tests/fixtures/bad-require-commit.yaml 81 B
- scripts/tests/fixtures/bad-reserved-env-clean.yaml 57 B
- scripts/tests/fixtures/bad-reserved-id.yaml 61 B
- scripts/tests/fixtures/bad-retry-range.yaml 68 B
- scripts/tests/fixtures/bad-retry-type.yaml 70 B
- scripts/tests/fixtures/bad-tab.yaml 46 B
- scripts/tests/fixtures/bad-timeout-range.yaml 71 B
- scripts/tests/fixtures/bad-timeout-type.yaml 69 B
- scripts/tests/fixtures/bad-version.yaml 49 B
- scripts/tests/fixtures/default-options.yaml 163 B
- scripts/tests/fixtures/env-clean-ignore-block.yaml 385 B
- scripts/tests/fixtures/env-clean-ignore-empty.yaml 282 B
- scripts/tests/fixtures/env-clean-ignore-flow.yaml 208 B
- scripts/tests/fixtures/mutex-flaky.yaml 535 B
- scripts/tests/fixtures/mutex-short.yaml 444 B
- scripts/tests/fixtures/mutex.yaml 511 B
- scripts/tests/fixtures/no-log-tail.yaml 341 B
- scripts/tests/fixtures/one-fail.yaml 428 B
- scripts/tests/fixtures/parsing.yaml 333 B
- scripts/tests/fixtures/require-commit.yaml 383 B
- scripts/tests/fixtures/require-env-clean.yaml 462 B
- scripts/tests/fixtures/retry-flaky-pass.yaml 516 B
- scripts/tests/fixtures/retry-flaky.yaml 712 B
- scripts/tests/fixtures/retry-hard-fail.yaml 605 B
- scripts/tests/fixtures/retry-thrice.yaml 759 B
- scripts/tests/fixtures/retry-timeout.yaml 385 B
- scripts/tests/fixtures/side-effect.yaml 201 B
- scripts/tests/fixtures/silent-fail.yaml 553 B
- scripts/tests/fixtures/timeout.yaml 585 B
- scripts/tests/fixtures/workdir-lifetime.yaml 3.1 KB
- scripts/tests/fixtures/worktree-env.yaml 538 B
- scripts/tests/run-tests.sh 61 KB runs code
- scripts/verify-run.sh 44 KB runs code
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.
- 27d ago Changed · +2 lines 33c33e7a8d14
- 1mo ago First seen · 414 lines · 106 tokens per session scan A ec9c55c0cefc
cmate-verify is a skill published in the GitHub repository Kewton/CommandMate (44 stars, last pushed today), licensed MIT. It adds 106 tokens to every session and 8,199 once invoked, about $0.0004 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
e2e
Selects and runs the appropriate AgentsMesh end-to-end suite for Web, Desktop, MCP, or iOS, including worktree-specific environment setup and browser-level verification. Use when a change needs E2E coverage, a user asks to execute or diagnose an E2E test, or a cross-service workflow must be verified against the real…
component-fixtures
Use when creating or updating component fixtures for screenshot testing, or when designing UI components to be fixture-friendly. Covers fixture file structure, theming, service setup, CSS scoping, async rendering, and common pitfalls.
unit-tests
Use when running unit tests in the VS Code repo. Covers the runTests tool, scripts/test.sh (macOS/Linux) and scripts/test.bat (Windows), and their supported arguments for filtering, globbing, and debugging tests.
update-screenshots
Download screenshot baselines from the latest CI run and commit them. Use when asked to update, accept, or refresh component screenshot baselines from CI, or after the screenshot-test GitHub Action reports differences. This skill should be run as a subagent.
verify
Exercise the real app/API/CLI and collect observable evidence; tests alone do not count as end-to-end verification.
live-preview
Mid-build visual verification loop. Takes screenshots of components during construction, not just after. Catches visual regressions and invisible features before they compound. Requires Playwright or similar screenshot tool.