Protokoll #4266

ID4266
Zeitstempel2025-12-22 09:42:24.590403
Clientroot
IP
Warning: Undefined array key "request_ip" in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 13

Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 13
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens2,696 (Input: 0, Output: 0)
Dauer89 ms
Request-Zeit
Warning: Undefined array key "request_timestamp" in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 18
Response-Zeit-

Warning: Undefined array key "error_message" in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 22

Request

{
    "event": "PreToolUse",
    "tool_name": "mcp__mcp-contracts__contracts_get",
    "tool_input": {
        "name": "python-pipeline-contract_v1.0"
    }
}

Response

{
    "tool_response": [
        {
            "type": "text",
            "text": "{\n  \"success\": true,\n  \"contract\": {\n    \"id\": 6,\n    \"uuid\": \"650a0a9e-e57c-4b01-a45b-f94fbc6d3f6c\",\n    \"name\": \"python-pipeline-contract_v1.0\",\n    \"version\": \"1.0\",\n    \"status\": \"active\",\n    \"yaml_content\": \"meta:\\n  document_type: architecture_contract\\n  document_id: python-pipeline-contract\\n  normative: true\\n  binding: mandatory\\n  effective_from: 2025-12-20\\n\\nidentity:\\n  name: python-pipeline-contract\\n  version: 1.0.0\\n  status: active\\n  stability: strict\\n  changelog:\\n    - version: 1.0.0\\n      date: 2025-12-20\\n      changes:\\n        - Initial version\\n        - Code style rules (Ruff)\\n        - Type hint requirements (mypy)\\n        - Docstring requirements\\n        - Error handling rules\\n        - Import rules\\n        - Security rules\\n        - Module structure\\n\\nintent:\\n  purpose: >\\n    Defines mandatory code quality, type safety, and security constraints\\n    for Python code in the KI-Pipeline produced by humans or AI systems.\\n  goals:\\n    - code_quality\\n    - type_safety\\n    - maintainability\\n    - security\\n    - consistency\\n\\napplicability:\\n  applies_to:\\n    - human_authored_code\\n    - ai_generated_code\\n  runtime:\\n    - python_3.13\\n  scope:\\n    - \/opt\/scripts\/pipeline\/**\/*.py\\n  excluded_contexts:\\n    - virtual_environment\\n    - __pycache__\\n    - third_party_libraries\\n\\nauthority:\\n  precedence: highest\\n  overrides:\\n    - coding_guidelines\\n    - styleguides\\n  conflict_resolution: this_document_wins\\n\\ncompliance:\\n  required_for_execution: true\\n  violation_policy:\\n    on_violation: reject_output\\n    remediation: fix_and_recheck\\n  partial_compliance: forbidden\\n  tools:\\n    linting: ruff\\n    type_checking: mypy\\n    config_file: \/opt\/scripts\/pipeline\/ruff.toml\\n\\nevolution:\\n  change_policy:\\n    breaking_changes: explicit_version_bump_required\\n    silent_behavior_changes: forbidden\\n  review_required: true\\n\\naudience:\\n  primary:\\n    - ai_code_generators\\n    - automated_review_systems\\n  secondary:\\n    - backend_engineers\\n    - system_administrators\\n\\nlanguage:\\n  version: \\\"3.13\\\"\\n  encoding: utf-8\\n  line_ending: lf\\n\\ncode_style:\\n  formatter: ruff\\n  line_length: 120\\n  indent:\\n    style: space\\n    size: 4\\n  quotes:\\n    style: double\\n    docstrings: double\\n  trailing_comma: required_multiline\\n  blank_lines:\\n    after_imports: 2\\n    between_functions: 2\\n    between_classes: 2\\n\\nimports:\\n  sorting:\\n    tool: isort\\n    order:\\n      - standard_library\\n      - third_party\\n      - first_party\\n      - local\\n    first_party_modules:\\n      - config\\n      - db\\n  rules:\\n    wildcards:\\n      status: forbidden\\n      example_bad: \\\"from config import *\\\"\\n      example_good: \\\"from config import DB_CONFIG, OLLAMA_HOST\\\"\\n    relative_imports:\\n      status: forbidden\\n      example_bad: \\\"from .db import Database\\\"\\n      example_good: \\\"from db import Database\\\"\\n    unused_imports:\\n      status: forbidden\\n      exception: \\\"__init__.py\\\"\\n    duplicate_imports:\\n      status: forbidden\\n\\ntype_hints:\\n  enforcement: required\\n  tool: mypy\\n  rules:\\n    function_signatures:\\n      status: required\\n      includes:\\n        - parameters\\n        - return_type\\n      example: \\\"def process(path: str, verbose: bool = False) -> bool:\\\"\\n    return_types:\\n      status: required\\n      none_explicit: required\\n      example_good: \\\"def setup() -> None:\\\"\\n      example_bad: \\\"def setup():\\\"\\n    parameters:\\n      status: required\\n      example: \\\"def fetch(url: str, timeout: int = 30) -> dict[str, Any]:\\\"\\n    variables:\\n      status: optional\\n      recommended_when: ambiguous\\n      example: \\\"results: list[Document] = []\\\"\\n    collections:\\n      generic_required: true\\n      example_good: \\\"list[str], dict[str, int], tuple[int, ...]\\\"\\n      example_bad: \\\"list, dict, tuple\\\"\\n    optional:\\n      use_pipe_syntax: true\\n      example_good: \\\"str | None\\\"\\n      example_bad: \\\"Optional[str]\\\"\\n    any:\\n      status: discouraged\\n      allowed_when: truly_dynamic\\n\\ndocstrings:\\n  style: google\\n  rules:\\n    modules:\\n      status: required\\n      format: single_line\\n      example: '\\\"\\\"\\\"Database operations for KI-System Pipeline\\\"\\\"\\\"'\\n    classes:\\n      status: required\\n      content:\\n        - description\\n        - attributes_if_public\\n      example: |\\n        \\\"\\\"\\\"MariaDB connection wrapper with document operations.\\n\\n        Attributes:\\n            connection: Active database connection or None.\\n        \\\"\\\"\\\"\\n    public_functions:\\n      status: required\\n      content:\\n        - description\\n      args_section: optional\\n      returns_section: optional\\n      example: '\\\"\\\"\\\"Insert a new document and return its ID.\\\"\\\"\\\"'\\n    private_functions:\\n      status: optional\\n      prefix: \\\"_\\\"\\n    magic_methods:\\n      status: optional\\n\\nerror_handling:\\n  rules:\\n    bare_except:\\n      status: forbidden\\n      example_bad: |\\n        try:\\n            process()\\n        except:\\n            pass\\n    except_exception:\\n      status: allowed\\n      use_case: top_level_handlers\\n      example: |\\n        try:\\n            process()\\n        except Exception as e:\\n            logger.error(f\\\"Unexpected error: {e}\\\")\\n            raise\\n    specific_exceptions:\\n      status: preferred\\n      example: |\\n        try:\\n            with open(path) as f:\\n                data = f.read()\\n        except FileNotFoundError:\\n            logger.warning(f\\\"File not found: {path}\\\")\\n            return None\\n        except PermissionError:\\n            logger.error(f\\\"Permission denied: {path}\\\")\\n            raise\\n    silent_failures:\\n      status: forbidden\\n      rule: always_log_or_raise\\n    exception_chaining:\\n      status: recommended\\n      example: \\\"raise ProcessingError(f'Failed: {path}') from e\\\"\\n\\nsecurity:\\n  rules:\\n    hardcoded_credentials:\\n      status: forbidden\\n      detection: ruff_B105\\n      example_bad: 'password = \\\"secret123\\\"'\\n      example_good: 'password = os.environ.get(\\\"DB_PASSWORD\\\")'\\n    eval_exec:\\n      status: forbidden\\n      detection: ruff_S307\\n      includes:\\n        - eval\\n        - exec\\n        - compile\\n    sql_injection:\\n      status: forbidden\\n      rule: use_parameterized_queries\\n      example_bad: 'cursor.execute(f\\\"SELECT * FROM users WHERE id = {user_id}\\\")'\\n      example_good: 'cursor.execute(\\\"SELECT * FROM users WHERE id = %s\\\", (user_id,))'\\n    path_traversal:\\n      status: forbidden\\n      rule: validate_paths\\n      recommendation: use_pathlib\\n    subprocess:\\n      status: restricted\\n      shell_equals_true: forbidden\\n      example_bad: 'subprocess.run(cmd, shell=True)'\\n      example_good: 'subprocess.run([\\\"ls\\\", \\\"-la\\\"], check=True)'\\n    credentials_source:\\n      allowed:\\n        - environment_variables\\n        - credentials_file\\n      forbidden:\\n        - source_code\\n        - config_constants\\n\\nmodule_structure:\\n  root: \/opt\/scripts\/pipeline\\n  layout:\\n    config:\\n      file: config.py\\n      purpose: All configuration values\\n      rules:\\n        - single_source_of_truth\\n        - no_hardcoded_secrets\\n    database:\\n      file: db.py\\n      purpose: Database operations\\n      rules:\\n        - only_module_with_db_access\\n        - parameterized_queries_only\\n    pipeline:\\n      file: pipeline.py\\n      purpose: Orchestration\\n      rules:\\n        - coordinates_other_modules\\n        - no_direct_db_access\\n    processors:\\n      files:\\n        - detect.py\\n        - extract.py\\n        - chunk.py\\n        - embed.py\\n        - analyze.py\\n      purpose: Data processing stages\\n      rules:\\n        - single_responsibility\\n        - pure_functions_preferred\\n    ai:\\n      files:\\n        - generate.py\\n        - chat.py\\n      purpose: AI\/LLM integration\\n      rules:\\n        - retry_logic_required\\n        - timeout_handling_required\\n    web:\\n      files:\\n        - web_chat.py\\n        - web_generate.py\\n      purpose: Flask integration\\n      rules:\\n        - thin_wrappers_only\\n        - no_business_logic\\n\\ndependencies:\\n  allowed:\\n    standard_library:\\n      - os\\n      - sys\\n      - json\\n      - hashlib\\n      - pathlib\\n      - logging\\n      - datetime\\n      - typing\\n      - dataclasses\\n    third_party:\\n      - mysql.connector\\n      - qdrant_client\\n      - requests\\n      - anthropic\\n      - flask\\n      - pypdf\\n      - python-docx\\n      - python-pptx\\n      - pytesseract\\n  forbidden:\\n    - pickle  # security risk\\n    - marshal  # security risk\\n\\nlogging:\\n  library: logging\\n  rules:\\n    print_statements:\\n      status: discouraged\\n      allowed_in: cli_scripts\\n    log_levels:\\n      debug: development_info\\n      info: normal_operations\\n      warning: recoverable_issues\\n      error: failures\\n      critical: system_failures\\n    format:\\n      include:\\n        - timestamp\\n        - level\\n        - message\\n      example: \\\"%(asctime)s - %(levelname)s - %(message)s\\\"\\n\\ntesting:\\n  framework: pytest\\n  rules:\\n    naming:\\n      files: \\\"test_*.py\\\"\\n      functions: \\\"test_*\\\"\\n    location: \/opt\/scripts\/pipeline\/tests\/\\n    coverage:\\n      target: 70\\n      critical_modules:\\n        - db.py\\n        - config.py\\n\\nruff_rules:\\n  select:\\n    - E      # pycodestyle errors\\n    - W      # pycodestyle warnings\\n    - F      # Pyflakes\\n    - I      # isort\\n    - B      # flake8-bugbear\\n    - C4     # flake8-comprehensions\\n    - UP     # pyupgrade\\n    - SIM    # flake8-simplify\\n    - S      # flake8-bandit (security)\\n    - D100   # missing docstring in module\\n    - D101   # missing docstring in class\\n    - D102   # missing docstring in public method\\n    - D103   # missing docstring in public function\\n  ignore:\\n    - E501   # line too long (handled by formatter)\\n    - E402   # module level import not at top\\n    - B008   # function call in default argument\\n    - B905   # zip without strict\\n    - SIM108 # ternary operator\\n    - D105   # missing docstring i... [TRUNCATED-aee44df8eb16168e]"
        }
    ]
}
← Vorheriger Zur Liste Nächster →