vault-mcp: Skill for Claude Code

.claude/skills/phase-gate/SKILL.md

phase-gate is a skill for Claude Code from andreymudri/vault-mcp. It costs 92 tokens per session (2,974 once invoked), scanned D, original, MIT.

An adversarial review gate for checking a branch, worktree, or range of code changes before a development phase is marked complete. It reviews changes from four angles, challenges findings and claimed fixes, and records the result in a machine-readable file.

In plain words
What is it for?
Use it to review a diff against a stated specification, run bounded tests, verify that fixes matter, and produce a gate result with findings and verdicts.
Why use it?
It reduces the risk of approving work based only on an agent’s summary or a test suite that did not actually catch the original problem.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: mentions subagents.

This is andreymudri/vault-mcp's own configuration. It tells Claude Code how to work on vault-mcp itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything vault-mcp configures →

Reuse

Borrowing it

Nothing to install: this file belongs to andreymudri/vault-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.

Copy the file
curl -O https://raw.githubusercontent.com/andreymudri/vault-mcp/main/.claude/skills/phase-gate/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/andreymudri/vault-mcp

Made for: Claude Code.

Wrote 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.

agentmods badge for phase-gate

README.md
[![agentmods](https://agentmods.dev/badge/skills/andreymudri/vault-mcp/phase-gate/github.svg)](https://agentmods.dev/skills/andreymudri/vault-mcp/phase-gate)
Your own site
<a href="https://agentmods.dev/skills/andreymudri/vault-mcp/phase-gate"><img src="https://agentmods.dev/badge/skills/andreymudri/vault-mcp/phase-gate/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.

agentmods 80×15 button for phase-gate

Your own site · 80×15
<a href="https://agentmods.dev/skills/andreymudri/vault-mcp/phase-gate"><img src="https://agentmods.dev/badge/skills/andreymudri/vault-mcp/phase-gate.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 92 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,974 The whole file, excluding the scripts and references it only reads on demand.
Security scan D 2 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00092 $0.02974
Opus 5.5 $0.00037 $0.01190
Sonnet 5.5 $0.00018 $0.00595
Haiku 4.5 $0.00009 $0.00297

Measured 2mo ago against content hash a2db8bf212d8, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade D, and why

phase-gate scanned grade D with 2 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 2mo 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.

Asks for rootmediumPrivilege escalation

A mod that escalates privileges can change anything on the machine, not only the project.

advance that sudo hangs, that `/tmp` is near a quota, or that CI does not cover Windows changes

Recursive force deletehighDestructive command

rm -rf with a variable or a broad path is one typo away from removing the wrong tree.

cleanup() { git worktree prune; rm -rf "$SCRATCH"; }
.claude/skills/phase-gate/SKILL.md · 235 lines

How it starts

The opening of the file, as written. The whole thing — 235 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Phase gate

A gate that rubber-stamps is worse than no gate: it converts "unreviewed" into "approved" at no cost. Everything below exists to make PASS expensive.

Inputs

Input Meaning If missing
TARGET branch, worktree path, or diff range (v0.1.1..HEAD) ask; never guess
SPEC what this phase was supposed to do ask; a gate with no spec can only check for bugs, not for done
BUDGET severity budget, e.g. high=0, medium<=3 default high=0; state the default you used

Record all three verbatim in the gate record. A gate whose scope is reconstructed afterwards is a gate that can be argued with.

Non-negotiables

These are not style preferences. Each one is here because skipping it has already produced a wrong PASS.

  1. An agent's summary is not evidence. Read the full diff yourself before any verdict. A subagent reporting "fixed, tests pass" is a claim, not a result.
  2. Never declare PASS from a self-report. PASS requires: you read the diff, the suite ran green under an explicit timeout, and every finding has a refutation verdict.
  3. A test that never failed proves nothing. See mutation proof (step 4).
  4. On any doubt about a destructive suggestion, don't suggest it. Verify the target is what you think it is first — see resource guards (step 5).
  5. Never print a secret. Not to debug, not to verify. Verify by length or truncated hash. Never invoke a credential helper with get. If one is exposed: stop, say so, tell the user to rotate it now.

0. Preflight

Run the env-preflight skill if it has not run this session. The gate runs commands; knowing in advance that sudo hangs, that /tmp is near a quota, or that CI does not cover Windows changes what the lenses can conclude.

1. Read the diff yourself

timeout 60 git diff --stat <TARGET>
timeout 120 git diff <TARGET>

Build a file-by-file table: file | what changed | how it is verified (test name or command). Any row whose third column is empty is itself a finding — untested change, severity at least medium.

Read the full file on GitHub · 235 lines

Changes

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.

  1. 2mo ago First seen · 235 lines · 92 tokens per session scan D a2db8bf212d8

Subscribe to this mod's changes

phase-gate is a skill published in the GitHub repository andreymudri/vault-mcp (0 stars, last pushed 26d ago), licensed MIT. It adds 92 tokens to every session and 2,974 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it D with 2 findings (asks for root, recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

api-linter

MCP definition linter rules reference. Use when bun run lint:mcp or bun run devcheck reports a lint error or warning (format-parity, schema-is-object, name-format, server-json-, etc.) and you need to understand the rule, its severity, and how to fix it. Every rule ID the linter emits has an entry in this doc.

cyanheads/obsidian-mcp-server · 86 tokens

release-pr-review

Review pass on an open release PR (release/ → main) — the step between git-wrapup and release-and-publish when a project releases in gated release PR mode. Reads the PR's commit range through the code-simplifier lens plus a correctness review, verifies whatever an automated reviewer left on the PR, lands fixes as…

cyanheads/obsidian-mcp-server · 136 tokens

code-simplifier

Cleanup pass that edits the working tree — over a session's uncommitted changes, or a named path or whole codebase. Reads git diff (or the named target) and simplifies, consolidates, and aligns code with the existing codebase — modernize syntax, cut unnecessary complexity and slop, consolidate duplicated logic, catch…

cyanheads/obsidian-mcp-server · 160 tokens

pr-reply

Answer reviewers on your own pull requests in other people's repos: find threads where the ball is on your side, tell humans from bots, do exactly what was asked and reply with evidence. Use at the start of any GitHub session or on a new-review alert. Triggers: /pr-reply, /prr, answer the reviewers, who is waiting on…

tonydzi/second-brain-starter-kit · 79 tokens

pkm-session-end

Use when wrapping up a work session — creates devlog entry, captures undocumented decisions/research/debugging, audits link health of session work, and updates project index. Primarily used via the pkm-capture agent.

AdrianV101/obsidian-pkm-plugin · 49 tokens

pkm-write

Use when writing to the vault — creating new notes (vaultwrite), editing existing notes (vaultedit, vaultappend, vaultupdatefrontmatter). Handles duplicate checking, link discovery, annotations, and index updates for new notes. Provides guidelines for modifications.

AdrianV101/obsidian-pkm-plugin · 54 tokens