skills/review/SKILL.md
--- name: review description: Thorough code review workflow. Use when reviewing PRs, auditing code quality, or doing self-review before submitting. Catches bugs, security issues, and design problems. context: fork agent: Explore allowed-tools: Read, Grep, Glob, Bash(git diff *), Bash(git log *), Bash(git show *), Bash(wc *), Bash(gh pr *), Bash(gh api *) argument-hint: [pr-number|branch|file-path] [--focus=security|performance|logic|style|all] --- ## Code Review: $ARGUMENTS Systematic review t
npx skillsauth add ComputerConnection/zach-pack skills/reviewInstall 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.
Systematic review to catch what humans miss.
# If PR number
gh pr view [number] --comments
gh pr diff [number]
# If branch
git log main..[branch] --oneline
git diff main...[branch]
# If file
git log -10 --follow [file]
git diff HEAD~5 [file]
┌─────────────────────────────────────────────────────────────┐
│ REVIEW: [Description] │
├─────────────────────────────────────────────────────────────┤
│ Author: [who] │
│ Size: [lines added/removed] │
│ Files: [count] │
│ Type: [feature|bugfix|refactor|docs|test] │
├─────────────────────────────────────────────────────────────┤
│ Related: │
│ • Issue: [link] │
│ • Previous PRs: [links] │
│ • Docs: [links] │
└─────────────────────────────────────────────────────────────┘
Questions to answer:
- [ ] Does this change make sense architecturally?
- [ ] Is it in the right place?
- [ ] Does it follow existing patterns?
- [ ] Is it the right level of abstraction?
- [ ] Does it introduce new dependencies? Are they justified?
Logic Errors
Security Issues
Performance Issues
Maintainability Issues
## [Severity]: [Short Description]
**File**: `path/to/file.ts:123`
**Code**:
\`\`\`typescript
// Current
problematic code here
\`\`\`
**Issue**: [What's wrong]
**Suggestion**:
\`\`\`typescript
// Suggested
better code here
\`\`\`
**Why**: [Explanation of the improvement]
| Level | Meaning | Blocks Merge? | |-------|---------|---------------| | BLOCKER | Bug, security issue, will break prod | Yes | | MAJOR | Significant issue, should fix | Probably | | MINOR | Improvement opportunity | No | | NIT | Style preference, take it or leave it | No | | QUESTION | Clarification needed | Maybe | | PRAISE | This is good, keep it up! | No |
[ ] A01: Broken Access Control
- Are permissions checked?
- Can users access others' data?
[ ] A02: Cryptographic Failures
- Is sensitive data encrypted?
- Are secrets hardcoded?
[ ] A03: Injection
- SQL injection via user input?
- Command injection?
- Template injection?
[ ] A04: Insecure Design
- Is the design fundamentally secure?
[ ] A05: Security Misconfiguration
- Debug mode disabled?
- Default credentials removed?
[ ] A06: Vulnerable Components
- Are dependencies up to date?
- Any known vulnerabilities?
[ ] A07: Auth Failures
- Proper password handling?
- Session management secure?
[ ] A08: Data Integrity Failures
- Is input validated?
- Is data sanitized?
[ ] A09: Logging Failures
- Are security events logged?
- Are logs protected from injection?
[ ] A10: SSRF
- Does user input control URLs?
- Are internal endpoints protected?
If reviewing Rust or Tauri code, add these checks:
[ ] Memory Safety
- Any unsafe blocks? Are they justified?
- Proper lifetime annotations?
- No use-after-free patterns?
[ ] Error Handling
- Using Result<T, E> properly?
- No unwrap() in production paths?
- Errors propagated with context (anyhow/thiserror)?
[ ] Concurrency
- Arc/Mutex used correctly?
- No deadlock potential?
- Async boundaries clear?
[ ] Performance
- Unnecessary clones?
- Large structs passed by value?
- Allocations in hot loops?
[ ] IPC Security
- Commands properly scoped?
- Input validated before Rust processing?
- No path traversal in file operations?
[ ] Frontend-Backend Contract
- TypeScript types match Rust structs?
- Serialization/deserialization tested?
- Error responses handled in frontend?
[ ] Permissions
- Capabilities properly configured?
- No overly permissive allowlists?
- File system access scoped correctly?
[ ] State Management
- Tauri state thread-safe?
- No race conditions between commands?
- State properly initialized?
## Missing Test Coverage
- [ ] Test for [scenario]: When [input], expect [output]
- [ ] Test for [edge case]: When [condition], expect [behavior]
- [ ] Test for [error]: When [failure], expect [handling]
┌─────────────────────────────────────────────────────────────┐
│ REVIEW SUMMARY: [PR/Change Description] │
├─────────────────────────────────────────────────────────────┤
│ Verdict: APPROVE / REQUEST CHANGES / NEEDS DISCUSSION │
├─────────────────────────────────────────────────────────────┤
│ Stats: │
│ • Blockers: [count] │
│ • Major: [count] │
│ • Minor: [count] │
│ • Nits: [count] │
│ • Praise: [count] │
├─────────────────────────────────────────────────────────────┤
│ Top Issues: │
│ 1. [Most important issue] │
│ 2. [Second most important] │
│ 3. [Third most important] │
├─────────────────────────────────────────────────────────────┤
│ What's Good: │
│ • [Positive observation] │
│ • [Another positive] │
└─────────────────────────────────────────────────────────────┘
## Review Summary
**Verdict**: [APPROVE / REQUEST CHANGES]
### Blockers (must fix)
- [ ] [Issue 1]
- [ ] [Issue 2]
### Should Fix
- [ ] [Issue 3]
- [ ] [Issue 4]
### Consider
- [ ] [Suggestion 1]
- [ ] [Suggestion 2]
### What's Good
- [Positive feedback]
---
*Reviewed with `/review` skill*
When reviewing your own code before submitting:
┌─────────────────────────────────────────────────────────────┐
│ SELF-REVIEW CHECKLIST │
├─────────────────────────────────────────────────────────────┤
│ Before requesting review: │
│ [ ] I've run the tests locally │
│ [ ] I've tested the change manually │
│ [ ] I've reviewed my own diff line by line │
│ [ ] I've removed debug code and console.logs │
│ [ ] I've added/updated tests │
│ [ ] I've updated documentation if needed │
│ [ ] The PR description explains the what and why │
│ [ ] I've linked the related issue │
│ [ ] I'm not embarrassed by any of this code │
└─────────────────────────────────────────────────────────────┘
data-ai
Inject Zach's full identity, business context, and working preferences. Use at session start to eliminate cold starts. Lightweight context load — not a full agent like Vision, just who Zach is and how to work with him.
tools
--- name: vision description: "Zach's personal AI — his Jarvis. NOT a store agent. This is the owner's private command center that sits above everything else. Handles anything Zach needs — business, personal, technical, strategic, creative. High-systems AI: precise, anticipatory, authoritative. Invoke for ANY task." context: fork allowed-tools: Read, Grep, Glob, Bash, Edit, Write, Task, TodoWrite argument-hint: [what-do-you-need] — freeform. Vision figures out the rest. --- # VISION — Zach's Ja
development
Tauri-specific development patterns for NEXUS. Use when building desktop app features, handling IPC, or working with Rust backend.
development
Document Computer Connection store processes in AI-queryable format. Use to capture SOPs for the store AI server POC.