Skip to main content

source-command-tech-codereview

Pre-PR code review for StarMapper. Analyzes recent changes for quality, security, performance, and StarMapper-specific patterns. Supports auto-fix loop and multi-agent modes.

Informations de source

Dépôt
FlorianBruniaux/starmapper
Dernière activité de la source
17 mai 2026 à 12:10
Langue détectée de SKILL.md
anglais
Étoiles
90
Forks
4

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
source-command-tech-codereview
description
Pre-PR code review for StarMapper. Analyzes recent changes for quality, security, performance, and StarMapper-specific patterns. Supports auto-fix loop and multi-agent modes.
# source-command-tech-codereview Use this skill when the user asks to run the migrated source command `tech-codereview`. ## Command Template # Code Review — StarMapper Pre-PR local review analyzing recent changes against StarMapper conventions. ## Usage ``` /tech:codereview # Standard review of staged/recent changes /tech:codereview --auto # Review + auto-fix loop (max 3 iterations) /tech:codereview --multi-agent # 4 parallel agents (comprehensive) /tech:codereview --focus security # Single dimension /tech:codereview --focus performance /tech:codereview --focus types ``` ## Step 1: Get context ```bash rtk git diff --staged rtk git diff HEAD~1 rtk git status ``` Identify: which files changed, what kind of change (API route, component, lib, schema). ## Step 2: Conditionally load guides - `.ts`/`.tsx` files → apply `code-conventions.md` rules - `src/components/**` → apply `design-system.md` + `react-ref-patterns.md` - `src/lib/geocoder*` → apply `defensive-code-audit.md` + rate limit rules - `src/app/api/**` → apply API route conventions from `architecture.md` - `prisma/schema.prisma` → apply Prisma + Neon adapter pattern rules - `src/components/map/**` → apply MapLibre GL 5.x patterns ## Step 3: Analyze (3 severity levels) ### 🔴 Blocking (must fix before merge) - Hardcoded tokens, secrets, or API keys - GitHub token exposed in client bundle - XSS vector in MapLibre popup innerHTML - `function` keyword instead of arrow function - `any` type without justification - Nominatim called in parallel (rate ban risk) - Server-side loop over all stargazers (Vercel 10s limit) - Raw JSON payload for large repos (4.5MB limit) - Missing `ssr: false` on MapLibre dynamic import - Prisma write without try/catch ### 🟡 Important (should fix, non-blocking) - Missing `import type` for type-only imports - Arbitrary Tailwind values (`w-[Npx]`, `bg-[#xxx]`) - `console.log` left in code - Missing DB health guard on new cache writes - `forEach` with `async` callback - Geocache key not normalized (`toLowerCase().trim()`) - Silent catch (error swallowed, no response returned) - `cursor: null` passed as GraphQL variable ### 🟢 Suggestions (optional improvements) - `memo()` opportunity on component that re-renders frequently - `useMemo()` for GeoJSON feature array construction - `Promise.all()` for independent async operations - Unused imports ## Step 4: Report ``` ## Code Review — StarMapper **Files reviewed**: [list] **Change type**: [API route / component / lib / schema] ### 🔴 Blocking Issues (N) 1. **[Category]**: [Description] File: `src/...` line N Fix: [concrete fix] ### 🟡 Important Issues (N) 1. **[Category]**: [Description] File: `src/...` line N Suggestion: [concrete improvement] ### 🟢 Suggestions (N) 1. ... ### ✅ Patterns Verified - [ ] Arrow functions only - [ ] Type imports separate - [ ] No any - [ ] CSS tokens used (no arbitrary values) - [ ] MapLibre ssr:false - [ ] Geocache key normalized - [ ] Rate limit guards present - [ ] No console.log ``` ## Mode: --auto Iterative fix loop (max 3 iterations): 1. Run review → identify blocking + important issues 2. Apply fixes one by one 3. Re-run `rtk tsc` + `pnpm lint` after each batch 4. Stop when: zero blocking + zero important issues OR 3 iterations reached 5. Output summary: what was fixed, what remains **Safety**: Never edit `.env*` files. Confirm before modifying > 5 files. ## Mode: --multi-agent Launch 4 parallel specialized agents and reconcile results: **Agent 1 — Architecture & Chunk Pattern Auditor** - Verifies chunk loop integrity (no server-side loops) - Checks Vercel constraint compliance (10s, 4.5MB) - Reviews cache strategy (geocache, stargazer cache, badge cache) **Agent 2 — StarMapper Patterns Enforcer** - TypeScript conventions (arrow functions, type imports, no any) - Tailwind v4 design system compliance (tokens, no arbitrary values) - MapLibre GL 5.x patterns (Promise-based API, ssr:false, cleanup) - Geocoder patterns (normalized key, cache-first, sequential) **Agent 3 — Performance & Rate Limit Auditor** - GitHub GraphQL rate limit handling - Nominatim: sequential calls, 1100ms delay - Circuit breaker presence for Jawg/Geoapify - MapLibre render performance (memo, useMemo) - Bundle size implications **Agent 4 — Defensive Code Auditor** - No silent catches in API routes - No `|| {}` on Prisma returns - No `forEach` with `async` - DB health guard on writes - XSS in MapLibre popups **Reconciliation**: - Deduplicate findings across agents - Merge into unified report with severity - Highlight consensus findings (flagged by 2+ agents)
Voir sur GitHub