Change Verification Gate
fengshao1227/ccg-workflow
Analyzes a code diff for documentation sync, test coverage and impact scope, warning when docs or tests lag behind a design-level change or a large edit.
Code review for py4vasp changes. An agent skill from vasp-dev/py4vasp.
$ npx skills add vasp-dev/py4vasp --skill review-py4vasp -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install vasp-dev/py4vasp review-py4vasp --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/vasp-dev/py4vasp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/review-py4vasp .claude/skills/review-py4vasp && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "review-py4vasp" agent skill from https://github.com/vasp-dev/py4vasp/tree/master/.claude/skills/review-py4vasp into .claude/skills/review-py4vasp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-py4vasp", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/vasp-dev/py4vasp/tree/master/.claude/skills/review-py4vaspType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add vasp-dev/py4vasp --skill review-py4vasp -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install vasp-dev/py4vasp review-py4vasp --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vasp-dev/py4vasp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/review-py4vasp .agents/skills/review-py4vasp && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "review-py4vasp" agent skill from https://github.com/vasp-dev/py4vasp/tree/master/.claude/skills/review-py4vasp into .agents/skills/review-py4vasp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-py4vasp", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vasp-dev/py4vasp --skill review-py4vasp -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install vasp-dev/py4vasp review-py4vasp --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vasp-dev/py4vasp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/review-py4vasp .cursor/skills/review-py4vasp && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "review-py4vasp" agent skill from https://github.com/vasp-dev/py4vasp/tree/master/.claude/skills/review-py4vasp into .cursor/skills/review-py4vasp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-py4vasp", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/vasp-dev/py4vasp.git --path .claude/skills/review-py4vasp--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add vasp-dev/py4vasp --skill review-py4vasp -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install vasp-dev/py4vasp review-py4vasp --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vasp-dev/py4vasp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/review-py4vasp .gemini/skills/review-py4vasp && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "review-py4vasp" agent skill from https://github.com/vasp-dev/py4vasp/tree/master/.claude/skills/review-py4vasp into .gemini/skills/review-py4vasp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-py4vasp", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install vasp-dev/py4vasp review-py4vaspInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add vasp-dev/py4vasp --skill review-py4vasp -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/vasp-dev/py4vasp.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/review-py4vasp .github/skills/review-py4vasp && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "review-py4vasp" agent skill from https://github.com/vasp-dev/py4vasp/tree/master/.claude/skills/review-py4vasp into .github/skills/review-py4vasp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-py4vasp", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vasp-dev/py4vasp --skill review-py4vasp -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install vasp-dev/py4vasp review-py4vasp --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vasp-dev/py4vasp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/review-py4vasp .opencode/skills/review-py4vasp && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "review-py4vasp" agent skill from https://github.com/vasp-dev/py4vasp/tree/master/.claude/skills/review-py4vasp into .opencode/skills/review-py4vasp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-py4vasp", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
review-py4vaspCode review for py4vasp changes. An agent skill from vasp-dev/py4vasp.
Review Py4vasp is an agent skill from vasp-dev/py4vasp. Code review for py4vasp changes. Use when asked to review, code-review, or critique py4vasp code, a branch, or a diff. Does the usual bug / edge-case review AND enforces four py4vasp-specific rules: exceptions come from py4vasp.exception, user selections use select.Tree / index.Selector, public methods have numpy-style docstrings with runnable doctest examples, and tests give 95% coverage. Runs doctests and coverage to substantiate findings, then reports via the ReportFindings tool.
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `review.py`).
It sits in Development, covering Code review and Technical documentation. It works with NumPy. The repository describes itself as: Python interface for VASP. The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 83a1168. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonpytestuvFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Review Py4vasp loads about 1.6k tokens when it runs. Until then it costs about 126 tokens; SKILL.md has 790 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from vasp-dev/py4vasp at commit 83a1168, republished under its Apache-2.0 licence (© vasp-dev). 790 words, ~1,611 tokens.
.claude/skills/review-py4vasp/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Standalone reviewer for the changes on the current branch (working tree +
commits) relative to master. It combines a normal correctness review with
four py4vasp house rules, and it runs the doctests and coverage rather than
guessing. Evidence is gathered by .claude/skills/review-py4vasp/review.py;
you read that evidence, read the diff, and file findings with ReportFindings
(most-severe first). Paths below are relative to the repo/worktree root.
Run it with the venv interpreter (it needs pytest-cov, which the system
python lacks):
.venv/Scripts/python.exe .claude/skills/review-py4vasp/review.pyPass a different base ref as the first arg if needed (... review.py main).
The driver prints five sections: changed files; coverage of each changed src
module with uncovered line numbers; doctest pass/fail for those modules; a
raise-convention scan; and selection-API hints. It takes ~15 s (a coverage run
over the touched test files). If a changed src module has no auto-mapped test
file, the driver says so — locate and run its tests manually (Step 3).
Read the diff alongside the driver output and judge each rule. The driver gives you leads; you decide what is a finding.
Exceptions come from py4vasp.exception. The contract (see the
exception.py module docstring): a py4vasp exception means the user made a
mistake; any other exception is a bug to report. So user-facing code must
raise a Py4VaspError subclass (IncorrectUsage, NoData, DataMismatch,
NotImplemented, …), not a bare ValueError/KeyError/RuntimeError.
Section 4 lists every raise X in changed src where X is not
exception.*. Legit exceptions (not findings): re-raising a caught error
(raise err), and framework code — src/py4vasp/_sphinx/ (docutils
SkipNode) and cli.py (click errors). Flag the rest.
User selections use select.Tree / index.Selector. If a method lets
the user pick among options, the argument is named selection and is parsed
with py4vasp._util.select.Tree.from_selection(...) so every quantity
behaves consistently. When those selections index into an array, extraction
goes through py4vasp._util.index.Selector. Section 5 shows where the changed
files mention selection / select.Tree / index.Selector. Flag a new
user-facing option arg that is named something else, hand-rolls its own
parsing, or indexes arrays manually instead of via Selector.
Public methods have numpy-style docstrings with runnable examples. Every
public method (no leading underscore) needs a numpy-style docstring, and
user-facing quantity methods carry a >>> example that the doctest suite
executes. Section 3 shows the doctest result for the changed modules — a
failure or "no tests ran" for a module that gained a public method is a
finding. A public method with no docstring, or a docstring with no example
where siblings have one, is a finding the driver can't see — read the diff.
Tests cover the important behavior (>95%). Section 2 gives each changed
module's coverage % and the exact uncovered lines. Below ~95% is a finding
unless the only misses are trivial (e.g. an else that raises
exception.NotImplemented). Point findings at the specific uncovered lines
and the behavior they represent.
Also do the normal review: correctness bugs, missing edge cases, wrong results, resource/logic errors — the same scrutiny as a general code review.
Same invocations the driver uses, for a module it couldn't auto-map. Set
PYTHONPATH to this checkout's src so a worktree measures its own edits, and
use --cov=py4vasp (whole package), never a dotted submodule (see Gotchas):
PYTHONPATH="$PWD/src" .venv/Scripts/python.exe -m pytest tests/calculation/test_symmetry.py --cov=py4vasp --cov-report=term-missing -qPYTHONPATH="$PWD/src" .venv/Scripts/python.exe -m pytest tests/test_doctest.py -k symmetry -qCall ReportFindings with the verified findings, most-severe first (empty
array if the change is clean). Give each a concrete failure scenario and a
file:line. Prefer confirmed issues over speculation; the coverage/doctest
sections let you confirm rather than guess.
uv run, not system python. uv run pytest --cov and the venv python both crash on numpy under coverage only when
you scope with a dotted module (--cov=py4vasp._calculation.symmetry):
ImportError: cannot load module more than once per process (numpy 2 +
Python 3.14). --cov=py4vasp (whole package) is fine — the driver always uses
that and filters the report to the changed files. System python has no
pytest-cov at all.PYTHONPATH. py4vasp is installed
editable via a .pth pointing at the main repo src, so inside a
.claude/worktrees/<name> worktree a bare run silently reviews the main repo.
The driver forces PYTHONPATH; do the same in manual runs. Verify with
python -c "import py4vasp; print(py4vasp.__file__)".tests/test_doctest.py (py4vasp, path, np), so pytest --doctest-modules
won't work — filter tests/test_doctest.py with -k <module-stem> instead.There is no app to launch — this is a review workflow. A developer reviews by
reading the diff and running the same pytest --cov / doctest commands above.
© vasp-dev, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .claude/skills/review-py4vasp of vasp-dev/py4vasp.
Open the folder on GitHubat commit 83a1168
Review Py4vasp next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Review Py4vasp this skillvasp-dev/py4vasp | 101 | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Change Verification Gatefengshao1227/ccg-workflow | 5.9k | — | ~511 | Automated safety check: Notes | MIT | |
| Post Draft Reviewagent-substrate/substrate | 4.6k | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Docs GuardamElnagdy/guard-skills | 1.3k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Codex Proxy RS Development Guidezyycn/codex-proxy-rs | 766 | — | ~618 | Automated safety check: Pass | Apache-2.0 | |
| Inline PR Commentshyperlane-xyz/hyperlane-explorer | 102 | — | ~1.1k | Automated safety check: Pass | Custom licence |
fengshao1227/ccg-workflow
Analyzes a code diff for documentation sync, test coverage and impact scope, warning when docs or tests lag behind a design-level change or a large edit.
agent-substrate/substrate
Posts pull request review findings as GitHub draft (pending) inline comments for a human to edit and submit, instead of publishing them straight to the PR author.
amElnagdy/guard-skills
Checks generated or edited documentation against the source code, flagging invented symbols, outdated samples and unverifiable claims before publishing.
zyycn/codex-proxy-rs
Routes development, troubleshooting, review and documentation tasks on the Codex Proxy RS repository to the right section of its docs, instead of loading the whole architecture or contributing guide.
hyperlane-xyz/hyperlane-explorer
Post a single consolidated PR review with summary and inline comments.
sesori-ai/sesori_apps_monorepo
Fetch inline (code) review comments on a GitHub pull request, grouped into threads, with optional filtering by datetime.
vasp-dev/py4vasp
Plan a py4vasp change as an ordered list of test-first chunks — that chunk list is the plan.
vasp-dev/py4vasp
Push py4vasp changes to origin and open a PR. An agent skill from vasp-dev/py4vasp.
vasp-dev/py4vasp
Carry out ONE chunk of a py4vasp change test-first: RED (watch the test fail for the right reason) → GREEN → refactor → one local commit.
vasp-dev/py4vasp
Validate a py4vasp change from the outside by dispatching a subagent to role-play a user who may read only the documentation, never the source.
Works with
Categories
Code review for py4vasp changes. An agent skill from vasp-dev/py4vasp. Review Py4vasp is an agent skill from vasp-dev/py4vasp. Code review for py4vasp changes.
Review Py4vasp fits situations like: asked to review; critique py4vasp code.
Run `npx skills add vasp-dev/py4vasp --skill review-py4vasp -a claude-code`. Or copy the skill folder (.claude/skills/review-py4vasp in vasp-dev/py4vasp) into .claude/skills/review-py4vasp in your project. Claude Code loads it when a task matches its description.
Run `npx skills add vasp-dev/py4vasp --skill review-py4vasp -a codex`. Or copy the skill folder (.claude/skills/review-py4vasp in vasp-dev/py4vasp) into .agents/skills/review-py4vasp in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vasp-dev/py4vasp --skill review-py4vasp -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/review-py4vasp, .gemini/skills/review-py4vasp, .github/skills/review-py4vasp and .opencode/skills/review-py4vasp in your project.
Going by SKILL.md and its folder, Review Py4vasp needs Python for the scripts in its folder and the command-line tools its instructions call (python, pytest and uv). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Review Py4vasp is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Review Py4vasp: Change Verification Gate (fengshao1227/ccg-workflow, 5.9k stars), Post Draft Review (agent-substrate/substrate, 4.6k stars), Docs Guard (amElnagdy/guard-skills, 1.3k stars) and Codex Proxy RS Development Guide (zyycn/codex-proxy-rs, 766 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
vasp-dev (a GitHub organization) maintains it in vasp-dev/py4vasp, which has 101 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 9, 2026.
Source: vasp-dev/py4vasp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.