{
  "name": "Universal Atomic Code Implementer Hooks",
  "description": "Comprehensive hooks configuration for quality enforcement and automatic remediation",
  "mosaic-managed": true,
  "version": "1.0.0",
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit|MultiEdit",
        "hooks": [
          {
            "type": "command",
            "command": "bash",
            "args": [
              "-c",
              "echo '[HOOK] Universal quality enforcement for $FILE_PATH'; if [[ \"$FILE_PATH\" == *.ts || \"$FILE_PATH\" == *.tsx ]]; then echo '[HOOK] TypeScript checks'; npx eslint --fix \"$FILE_PATH\" && npx prettier --write \"$FILE_PATH\" && npx tsc --noEmit || echo '[HOOK] TS completed'; elif [[ \"$FILE_PATH\" == *.js || \"$FILE_PATH\" == *.jsx ]]; then echo '[HOOK] JavaScript checks'; npx eslint --fix \"$FILE_PATH\" && npx prettier --write \"$FILE_PATH\" || echo '[HOOK] JS completed'; elif [[ \"$FILE_PATH\" == *.py ]]; then echo '[HOOK] Python checks'; black \"$FILE_PATH\" && flake8 \"$FILE_PATH\" && mypy \"$FILE_PATH\" || echo '[HOOK] Python completed'; fi"
            ]
          }
        ]
      }
    ]
  },
  "fileTypeHooks": {
    "*.ts": {
      "afterChange": [
        "echo '[HOOK] TypeScript file modified: ${FILE_PATH}'",
        "npx eslint --fix ${FILE_PATH}",
        "npx prettier --write ${FILE_PATH}",
        "npx tsc --noEmit --project tsconfig.json"
      ],
      "beforeDelete": ["echo '[HOOK] Checking for TypeScript file dependencies before deletion'"]
    },
    "*.tsx": {
      "afterChange": [
        "echo '[HOOK] React TypeScript file modified: ${FILE_PATH}'",
        "npx eslint --fix ${FILE_PATH}",
        "npx prettier --write ${FILE_PATH}",
        "npx tsc --noEmit --project tsconfig.json",
        "if command -v npm >/dev/null 2>&1; then",
        "  npm run test:component -- ${FILE_NAME} 2>/dev/null || echo '[HOOK] Component tests checked'",
        "fi"
      ]
    },
    "*.js": {
      "afterChange": [
        "echo '[HOOK] JavaScript file modified: ${FILE_PATH}'",
        "npx eslint --fix ${FILE_PATH}",
        "npx prettier --write ${FILE_PATH}"
      ]
    },
    "*.jsx": {
      "afterChange": [
        "echo '[HOOK] React JavaScript file modified: ${FILE_PATH}'",
        "npx eslint --fix ${FILE_PATH}",
        "npx prettier --write ${FILE_PATH}",
        "if command -v npm >/dev/null 2>&1; then",
        "  npm run test:component -- ${FILE_NAME} 2>/dev/null || echo '[HOOK] Component tests checked'",
        "fi"
      ]
    },
    "*.py": {
      "afterChange": [
        "echo '[HOOK] Python file modified: ${FILE_PATH}'",
        "black ${FILE_PATH}",
        "flake8 ${FILE_PATH} || echo '[HOOK] Flake8 linting completed'",
        "mypy ${FILE_PATH} || echo '[HOOK] MyPy type checking completed'",
        "if command -v pytest >/dev/null 2>&1; then",
        "  pytest ${FILE_PATH%.*}_test.py 2>/dev/null || echo '[HOOK] Python tests checked'",
        "fi"
      ]
    },
    "package.json": {
      "afterChange": [
        "echo '[HOOK] package.json modified, updating dependencies'",
        "npm install --no-audit --no-fund || echo '[HOOK] Dependency update completed'"
      ]
    },
    "requirements.txt": {
      "afterChange": [
        "echo '[HOOK] requirements.txt modified, updating Python dependencies'",
        "pip install -r requirements.txt || echo '[HOOK] Python dependency update completed'"
      ]
    },
    "*.json": {
      "afterChange": [
        "echo '[HOOK] JSON file modified: ${FILE_PATH}'",
        "if command -v jq >/dev/null 2>&1; then",
        "  jq . ${FILE_PATH} > /dev/null || echo '[HOOK] JSON validation failed'",
        "fi"
      ]
    },
    "*.md": {
      "afterChange": [
        "echo '[HOOK] Markdown file modified: ${FILE_PATH}'",
        "if command -v prettier >/dev/null 2>&1; then",
        "  npx prettier --write ${FILE_PATH} || echo '[HOOK] Markdown formatting completed'",
        "fi"
      ]
    }
  },
  "remediationActions": {
    "RETRY_OPERATION": {
      "description": "Retry the last file operation after applying fixes",
      "maxRetries": 2,
      "backoffMs": 1000
    },
    "CONTINUE_WITH_WARNING": {
      "description": "Continue execution but log warnings for manual review",
      "logLevel": "warning"
    },
    "ABORT_WITH_ERROR": {
      "description": "Stop execution and require manual intervention",
      "logLevel": "error"
    },
    "TRIGGER_QA_AGENT": {
      "description": "Escalate to QA validation agent for complex issues",
      "agent": "qa-validation-agent"
    },
    "REQUEST_CONTEXT7_HELP": {
      "description": "Look up documentation for error resolution",
      "tool": "mcp__context7__get-library-docs"
    }
  },
  "qualityGates": {
    "typescript": {
      "eslint": {
        "enabled": true,
        "config": ".eslintrc.js",
        "autoFix": true,
        "failOnError": false
      },
      "prettier": {
        "enabled": true,
        "config": ".prettierrc",
        "autoFix": true
      },
      "typeCheck": {
        "enabled": true,
        "config": "tsconfig.json",
        "failOnError": false
      },
      "testing": {
        "enabled": true,
        "runAffected": true,
        "coverage": 80
      }
    },
    "python": {
      "black": {
        "enabled": true,
        "lineLength": 88,
        "autoFix": true
      },
      "flake8": {
        "enabled": true,
        "config": ".flake8",
        "failOnError": false
      },
      "mypy": {
        "enabled": true,
        "config": "mypy.ini",
        "failOnError": false
      },
      "pytest": {
        "enabled": true,
        "coverage": 90
      }
    },
    "javascript": {
      "eslint": {
        "enabled": true,
        "autoFix": true
      },
      "prettier": {
        "enabled": true,
        "autoFix": true
      }
    }
  },
  "performanceOptimization": {
    "parallelExecution": {
      "enabled": true,
      "maxConcurrency": 4
    },
    "caching": {
      "enabled": true,
      "eslint": true,
      "prettier": true,
      "typescript": true
    },
    "incrementalChecks": {
      "enabled": true,
      "onlyModifiedFiles": true
    }
  },
  "monitoring": {
    "metrics": {
      "hookExecutionTime": true,
      "errorRates": true,
      "remediationSuccess": true
    },
    "logging": {
      "level": "info",
      "format": "json",
      "includeStackTrace": true
    },
    "alerts": {
      "highErrorRate": {
        "threshold": 0.1,
        "action": "log"
      },
      "slowHookExecution": {
        "thresholdMs": 10000,
        "action": "log"
      }
    }
  },
  "integration": {
    "presets": {
      "loadHooksFromPresets": true,
      "overrideWithProjectConfig": true
    },
    "cicd": {
      "skipInCI": false,
      "reportToCI": true
    },
    "ide": {
      "vscode": {
        "showNotifications": true,
        "autoSave": false
      }
    }
  },
  "customCommands": {
    "fullQualityCheck": {
      "description": "Run comprehensive quality checks",
      "commands": [
        "npm run lint",
        "npm run format",
        "npm run build",
        "npm run test",
        "npm run type-check"
      ]
    },
    "securityScan": {
      "description": "Run security scanning",
      "commands": [
        "npm audit",
        "npx eslint . --ext .ts,.tsx,.js,.jsx --config .eslintrc.security.js || echo 'Security scan completed'"
      ]
    },
    "performanceCheck": {
      "description": "Run performance analysis",
      "commands": [
        "npm run build:analyze || echo 'Bundle analysis completed'",
        "npm run lighthouse || echo 'Lighthouse audit completed'"
      ]
    }
  },
  "documentation": {
    "usage": "This configuration provides comprehensive quality enforcement through hooks",
    "examples": [
      {
        "scenario": "TypeScript file creation",
        "flow": "Write file → ESLint auto-fix → Prettier format → TypeScript check → Tests"
      },
      {
        "scenario": "Python file modification",
        "flow": "Edit file → Black format → Flake8 lint → MyPy type check → Pytest"
      },
      {
        "scenario": "Build error",
        "flow": "Error detected → Analyze common issues → Apply fixes → Retry or continue"
      }
    ],
    "troubleshooting": [
      {
        "issue": "Hooks taking too long",
        "solution": "Enable parallelExecution and incremental checks"
      },
      {
        "issue": "False positive errors",
        "solution": "Adjust quality gate thresholds or use CONTINUE_WITH_WARNING"
      }
    ]
  }
}
