Findings
Sadrazam reports a small set of finding types so the output stays predictable in local runs and CI.
Dependency findings
Section titled “Dependency findings”missing: package is used but not declared inpackage.jsonunused-dependencies: declared dependency is not usedunused-devDependencies: declared devDependency is not usedmisplaced-devDependencies: devDependency is used by production files in--strictmode
Code hygiene findings
Section titled “Code hygiene findings”unresolved-imports: local-style import specifier cannot be resolved to a scanned source fileunused-files: source file is not reachable from package entries, script entries, or fallback entry discoveryunused-exports: reachable local module exports a symbol that is never imported by another reachable local moduleduplicate-exports: reachable local module exports aliases for the same local symbolnamespace-members: reachable local module exports a TypeScript namespace member that is never referenced by another reachable local module
Common filters
Section titled “Common filters”Focus on code hygiene only:
sadrazam . --include unused-files,unused-exports,duplicate-exports,namespace-membersExclude noisy dependency findings:
sadrazam . --exclude unused-devDependenciesGet machine-readable output:
sadrazam . --reporter jsonGet compact editor-friendly output:
sadrazam . --reporter compact-jsonCompact JSON includes best-effort file, line, and column fields for local import and export findings.
Explain one finding type:
sadrazam . --explain unused-filesunused-filesintentionally ignores common test and config file patterns to reduce false positives.unresolved-importsis limited to relative imports, absolute path imports,package.json#importsspecifiers, and configured local aliases. Bare external packages stay undermissingwhen they are not declared.unused-exportsis conservative in ambiguous cases and currently targets local module relationships.duplicate-exportstargets alias-style duplicates such asexport const alias = originalorexport default originalwhenoriginalis also exported from the same reachable file. Tag intentional aliases with@alias.namespace-membersis conservative: if a namespace object is used without explicit member access, its members are treated as used.unused-exportscan ignore explicitly tagged exports viajsdocTags.ignoreExportsand tags such as@sadrazam-ignore.preprocessorscan suppress package, file, or export findings after analysis when you need deterministic exceptions.--explain <type>accepts one supported finding type and includes explanation details in text, JSON, and TOON output.