From vthink-agent-toolkit
Check code changes against project conventions. Accepts a PR number or file paths/globs. Discovers conventions from the codebase itself and reports violations in naming, patterns, and file organization. Use when asked to "check conventions", "review code style", "audit patterns", or "validate naming".
npx claudepluginhub vthinkdeveloper/vthink-agent-toolkit --plugin vthink-toolkitThis skill uses the workspace's default tool permissions.
This skill checks code changes against the conventions established in the project's own codebase. Rather than enforcing a fixed ruleset, it **discovers** conventions by examining the project's configuration files, documentation, and existing code patterns — then validates changes against those conventions.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
This skill checks code changes against the conventions established in the project's own codebase. Rather than enforcing a fixed ruleset, it discovers conventions by examining the project's configuration files, documentation, and existing code patterns — then validates changes against those conventions.
It works in two modes:
Determine if $ARGUMENTS is a PR number (digits only) or file path(s).
If PR number (digits only):
gh pr diff <number> --name-only to get the list of changed filesgh pr diff <number> to get the full diff for contextIf file path(s) or glob pattern(s):
Before checking anything, learn what conventions this specific project follows. Read these sources in order of priority (skip any that don't exist):
CLAUDE.md (project root) — Often contains explicit architecture, patterns, and coding conventions.eslintrc, .eslintrc.js, .eslintrc.json, .eslintrc.yml.prettierrc, prettier.config.jscheckstyle.xml, .editorconfigtslint.json, biome.jsonpom.xml (for Java plugin configs like compiler version, encoding)package.json (for eslintConfig, prettier fields, and scripts like lint)Before checking against external rules, perform a within-file consistency scan. This catches deviations that no linter config would flag — patterns that are correct in isolation but inconsistent with the rest of the file:
{ error: '...' })This is critical because inconsistency within a single file is often more confusing to readers than a globally "wrong" but consistent style.
For each changed/target file, check against the applicable conventions based on file type. Apply discovered rules, filtered by what's actually relevant to this project.
Severity levels:
For each finding, record:
Present findings in the conversation using this structure:
## Conventions Check Report
**Mode:** PR #<number> / Files: <list>
**Files checked:** <count>
**Findings:** <error-count> errors, <warning-count> warnings, <info-count> info
---
### Summary
| Severity | Count | Categories |
|----------|-------|------------|
| Error | N | <which rule categories> |
| Warning | N | <which rule categories> |
| Info | N | <which rule categories> |
### Findings by File
#### <relative/path/to/file.ext>
| # | Severity | Rule | Line(s) | Finding | Suggestion |
|---|----------|------|---------|---------|------------|
| 1 | Error | <rule-id> | 42 | <what's wrong> | <how to fix> |
| 2 | Warning | <rule-id> | 15-18 | <what's wrong> | <how to fix> |
### Conventions Discovered
<Brief list of conventions that were auto-discovered from this project's config and code patterns, so the user can verify the checker's understanding.>
If no findings: Report a clean bill of health with a summary of what was checked.
Important rules for the report:
FooService" not "Follow naming conventions"