{
"event": "PreToolUse",
"tool_name": "Bash",
"tool_input": {
"command": "PYTHONPATH=\/var\/www\/mcp-servers .\/venv\/bin\/python -c \"\nimport yaml\nfrom validators import ContractValidator, ScopeResolver, RuleEvaluator\n\nyaml_content = '''\ncontract:\n name: betriebsdokumentation\n version: \\\"2.0\\\"\n status: active\n scope:\n paths:\n - \\\"\/src\/View\/docs\/**\/*.php\\\"\n excludes:\n - \\\"**\/layout.php\\\"\n - \\\"**\/partials\/**\\\"\n rules:\n - id: required-h1\n check_type: required_pattern\n patterns:\n - \\\"<h1>\\\"\n in_files: \\\"docs\/**\/*.php\\\"\n severity: major\n description: \\\"Dokumentationsseiten müssen h1 Titel haben\\\"\n - id: terminology-dienst\n check_type: forbidden_pattern\n patterns:\n - \\\">Service<\\\"\n - \\\">Command<\\\"\n in_files: \\\"docs\/**\/*.php\\\"\n severity: minor\n description: \\\"Bevorzuge Dienst statt Service\\\"\n'''\n\ncontract_data = yaml.safe_load(yaml_content)\nprint('Contract loaded:', contract_data['contract']['name'])\n\n# Test ScopeResolver\nresolver = ScopeResolver()\nscope = contract_data['contract']['scope']\npaths = resolver.resolve_paths(scope)\nprint(f'ScopeResolver found {len(paths)} paths')\nfor p in paths[:5]:\n print(f' - {p}')\n\n# Test RuleEvaluator\nevaluator = RuleEvaluator()\nprint(f'RuleEvaluator instantiated')\n\n# Test full ContractValidator\nvalidator = ContractValidator(contract_data, resolver, evaluator)\nresult = validator.validate()\n\nprint(f'\\\\n=== Validation Result ===')\nprint(f'Contract: {result.contract}')\nprint(f'Outcome: {result.outcome}')\nprint(f'Critical: {result.critical}, Major: {result.major}, Minor: {result.minor}')\nprint(f'Findings: {len(result.findings)}')\n\n# Show first few findings\nfor f in result.findings[:5]:\n print(f' - {f.get(\\\"type\\\", \\\"?\\\")}: {f.get(\\\"message\\\", \\\"no message\\\")[:60]}')\n\"\n",
"description": "Test ContractValidator with PYTHONPATH set"
}
}
{
"tool_response": {
"stdout": "Contract loaded: betriebsdokumentation\nScopeResolver found 6 paths\n - \/var\/www\/dev.campus.systemische-tools.de\/src\/View\/docs\/code.php\n - \/var\/www\/dev.campus.systemische-tools.de\/src\/View\/docs\/code-show.php\n - \/var\/www\/dev.campus.systemische-tools.de\/src\/View\/docs\/code-graph.php\n - \/var\/www\/dev.campus.systemische-tools.de\/src\/View\/docs\/index.php\n - \/var\/www\/dev.campus.systemische-tools.de\/src\/View\/docs\/show.php\nRuleEvaluator instantiated\n\n=== Validation Result ===\nContract: betriebsdokumentation\nOutcome: passed\nCritical: 0, Major: 0, Minor: 0\nFindings: 0",
"stderr": "",
"interrupted": false,
"isImage": false
}
}