with one click
code-review
// Review code for quality, standards compliance, and best practices. Use when asked to review code, check for issues, audit code quality, or validate implementations against project standards.
// Review code for quality, standards compliance, and best practices. Use when asked to review code, check for issues, audit code quality, or validate implementations against project standards.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | code-review |
| description | Review code for quality, standards compliance, and best practices. Use when asked to review code, check for issues, audit code quality, or validate implementations against project standards. |
| allowed-tools | Read, Grep, Glob, Bash |
Perform a comprehensive code review for the personal_assistant project, checking against established standards and best practices.
All backend changes must be 100% backwards compatible for drops (memories) and access to drops (which users have access to drops they or others created). Breaking changes should be flagged regardless of what they break (i.e. any breaking change, not just drops and access).
Backend (C#/.NET):
Entities/, FK config in StreamContext.OnModelCreating, DbSet<T> property added, migration generated via dotnet ef migrations add. No raw SQL for schema changes..sql script in docs/migrations/, generated via dotnet ef migrations script <PreviousMigration> <NewMigration> --project Domain --startup-project Memento --idempotent. This script is used for production deployments.INT IDENTITY(1,1) not SERIAL, DATETIME2 not TIMESTAMPTZ, BIT not BOOLEAN, UNIQUEIDENTIFIER not UUID, NVARCHAR for Unicode, square brackets [TableName] not double quotesFrontend (Vue.js):
<script setup> syntax used<template>, <script setup>, <style scoped>dynamic or object without justification)Frontend:
defineProps<PropsType>()defineEmits<EmitsType>()arr[i], str.split("x")[0]) returns T | undefined under noUncheckedIndexedAccess. All such accesses must use a non-null assertion (!), nullish coalescing (??), or a guard check before use. Run npx vue-tsc --noEmit to catch these — do NOT rely on vite build alone, as Vite skips type checking.Drop, User), verify that test fixture factories in src/test/fixtures.ts include defaults for the new fields. Partial<T> spreads can leave required properties as undefined, causing vue-tsc failures. Always run npx vue-tsc --noEmit after adding properties to shared types.Backend (C#):
Task<T> and follow Async naming suffixBackend:
Frontend (Vitest + Vue Test Utils):
.test.ts filescd fyli-fe-v2 && npm run test:unit -- --run)Full testing standards: See
docs/TESTING_BEST_PRACTICES.mdfor detailed patterns and examples.
v-show for frequent toggles, v-if for rare changesshallowRef for large objects/docs/AI_PROMPTS.md if modifiedcimplur-core/docs/DATA_SCHEMA.md/docs/release_note.md for new featuresI)Provide findings organized by severity:
Issues that must be fixed (security vulnerabilities, breaking bugs, architecture violations)
Recommended changes for better code quality
Optional enhancements and best practice recommendations
Well-implemented patterns worth highlighting
When a TDD is fully complete (all phases built and code review passed), move the TDD from docs/tdd/ to docs/tdd/archive/.