Grepai Ignore Patterns

yoanbernabeu/grepai-skills/skills/configuration/grepai-ignore-patterns

作者 yoanbernabeu382d40261c0d41109c6e11872574ba0be9b064d0无许可证收录于 2026年10月9日更新于 2026年10月9日

Configure ignore patterns in GrepAI. Use this skill when excluding files and directories from indexing.

AI 生成的概览

配置 GrepAI 忽略模式,将文件和目录排除在代码索引之外。

功能
本技能说明如何通过 .grepai/config.yaml 配置 GrepAI 索引的忽略模式,同时也会自动遵循 .gitignore。它介绍目录、文件、路径和 glob 的模式语法,列出默认模式,并提供 JavaScript、Go、Python、Rust、Java/Kotlin 及 monorepo 项目的现成配置。内容还涵盖排除测试、生成代码和文档,检查索引状态,排查常见问题,以及在修改后重新建立索引。
适用场景
当你需要让测试文件、第三方或生成代码、构建产物或文档不出现在 GrepAI 搜索结果中时使用。也适用于缩小索引体积、自定义 GrepAI 索引范围,或修复未生效的模式。
运行要求
需要已安装 GrepAI 并拥有包含 .grepai 配置的项目;本技能仅为说明文档,不附带脚本。

GrepAI Ignore Patterns

This skill covers how to configure ignore patterns to exclude files and directories from GrepAI indexing.

When to Use This Skill

  • Excluding test files from search results
  • Ignoring generated or vendored code
  • Reducing index size by excluding unnecessary files
  • Customizing which files GrepAI indexes

How Ignore Patterns Work

GrepAI uses two sources for ignore patterns:

  1. .grepai/config.yaml - Custom patterns you define
  2. .gitignore - Automatically respected

Configuration Location

yaml
# .grepai/config.yamlignore:  - pattern1  - pattern2

Pattern Syntax

Directory Patterns

yaml
ignore:  # Exact directory name (matches anywhere)  - node_modules  - vendor  - __pycache__
  # With trailing slash (explicit directory)  - dist/  - build/  - coverage/

File Patterns

yaml
ignore:  # Exact filename  - package-lock.json  - yarn.lock
  # Wildcard patterns  - "*.min.js"  - "*.min.css"  - "*.map"  - "*.lock"

Path Patterns

yaml
ignore:  # Paths containing substring  - /tests/  - /spec/  - /__tests__/
  # Specific paths  - src/generated/  - api/swagger/

Glob Patterns

yaml
ignore:  # Double star (recursive)  - "**/test/**"  - "**/mock/**"
  # Single star (single level)  - "*.test.js"  - "*.spec.ts"  - "*_test.go"

Default Ignore Patterns

GrepAI's default configuration includes:

yaml
ignore:  # Version control  - .git  - .svn  - .hg
  # GrepAI itself  - .grepai
  # Package managers  - node_modules  - vendor  - .npm  - .yarn
  # Build outputs  - target  - dist  - build  - out
  # Cache directories  - __pycache__  - .pytest_cache  - .mypy_cache  - .cache
  # Framework outputs  - .next  - .nuxt  - .output

Common Ignore Configurations

JavaScript/TypeScript Project

yaml
ignore:  - node_modules  - dist  - build  - coverage  - .nyc_output  - "*.min.js"  - "*.bundle.js"  - "*.map"  - package-lock.json  - yarn.lock  - pnpm-lock.yaml

Go Project

yaml
ignore:  - vendor  - bin  - "*.pb.go"       # Protobuf generated  - "*_mock.go"     # Mocks  - "mocks/"  - go.sum

Python Project

yaml
ignore:  - __pycache__  - .pytest_cache  - .mypy_cache  - .venv  - venv  - env  - "*.pyc"  - "*.pyo"  - .eggs  - "*.egg-info"  - dist  - build

Rust Project

yaml
ignore:  - target  - Cargo.lock  - "*.rlib"

Java/Kotlin Project

yaml
ignore:  - target  - build  - .gradle  - "*.class"  - "*.jar"  - "*.war"

Monorepo

yaml
ignore:  # Common  - node_modules  - dist  - build  - coverage
  # Specific packages to exclude  - packages/legacy/  - packages/deprecated/
  # Generated  - "**/generated/**"  - "**/__generated__/**"

Excluding Test Files

To focus search on production code:

yaml
ignore:  # Test directories  - tests/  - test/  - __tests__/  - spec/
  # Test files by pattern  - "*.test.js"  - "*.test.ts"  - "*.spec.js"  - "*.spec.ts"  - "*_test.go"  - "test_*.py"  - "*_test.py"

Alternative: Use search boosting instead to penalize (not exclude) tests:

yaml
search:  boost:    penalties:      - pattern: /tests/        factor: 0.5      - pattern: _test.        factor: 0.5

Excluding Generated Code

yaml
ignore:  # Generated markers  - "**/generated/**"  - "*.generated.*"  - "*.gen.*"
  # Specific generators  - "*.pb.go"           # Protobuf  - "*.graphql.ts"      # GraphQL codegen  - "*.d.ts"            # TypeScript declarations  - "swagger_*.go"      # Swagger  - "openapi_*.ts"      # OpenAPI

Excluding Documentation

yaml
ignore:  - docs/  - documentation/  - "*.md"  - "*.mdx"  - "*.rst"

Verifying Ignore Patterns

Check what's being indexed:

bash
# Check index statusgrepai status
# Output shows file count# If too high, add more ignore patterns

Common Issues

❌ Problem: Index is too large ✅ Solution: Add more ignore patterns for dependencies and generated files

❌ Problem: Search returns vendor/test code ✅ Solution: Either ignore or use boosting penalties

❌ Problem: Pattern not working ✅ Solution: Check syntax - use quotes for patterns with special characters:

yaml
ignore:  - "*.min.js"  # Correct  - *.min.js    # May cause YAML parsing issues

❌ Problem: Need to include previously ignored files ✅ Solution: Remove from ignore list and re-run grepai watch

Best Practices

  1. Start with defaults: Add patterns as needed
  2. Exclude dependencies: Always ignore node_modules, vendor, etc.
  3. Exclude build outputs: dist, build, target
  4. Exclude lock files: Large, not useful for search
  5. Consider boosting vs ignoring: Penalize instead of exclude for test files
  6. Quote special characters: "*.min.js" not *.min.js

Re-indexing After Changes

After modifying ignore patterns:

bash
# Stop existing daemongrepai watch --stop
# Clear index and restartrm .grepai/index.gobgrepai watch

Output Format

After configuring ignore patterns:

✅ Ignore Patterns Configured
   Patterns: 15 configured
   Categories:   - Directories: node_modules, vendor, dist, build   - File types: *.min.js, *.map, *.lock   - Paths: /tests/, /docs/
   Also respecting: .gitignore
   Run 'grepai watch' to re-index with new patterns.

来源与署名

来源:yoanbernabeu/grepai-skills位于skills/configuration/grepai-ignore-patterns提交382d402

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架