skills/code-review/SKILL.md
Code review skill for Vue 3, TypeScript, and Rust projects. Discovers what to review (uncommitted, committed, or GitHub PR), applies structured review process with severity-labeled feedback, language-agnostic quality rules, and language-specific references. Use when: reviewing code, code review, MR review, quality check, reviewing changes.
npx skillsauth add olamedia/analytics-skills code-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.
Structured code review with severity-labeled feedback. Discovers scope from git state, loads language-specific rules on demand.
Before reviewing, check if the project has a docs/CodeStyle.md file (or similar convention document). If present, load it and treat project-specific rules as overrides to the general rules below.
Determine what to review. The user specifies the mode, or the skill asks.
Mode 1 — Uncommitted changes:
git status to collect changed, staged, and untracked filesMode 2 — Committed changes:
master, a branch name, or a commit IDgit diff <target>...HEAD --name-status to get the file listMode 3 — GitHub PR:
gh pr diff <number> --name-only to get changed filesAfter confirmation, record the confirmed file list and the diff mode. Each file's diff will use the matching method:
git diff / git diff --cached)git diff <target>...HEAD -- <file>gh pr diff <number> -- <file>Also check for docs/CodeStyle.md and load if present.
Note the change size. If the confirmed list exceeds ~400 changed lines, suggest splitting.
.vue → Vue group.ts / .js → TypeScript group.rs → Rust groupProcess one language group at a time to avoid filling context with all references at once.
For each language group:
If security concerns are spotted in any file, load references/security.md at that point.
docs/reviews/<branch-name>.md (create folder if needed)
git branch --show-currentreview-YYYY-MM-DD.md# Code Review: <branch-name>
**Date:** YYYY-MM-DD
**Reviewer:** AI (code-review skill)
**Mode:** Uncommitted / Committed (diff target: `<target>`) / GitHub PR #N
**Files reviewed:** N
## Summary
<1-3 sentence overall assessment. State the verdict: looks good / has issues to address / needs significant rework.>
### Stats
| Severity | Count |
|----------|-------|
| blocking | N |
| important | N |
| nit | N |
| suggestion | N |
| praise | N |
## Findings
### <file-path>
- **[severity]** <finding title>
<description — what, why it matters, suggestion>
- **[severity]** <finding title>
<description>
### <file-path>
- **[severity]** ...
## Good Patterns
- <what was done well and why it's worth keeping>
## Checklist
<paste the filled general + language-specific checklists with [x] for passed items>
Use one label per finding. Every finding must have a label.
| Label | Meaning | Action required |
|-------|---------|----------------|
| [blocking] | Bug, security issue, data corruption risk | Must fix before merge |
| [important] | Test gap, unclear naming, moderate perf issue | Should fix; discuss if disagree |
| [nit] | Style, minor naming, readability | Nice to have, not blocking |
| [suggestion] | Alternative approach worth considering | No action needed |
| [learning] | Educational — explains why something matters | No action needed |
| [praise] | Good work, reinforcement of good patterns | No action needed |
Ask questions instead of making statements:
items is an empty array?" instead of "This will fail on empty arrays"Use collaborative language:
Be specific and actionable:
Balance criticism with praise:
[praise]These apply to any language. Brief checks — detailed patterns live in language references.
Load the matching references based on file extensions in the confirmed list.
| File extension | Reference | Load |
|---------------|-----------|------|
| .vue | references/vue/ | All files in folder |
| .ts, .js | references/typescript/ | All files in folder |
| .rs | references/rust/ | All files in folder |
| Any (security concern) | references/security.md | When security issues spotted |
Each reference folder contains topic files with ❌/✅ patterns and a checklist.md for quick final-pass.
testing
Rebase current feature branch onto master (or configured base) with automated conflict resolution. Handles pre-checks, conflict classification, and post-rebase verification. Use when the user asks to rebase, update a branch, sync with master, or resolve rebase conflicts.
development
FE feature analysis from raw idea (or YouTrack ticket) through to a split-aware developer briefs. Produces context-map.md, requirements.md, task-brief-{side}.md. Generic — project knowledge is auto-discovered.
testing
Concise technical communication that stays readable and honest. Cuts fluff about fifty to seventy percent while keeping natural flow, uncertainty markers, and human tone. Levels lite (default), mid, tight. Short SKILL body; rules below are complete.
documentation
Strip LLM tells from text so it reads human. Triggers: humanize, sounds like AI, too robotic, natural rewrite, AI slop, or obvious LLM patterns. Reference: https://en.wikipedia.org/wiki/WP:Signs_of_AI_writing