Protokoll #21916

ID21916
Zeitstempel2025-12-27 11:34:19.996797
Clientroot
IP145.224.72.140
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens482 (Input: 37, Output: 445)
Dauer80 ms
Request-Zeit2025-12-27 11:34:19.996797
Response-Zeit2025-12-27 11:34:20.076792

Request

{
    "event": "PreToolUse",
    "tool_name": "Read",
    "tool_input": {
        "file_path": "\/var\/www\/tools\/ki-protokoll\/claude-hook\/architecture_guard.py",
        "limit": 50
    }
}

Response

{
    "tool_response": {
        "type": "text",
        "file": {
            "filePath": "\/var\/www\/tools\/ki-protokoll\/claude-hook\/architecture_guard.py",
            "content": "#!\/usr\/bin\/env python3\n\"\"\"\nArchitecture Guard - Pre-Hook (Blocking)\n\nEnforces hard_constraints from architecture-gate-contract v1.1\nBlocks file creation on violation. No exceptions.\n\nRules:\n  H1: strict_types_required (all PHP files)\n  H2: domain_no_infrastructure (Domain layer)\n  H3: db_factory_only (only in Factory classes)\n  H4: no_new_repository_in_controller (Controller layer)\n  H5: no_new_infrastructure_in_controller (Controller layer)\n\nTrigger: PreToolUse (Write) on *.php\n\"\"\"\n\nimport json\nimport re\nimport sys\n\n# Hard rules from architecture-gate-contract v1.1\nHARD_RULES = [\n    {\n        \"id\": \"H1\",\n        \"name\": \"strict_types_required\",\n        \"pattern\": r\"declare\\s*\\(\\s*strict_types\\s*=\\s*1\\s*\\)\",\n        \"must_match\": True,\n        \"applies_to\": \"all\",\n        \"message\": \"Missing declare(strict_types=1). Add at top of file after <?php\"\n    },\n    {\n        \"id\": \"H2\",\n        \"name\": \"domain_no_infrastructure\",\n        \"pattern\": r\"use\\s+Infrastructure\\\\\",\n        \"must_match\": False,\n        \"applies_to\": \"\/Domain\/\",\n        \"message\": \"Domain must not use Infrastructure. Violates DIP.\"\n    },\n    {\n        \"id\": \"H3\",\n        \"name\": \"db_factory_only\",\n        \"pattern\": r\"DatabaseFactory::\",\n        \"must_match\": False,\n        \"applies_to_not\": \"\/Factory\/\",\n        \"message\": \"DatabaseFactory only allowed in Factory classes. Use DI.\"\n    },\n    {\n        \"id\": \"H4\",\n        \"name\": \"no_new_repository_in_controller\",",
            "numLines": 50,
            "startLine": 1,
            "totalLines": 178
        }
    }
}
← Vorheriger Zur Liste Nächster →