{
"event": "PreToolUse",
"tool_name": "mcp__mcp-tasks__tasks_create",
"tool_input": {
"title": "RAG: Provenienz-Tabelle erstellen und integrieren",
"description": "# Auftrag\n\nErstelle und integriere eine Provenienz-Tabelle für vollständige Herkunftsnachverfolgung.\n\n## Voraussetzungen\n\n**ERSTE AKTION:** `docs_get(path=\"\/\")` → Lese CLAUDE.md vollständig\n\n**Relevante Contracts:**\n- `contracts_get(name=\"db-access-security-protocol\")` - Nutze MCP-DB\n- `contracts_get(name=\"layered-architecture-pruefung_v1.0\")` - Schichtenarchitektur\n\n**Paradigmen (ZWINGEND):**\n- DRY: Eine zentrale Provenienz-Tabelle für alle Artefakte\n- KISS: Einfaches Schema, keine Überabstraktion\n- CRUD: Repository-Pattern für Datenzugriff\n- YAGNI: Nur dokumentierte Felder\n\n## Kontext\n\n**Referenz-Dokumentation:** `docs_get(id=100)` (RAG-Prozess, §4 Reprocessing)\n\n**Ziel:** Nachvollziehbarkeit welcher Pipeline-Run welche Artefakte erzeugt hat.\n\n## Aufgabe\n\n### 1. Schema erstellen (MCP-DB)\n\n```sql\ndb_execute(statement=\"\"\"\nCREATE TABLE provenance (\n id INT AUTO_INCREMENT PRIMARY KEY,\n artifact_type ENUM('document', 'chunk', 'entity', 'relation', 'statement', 'embedding') NOT NULL,\n artifact_id INT NOT NULL,\n source_type ENUM('file', 'extraction', 'analysis', 'merge', 'manual') NOT NULL,\n source_id INT NULL,\n pipeline_run_id INT NULL,\n pipeline_step VARCHAR(50),\n model_used VARCHAR(100),\n prompt_version VARCHAR(20),\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n INDEX idx_artifact (artifact_type, artifact_id),\n INDEX idx_pipeline (pipeline_run_id),\n FOREIGN KEY (pipeline_run_id) REFERENCES pipeline_runs(id)\n)\n\"\"\", database=\"ki_content\")\n```\n\n### 2. Python-Integration\n\nErweitere `\/var\/www\/scripts\/pipeline\/db.py`:\n```python\ndef log_provenance(\n artifact_type: str,\n artifact_id: int,\n source_type: str,\n pipeline_run_id: int = None,\n pipeline_step: str = None,\n model_used: str = None\n) -> int:\n \"\"\"Log artifact provenance for traceability.\"\"\"\n```\n\n### 3. Pipeline-Integration\n\nIn analyze.py nach Entity\/Statement-Erstellung:\n```python\ndb.log_provenance(\n artifact_type='entity',\n artifact_id=entity_id,\n source_type='extraction',\n pipeline_step='entity_extract',\n model_used=config.ANTHROPIC_MODEL\n)\n```\n\n## Validierung\n\n```bash\n# Schema prüfen\ndb_describe(table=\"provenance\", database=\"ki_content\")\n\n# Python Check\n\/opt\/scripts\/python-check.sh\n\n# Contract-Validierung\ncontracts_validate(name=\"python-pipeline-contract_v1.0\")\n```\n\n## Qualitätskriterien\n\n- [ ] Tabelle provenance erstellt\n- [ ] db.log_provenance() Funktion implementiert\n- [ ] Aufruf in analyze.py integriert\n- [ ] Type Hints und Docstrings\n- [ ] Test: db_select zeigt Provenienz-Einträge",
"type": "ai_task"
}
}
{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"task\": {\n \"id\": 302,\n \"uuid\": \"2fabdcf5-227c-46b6-8419-d45fae61accb\",\n \"title\": \"RAG: Provenienz-Tabelle erstellen und integrieren\",\n \"description\": \"# Auftrag\\n\\nErstelle und integriere eine Provenienz-Tabelle für vollständige Herkunftsnachverfolgung.\\n\\n## Voraussetzungen\\n\\n**ERSTE AKTION:** `docs_get(path=\\\"\/\\\")` → Lese CLAUDE.md vollständig\\n\\n**Relevante Contracts:**\\n- `contracts_get(name=\\\"db-access-security-protocol\\\")` - Nutze MCP-DB\\n- `contracts_get(name=\\\"layered-architecture-pruefung_v1.0\\\")` - Schichtenarchitektur\\n\\n**Paradigmen (ZWINGEND):**\\n- DRY: Eine zentrale Provenienz-Tabelle für alle Artefakte\\n- KISS: Einfaches Schema, keine Überabstraktion\\n- CRUD: Repository-Pattern für Datenzugriff\\n- YAGNI: Nur dokumentierte Felder\\n\\n## Kontext\\n\\n**Referenz-Dokumentation:** `docs_get(id=100)` (RAG-Prozess, §4 Reprocessing)\\n\\n**Ziel:** Nachvollziehbarkeit welcher Pipeline-Run welche Artefakte erzeugt hat.\\n\\n## Aufgabe\\n\\n### 1. Schema erstellen (MCP-DB)\\n\\n```sql\\ndb_execute(statement=\\\"\\\"\\\"\\nCREATE TABLE provenance (\\n id INT AUTO_INCREMENT PRIMARY KEY,\\n artifact_type ENUM('document', 'chunk', 'entity', 'relation', 'statement', 'embedding') NOT NULL,\\n artifact_id INT NOT NULL,\\n source_type ENUM('file', 'extraction', 'analysis', 'merge', 'manual') NOT NULL,\\n source_id INT NULL,\\n pipeline_run_id INT NULL,\\n pipeline_step VARCHAR(50),\\n model_used VARCHAR(100),\\n prompt_version VARCHAR(20),\\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\\n INDEX idx_artifact (artifact_type, artifact_id),\\n INDEX idx_pipeline (pipeline_run_id),\\n FOREIGN KEY (pipeline_run_id) REFERENCES pipeline_runs(id)\\n)\\n\\\"\\\"\\\", database=\\\"ki_content\\\")\\n```\\n\\n### 2. Python-Integration\\n\\nErweitere `\/var\/www\/scripts\/pipeline\/db.py`:\\n```python\\ndef log_provenance(\\n artifact_type: str,\\n artifact_id: int,\\n source_type: str,\\n pipeline_run_id: int = None,\\n pipeline_step: str = None,\\n model_used: str = None\\n) -> int:\\n \\\"\\\"\\\"Log artifact provenance for traceability.\\\"\\\"\\\"\\n```\\n\\n### 3. Pipeline-Integration\\n\\nIn analyze.py nach Entity\/Statement-Erstellung:\\n```python\\ndb.log_provenance(\\n artifact_type='entity',\\n artifact_id=entity_id,\\n source_type='extraction',\\n pipeline_step='entity_extract',\\n model_used=config.ANTHROPIC_MODEL\\n)\\n```\\n\\n## Validierung\\n\\n```bash\\n# Schema prüfen\\ndb_describe(table=\\\"provenance\\\", database=\\\"ki_content\\\")\\n\\n# Python Check\\n\/opt\/scripts\/python-check.sh\\n\\n# Contract-Validierung\\ncontracts_validate(name=\\\"python-pipeline-contract_v1.0\\\")\\n```\\n\\n## Qualitätskriterien\\n\\n- [ ] Tabelle provenance erstellt\\n- [ ] db.log_provenance() Funktion implementiert\\n- [ ] Aufruf in analyze.py integriert\\n- [ ] Type Hints und Docstrings\\n- [ ] Test: db_select zeigt Provenienz-Einträge\",\n \"type\": \"ai_task\",\n \"status\": \"pending\",\n \"created_by\": \"mcp-tasks\",\n \"created_by_type\": \"ai\",\n \"parent_task_id\": null,\n \"due_date\": null,\n \"created_at\": \"2025-12-24T15:01:23.320726\",\n \"updated_at\": \"2025-12-24T15:01:23.320729\",\n \"completed_at\": null,\n \"metadata\": {}\n },\n \"message\": \"Task #302 created\"\n}"
}
]
}