← Docs

DOCS · LIMITATIONS

Where cix falls short.

A tool that hides its limitations is not trustworthy. A tool that documents them is making a bet that you'd rather know. We are betting you'd rather know.

01 — Honest gap

Languages without a parser

Lua is the most-discussed gap (Kong scores 1–4/15 for this reason). Erlang, Elixir, Crystal, Zig, Lisp/Scheme dialects, Haskell, and Scala are also unsupported today. On these projects, orientation explicitly tells you parsing is unsupported and you should expect to fall back. cix never returns a confident-looking but wrong answer when the parser doesn't exist.

02 — Honest gap

Dynamic registration patterns

Loki registers most of its primary HTTP API through a runtime module manager. rclone uses a runtime registry function. Static analysis can't fully see this. cix captures the static portion and flags the dynamic gap honestly. On these projects, treat the route view as partial.

03 — Honest gap

Same-name symbol disambiguation

When two unrelated types share a name across packages, impact analysis sometimes resolves to one when you meant the other. The output flags the ambiguity, but in time-pressed workflows it's real friction. Package-qualified lookups by default are on the roadmap.

04 — Honest gap

Schema parsing has gaps

Custom migration runners, ALTER-without-CREATE migrations, Postgres-specific types (tsvector, custom domains), and ORM-only fields are partial or best-effort. The schema confidence tier surfaces all of this — when the schema view says 'partial,' it explains what's missing.

05 — Honest gap

Test fixtures bleed into route lists

Some projects register routes for testing purposes. Directory heuristics handle the common cases (test/, spec/, __tests__/), but cases that don't match leak through. Better classification is in progress.

06 — Honest gap

Convention enforcement varies by client

Strongest on Claude Code (writes are blocked at the file system). Partial on Codex and Gemini CLI today (the rules still exist; the validation queries still work; violations surface as warnings rather than blocks).

Out of scope

What cix does not even try to do

Code style (use Prettier, Black, gofmt). Test coverage. Bug detection (use SonarQube, ESLint, Bandit). Type checking (your language's checker is better at this). Architectural judgment (whether an abstraction should exist — a human call). Greenfield project structure (start the project, then add cix).

Common worries — answered

What we are sometimes asked but is not actually true

  • cix does NOT send your code to a third party. The index is local. Optional shared-server mode runs on your infrastructure.
  • cix does NOT lock you into a specific assistant. The protocol is open; the index is portable.
  • cix does NOT make your assistant slower. Index queries are single-digit milliseconds.
  • cix does NOT require specific repository structure. Conventions are inferred and tunable, not imposed.

A tool that hides its limitations is not trustworthy. A tool that documents them is making a bet that you’d rather know.