{
  "timestamp": "2026-02-22T01:20:20.037Z",
  "projectId": "bb9f8445-39fd-438c-8ab6-8057f5514395",
  "rules": [
    {
      "id": "7eec5cbe-b7e4-4710-ba93-6231e3fc180c",
      "rule_name": "modular_actions",
      "rule_type": "CUSTOM",
      "value": {
        "description": "Server actions should be split by domain"
      },
      "severity": "info",
      "description": "Keep server actions modular and domain-specific.",
      "source": "global",
      "is_enabled": true
    },
    {
      "id": "600c2477-c85e-4939-8ff7-cb31d388be67",
      "rule_name": "STRICT_MODULARIZATION",
      "rule_type": "CUSTOM",
      "value": {
        "enforce_separation": true
      },
      "severity": "error",
      "description": "Enforce strict separation between Logic (Hooks/Labs) and UI Components.",
      "source": "global",
      "is_enabled": true
    },
    {
      "id": "639aec86-e7d1-4a95-bde8-1f41d8336ce3",
      "rule_name": "COMPLEXITY_GUARD",
      "rule_type": "CUSTOM",
      "value": {
        "max_complexity": 10
      },
      "severity": "warning",
      "description": "Warn when functions become too complex (cyclomatic complexity > 10).",
      "source": "global",
      "is_enabled": true
    },
    {
      "id": "d82d6647-bb47-4295-a5a7-799ebc39d04d",
      "rule_name": "TYPED_CONTRACTS",
      "rule_type": "CUSTOM",
      "value": {
        "strict_interfaces": true
      },
      "severity": "error",
      "description": "Require explicit TypeScript interfaces for all component props and API responses.",
      "source": "global",
      "is_enabled": true
    },
    {
      "id": "865bdd84-870b-4c7a-99f1-8a3297abde68",
      "rule_name": "SINGLE_RESPONSIBILITY",
      "rule_type": "CUSTOM",
      "value": {
        "max_exports": 1
      },
      "severity": "info",
      "description": "Encourage one primary export per file to maintain single responsibility.",
      "source": "global",
      "is_enabled": true
    },
    {
      "id": "4e9a89af-89ca-4af6-916f-40846821aa09",
      "rule_name": "folder_structure",
      "rule_type": "CUSTOM",
      "value": {
        "required_folders": [
          "lib",
          "components",
          "actions"
        ]
      },
      "severity": "warning",
      "description": "Require standard folder structure (lib/, components/, actions/).",
      "source": "global",
      "is_enabled": true
    },
    {
      "id": "6c2b4d8a-c82b-4dc0-b205-c932558bc1c2",
      "rule_name": "max_file_lines",
      "rule_type": "MAX_FILE_LINES",
      "value": {
        "limit": 300,
        "warning_threshold": 250
      },
      "severity": "warning",
      "description": "Files should not exceed 300 lines. Warning at 250.",
      "source": "global",
      "is_enabled": true
    },
    {
      "id": "31942cae-6be9-4961-a969-498af7450e00",
      "rule_name": "MAX_FILE_LINES",
      "rule_type": "MAX_FILE_LINES",
      "value": {
        "limit": 300
      },
      "severity": "warning",
      "description": "Enforce a maximum of 300 lines per file to ensure readability.",
      "source": "global",
      "is_enabled": true
    },
    {
      "id": "13ab9d0c-1943-44ad-8da9-7fd9e9b357f3",
      "rule_name": "max_function_lines",
      "rule_type": "MAX_FUNCTION_LINES",
      "value": {
        "limit": 50,
        "warning_threshold": 35
      },
      "severity": "warning",
      "description": "Functions should not exceed 50 lines. Warning at 35.",
      "source": "global",
      "is_enabled": true
    },
    {
      "id": "4749bce0-21eb-48a4-ad72-0e8e8f8ca032",
      "rule_name": "component_naming",
      "rule_type": "NAMING_CONVENTION",
      "value": {
        "context": "React components",
        "pattern": "^[A-Z][a-zA-Z]*$"
      },
      "severity": "warning",
      "description": "React components must use PascalCase.",
      "source": "global",
      "is_enabled": true
    },
    {
      "id": "9fdddfc2-7af3-4e51-8ed8-4d0ca4a05a98",
      "rule_name": "no_console_log",
      "rule_type": "PATTERN_FORBIDDEN",
      "value": {
        "pattern": "console\\.log",
        "allow_in": [
          "*.test.ts",
          "*.spec.ts"
        ]
      },
      "severity": "info",
      "description": "Avoid console.log in production code.",
      "source": "global",
      "is_enabled": true
    },
    {
      "id": "d403cd91-7b9e-410b-819a-c515664904f7",
      "rule_name": "require_error_handling",
      "rule_type": "PATTERN_REQUIRED",
      "value": {
        "context": "async functions",
        "pattern": "try.*catch|.catch\\("
      },
      "severity": "warning",
      "description": "All async operations must have error handling.",
      "source": "global",
      "is_enabled": true
    }
  ],
  "settings": {
    "lmax": 400,
    "lmax_warning": 350
  }
}