.windsurf/skills/verification/SKILL.md
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.
npx skillsauth add snyk/snyk-intellij-plugin verificationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Verify generated code in depth before committing. This skill complements the pre-commit checklist by adding semantic analysis.
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: Step 6: If PR exists: trigger feedback by commenting `/review` in the PR. Wait for the bot to review. Review ALL comments in the PR feedback including the pr-review-bot comments
- [ ] 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
Read and apply these project standards:
.windsurf/rules/general.md - critical rules and workflow.github/CONTRIBUTING.md - coding standardsKey rules to verify against:
For each modified file, trace the execution flow:
Detect unintended behavioral changes:
Action: Flag any semantic changes and ask if they are intentional.
Check for these patterns:
Identify duplicated code that should be extracted:
Detection approach:
Action: For duplicated code, propose extraction with:
Action: For each smell found, propose a specific fix or flag for discussion.
Execute security checks using Snyk:
# Get absolute path
pwd
Then run:
snyk_sca_scan - dependency vulnerabilitiessnyk_code_scan - code security issuesAction: Fix security issues using the implementation skill. If in test data, note but don't fix.
If a GitHub PR exists for the current branch:
# Check if PR exists
gh pr view --json number,reviews,comments,url 2>/dev/null
/review in the PR.For each review comment:
For feedback requiring decisions, add to implementation plan:
## 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
Add verification findings to the implementation plan:
## 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]
| 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 |
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:
Before touching production code:
Example for security fix (URL sanitization):
func TestSanitizeURLForLogging_StripsCredentialsInAllLogStatements(t *testing.T) {
// Test that URLs with credentials are sanitized before logging
urlWithCreds := "https://user:[email protected]/org/repo"
// Capture log output and verify no credentials appear
// This test should FAIL before the fix is applied
}
Only after the test exists:
commit skill for details)Before applying ANY code fix, ask yourself:
If you catch yourself implementing before testing, STOP, revert, and start with the test.
tools
Start an implementation task with proper planning, TDD workflow, and session hand-off. Use when beginning work on a Jira issue, starting a new feature, or resuming implementation work. Triggers on phrases like "start task", "begin implementation", "work on issue", or "implement feature".
tools
Create structured implementation plans for Jira issues using the project template. Use when starting a new task, implementing a feature, when asked to create a plan, or when the implementation skill detects no existing plan.
development
Prepare and commit code changes with full verification, pre-commit checks, and tests. Runs verification skill, fixes issues using TDD, executes all test suites, and creates atomic commits. Use when ready to commit changes, before committing, or when asked to prepare a commit.
development
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.