문서 목차
이 페이지에서목차

code-review-suppression

Project-specific rules to suppress false positives during code reviews

gstack pattern reference: Specify "do not flag this" in the review checklist to reduce alert fatigue.

Default Suppressions (Dart Full-Stack)#

  • Freezed generated code (*.freezed.dart, *.g.dart): Auto-generated files are excluded from review
  • Serverpod generated code (*_server/lib/src/generated/): Server auto-generated code excluded
  • slang i18n generated files (*_gen/*.g.dart): Translation auto-generated files excluded

The pattern rules below — except the generated-file globs and the two judgment-call rules (duplicate code for readability, missing const inside widgets) — are also the options of the reflex question set <code-review-checklist skill dir>/jev/suppression-match.json, one option per rule. Change both together.

  • BLoC boilerplate: sealed class Event/State definitions are not flagged as boilerplate
  • context.read<>(): Usage in BLoC event dispatch is not an anti-pattern (only problematic inside build)
  • Freezed copyWith: Long .copyWith() chains are not flagged for refactoring
  • sealed class pattern: Long case lists in when/map methods or a switch over a sealed class are a normal pattern
  • No Co prefix: CoUI widgets use Button, Card etc. without prefix (differs from Flutter Material)
  • No ButtonSize.medium: ButtonSize.normal is the default, do not suggest using medium
  • Dot shorthand: Dart 3.10+ .start, .all() etc. shorthand syntax is normal
  • melos monorepo import: Relative path imports between packages are normal in melos structure
  • feature module barrel export: feature.dart barrel file is convention
  • GetIt DI registration: getIt.registerFactory/Singleton pattern does not need flagging
  • Duplicate code for readability: Repetitive code explicitly for clarity is not flagged as DRY violation
  • Missing const (inside widgets): Do not enforce const when it hurts readability
  • Korean comments/strings: Korean usage is the project standard

Project-Specific Custom Suppressions#

Create .code-review-suppress.md at the user project root to define additional suppressions:

# Project-Specific Suppressions

- **Legacy API calls**: Usage of deprecated API at `api/v1/` path is not flagged as it is under migration
- **TODO comments**: TODOs planned for the current sprint are ignored

Suppression Application#

  1. This file and the project's .code-review-suppress.md are automatically loaded during review
  2. Each flagged item is compared against the suppression list:
    • Path rules (generated files) are globs — matched in code, never by a model.
    • Default pattern rules above: /cc-quality:review asks cc-dev:jev-reflex first, once for all findings (RV2, --items — see the review command). Jev suppresses a finding only on a reflex answer naming a rule, and never a Critical on its own: for a Critical the match is a hint Claude confirms against the rule. On none_of_these, a deliberate answer or unavailable (any exit other than 0/4), Jev suppresses nothing and Claude matches exactly as before. The two judgment-call rules (duplicate code for readability, missing const) are always Claude's. A finding suppressed on a Jev match shows its rule id and jev in Suppressed (N). Measured (jev-1.13.0, 2026-09-28, two runs identical): 18/20 matched correctly, 2 left to Claude, 0 wrong — including 4 keyword traps that must stay findings.
    • Project rules in .code-review-suppress.md are compared by Claude (they are not in the question set).
  3. Matching items are excluded from review results
  4. Number of excluded items displayed at bottom: "N items excluded by suppression"

검색어를 입력하면 문서를 찾습니다.

↑ ↓ 이동 · Enter 열기Esc 닫기