{
"event": "PreToolUse",
"tool_name": "mcp__mcp-db__db_select",
"tool_input": {
"query": "SELECT name, yaml_content FROM contracts WHERE id IN (6, 12)",
"database": "ki_dev"
}
}
{
"tool_response": [
{
"type": "text",
"text": "{\n \"status\": \"success\",\n \"data\": [\n {\n \"name\": \"python-pipeline-contract_v1.0\",\n \"yaml_content\": \"contract:\\n name: python-pipeline\\n version: \\\"2.0\\\"\\n status: active\\n description: |\\n Code-Qualitätsstandards für Python-Code in der KI-Pipeline.\\n Migriert auf Meta-Schema v1.0 am 22.12.2025.\\n\\n created: \\\"2025-12-20\\\"\\n author: migration\\n\\n scope:\\n paths:\\n - \\\"\/opt\/scripts\/pipeline\/**\/*.py\\\"\\n excludes:\\n - \\\"\/opt\/scripts\/pipeline\/venv\/**\\\"\\n - \\\"**\/__pycache__\/**\\\"\\n\\n rules:\\n - id: type-hints-required\\n check_type: custom\\n script: \\\"\/opt\/scripts\/pipeline\/venv\/bin\/mypy\\\"\\n args: [\\\"--strict\\\"]\\n severity: major\\n description: \\\"Type Hints sind erforderlich\\\"\\n\\n - id: no-bare-except\\n check_type: forbidden_pattern\\n patterns:\\n - \\\"except:\\\"\\n in_files: \\\"**\/*.py\\\"\\n severity: critical\\n description: \\\"Bare except ist verboten\\\"\\n\\n - id: no-eval\\n check_type: forbidden_pattern\\n patterns:\\n - \\\"eval(\\\"\\n - \\\"exec(\\\"\\n in_files: \\\"**\/*.py\\\"\\n severity: critical\\n description: \\\"eval und exec sind verboten (Security)\\\"\\n\\n - id: no-hardcoded-credentials\\n check_type: forbidden_pattern\\n patterns:\\n - 'password = \\\"'\\n - \\\"password = '\\\"\\n - 'secret = \\\"'\\n - \\\"secret = '\\\"\\n in_files: \\\"**\/*.py\\\"\\n severity: critical\\n description: \\\"Keine hardcoded Credentials\\\"\\n\\n - id: no-sql-injection\\n check_type: forbidden_pattern\\n patterns:\\n - 'f\\\"SELECT'\\n - \\\"f'SELECT\\\"\\n - 'f\\\"INSERT'\\n - 'f\\\"UPDATE'\\n - 'f\\\"DELETE'\\n in_files: \\\"**\/*.py\\\"\\n severity: critical\\n description: \\\"Keine f-Strings für SQL - verwende Parameterized Queries\\\"\\n\\n - id: docstrings-required\\n check_type: custom\\n script: \\\"\/opt\/scripts\/pipeline\/venv\/bin\/ruff\\\"\\n args: [\\\"check\\\", \\\"--select=D100,D101,D102,D103\\\"]\\n severity: minor\\n description: \\\"Docstrings für Module, Klassen und Funktionen\\\"\\n\\n enforcement:\\n on_violation: block\\n\\n pass_threshold:\\n critical_max: 0\\n major_max: 2\\n minor_max: 5\\n\"\n },\n {\n \"name\": \"taxonomy-mapping-contract\",\n \"yaml_content\": \"name: taxonomy-mapping-contract\\nversion: 1.0.0\\ntype: implementation\\ndescription: Contract für Taxonomie-Mapping zwischen Chunks\/Entities und Taxonomie-Begriffen\\n\\nrules:\\n - id: TMC-001\\n description: Chunk-Taxonomie-Mappings müssen eine Confidence zwischen 0.0 und 1.0 haben\\n severity: error\\n validation:\\n type: sql\\n query: SELECT COUNT(*) as violations FROM chunk_taxonomy WHERE confidence < 0 OR confidence > 1\\n expect: 0\\n\\n - id: TMC-002\\n description: Chunk-Taxonomie-Mappings müssen eine gültige Source (auto\/manual) haben\\n severity: error\\n validation:\\n type: sql\\n query: SELECT COUNT(*) as violations FROM chunk_taxonomy WHERE source NOT IN ('auto', 'manual')\\n expect: 0\\n\\n - id: TMC-003\\n description: Entity-Taxonomie-Mappings müssen eine Relevance zwischen 0.0 und 1.0 haben\\n severity: error\\n validation:\\n type: sql\\n query: SELECT COUNT(*) as violations FROM entity_taxonomy_mapping WHERE relevance < 0 OR relevance > 1\\n expect: 0\\n\\n - id: TMC-004\\n description: Alle Chunk-Taxonomie-Mappings müssen auf existierende Chunks verweisen\\n severity: error\\n validation:\\n type: sql\\n query: SELECT COUNT(*) as violations FROM chunk_taxonomy ct LEFT JOIN chunks c ON ct.chunk_id = c.id WHERE c.id IS NULL\\n expect: 0\\n\\n - id: TMC-005\\n description: Alle Entity-Taxonomie-Mappings müssen auf existierende Entities verweisen\\n severity: error\\n validation:\\n type: sql\\n query: SELECT COUNT(*) as violations FROM entity_taxonomy_mapping etm LEFT JOIN entities e ON etm.entity_id = e.id WHERE e.id IS NULL\\n expect: 0\\n\\n - id: TMC-006\\n description: Alle Mappings müssen auf existierende Taxonomie-Terme verweisen\\n severity: error\\n validation:\\n type: sql\\n query: SELECT COUNT(*) as violations FROM chunk_taxonomy ct LEFT JOIN taxonomy_terms t ON ct.taxonomy_term_id = t.id WHERE t.id IS NULL\\n expect: 0\\n\\ncomponents:\\n entities:\\n - Domain\\\\Entity\\\\ChunkTaxonomyMapping\\n - Domain\\\\Entity\\\\EntityTaxonomyMapping\\n repositories:\\n - Domain\\\\Repository\\\\ChunkTaxonomyRepositoryInterface\\n - Domain\\\\Repository\\\\EntityTaxonomyRepositoryInterface\\n usecases:\\n - UseCases\\\\Taxonomy\\\\AssignChunkTaxonomyUseCase\\n - UseCases\\\\Taxonomy\\\\AssignEntityTaxonomyUseCase\\n - UseCases\\\\Taxonomy\\\\GetTaxonomyOverviewUseCase\\n - UseCases\\\\Search\\\\EnhancedSearchUseCase\"\n }\n ],\n \"row_count\": 2,\n \"error\": null,\n \"execution_ms\": 0\n}"
}
]
}