Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

FAQ

Does cntrdct send my code anywhere by default?

No. The default scan runs entirely offline. Only two opt-in flows talk to the network: scan --adjudicate (Anthropic Messages API, gated behind ANTHROPIC_API_KEY) and cross-model-kappa (shells out to claude --print and gemini -p, which handle their own auth). The network-isolation CI job enforces the property structurally on every push and pull request. See Network access policy.

Why does every detector cite a paper?

cntrdct’s value proposition is evidence-grounded findings: a reviewer can follow each finding back to the peer-reviewed work that justifies the detection rule. The constraint is enforced at registration time and in CI (tests/citations_consistency.rs). See Citation policy (P1).

Can I run cntrdct on Python-only repositories?

Yes. Five of the six Layer 1 detectors support Python (unreachable-after-terminator, clone-drift, arg-swap, comment-code, pr-miner); config-interaction is Rust-only because Python lacks a semantic analogue to #[cfg(...)]. See Configuration for [languages.python] enablement.

Why are some Python citations marked Unconfirmed?

The citation-policy spec (docs/spec/citations-policy.md) requires at least one citation grounded in empirical work on the target language. Three detectors (comment-code, pr-miner, unreachable-after-terminator) cite Rust empirical work under a grandfather clause until a confirmed Python citation is identified. See the per-detector pages for status.

How do I report a false positive?

File an issue using the bug report template. Include the source snippet, the SARIF result block (or JSON finding), and the cntrdct version. If the false positive reflects a corpus gap, contributing a labelled negative under benchmarks/ is the most direct fix path.

Is there a paid / hosted version?

No. cntrdct is MIT-licensed and runs locally.