fallow
Version:
Codebase intelligence for TypeScript and JavaScript: health, complexity, duplication, architecture, styling drift, and unused code from one graph. CLI, LSP, and MCP server. Zero config for over 100 frameworks.
3,982 lines • 134 kB
JSON
{
"schema_version": 1,
"source": "fallow schema issue_types",
"issue_types": [
{
"id": "code-duplication",
"rule_id": "fallow/code-duplication",
"command": "dupes",
"category": "Duplication",
"description": "Duplicated code block",
"label": "Code Duplication",
"config_key": null,
"registry_index": 0,
"aliases": [],
"lsp": true,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line code-duplication",
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": "Reported by fallow dupes (and bare fallow / fallow audit)",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/duplication/#clone-groups"
},
{
"id": "unused-file",
"rule_id": "fallow/unused-file",
"command": "dead-code",
"category": "Dead code",
"description": "File is not reachable from any entry point",
"label": "Unused Files",
"config_key": "unused-files",
"registry_index": 1,
"aliases": [],
"lsp": true,
"filter_flag": "--unused-files",
"result_key": "unused_files",
"summary_label": "Unused files",
"summary_docs_anchor": "unused-files",
"sarif_rule_ids": [
"fallow/unused-file"
],
"codeclimate_check_names": [
"fallow/unused-file"
],
"ts_alias": {
"name": "UnusedFile",
"parent": "UnusedFileFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-file unused-file",
"default_severity": "error",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-files"
},
{
"id": "unused-export",
"rule_id": "fallow/unused-export",
"command": "dead-code",
"category": "Dead code",
"description": "Export is never imported",
"label": "Unused Exports",
"config_key": "unused-exports",
"registry_index": 2,
"aliases": [],
"lsp": true,
"filter_flag": "--unused-exports",
"result_key": "unused_exports",
"summary_label": "Unused exports",
"summary_docs_anchor": "unused-exports",
"sarif_rule_ids": [
"fallow/unused-export"
],
"codeclimate_check_names": [
"fallow/unused-export"
],
"ts_alias": {
"name": "UnusedExport",
"parent": "UnusedExportFinding"
},
"counts_in_total": true,
"fixable": true,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line unused-export",
"default_severity": "error",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-exports"
},
{
"id": "unused-type",
"rule_id": "fallow/unused-type",
"command": "dead-code",
"category": "Dead code",
"description": "Type export is never imported",
"label": "Unused Types",
"config_key": "unused-types",
"registry_index": 3,
"aliases": [],
"lsp": true,
"filter_flag": "--unused-types",
"result_key": "unused_types",
"summary_label": "Unused types",
"summary_docs_anchor": "unused-types",
"sarif_rule_ids": [
"fallow/unused-type"
],
"codeclimate_check_names": [
"fallow/unused-type"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line unused-type",
"default_severity": "error",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-types"
},
{
"id": "private-type-leak",
"rule_id": "fallow/private-type-leak",
"command": "dead-code",
"category": "Dead code",
"description": "Exported signature references a private type",
"label": "Private Type Leaks",
"config_key": "private-type-leaks",
"registry_index": 4,
"aliases": [],
"lsp": true,
"filter_flag": "--private-type-leaks",
"result_key": "private_type_leaks",
"summary_label": "Private type leaks",
"summary_docs_anchor": "private-type-leaks",
"sarif_rule_ids": [
"fallow/private-type-leak"
],
"codeclimate_check_names": [
"fallow/private-type-leak"
],
"ts_alias": {
"name": "PrivateTypeLeak",
"parent": "PrivateTypeLeakFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line private-type-leak",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Opt-in API hygiene check; the rule defaults to off",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#private-type-leaks"
},
{
"id": "deprecated-export-in-use",
"rule_id": "fallow/deprecated-export-in-use",
"command": "dead-code",
"category": "Dead code",
"description": "Export marked @deprecated is still referenced",
"label": "Deprecated Exports in Use",
"config_key": "deprecated-exports-in-use",
"registry_index": 5,
"aliases": [],
"lsp": false,
"filter_flag": "--deprecated-exports-in-use",
"result_key": "deprecated_exports_in_use",
"summary_label": "Deprecated exports in use",
"summary_docs_anchor": "deprecated-exports-in-use",
"sarif_rule_ids": [
"fallow/deprecated-export-in-use"
],
"codeclimate_check_names": [
"fallow/deprecated-export-in-use"
],
"ts_alias": {
"name": "DeprecatedExportInUse",
"parent": "DeprecatedExportInUseFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line deprecated-export-in-use",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Opt-in migration sweep; the rule defaults to off",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#deprecated-exports-in-use"
},
{
"id": "unused-dependency",
"rule_id": "fallow/unused-dependency",
"command": "dead-code",
"category": "Dependencies",
"description": "Dependency listed but never imported",
"label": "Unused Dependencies",
"config_key": "unused-dependencies",
"registry_index": 6,
"aliases": [],
"lsp": true,
"filter_flag": "--unused-deps",
"result_key": "unused_dependencies",
"summary_label": "Unused dependencies",
"summary_docs_anchor": "unused-dependencies",
"sarif_rule_ids": [
"fallow/unused-dependency"
],
"codeclimate_check_names": [
"fallow/unused-dependency"
],
"ts_alias": {
"name": "UnusedDependency",
"parent": "UnusedDependencyFinding"
},
"counts_in_total": true,
"fixable": true,
"suppressible": false,
"suppress_comment": null,
"default_severity": "error",
"opt_in": false,
"frameworks": [],
"note": "--unused-deps controls unused-dependency, unused-dev-dependency, unused-optional-dependency, type-only-dependency, and test-only-dependency",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-dependencies"
},
{
"id": "unused-dev-dependency",
"rule_id": "fallow/unused-dev-dependency",
"command": "dead-code",
"category": "Dependencies",
"description": "Dev dependency listed but never imported",
"label": "Unused Dev Dependencies",
"config_key": "unused-dev-dependencies",
"registry_index": 7,
"aliases": [
"unused-dev-deps",
"unused-dev-dependencies"
],
"lsp": true,
"filter_flag": "--unused-deps",
"result_key": "unused_dev_dependencies",
"summary_label": "Unused devDependencies",
"summary_docs_anchor": "unused-dependencies",
"sarif_rule_ids": [
"fallow/unused-dev-dependency"
],
"codeclimate_check_names": [
"fallow/unused-dev-dependency"
],
"ts_alias": {
"name": "UnusedDependency",
"parent": "UnusedDevDependencyFinding"
},
"counts_in_total": true,
"fixable": true,
"suppressible": false,
"suppress_comment": null,
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": "--unused-deps controls unused-dependency, unused-dev-dependency, unused-optional-dependency, type-only-dependency, and test-only-dependency",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-devdependencies"
},
{
"id": "unused-optional-dependency",
"rule_id": "fallow/unused-optional-dependency",
"command": "dead-code",
"category": "Dependencies",
"description": "Optional dependency listed but never imported",
"label": "Unused Optional Dependencies",
"config_key": "unused-optional-dependencies",
"registry_index": 8,
"aliases": [
"unused-optional-deps",
"unused-optional-dependencies"
],
"lsp": true,
"filter_flag": "--unused-deps",
"result_key": "unused_optional_dependencies",
"summary_label": "Unused optionalDependencies",
"summary_docs_anchor": "unused-dependencies",
"sarif_rule_ids": [
"fallow/unused-optional-dependency"
],
"codeclimate_check_names": [
"fallow/unused-optional-dependency"
],
"ts_alias": {
"name": "UnusedDependency",
"parent": "UnusedOptionalDependencyFinding"
},
"counts_in_total": true,
"fixable": true,
"suppressible": false,
"suppress_comment": null,
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": "--unused-deps controls unused-dependency, unused-dev-dependency, unused-optional-dependency, type-only-dependency, and test-only-dependency",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-optionaldependencies"
},
{
"id": "unused-enum-member",
"rule_id": "fallow/unused-enum-member",
"command": "dead-code",
"category": "Dead code",
"description": "Enum member is never referenced",
"label": "Unused Enum Members",
"config_key": "unused-enum-members",
"registry_index": 9,
"aliases": [],
"lsp": true,
"filter_flag": "--unused-enum-members",
"result_key": "unused_enum_members",
"summary_label": "Unused enum members",
"summary_docs_anchor": "unused-enum-members",
"sarif_rule_ids": [
"fallow/unused-enum-member"
],
"codeclimate_check_names": [
"fallow/unused-enum-member"
],
"ts_alias": {
"name": "UnusedMember",
"parent": "UnusedEnumMemberFinding"
},
"counts_in_total": true,
"fixable": true,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line unused-enum-member",
"default_severity": "error",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-enum-members"
},
{
"id": "unused-class-member",
"rule_id": "fallow/unused-class-member",
"command": "dead-code",
"category": "Dead code",
"description": "Class member is never referenced",
"label": "Unused Class Members",
"config_key": "unused-class-members",
"registry_index": 10,
"aliases": [],
"lsp": true,
"filter_flag": "--unused-class-members",
"result_key": "unused_class_members",
"summary_label": "Unused class members",
"summary_docs_anchor": "unused-class-members",
"sarif_rule_ids": [
"fallow/unused-class-member"
],
"codeclimate_check_names": [
"fallow/unused-class-member"
],
"ts_alias": {
"name": "UnusedMember",
"parent": "UnusedClassMemberFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line unused-class-member",
"default_severity": "error",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-class-members"
},
{
"id": "unused-store-member",
"rule_id": "fallow/unused-store-member",
"command": "dead-code",
"category": "Dead code",
"description": "Store member is never accessed by any consumer",
"label": "Unused Store Members",
"config_key": "unused-store-members",
"registry_index": 11,
"aliases": [
"unused-store-members"
],
"lsp": true,
"filter_flag": "--unused-store-members",
"result_key": "unused_store_members",
"summary_label": "Unused store members",
"summary_docs_anchor": "unused-store-members",
"sarif_rule_ids": [
"fallow/unused-store-member"
],
"codeclimate_check_names": [
"fallow/unused-store-member"
],
"ts_alias": {
"name": "UnusedMember",
"parent": "UnusedStoreMemberFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line unused-store-member",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-store-members"
},
{
"id": "unresolved-import",
"rule_id": "fallow/unresolved-import",
"command": "dead-code",
"category": "Dead code",
"description": "Import could not be resolved",
"label": "Unresolved Imports",
"config_key": "unresolved-imports",
"registry_index": 12,
"aliases": [],
"lsp": true,
"filter_flag": "--unresolved-imports",
"result_key": "unresolved_imports",
"summary_label": "Unresolved imports",
"summary_docs_anchor": "unresolved-imports",
"sarif_rule_ids": [
"fallow/unresolved-import"
],
"codeclimate_check_names": [
"fallow/unresolved-import"
],
"ts_alias": {
"name": "UnresolvedImport",
"parent": "UnresolvedImportFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line unresolved-import",
"default_severity": "error",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unresolved-imports"
},
{
"id": "unlisted-dependency",
"rule_id": "fallow/unlisted-dependency",
"command": "dead-code",
"category": "Dependencies",
"description": "Dependency used but not in package.json",
"label": "Unlisted Dependencies",
"config_key": "unlisted-dependencies",
"registry_index": 13,
"aliases": [],
"lsp": true,
"filter_flag": "--unlisted-deps",
"result_key": "unlisted_dependencies",
"summary_label": "Unlisted dependencies",
"summary_docs_anchor": "unlisted-dependencies",
"sarif_rule_ids": [
"fallow/unlisted-dependency"
],
"codeclimate_check_names": [
"fallow/unlisted-dependency"
],
"ts_alias": {
"name": "UnlistedDependency",
"parent": "UnlistedDependencyFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": "error",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unlisted-dependencies"
},
{
"id": "duplicate-export",
"rule_id": "fallow/duplicate-export",
"command": "dead-code",
"category": "Dead code",
"description": "Export name appears in multiple modules",
"label": "Duplicate Exports",
"config_key": "duplicate-exports",
"registry_index": 14,
"aliases": [],
"lsp": true,
"filter_flag": "--duplicate-exports",
"result_key": "duplicate_exports",
"summary_label": "Duplicate exports",
"summary_docs_anchor": "duplicate-exports",
"sarif_rule_ids": [
"fallow/duplicate-export"
],
"codeclimate_check_names": [
"fallow/duplicate-export"
],
"ts_alias": {
"name": "DuplicateExport",
"parent": "DuplicateExportFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-file duplicate-export",
"default_severity": "error",
"opt_in": false,
"frameworks": [],
"note": "fallow fix can add an ignoreExports rule to the fallow config instead of editing source",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#duplicate-exports"
},
{
"id": "type-only-dependency",
"rule_id": "fallow/type-only-dependency",
"command": "dead-code",
"category": "Dependencies",
"description": "Production dependency only used via type-only imports",
"label": "Type-Only Dependencies",
"config_key": "type-only-dependencies",
"registry_index": 15,
"aliases": [],
"lsp": true,
"filter_flag": "--unused-deps",
"result_key": "type_only_dependencies",
"summary_label": "Type-only dependencies",
"summary_docs_anchor": "type-only-dependencies",
"sarif_rule_ids": [
"fallow/type-only-dependency"
],
"codeclimate_check_names": [
"fallow/type-only-dependency"
],
"ts_alias": {
"name": "TypeOnlyDependency",
"parent": "TypeOnlyDependencyFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": "Only reported in --production mode; --unused-deps scopes it together with the other dependency kinds",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#type-only-dependencies"
},
{
"id": "test-only-dependency",
"rule_id": "fallow/test-only-dependency",
"command": "dead-code",
"category": "Dependencies",
"description": "Production dependency only imported by test files",
"label": "Test-Only Dependencies",
"config_key": "test-only-dependencies",
"registry_index": 16,
"aliases": [],
"lsp": true,
"filter_flag": "--unused-deps",
"result_key": "test_only_dependencies",
"summary_label": "Test-only dependencies",
"summary_docs_anchor": "test-only-dependencies",
"sarif_rule_ids": [
"fallow/test-only-dependency"
],
"codeclimate_check_names": [
"fallow/test-only-dependency"
],
"ts_alias": {
"name": "TestOnlyDependency",
"parent": "TestOnlyDependencyFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": "Not reported in --production mode (test files are excluded there); --unused-deps scopes it together with the other dependency kinds",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#test-only-dependencies"
},
{
"id": "dev-dependency-in-production",
"rule_id": "fallow/dev-dependency-in-production",
"command": "dead-code",
"category": "Dependencies",
"description": "devDependency imported by production code with a runtime import",
"label": "Dev Dependencies Used in Production",
"config_key": "dev-dependencies-in-production",
"registry_index": 17,
"aliases": [],
"lsp": true,
"filter_flag": "--unused-deps",
"result_key": "dev_dependencies_in_production",
"summary_label": "Dev dependencies used in production",
"summary_docs_anchor": "dev-dependencies-in-production",
"sarif_rule_ids": [
"fallow/dev-dependency-in-production"
],
"codeclimate_check_names": [
"fallow/dev-dependency-in-production"
],
"ts_alias": {
"name": "DevDependencyInProduction",
"parent": "DevDependencyInProductionFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#dev-dependencies-in-production"
},
{
"id": "circular-dependency",
"rule_id": "fallow/circular-dependency",
"command": "dead-code",
"category": "Architecture",
"description": "Circular dependency chain detected",
"label": "Circular Dependencies",
"config_key": "circular-dependencies",
"registry_index": 18,
"aliases": [
"circular-dependencies"
],
"lsp": true,
"filter_flag": "--circular-deps",
"result_key": "circular_dependencies",
"summary_label": "Circular dependencies",
"summary_docs_anchor": "circular-dependencies",
"sarif_rule_ids": [
"fallow/circular-dependency"
],
"codeclimate_check_names": [
"fallow/circular-dependency"
],
"ts_alias": {
"name": "CircularDependency",
"parent": "CircularDependencyFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line circular-dependency",
"default_severity": "error",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#circular-dependencies"
},
{
"id": "re-export-cycle",
"rule_id": "fallow/re-export-cycle",
"command": "dead-code",
"category": "Architecture",
"description": "Two or more barrel files re-export from each other in a loop",
"label": "Re-Export Cycles",
"config_key": "re-export-cycle",
"registry_index": 19,
"aliases": [
"re-export-cycles",
"reexport-cycle",
"reexport-cycles"
],
"lsp": true,
"filter_flag": "--re-export-cycles",
"result_key": "re_export_cycles",
"summary_label": "Re-export cycles",
"summary_docs_anchor": "re-export-cycles",
"sarif_rule_ids": [
"fallow/re-export-cycle"
],
"codeclimate_check_names": [
"fallow/re-export-cycle"
],
"ts_alias": {
"name": "ReExportCycle",
"parent": "ReExportCycleFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-file re-export-cycle",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#re-export-cycles"
},
{
"id": "package-cycle",
"rule_id": "fallow/package-cycle",
"command": "dead-code",
"category": "Architecture",
"description": "Two or more workspace packages import each other in a loop",
"label": "Package Cycles",
"config_key": "package-cycle",
"registry_index": 20,
"aliases": [
"package-cycles"
],
"lsp": true,
"filter_flag": "--package-cycles",
"result_key": "package_cycles",
"summary_label": "Package cycles",
"summary_docs_anchor": "package-cycles",
"sarif_rule_ids": [
"fallow/package-cycle"
],
"codeclimate_check_names": [
"fallow/package-cycle"
],
"ts_alias": {
"name": "PackageCycle",
"parent": "PackageCycleFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line package-cycle",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": "Requires a workspace with two or more packages",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#package-cycles"
},
{
"id": "boundary-violation",
"rule_id": "fallow/boundary-violation",
"command": "dead-code",
"category": "Architecture",
"description": "Import crosses a configured architecture boundary",
"label": "Boundary Violations",
"config_key": "boundary-violation",
"registry_index": 21,
"aliases": [],
"lsp": true,
"filter_flag": "--boundary-violations",
"result_key": "boundary_violations",
"summary_label": "Boundary violations",
"summary_docs_anchor": "boundary-violations",
"sarif_rule_ids": [
"fallow/boundary-violation"
],
"codeclimate_check_names": [
"fallow/boundary-violation"
],
"ts_alias": {
"name": "BoundaryViolation",
"parent": "BoundaryViolationFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line boundary-violation",
"default_severity": "error",
"opt_in": false,
"frameworks": [],
"note": "Requires configured boundary zones (boundaries config)",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#boundary-violations"
},
{
"id": "boundary-coverage",
"rule_id": "fallow/boundary-coverage",
"command": "dead-code",
"category": "Architecture",
"description": "Source file matches no configured architecture boundary zone",
"label": "Boundary Coverage",
"config_key": "boundary-violation",
"registry_index": 22,
"aliases": [
"boundary-coverage-violations"
],
"lsp": false,
"filter_flag": "--boundary-violations",
"result_key": "boundary_coverage_violations",
"summary_label": "Boundary coverage",
"summary_docs_anchor": "boundary-violations",
"sarif_rule_ids": [
"fallow/boundary-coverage"
],
"codeclimate_check_names": [
"fallow/boundary-coverage"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-file boundary-violation",
"default_severity": "error",
"opt_in": false,
"frameworks": [],
"note": "Requires boundaries.coverage.requireAllFiles",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#boundary-violations"
},
{
"id": "boundary-call-violation",
"rule_id": "fallow/boundary-call-violation",
"command": "dead-code",
"category": "Architecture",
"description": "Zoned file calls a callee its zone forbids",
"label": "Boundary Call Violations",
"config_key": "boundary-violation",
"registry_index": 23,
"aliases": [
"boundary-calls",
"boundary-call-violations"
],
"lsp": false,
"filter_flag": "--boundary-violations",
"result_key": "boundary_call_violations",
"summary_label": "Boundary calls",
"summary_docs_anchor": "boundary-violations",
"sarif_rule_ids": [
"fallow/boundary-call-violation"
],
"codeclimate_check_names": [
"fallow/boundary-call-violation"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line boundary-call-violation",
"default_severity": "error",
"opt_in": false,
"frameworks": [],
"note": "Requires boundaries.calls.forbidden patterns",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#boundary-violations"
},
{
"id": "policy-violation",
"rule_id": "fallow/policy-violation",
"command": "dead-code",
"category": "Policy",
"description": "Usage violates a configured rule-pack policy",
"label": "Policy Violations",
"config_key": "policy-violation",
"registry_index": 24,
"aliases": [
"policy-violations"
],
"lsp": true,
"filter_flag": "--policy-violations",
"result_key": "policy_violations",
"summary_label": "Policy violations",
"summary_docs_anchor": "policy-violations",
"sarif_rule_ids": [
"fallow/policy-violation"
],
"codeclimate_check_names": [
"fallow/policy-violation"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line policy-violation",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": "Requires a configured rule pack (rulePacks config)",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#policy-violations"
},
{
"id": "invalid-client-export",
"rule_id": "fallow/invalid-client-export",
"command": "dead-code",
"category": "Policy",
"description": "\"use client\" file exports a server-only / route-config name",
"label": "Invalid Client Exports",
"config_key": "invalid-client-export",
"registry_index": 25,
"aliases": [
"invalid-client-exports"
],
"lsp": true,
"filter_flag": null,
"result_key": "invalid_client_exports",
"summary_label": "Invalid client exports",
"summary_docs_anchor": "invalid-client-exports",
"sarif_rule_ids": [
"fallow/invalid-client-export"
],
"codeclimate_check_names": [
"fallow/invalid-client-export"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line invalid-client-export",
"default_severity": "warn",
"opt_in": false,
"frameworks": [
"next"
],
"note": "Requires the project to declare next",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#invalid-client-exports"
},
{
"id": "mixed-client-server-barrel",
"rule_id": "fallow/mixed-client-server-barrel",
"command": "dead-code",
"category": "Policy",
"description": "Barrel re-exports both a \"use client\" module and a server-only module",
"label": "Mixed Client/Server Barrels",
"config_key": "mixed-client-server-barrel",
"registry_index": 26,
"aliases": [
"mixed-client-server-barrels"
],
"lsp": true,
"filter_flag": null,
"result_key": "mixed_client_server_barrels",
"summary_label": "Mixed client/server barrels",
"summary_docs_anchor": "mixed-client-server-barrels",
"sarif_rule_ids": [
"fallow/mixed-client-server-barrel"
],
"codeclimate_check_names": [
"fallow/mixed-client-server-barrel"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line mixed-client-server-barrel",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": "Requires the project to declare next",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#mixed-client-server-barrels"
},
{
"id": "misplaced-directive",
"rule_id": "fallow/misplaced-directive",
"command": "dead-code",
"category": "Policy",
"description": "\"use client\" / \"use server\" directive is not in the leading position and is ignored",
"label": "Misplaced Directives",
"config_key": "misplaced-directive",
"registry_index": 27,
"aliases": [
"misplaced-directives"
],
"lsp": true,
"filter_flag": null,
"result_key": "misplaced_directives",
"summary_label": "Misplaced directives",
"summary_docs_anchor": "misplaced-directives",
"sarif_rule_ids": [
"fallow/misplaced-directive"
],
"codeclimate_check_names": [
"fallow/misplaced-directive"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line misplaced-directive",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": "Requires the project to declare next",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#misplaced-directives"
},
{
"id": "unprovided-inject",
"rule_id": "fallow/unprovided-inject",
"command": "dead-code",
"category": "Dead code",
"description": "inject() / getContext() reads a key that no provide() / setContext() supplies",
"label": "Unprovided Injects",
"config_key": "unprovided-injects",
"registry_index": 28,
"aliases": [
"unprovided-injects"
],
"lsp": true,
"filter_flag": "--unprovided-injects",
"result_key": "unprovided_injects",
"summary_label": "Unprovided injects",
"summary_docs_anchor": "unprovided-injects",
"sarif_rule_ids": [
"fallow/unprovided-inject"
],
"codeclimate_check_names": [
"fallow/unprovided-inject"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line unprovided-inject",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unprovided-injects"
},
{
"id": "unrendered-component",
"rule_id": "fallow/unrendered-component",
"command": "dead-code",
"category": "Dead code",
"description": "A Vue / Svelte component is reachable through a barrel but rendered nowhere",
"label": "Unrendered Components",
"config_key": "unrendered-components",
"registry_index": 29,
"aliases": [
"unrendered-components"
],
"lsp": true,
"filter_flag": "--unrendered-components",
"result_key": "unrendered_components",
"summary_label": "Unrendered components",
"summary_docs_anchor": "unrendered-components",
"sarif_rule_ids": [
"fallow/unrendered-component"
],
"codeclimate_check_names": [
"fallow/unrendered-component"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line unrendered-component",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unrendered-components"
},
{
"id": "unused-component-prop",
"rule_id": "fallow/unused-component-prop",
"command": "dead-code",
"category": "Dead code",
"description": "A Vue, Svelte, or React component prop is referenced nowhere in its own component",
"label": "Unused Component Props",
"config_key": "unused-component-props",
"registry_index": 30,
"aliases": [
"unused-component-props"
],
"lsp": true,
"filter_flag": "--unused-component-props",
"result_key": "unused_component_props",
"summary_label": "Unused component props",
"summary_docs_anchor": "unused-component-props",
"sarif_rule_ids": [
"fallow/unused-component-prop"
],
"codeclimate_check_names": [
"fallow/unused-component-prop"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line unused-component-prop",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-component-props"
},
{
"id": "absent-component-prop",
"rule_id": "fallow/absent-component-prop",
"command": "dead-code",
"category": "Dead code",
"description": "Known reachable callers omit an optional prop consumed inside its component",
"label": "Absent Optional Component Props",
"config_key": "absent-component-props",
"registry_index": 31,
"aliases": [
"absent-component-props"
],
"lsp": true,
"filter_flag": "--absent-component-props",
"result_key": "absent_component_props",
"summary_label": "Absent optional component props",
"summary_docs_anchor": "absent-component-props",
"sarif_rule_ids": [
"fallow/absent-component-prop"
],
"codeclimate_check_names": [
"fallow/absent-component-prop"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line absent-component-prop",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Opt-in manual review candidate; defaults to off. Inspect caller evidence and defaults before changing the component. No automatic fix.",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#absent-component-props"
},
{
"id": "unused-component-emit",
"rule_id": "fallow/unused-component-emit",
"command": "dead-code",
"category": "Dead code",
"description": "A Vue <script setup> defineEmits event is emitted nowhere in its own component",
"label": "Unused Component Emits",
"config_key": "unused-component-emits",
"registry_index": 32,
"aliases": [
"unused-component-emits"
],
"lsp": true,
"filter_flag": "--unused-component-emits",
"result_key": "unused_component_emits",
"summary_label": "Unused component emits",
"summary_docs_anchor": "unused-component-emits",
"sarif_rule_ids": [
"fallow/unused-component-emit"
],
"codeclimate_check_names": [
"fallow/unused-component-emit"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line unused-component-emit",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-component-emits"
},
{
"id": "unused-component-input",
"rule_id": "fallow/unused-component-input",
"command": "dead-code",
"category": "Dead code",
"description": "An Angular @Input() / signal input() / model() input is read nowhere in its own component",
"label": "Unused Component Inputs",
"config_key": "unused-component-inputs",
"registry_index": 33,
"aliases": [
"unused-component-inputs"
],
"lsp": true,
"filter_flag": "--unused-component-inputs",
"result_key": "unused_component_inputs",
"summary_label": "Unused component inputs",
"summary_docs_anchor": "unused-component-inputs",
"sarif_rule_ids": [
"fallow/unused-component-input"
],
"codeclimate_check_names": [
"fallow/unused-component-input"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line unused-component-input",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-component-inputs"
},
{
"id": "unused-component-output",
"rule_id": "fallow/unused-component-output",
"command": "dead-code",
"category": "Dead code",
"description": "An Angular @Output() / signal output() output is emitted nowhere in its own component",
"label": "Unused Component Outputs",
"config_key": "unused-component-outputs",
"registry_index": 34,
"aliases": [
"unused-component-outputs"
],
"lsp": true,
"filter_flag": "--unused-component-outputs",
"result_key": "unused_component_outputs",
"summary_label": "Unused component outputs",
"summary_docs_anchor": "unused-component-outputs",
"sarif_rule_ids": [
"fallow/unused-component-output"
],
"codeclimate_check_names": [
"fallow/unused-component-output"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line unused-component-output",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-component-outputs"
},
{
"id": "unused-svelte-event",
"rule_id": "fallow/unused-svelte-event",
"command": "dead-code",
"category": "Dead code",
"description": "A Svelte component dispatches a createEventDispatcher event whose name is listened to nowhere in the project",
"label": "Unused Svelte Events",
"config_key": "unused-svelte-events",
"registry_index": 35,
"aliases": [
"unused-svelte-events"
],
"lsp": true,
"filter_flag": "--unused-svelte-events",
"result_key": "unused_svelte_events",
"summary_label": "Unused Svelte events",
"summary_docs_anchor": "unused-svelte-events",
"sarif_rule_ids": [
"fallow/unused-svelte-event"
],
"codeclimate_check_names": [
"fallow/unused-svelte-event"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line unused-svelte-event",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-svelte-events"
},
{
"id": "unused-server-action",
"rule_id": "fallow/unused-server-action",
"command": "dead-code",
"category": "Dead code",
"description": "A Next.js Server Action exported from a \"use server\" file is referenced by no code in the project",
"label": "Unused Server Actions",
"config_key": "unused-server-actions",
"registry_index": 36,
"aliases": [
"unused-server-actions"
],
"lsp": true,
"filter_flag": "--unused-server-actions",
"result_key": "unused_server_actions",
"summary_label": "Unused server actions",
"summary_docs_anchor": "unused-server-actions",
"sarif_rule_ids": [
"fallow/unused-server-action"
],
"codeclimate_check_names": [
"fallow/unused-server-action"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line unused-server-action",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-server-actions"
},
{
"id": "unused-load-data-key",
"rule_id": "fallow/unused-load-data-key",
"command": "dead-code",
"category": "Dead code",
"description": "A SvelteKit load() return-object key is read by no consumer",
"label": "Unused Load Data Keys",
"config_key": "unused-load-data-keys",
"registry_index": 37,
"aliases": [
"unused-load-data-keys"
],
"lsp": true,
"filter_flag": "--unused-load-data-keys",
"result_key": "unused_load_data_keys",
"summary_label": "Unused load data keys",
"summary_docs_anchor": "unused-load-data-keys",
"sarif_rule_ids": [
"fallow/unused-load-data-key"
],
"codeclimate_check_names": [
"fallow/unused-load-data-key"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line unused-load-data-key",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-load-data-keys"
},
{
"id": "route-collision",
"rule_id": "fallow/route-collision",
"command": "dead-code",
"category": "Policy",
"description": "Two or more Next.js App Router route files resolve to the same URL",
"label": "Route Collisions",
"config_key": "route-collision",
"registry_index": 38,
"aliases": [
"route-collisions"
],
"lsp": true,
"filter_flag": null,
"result_key": "route_collisions",
"summary_label": "Route collisions",
"summary_docs_anchor": "route-collisions",
"sarif_rule_ids": [
"fallow/route-collision"
],
"codeclimate_check_names": [
"fallow/route-collision"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-file route-collision",
"default_severity": "error",
"opt_in": false,
"frameworks": [
"next"
],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#route-collisions"
},
{
"id": "dynamic-segment-name-conflict",
"rule_id": "fallow/dynamic-segment-name-conflict",
"command": "dead-code",
"category": "Policy",
"description": "Sibling Next.js dynamic route segments use different slug names at the same position",
"label": "Dynamic Segment Conflicts",
"config_key": "dynamic-segment-name-conflict",
"registry_index": 39,
"aliases": [
"dynamic-segment-name-conflicts"
],
"lsp": true,
"filter_flag": null,
"result_key": "dynamic_segment_name_conflicts",
"summary_label": "Dynamic segment conflicts",
"summary_docs_anchor": "dynamic-segment-name-conflicts",
"sarif_rule_ids": [
"fallow/dynamic-segment-name-conflict"
],
"codeclimate_check_names": [
"fallow/dynamic-segment-name-conflict"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-file dynamic-segment-name-conflict",
"default_severity": "error",
"opt_in": false,
"frameworks": [
"next"
],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#dynamic-segment-name-conflicts"
},
{
"id": "stale-suppression",
"rule_id": "fallow/stale-suppression",
"command": "dead-code",
"category": "Suppressions",
"description": "Suppression comment or tag no longer matches any issue",
"label": "Stale Suppressions",
"config_key": "stale-suppressions",
"registry_index": 40,
"aliases": [],
"lsp": true,
"filter_flag": "--stale-suppressions",
"result_key": "stale_suppressions",
"summary_label": "Stale suppressions",
"summary_docs_anchor": "stale-suppressions",
"sarif_rule_ids": [
"fallow/stale-suppression",
"fallow/missing-suppression-reason"
],
"codeclimate_check_names": [
"fallow/stale-suppression",
"fallow/missing-suppression-reason"
],
"ts_alias": null,
"counts_in_total": true,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": "Fix by removing the stale suppression marker itself",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#stale-suppressions"
},
{
"id": "missing-suppression-reason",
"rule_id": "fallow/missing-suppression-reason",
"command": "dead-code",
"category": "Suppressions",
"description": "Suppression comment omits a required reason",
"label": "Missing Suppression Reasons",
"config_key": "require-suppression-reason",
"registry_index": 41,
"aliases": [
"missing-suppression-reasons"
],
"lsp": false,
"filter_flag": "--stale-suppressions",
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#stale-suppressions"
},
{
"id": "unused-catalog-entry",
"rule_id": "fallow/unused-catalog-entry",
"command": "dead-code",
"category": "Dependencies",
"description": "Catalog entry not referenced by any workspace package",
"label": "Unused Catalog Entries",
"config_key": "unused-catalog-entries",
"registry_index": 42,
"aliases": [
"catalog",
"unused-catalog-entries"
],
"lsp": true,
"filter_flag": "--unused-catalog-entries",
"result_key": "unused_catalog_entries",
"summary_label": "Unused catalog entries",
"summary_docs_anchor": "unused-catalog-entries",
"sarif_rule_ids": [
"fallow/unused-catalog-entry"
],
"codeclimate_check_names": [
"fallow/unused-catalog-entry"
],
"ts_alias": {
"name": "UnusedCatalogEntry",
"parent": "UnusedCatalogEntryFinding"
},
"counts_in_total": true,
"fixable": true,
"suppressible": false,
"suppress_comment": null,
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-catalog-entries"
},
{
"id": "empty-catalog-group",
"rule_id": "fallow/empty-catalog-group",
"command": "dead-code",
"category": "Dependencies",
"description": "Named catalog group has no entries",
"label": "Empty Catalog Groups",
"config_key": "empty-catalog-groups",
"registry_index": 43,
"aliases": [
"empty-catalog",
"empty-catalog-groups"
],
"lsp": true,
"filter_flag": "--empty-catalog-groups",
"result_key": "empty_catalog_groups",
"summary_label": "Empty catalog groups",
"summary_docs_anchor": "empty-catalog-groups",
"sarif_rule_ids": [
"fallow/empty-catalog-group"
],
"codeclimate_check_names": [
"fallow/empty-catalog-group"
],
"ts_alias": {
"name": "EmptyCatalogGroup",
"parent": "EmptyCatalogGroupFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#empty-catalog-groups"
},
{
"id": "unresolved-catalog-reference",
"rule_id": "fallow/unresolved-catalog-reference",
"command": "dead-code",
"category": "Dependencies",
"description": "package.json references a catalog that does not declare the package",
"label": "Unresolved Catalog References",
"config_key": "unresolved-catalog-references",
"registry_index": 44,
"aliases": [
"unresolved-catalog",
"unresolved-catalog-references"
],
"lsp": true,
"filter_flag": "--unresolved-catalog-references",
"result_key": "unresolved_catalog_references",
"summary_label": "Unresolved catalog references",
"summary_docs_anchor": "unresolved-catalog-references",
"sarif_rule_ids": [
"fallow/unresolved-catalog-reference"
],
"codeclimate_check_names": [
"fallow/unresolved-catalog-reference"
],
"ts_alias": {
"name": "UnresolvedCatalogReference",
"parent": "UnresolvedCatalogReferenceFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": "error",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unresolved-catalog-references"
},
{
"id": "unused-dependency-override",
"rule_id": "fallow/unused-dependency-override",
"command": "dead-code",
"category": "Dependencies",
"description": "Package-manager override target is not declared or resolved",
"label": "Unused Dependency Overrides",
"config_key": "unused-dependency-overrides",
"registry_index": 45,
"aliases": [
"unused-dependency-overrides",
"unused-override",
"unused-overrides"
],
"lsp": true,
"filter_flag": "--unused-dependency-overrides",
"result_key": "unused_dependency_overrides",
"summary_label": "Unused dependency overrides",
"summary_docs_anchor": "unused-dependency-overrides",
"sarif_rule_ids": [
"fallow/unused-dependency-override"
],
"codeclimate_check_names": [
"fallow/unused-dependency-override"
],
"ts_alias": {
"name": "UnusedDependencyOverride",
"parent": "UnusedDependencyOverrideFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#unused-dependency-overrides"
},
{
"id": "misconfigured-dependency-override",
"rule_id": "fallow/misconfigured-dependency-override",
"command": "dead-code",
"category": "Dependencies",
"description": "Package-manager override has an unparsable key or value",
"label": "Misconfigured Dependency Overrides",
"config_key": "misconfigured-dependency-overrides",
"registry_index": 46,
"aliases": [
"misconfigured-dependency-overrides",
"misconfigured-override",
"misconfigured-overrides"
],
"lsp": true,
"filter_flag": "--misconfigured-dependency-overrides",
"result_key": "misconfigured_dependency_overrides",
"summary_label": "Misconfigured dependency overrides",
"summary_docs_anchor": "misconfigured-dependency-overrides",
"sarif_rule_ids": [
"fallow/misconfigured-dependency-override"
],
"codeclimate_check_names": [
"fallow/misconfigured-dependency-override"
],
"ts_alias": {
"name": "MisconfiguredDependencyOverride",
"parent": "MisconfiguredDependencyOverrideFinding"
},
"counts_in_total": true,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": "error",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#misconfigured-dependency-overrides"
},
{
"id": "feature-flag",
"rule_id": "fallow/feature-flag",
"command": "flags",
"category": "Flags",
"description": "Detected feature flag pattern",
"label": "Feature Flags",
"config_key": "feature-flags",
"registry_index": 50,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line feature-flag",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Reported by fallow flags",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/flags/"
},
{
"id": "prop-drilling",
"rule_id": "fallow/prop-drilling",
"command": "dead-code",
"category": "Dead code",
"description": "A React/Preact prop is forwarded unchanged through 3+ pass-through components to a distant consumer",
"label": "Prop Drilling",
"config_key": "prop-drilling",
"registry_index": 52,
"aliases": [],
"lsp": true,
"filter_flag": null,
"result_key": "prop_drilling_chains",
"summary_label": "Prop drilling",
"summary_docs_anchor": "prop-drilling",
"sarif_rule_ids": [
"fallow/prop-drilling"
],
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line prop-drilling",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Opt-in: set rules.prop-drilling to warn or error to enable. Defaults to off.",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#prop-drilling"
},
{
"id": "thin-wrapper",
"rule_id": "fallow/thin-wrapper",
"command": "dead-code",
"category": "Dead code",
"description": "A React/Preact component whose whole body is a single spread-forwarded child render (a candidate for inlining)",
"label": "Thin Wrappers",
"config_key": "thin-wrapper",
"registry_index": 53,
"aliases": [
"thin-wrappers"
],
"lsp": true,
"filter_flag": null,
"result_key": "thin_wrappers",
"summary_label": "Thin wrappers",
"summary_docs_anchor": "thin-wrapper",
"sarif_rule_ids": [
"fallow/thin-wrapper"
],
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line thin-wrapper",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Opt-in: set rules.thin-wrapper to warn or error to enable. Defaults to off.",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#thin-wrapper"
},
{
"id": "duplicate-prop-shape",
"rule_id": "fallow/duplicate-prop-shape",
"command": "dead-code",
"category": "Dead code",
"description": "Three or more React/Preact components across two or more files declare an identical prop-name set (a missing shared Props type)",
"label": "Duplicate Prop Shapes",
"config_key": "duplicate-prop-shape",
"registry_index": 54,
"aliases": [
"duplicate-prop-shapes"
],
"lsp": true,
"filter_flag": null,
"result_key": "duplicate_prop_shapes",
"summary_label": "Duplicate prop shapes",
"summary_docs_anchor": "duplicate-prop-shape",
"sarif_rule_ids": [
"fallow/duplicate-prop-shape"
],
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line duplicate-prop-shape",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Opt-in: set rules.duplicate-prop-shape to warn or error to enable. Defaults to off.",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/dead-code/#duplicate-prop-shape"
},
{
"id": "css-token-drift",
"rule_id": "fallow/css-token-drift",
"command": "health",
"category": "Health",
"description": "CSS or CSS-in-JS hardcoded styling value bypasses the design token system",
"label": "CSS Token Drift",
"config_key": "css-token-drift",
"registry_index": 55,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line css-token-drift",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/health/#css-token-drift"
},
{
"id": "css-duplicate-block",
"rule_id": "fallow/css-duplicate-block",
"command": "health",
"category": "Health",
"description": "CSS or CSS-in-JS declaration block is duplicated across rules",
"label": "CSS Duplicate Block",
"config_key": "css-duplicate-block",
"registry_index": 56,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line css-duplicate-block",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/health/#css-duplicate-block"
},
{
"id": "css-selector-complexity",
"rule_id": "fallow/css-selector-complexity",
"command": "health",
"category": "Health",
"description": "CSS selector, nesting, or important usage is structurally complex",
"label": "CSS Selector Complexity",
"config_key": "css-selector-complexity",
"registry_index": 57,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line css-selector-complexity",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/health/#css-selector-complexity"
},
{
"id": "css-dead-surface",
"rule_id": "fallow/css-dead-surface",
"command": "health",
"category": "Health",
"description": "CSS or CSS-in-JS surface appears unused",
"label": "CSS Dead Surface",
"config_key": "css-dead-surface",
"registry_index": 58,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line css-dead-surface",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/health/#css-dead-surface"
},
{
"id": "css-broken-reference",
"rule_id": "fallow/css-broken-reference",
"command": "health",
"category": "Health",
"description": "CSS or CSS-in-JS reference resolves to no stylesheet definition",
"label": "CSS Broken Reference",
"config_key": "css-broken-reference",
"registry_index": 59,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line css-broken-reference",
"default_severity": "warn",
"opt_in": false,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/health/#css-broken-reference"
},
{
"id": "angular-trusted-html",
"rule_id": "security/angular-trusted-html",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-79",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "cleartext-transport",
"rule_id": "security/cleartext-transport",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-319",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "client-server-leak",
"rule_id": "security/client-server-leak",
"command": "security",
"category": "Security",
"description": "Client-bound code reaches a non-public env read",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-file security-client-server-leak",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "code-injection",
"rule_id": "security/code-injection",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-94",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "command-injection",
"rule_id": "security/command-injection",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-78",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "coverage-intelligence-delete",
"rule_id": "fallow/coverage-intelligence-delete",
"command": "health",
"category": "Health",
"description": "Static and runtime evidence indicate code can be deleted",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": "Produced by fallow coverage analyze",
"license": "freemium",
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-intelligence"
},
{
"id": "coverage-intelligence-refactor",
"rule_id": "fallow/coverage-intelligence-refactor",
"command": "health",
"category": "Health",
"description": "Hot covered code has high CRAP and should be refactored carefully",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": "Produced by fallow coverage analyze",
"license": "freemium",
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-intelligence"
},
{
"id": "coverage-intelligence-review",
"rule_id": "fallow/coverage-intelligence-review",
"command": "health",
"category": "Health",
"description": "Cold reachable uncovered code needs owner review",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": "Produced by fallow coverage analyze",
"license": "freemium",
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-intelligence"
},
{
"id": "coverage-intelligence-risky-change",
"rule_id": "fallow/coverage-intelligence-risky-change",
"command": "health",
"category": "Health",
"description": "Changed hot path combines high CRAP and low test coverage",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": "Produced by fallow coverage analyze",
"license": "freemium",
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-intelligence"
},
{
"id": "dangerous-html",
"rule_id": "security/dangerous-html",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-79",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "deprecated-cipher",
"rule_id": "security/deprecated-cipher",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-327",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "dom-document-write",
"rule_id": "security/dom-document-write",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-79",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "dynamic-module-load",
"rule_id": "security/dynamic-module-load",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-95",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "dynamic-regex",
"rule_id": "security/dynamic-regex",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-1333",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "electron-unsafe-webpreferences",
"rule_id": "security/electron-unsafe-webpreferences",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-1188",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "flag-retirement-candidate",
"rule_id": "fallow/flag-retirement-candidate",
"command": "flags",
"category": "Flags",
"description": "Feature flag is a retirement candidate",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/flags/#retirement-report"
},
{
"id": "hardcoded-secret",
"rule_id": "security/hardcoded-secret",
"command": "security",
"category": "Security",
"description": "Provider-prefixed or contextual secret literals require verification",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Include-required category: enable via security.categories.include",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "header-injection",
"rule_id": "security/header-injection",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-113",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "high-cognitive-complexity",
"rule_id": "fallow/high-cognitive-complexity",
"command": "health",
"category": "Health",
"description": "Function has high cognitive complexity",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": "--complexity",
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line complexity",
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/health/#cognitive-complexity"
},
{
"id": "high-complexity",
"rule_id": "fallow/high-complexity",
"command": "health",
"category": "Health",
"description": "Function exceeds both complexity thresholds",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": "--complexity",
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line complexity",
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/health/#complexity-metrics"
},
{
"id": "high-crap-score",
"rule_id": "fallow/high-crap-score",
"command": "health",
"category": "Health",
"description": "Function has a high CRAP score (complexity combined with low coverage)",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": "--complexity",
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line complexity",
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/health/#crap-score"
},
{
"id": "high-cyclomatic-complexity",
"rule_id": "fallow/high-cyclomatic-complexity",
"command": "health",
"category": "Health",
"description": "Function has high cyclomatic complexity",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": "--complexity",
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line complexity",
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/health/#cyclomatic-complexity"
},
{
"id": "insecure-cookie",
"rule_id": "security/insecure-cookie",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-614",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "insecure-randomness",
"rule_id": "security/insecure-randomness",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-338",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "insecure-temp-file",
"rule_id": "security/insecure-temp-file",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-377",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "jquery-html",
"rule_id": "security/jquery-html",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-79",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "jwt-alg-none",
"rule_id": "security/jwt-alg-none",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-347",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "jwt-verify-missing-algorithms",
"rule_id": "security/jwt-verify-missing-algorithms",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-347",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "llm-call-injection",
"rule_id": "security/llm-call-injection",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-1427",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "mass-assignment",
"rule_id": "security/mass-assignment",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-915",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "mysql-multiple-statements",
"rule_id": "security/mysql-multiple-statements",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-89",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "nextjs-open-redirect",
"rule_id": "security/nextjs-open-redirect",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-601",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "nosql-injection",
"rule_id": "security/nosql-injection",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-943",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "open-redirect",
"rule_id": "security/open-redirect",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-601",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "path-traversal",
"rule_id": "security/path-traversal",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-22",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "permissive-cors",
"rule_id": "security/permissive-cors",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-942",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "postmessage-wildcard-origin",
"rule_id": "security/postmessage-wildcard-origin",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-346",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "prototype-pollution",
"rule_id": "security/prototype-pollution",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-1321",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "redos-regex",
"rule_id": "security/redos-regex",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-1333",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "refactoring-target",
"rule_id": "fallow/refactoring-target",
"command": "health",
"category": "Health",
"description": "File identified as a high-priority refactoring candidate",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": "--targets",
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/health/#refactoring-targets"
},
{
"id": "resource-amplification",
"rule_id": "security/resource-amplification",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-400",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "route-send-file",
"rule_id": "security/route-send-file",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-22",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "runtime-coverage",
"rule_id": "fallow/runtime-coverage",
"command": "health",
"category": "Health",
"description": "Runtime coverage finding",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
"license": "freemium",
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
"docs_url": "https://fallow.tools/docs/explanations/health/#runtime-coverage"
},
{
"id": "runtime-coverage-unavailable",
"rule_id": "fallow/runtime-coverage-unavailable",
"command": "health",
"category": "Health",
"description": "Runtime coverage could not be resolved for this function",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
"license": "freemium",
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
"docs_url": "https://fallow.tools/docs/explanations/health/#runtime-coverage"
},
{
"id": "runtime-low-traffic",
"rule_id": "fallow/runtime-low-traffic",
"command": "health",
"category": "Health",
"description": "Function was invoked below the low-traffic threshold",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
"license": "freemium",
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
"docs_url": "https://fallow.tools/docs/explanations/health/#runtime-coverage"
},
{
"id": "runtime-review-required",
"rule_id": "fallow/runtime-review-required",
"command": "health",
"category": "Health",
"description": "Statically used but never invoked in production",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
"license": "freemium",
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
"docs_url": "https://fallow.tools/docs/explanations/health/#runtime-coverage"
},
{
"id": "runtime-safe-to-delete",
"rule_id": "fallow/runtime-safe-to-delete",
"command": "health",
"category": "Health",
"description": "Statically unused AND never invoked in production with V8 tracking",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": false,
"suppress_comment": null,
"default_severity": null,
"opt_in": null,
"frameworks": [],
"note": "Requires --runtime-coverage input (V8 directory, V8 JSON, or Istanbul map)",
"license": "freemium",
"license_note": "A single local runtime-coverage capture is free; continuous or multi-capture runtime monitoring requires an active license (fallow license activate).",
"docs_url": "https://fallow.tools/docs/explanations/health/#runtime-coverage"
},
{
"id": "secret-pii-log",
"rule_id": "security/secret-pii-log",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-532",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "secret-to-network",
"rule_id": "security/secret-to-network",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-201",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "sql-injection",
"rule_id": "security/sql-injection",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-89",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "ssrf",
"rule_id": "security/ssrf",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-918",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "ssti",
"rule_id": "security/ssti",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-1336",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "tainted-sink",
"rule_id": "security/tainted-sink",
"command": "security",
"category": "Security",
"description": "Syntactic security sink candidates require verification",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "template-escape-bypass",
"rule_id": "security/template-escape-bypass",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-79",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "tls-validation-disabled",
"rule_id": "security/tls-validation-disabled",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-295",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "unsafe-buffer-alloc",
"rule_id": "security/unsafe-buffer-alloc",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-1188",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "unsafe-deserialization",
"rule_id": "security/unsafe-deserialization",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-502",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "untested-export",
"rule_id": "fallow/untested-export",
"command": "health",
"category": "Health",
"description": "Runtime-reachable export has no test dependency path",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": "--coverage-gaps",
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-file coverage-gaps",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-gaps"
},
{
"id": "untested-file",
"rule_id": "fallow/untested-file",
"command": "health",
"category": "Health",
"description": "Runtime-reachable file has no test dependency path",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": "--coverage-gaps",
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-file coverage-gaps",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": null,
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/explanations/health/#coverage-gaps"
},
{
"id": "weak-crypto",
"rule_id": "security/weak-crypto",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-327",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "webview-injection",
"rule_id": "security/webview-injection",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-94",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "world-writable-permission",
"rule_id": "security/world-writable-permission",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-732",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "xpath-injection",
"rule_id": "security/xpath-injection",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-643",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "xxe",
"rule_id": "security/xxe",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-611",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
},
{
"id": "zip-slip",
"rule_id": "security/zip-slip",
"command": "security",
"category": "Security",
"description": "Catalogue security candidate for CWE-22",
"label": null,
"config_key": null,
"registry_index": null,
"aliases": [],
"lsp": false,
"filter_flag": null,
"result_key": null,
"summary_label": null,
"summary_docs_anchor": null,
"sarif_rule_ids": null,
"codeclimate_check_names": null,
"ts_alias": null,
"counts_in_total": false,
"fixable": false,
"suppressible": true,
"suppress_comment": "// fallow-ignore-next-line security-sink",
"default_severity": "off",
"opt_in": true,
"frameworks": [],
"note": "Tainted-sink catalogue category; the security-sink suppression token covers every category",
"license": "free",
"license_note": null,
"docs_url": "https://fallow.tools/docs/cli/security/"
}
]
}