da-verify
Skill0 starsChanged 20 days agoMITView on GitHub
このリポジトリ自身の検証コマンドを実行し、根拠つきで報告する。作業完了を宣言する時・コミットする前・PR を出す前に使う。コマンドは推測せずプロファイルから解決し、リポジトリが禁止しているものは実行しない。
In this repository16 other files it gives its agents.
- AGENTS.mdAGENTS.md
- da-adr-figureSkill
- da-adrSkill
- da-demo-videoSkill
- da-design-reviewSkill
- da-fix-planSkill
- da-greptile-reviewSkill
- da-investigateSkill
- da-pr-describeSkill
- da-review-allSkill
- da-skills-auditSkill
- da-specSkill
- x-review-backendSkill
- x-review-frontendSkill
- x-review-infraSkill
- skill-nameSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 16
Stop ゲートの手動の経路でもある。dotagents-verify-gate.sh は両エージェントでターン終了時に同じチェックを走らせるが、終了を実際に拒めるのは Claude Code の Stop フックだけ。Cursor の stop …
- Very specific: line 111
Stop フックと同じコードで、プロファイルの順序、プロファイルの cwd、{files} の置換、forbidden による拒否、チェックごとのタイムアウト、全体の予算を扱う。報告するだけで何も触らない(試行回数も判定もハートビートも残さず、arm …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/da-verify — チェックを実行し、根拠を示す
Claude は作業が終わったように見えた時に止まる。実行できるチェックが無ければ判断材料はそれだけで、人間が検証ループ役になる。このスキルがそのチェックである。
このスキルはソースコードを変更しない。検証コマンドを実行し、結果を報告するだけ。
Stop ゲートの手動の経路でもある。dotagents-verify-gate.sh は両エージェントでターン終了時に同じチェックを走らせるが、終了を実際に拒めるのは Claude Code の Stop フックだけ。Cursor の stop フックはブロックできない。続行を促すメッセージを自動送信するだけで、回数にも上限がある。Cursor ではゲートは促しにすぎず、確かめるには /da-verify を明示的に実行する。同等だと思わない。
実行条件
| 条件 | 満たさない場合 |
作業ディレクトリが origin リモートを持つ git リポジトリ内にある | 止まって報告する。プロファイルはリモートで解決する |
dotagents のチェックアウトが特定できる(~/.claude/.dotagents-managed.json → repo) | 報告し、ゲートを arm せずにチェックを実行する。ゲートが無効だと書く |
| このリポジトリに合うプロファイルがある | 止まり、埋めるだけのプロファイルを渡す(下記)。コマンドを推測しない。見知らぬリポジトリででっち上げた npm test を走らせると、検証ツールは信頼を失う |
プロファイルが合わない時
止まるだけでは答えにならないので、次の一歩を手間なくする。
- リポジトリのリモートと、合うものが無いことを報告する。
- リポジトリ自身のマニフェストを読む。
package.jsonの scripts、Makefileのターゲット、justfile、pyproject.toml、CI ワークフロー。見つけたコマンドを出どころを引用して提案する。ファイルの記述を報告するのは推測ではない。頼まれずに実行するのが推測である。 - それを埋めた、保存するだけのプロファイルを出す。
// <dotagents>/profiles/<repo>.json — gitignored unless explicitly allowlisted
{
"$schema": "./_schema.json",
"match": { "remote": "<owner/repo, from git remote>" },
"checks": [
{ "id": "lint", "cmd": "<from scripts.lint>", "gate": true, "agent_may_run": true, "scope": "changed" },
{ "id": "typecheck", "cmd": "<from scripts.typecheck>", "gate": true, "agent_may_run": true },
{ "id": "unit", "cmd": "<from scripts.test>", "gate": true, "agent_may_run": true, "scope": "changed" }
]
}- 保存するまでこのリポジトリにゲートは無いとはっきり書く。Stop フックは動かず、赤で終わるターンを止めるものが無い。後で気づかれてはいけないコストである。
代わりに何かを実行しない。設定されたコマンドに辿れない緑はチェックが無いのと区別できず、止まるより悪い。
ワークフロー上の位置
| 上流 | このスキル | 下流 |
| 実装、または修正 | /da-verify | コミット、/da-review-all。ユーザーが打てば /da-pr-describe |
読むファイル
常に読む
| ファイル | 理由 |
合致する profiles/*.json | コマンドと、そのうち実行してよいもの |
条件つきで読む
| ファイル | 条件 |
${CLAUDE_SKILL_DIR}/reference/profile-authoring.md | プロファイルが合わず、書く時だけ |
レポートはユーザーが書いている言語で書く(不明なら日本語)。パス・識別子・コマンド・コード片・ログは原文のまま残す。
手順
Step 0. ゲートを arm する
<dotagents>/scripts/gate.sh armこれでこのリポジトリのターン終了ゲートが有効になる。arm しなければゲートは何もしない。質問に答えるだけのセッションが終わり際にテストを走らせないよう、スキルが arm するまで意図して止めてある。
セッションがコードを変えるなら arm する。読み取りだけの質問ならこの手順を飛ばして報告する。止めるものが無い。
dotagents のチェックアウトは ~/.claude/.dotagents-managed.json の repo に記録されている。
Step 1. プロファイルを解決する
git remote get-url origindotagents リポジトリで、match.remote がこの URL の部分文字列になるプロファイルを探す。プロファイルは <repo>/profiles/ にある。
合わなければ、実行条件に従って止まる。
Step 2. 実行するものを先に報告する
何か実行する前に、チェック id・コマンド・実行してよいかの表をユーザーに見せる。プロファイルの誤りが、分かりにくい失敗 1 回ではなく一目で分かる。
Step 3. 実行してよいチェックを実行する
手で回さず、ゲート経由で実行する。
<dotagents>/scripts/gate.sh verify --json # or without --json to read it yourselfStop フックと同じコードで、プロファイルの順序、プロファイルの cwd、{files} の置換、forbidden による拒否、チェックごとのタイムアウト、全体の予算を扱う。報告するだけで何も触らない(試行回数も判定もハートビートも残さず、arm も要らない)。実装中に何度実行してもよい。
ここでループを再実装しない。同じ規則の 2 実装はいずれ食い違う。以前この手順を文章で書いた時、{files} を git diff --name-only --diff-filter=d HEAD から作ると書き、未追跡ファイルを含めるゲートと食い違って、新規ファイルだけのターンでチェックを飛ばしていた。
失敗したら止まって報告する。残りのチェックに進まない。verify は最初の失敗で止まり、その失敗がユーザーに要る情報である。
Step 4. 実行してはいけないものは委ねる
agent_may_run: false のチェックごとに:
- 実行しない。リポジトリが禁じているか、セッションが使うべきでない資源や認証情報を使うためのフラグである。
- 正確なコマンドと
delegate_reasonをユーザーに見せ、実行を頼む。 - 出力を待つ。ゲートになっているチェックが残る間は進まず、成功も報告しない。「ユーザーに typecheck を頼んだ」は結果ではない。
- 報告を受けたら、ゲートが見えるよう記録する。
ファイルを手で書かない。ゲートは arm したディレクトリを中に保存したリポジトリルートで見つけるので、手書きのパスはゲートが見ない場所に落ちうる。<dotagents>/scripts/gate.sh record <check-id>
Step 5. 根拠つきで報告する
成功を主張せず、根拠を書く。コマンドと終了コードの無い「通った」は、このスキルが防ぐためにあるものそのもの。
## 検証結果
| チェック | コマンド | 終了コード | 実行者 | 出力(末尾) |
|---|---|---|---|---|
| lint | `pnpm run lint:fix` | 0 | エージェント | … |
| typecheck | `NODE_OPTIONS=… pnpm typecheck` | 0 | **ユーザー** | … |
| unit | `pnpm exec vitest run src/foo.spec.ts` | 1 | エージェント | 1 件失敗 |
**未実行:** sql(scope: changed、対象ファイルの変更なし)実行していないものは**「未実行」**と書く。「通るはず」「たぶん大丈夫」とは書かない。実行していないこと自体が所見である。
Step 6. すべて緑ならゲートを解除する
<dotagents>/scripts/gate.sh disarm赤が残る間は arm したままにする。それが目的である。チェックが通るか作業を放棄したら disarm する。もう変更しないリポジトリで arm したままだと理由なくターンを止め、理由なく止めるゲートは切られる。
gate.sh status で、このリポジトリが arm されているかと記録済みの内容が分かる。
完了条件
- ゲートになっているチェックがすべて、根拠つきで緑か、失敗・未実行と明示されている
forbiddenにあるものを何も実行していないagent_may_run: falseのチェックを、ユーザー自身の出力なしに通過と記録していない- すべて通ったならゲートを disarm し、赤があるなら arm したまま
次に
すべて緑 → コミットし、/da-review-all。赤がある → 直して /da-verify を再実行する。同じチェックが 2 回続けて落ちたら、継ぎ当てをやめる。試したことと失敗した理由を書き出し、/clear し、それをプロンプトに入れて始め直す。修正を重ねると失敗した手がコンテキストに積もり、試すたびに悪くなる。
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

