review-local-changes
Comprehensive review and audit of uncommitted local code changes in git working copy (staged, unstaged, untracked). Use when asked to review local changes, audit git diff, check uncommitted work befor
SKILL.md.agents/skills/review-local-changes/SKILL.md
GitHubReview Local Code Changes
Use this skill to perform a thorough, evidence-based review of uncommitted local code modifications in the working repository.
🚫 HARD RULE — Rust commands (OOM / system freeze)
LibrAgent src-tauri/tests/*.rs files are separate Cargo test binaries (~600MB+ each with Tauri). Linking many at once OOMs even a 32GB machine.
NEVER (any time)
| Forbidden | Why |
|---|---|
cargo test |
Multi-target link graph → OOM |
cargo test --tests |
Same, worse |
cargo test --all / bare cargo test in src-tauri/ |
Same |
cargo clippy / cargo build / cargo check raw |
Use pnpm wrappers (jobs/nice caps) |
Assuming “full suite needs --test only” and skipping pnpm rust:test when the user asked for full validation |
Full suite is safe only via sequential runner |
When to run what
Default code review / local-change audit is diff-based static analysis. Do not start heavy tests or builds unless the user explicitly asks (e.g. “테스트 돌려봐”, “run tests”, commit/PR readiness with tests). That matches .agents/AGENTS.md / GEMINI.md.
| Command | When allowed |
|---|---|
pnpm rust:fmt:check / pnpm rust:check |
Optional light gates during review if useful |
pnpm rust:clippy |
Only when user asked for lint/validation of Rust |
pnpm rust:test --test <target> |
When user asked to test; use while iterating |
pnpm rust:test |
When user asked for full / functional verification — sequential, OOM-safe. Not the default for a plain “review local changes” |
If the user did ask for tests: prefer touched --test <target> first; use full pnpm rust:test when they want the whole suite. Fmt/check alone is not a functional audit in that case.
pnpm rust:test without --test is safe (sequential). Raw cargo test --tests is not.
If you (or another agent) already started a raw cargo test --tests and the machine is thrashing: stop it; switch to pnpm rust:test --test <name>.
Target name = basename of a root src-tauri/tests/<name>.rs (e.g. text_encoding_tests). Modules under tests/integration/ are not their own Cargo targets — filter the monolith: pnpm rust:test --test integration_tests -- workspace_skill_access_regression_tests (Linux/macOS only; integration_tests skipped on Windows).
Workflow
1. Identify Working Copy State
Run git commands to inspect modified, staged, and untracked files:
git status -s
git diff --stat
- Distinguish between staged changes (
git diff --cached), unstaged changes (git diff), and untracked files. - If a target branch or base branch is specified (e.g.,
main), check branch context usinggit branch --show-current.
2. Extract and Inspect Detailed Diffs
Retrieve full diffs for analysis:
- For unstaged edits:
git diff - For staged edits:
git diff --cached - For all uncommitted working tree changes:
git diff HEAD - For untracked files: read file contents if relevant to the change context.
If the diff is large (>300 lines), analyze file by file or by functional area to avoid missing subtle bugs.
3. Analyze Code Changes
Evaluate changes against references/review-checklist.md covering:
- Correctness & Logic: Functional intent, edge cases, error handling, async/concurrency.
- Type Safety & Contracts: Explicit types, Zod/schema validations, interface alignment.
- Leftovers & Cleanliness: Unintended
console.log,dbg!, commented code, hardcoded credentials. - Security & Safety: Command injection, path traversal, secrets leakage.
- Performance & Architecture: Unnecessary re-renders, resource leaks, breaking changes.
- Rust test / harness regressions: new root-level
tests/*.rsbinaries without need; skill-alias write/read split; resource-unsafe scripts.
4. Code Health Verification
Default review stays static (diff + checklist). Run commands only when the user asked for validation/tests, or when noting what should be run before commit/PR:
- TypeScript/React (if asked):
pnpm lint;pnpm test:runif frontend behavior changed. - Rust (if asked) — follow the HARD RULE above for which commands are safe:
pnpm rust:fmt:checkpnpm rust:checkpnpm rust:clippy(when touching Rust)- Touched root targets:
pnpm rust:test --test <target>(e.g.text_encoding_tests) - Integration modules:
pnpm rust:test --test integration_tests -- <module_filter> - Full suite only when user asked:
pnpm rust:test(sequential — OOM-safe)
- 🚫 NEVER raw
cargo test/cargo test --tests/ rawcargo clippy|build|check. - Do not run
pnpm refactor:validateunless the user explicitly requested the full pipeline.
Report exact compiler errors, linter output, or failing test names if validation was run and failed. If tests were not requested, say so under Validation Status.
5. Structure the Review Report
Present review findings clearly in the following structure:
- Executive Summary: High-level overview of modified files and purpose of changes.
- Critical Issues / Blockers (if any): Logic bugs, security vulnerabilities, breaking changes, or build failures.
- Warnings & Code Quality (if any): Type safety gaps, missing error handling, debug artifacts, performance concerns.
- Suggestions & Best Practices: Cleanups, readability improvements, or minor refactorings.
- Validation Status: Exact commands run + results (especially which
--testtargets). - Verdict:
Approved,Approved with minor suggestions, orNeeds changes before commit.