Skip to content

improve: expand binary/generated file filter patterns #482

@justn-hyeok

Description

@justn-hyeok

Problem

CLAUDE.md 에 "Build Artifact Exclusion (dist/, lock files, *.min.js filtered by default)" 기재. 하지만 generated code 의 다른 패턴들 (pb/proto, .snap, coverage/, .next/, out/, .turbo/, storybook-static/) 미대응. Lock 파일도 pnpm-lock.yaml / yarn.lock / Cargo.lock / go.sum / poetry.lock 등 다양.

Why this matters

Generated file 에 대한 review 는 cost 만 낭비 + FP 양산 (LLM 이 "이 줄은 수동 작성 아닌 것 같다" 고 짚을 수도).

Proposed approach

Pattern expansion

기본 제외 리스트 확장:

  • Lock: *-lock.*, *.lock, poetry.lock, Cargo.lock, go.sum, composer.lock, Pipfile.lock, uv.lock
  • Generated: *.min.*, *.bundle.*, *.pb.{go,ts,py}, *.proto.{go,ts}, *.gen.*, *_generated.*
  • Build output: dist/, build/, out/, .next/, .turbo/, .svelte-kit/, .nuxt/, coverage/, storybook-static/, .docusaurus/
  • Binary: *.{png,jpg,jpeg,gif,webp,ico,svg,woff,woff2,ttf,eot,mp4,mov,pdf,zip,tar,gz}
  • Snapshot: *.snap, __snapshots__/

User override

  • .reviewignore 파일 (gitignore 유사 syntax)
  • config: reviewContext.ignorePatterns: string[]

Silent vs verbose

  • 제외된 파일은 metadata 에 기록 (excluded: [{ path, reason }])
  • Verbose mode 에서 제외 리스트 출력

Acceptance criteria

  • 확장 기본 pattern 리스트
  • .reviewignore 지원
  • config ignorePatterns override
  • 테스트: 대표 repo 구조 (monorepo, next.js, go, rust) 에서 generated file 100% 제외 확인

References

  • packages/shared/src/utils/diff.ts (diff file 추출 지점)
  • .gitignore 와의 일관성 유지

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions