Skip to content

Built-in skip list silently excludes source dirs named deploy/deployment(s) — not overridable via .cbmignore #1184

Description

@sakivks

Summary

The hardcoded directory skip list includes deploy, deployment, and deployments. On repos where deployment logic is the product domain (deploy control planes, CD tooling, IaC orchestrators), this silently drops core source code from the graph, and docs/cbmignore.md states the built-in list is "Not overridable from any ignore file today."

Repro (v0.9.0, darwin-arm64)

Next.js/TypeScript repo with real source at src/lib/deploy/ (23 .ts files) and src/app/api/webhooks/deploy/:

codebase-memory-mcp cli index_repository --repo-path <repo> --mode full

Response:

"excluded":{"dirs":[".claude",".git",".vscode",".superpowers","src/lib/deploy","src/app/api/webhooks/deploy"],"count":6}
  • No .gitignore / nested gitignore / global excludes / .cbmignore match these paths (git check-ignore exits 1).
  • strings on the binary confirms deploy, deployment, deployments in the built-in name list.
  • Symbols from those dirs (verified via search_graph) are absent from the graph.
  • A .cbmignore negation can't rescue them — per docs, negation only overrides the git-global-excludes layer.

Why it matters

Unlike dist/target/vendor, deploy is a common source directory name (deployment engines, deploy/ K8s dirs that the README's own IaC-indexing feature targets). The exclusion is silent unless the user inspects excluded — and it's capped at 25 entries, so on bigger repos it may not even be visible there.

Suggested fixes (any of)

  1. Let .cbmignore negation (!src/lib/deploy/) override the built-in list — most flexible.
  2. Remove deploy/deployment(s) from the always-on list (or demote them to fast/moderate modes only, like docs/examples).
  3. Only skip these names when they contain no parseable source files (heuristic).

Workaround used

Index the excluded dirs as companion projects:

codebase-memory-mcp cli index_repository --repo-path <repo>/src/lib/deploy --name myrepo-deploy-lib --mode full

— works, but loses cross-file edges into the main project graph.

Metadata

Metadata

Assignees

No one assigned

    Labels

    editor/integrationEditor compatibility and CLI integrationparsing/qualityGraph extraction bugs, false positives, missing edges

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions