The plugin's defaults assume a greenfield project. For an existing codebase with historical magic constants, TODOs without trackers, and "always" / "never" comments, running --staged on every commit would be painful. Use the transition profile.
bash tools/zetetic-checker.sh --fullCount the findings:
- UNSOURCED (errors) — absolute claims without citations; usually small, worth fixing
- MAGIC_NUMBER (warnings) — tuning constants without
// source:; usually large - TODO_NO_REF (warnings) — orphan TODOs; often fixable by linking to issues
<repo-root>/.zetetic.conf:
ZETETIC_PROFILE=permissivePermissive mode reports findings but never blocks. Commits go through. Keep the instrument visible while paying down the backlog.
Use the included team agents incrementally:
For magic numbers:
Ask the engineer or refactorer to add // source: annotations to constants
they can verify from docs, benchmarks, or the standard library.
For orphan TODOs:
# TODO: refactor later → bad
# TODO(#264): extract shared validator → good
You don't have to fix everything. Some constants are infrastructure (HTTP status codes, port numbers) — the default regex skips them.
When --full returns 0 UNSOURCED errors (or a manageable number you triage per PR):
ZETETIC_PROFILE=standardUNSOURCED now blocks commits; MAGIC_NUMBER and TODO_NO_REF still warn.
For algorithms from papers, financial logic, crypto, ML hyperparameters, and the components in rules/coding-standards.md §10 "High stakes":
- Directory-scoped
.zetetic.confin those subdirectories withZETETIC_PROFILE=strict, OR - A pre-push hook that runs
ZETETIC_PROFILE=stricton those paths, OR - An ADR formalizing the stricter threshold.
Eight agents auto-delegate by default (refactorer, code-reviewer, test-engineer, security-auditor, architect, Feynman, Curie, Dijkstra). To make them less aggressive on existing-project transition:
- Edit the installed agent copy in
~/.claude/agents/to remove theProactivelylead-in and scenario examples (survives plugin updates —setup.shdetects user-modified files and backs them up before overwriting). - Or set specific agents to
model: haikuin~/.claude/zetetic-agent-models.jsonfor cheaper evaluation during the transition.