verification
This skill performs in-depth semantic analysis of code changes before committing, including code path tracing, detection of behavioral changes, identification…
Identity proven by GitHub's verified organisation badge (snyk)
- Agents
- Not labelled yet
- License
- Apache-2.0 (permissive)
- Pin
- b4b2713pinned Oct 9, 2026
- Context cost
- about 2,200 tokenswhen the skill loads
- GitHub stars
- 69on snyk/snyk-intellij-plugin
- Scripts
- None found
What it does
“Deep verification of code changes before committing. Traces code paths, detects semantic changes, identifies code smells and security issues. Reads GitHub PR reviews to propose implementation decisions. Use before commits, after implementation, or when asked to verify/review changes.”
Generated summary from the skill's own text
This skill performs in-depth semantic analysis of code changes before committing, including code path tracing, detection of behavioral changes, identification of code smells, and security scanning. It reads GitHub PR reviews to guide implementation decisions and enforces test-driven development for any fixes that emerge from verification.
When to use it
- Before committing implementation changes to identify issues early
- After completing implementation steps to verify correctness
- When addressing GitHub PR review feedback that requires decisions
- When explicitly asked to verify or review code changes
When not to
- For initial project setup or infrastructure changes requiring different validation approaches
- As a substitute for automated linting and formatting tools
- When rapid prototyping is the immediate goal
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add snyk/snyk-intellij-plugin --skill verificationInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install snyk/snyk-intellij-plugin verification@b4b271338f6002b6c24cc9aa3152fec833da6cc4Installs the commit we checked (b4b2713).
Copy by hand
Download the folder at b4b2713 and put it in .claude/skills/verification for Claude Code and in .agents/skills/verification for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "verification" by Snyk. Source, pinned to commit b4b271338f6002b6c24cc9aa3152fec833da6cc4: https://github.com/snyk/snyk-intellij-plugin/tree/b4b271338f6002b6c24cc9aa3152fec833da6cc4/.cursor/skills/verification 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/verification/ for Claude Code and .agents/skills/verification/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/snyk/verification
SKILL.md at the pin
---
name: verification
description: Deep verification of code changes before committing. Traces code paths, detects semantic changes, identifies code smells and security issues. Reads GitHub PR reviews to propose implementation decisions. Use before commits, after implementation, or when asked to verify/review changes.
---
# Code Verification
Verify generated code in depth before committing. This skill complements the pre-commit checklist by adding semantic analysis.
## When to Use
- Before committing implementation changes
- After completing implementation steps
- When PR review feedback needs to be addressed
- When explicitly asked to verify code
- When starting a new session of an implementation plan
## Verification Workflow
Copy this checklist and track progress:
```
Verification Progress:
- [ ] Step 1: Load project rules and standards
- [ ] Step 2: Trace code paths for modified files
- [ ] Step 3: Check for semantic changes
- [ ] Step 4: Identify code smells
- [ ] Step 5: Run security scans
- [ ] Step 6: Review PR feedback (if PR exists)
- [ ] Step 7: Get check results from github with gh cli
- [ ] Step 8: Update implementation plan with findings
- [ ] Step 9: Fix issues (TDD REQUIRED - test first, then fix)
- [ ] Step 10: Check coverage of changed files > 80%
- [ ] Step 11: Add tests if coverage not sufficient
- [ ] Step 12: Commit changes
```
---
## Step 1: Load Project Rules
Read and apply these project standards:
1. `.cursor/rules/general.mdc` - critical rules and workflow
2. `.github/CONTRIBUTING.md` - coding standards
Key rules to verify against:
- Outside-in TDD followed
- Minimum necessary changes
- No workarounds or commented-out code
- gomock used for mocking (no custom mocks)
- Generated types used for mock responses
---
## Step 2: Trace Code Paths
For each modified file, trace the execution flow:
1. **Identify entry points**: API handlers, public functions, exported methods
2. **Follow the call chain**: Map function calls through the codebase
3. **Verify dependencies**: Check that all called functions exist and have correct signatures
4. **Check return paths**: Ensure all code paths return appropriate values/errors
### Verification Questions
- Does the new code integrate correctly with existing callers?
- Are all error cases handled?
- Do interface implementations satisfy their contracts?
- Are there unreachable code paths?
---
## Step 3: Check for Semantic Changes
Detect unintended behavioral changes:
### Breaking Changes
- Modified function signatures
- Changed return types or error conditions
- Altered struct field types or tags
- Modified interface definitions
### Behavioral Changes
- Different error messages (may break client parsing)
- Changed response structure
- Modified validation logic
- Altered default values
### Database/API Impact
- Schema changes requiring migrations
- API contract changes requiring versioning
- Query behavior changes
**Action**: Flag any semantic changes and ask if they are intentional.
---
## Step 4: Identify Code Smells
Check for these patterns:
### Structural Smells
- [ ] Functions longer than 50 lines
- [ ] Deeply nested conditionals (>3 levels)
- [ ] Duplicate code blocks
- [ ] God objects/functions doing too much
- [ ] Long parameter lists (>5 params)
### Go-Specific Smells
- [ ] Naked returns in functions with named return values
- [ ] Ignored errors (especially from deferred calls)
- [ ] Context not propagated correctly
- [ ] Goroutine leaks (unbounded spawning, no cleanup)
- [ ] Race conditions (shared state without synchronization)
- [ ] Use testing.T for context, tempDir and helpers
### Design Smells
- [ ] Circular dependencies between packages
- [ ] Leaky abstractions (implementation details exposed)
- [ ] Inappropriate intimacy (packages knowing too much about each other)
- [ ] Feature envy (functions using other package's data excessively)
### Copy-Paste Code (Refactoring Candidates)
Identify duplicated code that should be extracted:
- [ ] Similar code blocks across multiple files (extract to shared function)
- [ ] Repeated struct transformations (extract to mapper/converter)
- [ ] Duplicated validation logic (extract to validator)
- [ ] Repeated error handling patterns (extract to helper)
- [ ] Similar test setup code (extract to test helpers)
- [ ] Copy-pasted handler logic (extract to shared middleware or base handler)
**Detection approach**:
1. Search for similar function names across packages
2. Look for identical error messages or log statements
3. Check for repeated struct field assignments
4. Compare new code against existing patterns in the codebase
**Action**: For duplicated code, propose extraction with:
- Suggested function/package location
- Shared interface if applicable
- Impact on existing callers
**Action**: For each smell found, propose a specific fix or flag for discussion.
---
## Step 5: Run Security Scans
Execute security checks using Snyk:
```bash
# Get absolute path
pwd
```
Then run:
1. `snyk_sca_scan` - dependency vulnerabilities
2. `snyk_code_scan` - code security issues
### Manual Security Checklist
- [ ] No hardcoded secrets, tokens, or credentials
- [ ] Input validation on all external data
- [ ] SQL queries use parameterized statements
- [ ] No path traversal vulnerabilities
- [ ] Proper authentication/authorization checks
- [ ] Sensitive data not logged
- [ ] HTTPS/TLS used for external calls
**Action**: Fix security issues using the `implementation` skill. If in test data, note but don't fix.
---
## Step 6: Review PR Feedback
If a GitHub PR exists for the current branch:
### Fetch PR Information
```bash
# Check if PR exists
gh pr view --json number,reviews,comments,url 2>/dev/null
```
1. If PR exists: trigger feedback by commenting `/review` in the PR.
2. Wait for the bot to review.
3. Review ALL comments in the PR feedback including the pr-review-bot comments
### Process Feedback
For each review comment:
1. **Categorize**: Bug | Enhancement | Style | Question | Blocker
2. **Assess**: Is this actionable? Does it require a decision?
3. **Prioritize**: Critical (must fix) | Should fix | Nice to have
### Create Decision Proposals
For feedback requiring decisions, add to implementation plan:
```markdown
## PR Feedback Decisions Required
### [Comment summary]
- **Reviewer**: @username
- **Category**: [Bug/Enhancement/etc]
- **Context**: [Quote relevant comment]
- **Options**:
1. [Option A with pros/cons]
2. [Option B with pros/cons]
- **Recommendation**: [Your recommendation]
- **Decision**: [ ] Pending
```
---
## Step 7: Update Implementation Plan
Add verification findings to the implementation plan:
```markdown
## Verification Results
### Code Path Analysis
- [List traced paths and any issues found]
### Semantic Changes
- [List any behavioral changes detected]
### Code Smells
- [List smells found with proposed fixes]
### Refactoring Candidates
- [List duplicated code with extraction proposals]
### Security Findings
- [List security issues and resolutions]
### PR Feedback Items
- [List items requiring decisions]
```
---
## Quick Reference
### Commands
| Task | Command |
| --------- | ------------------------------------------- |
| Check PR | `gh pr view --json number,reviews,comments` |
| SCA scan | `snyk_sca_scan` with absolute path |
| Code scan | `snyk_code_scan` with absolute path |
| Run tests | `make cover && ./gradlew test-integration-local` |
### Red Flags (Stop and Discuss)
- Breaking API changes without versioning
- Security vulnerabilities in non-test code
- Significant behavioral changes
- Unresolved PR blockers
- Significant code duplication (>20 lines copied)
---
## Step 9: Fix Issues (TDD Required)
**CRITICAL: ALL fixes MUST follow TDD. NEVER implement a fix without writing a failing test first.**
**CRITICAL: Use implementation skill.**
When verification identifies issues to fix:
### 9.1 Write Failing Test First
Before touching production code:
1. Write a test that exposes the issue
2. Run the test - confirm it FAILS (or would fail to catch the issue)
3. The test proves the fix is needed and will prevent regression
Example for security fix (URL sanitization):
```go
func TestSanitizeURLForLogging_StripsCredentialsInAllLogStatements(t *testing.T) {
// Test that URLs with credentials are sanitized before logging
urlWithCreds := "https://user:token@github.com/org/repo"
// Capture log output and verify no credentials appear
// This test should FAIL before the fix is applied
}
```
### 9.2 Implement Minimal Fix
Only after the test exists:
1. Apply the minimum change to make the test pass
2. Run the test - confirm it PASSES
3. Run all test suites to verify no regressions (read `commit` skill for details)
### 9.3 TDD Violation Check
Before applying ANY code fix, ask yourself:
- [ ] Did I write a test first? If NO, STOP and write the test.
- [ ] Does the test fail without my fix? If NO, improve the test.
- [ ] Is my fix minimal? If NO, reduce scope.
**If you catch yourself implementing before testing, STOP, revert, and start with the test.**
From snyk/snyk-intellij-plugin at b4b2713, shown as plain text under its license: Apache-2.0 (permissive). The license text is in LICENSE.
View SKILL.md on GitHub at b4b2713Files
- SKILL.md9.2 KB · b0aafdf4df99
1 file, 9.2 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at b4b2713More from Snyk
algorithmic-art
This skill generates algorithmic art using p5.js by first creating a computational philosophy describing the generative aesthetic, then implementing it as an…
Contains scripts
Claude Code, Codex, Cursor +3 · about 4.8K tokens · pinned 6 days ago
brand-guidelines
This skill applies Anthropic's official brand identity to artifacts by setting specific colors, typography, and design standards.
Claude Code, Codex, Cursor +4 · about 480 tokens · pinned 6 days ago
canary-project-skill
This is a test fixture skill used by the canary testing system to verify that the agent-scan inspect command properly detects project-scoped skills located in…
Claude Code, Codex, Cursor +4 · about 45 tokens · pinned 6 days ago
canvas-design
This skill helps agents create visual art and design work as PNG or PDF files by first developing a design philosophy or aesthetic movement, then expressing…
Claude Code, Codex, Cursor +4 · about 2.9K tokens · pinned 6 days ago
doc-coauthoring
This skill guides users through a structured three-stage workflow for co-authoring documentation, proposals, specs, and similar structured content.
Claude Code, Codex, Cursor +4 · about 3.8K tokens · pinned 6 days ago
docx
This skill enables the agent to create, edit, and analyze Word documents (.docx files) with support for tracked changes, comments, and formatting preservation.
Contains scripts
Claude Code, Codex, Cursor +3 · about 2.4K tokens · pinned 6 days ago
Related in Coding workflow
maintainer-review
This skill helps maintainers assess GitHub issues and PRs by evaluating whether claimed problems are real, whether existing features already solve them, and…
by OpenAIOfficial publisher
Claude Code, Codex, Cursor +4 · about 8.9K tokens · pinned 6 days ago
maintainer-review
Evaluates GitHub issues and PRs through a systematic desk review to assess demonstrated need, existing workarounds, design correctness, and maintainer impact.
by OpenAIOfficial publisher
Claude Code, Codex, Cursor +4 · about 8.3K tokens · pinned 6 days ago
dd-file-issue
This skill helps file GitHub issues to the DataDog/pup repository for bugs, feature requests, and documentation problems related to the pup CLI, agents, and…
by DatadogOfficial publisher
Claude Code, Codex, Cursor +3 · about 2.2K tokens · pinned 6 days ago
create-pr
This skill creates a GitHub pull request with a Linear-ticket-prefixed title and a decision-led narrative description for the prisma-next repository.
by PrismaOfficial publisher
Claude Code, Codex, Cursor +4 · about 4.3K tokens · pinned 6 days ago
github-review-iteration
Orchestrates an iterative GitHub PR review loop by delegating triage and implementation to sub-agents, then repeating until all actionable review items are…
by PrismaOfficial publisher
Contains scripts
Claude Code · about 1.9K tokens · pinned 6 days ago
prisma-next-feedback
Routes bug reports, feature requests, and team Q&A to the appropriate Prisma Next channel.
by PrismaOfficial publisher
Claude Code, Codex, Cursor +4 · about 4.2K tokens · pinned 6 days ago
Open roles at Snyk
1 open role on the jobs board
- Senior Product Security Engineer
United States - Boston Office | Canada - Ottawa Office (Remote)