# Portabilität: UNIVERSAL
# Version: 1.1.0
# Zuletzt validiert: 2026-02-08 (Help-Forensik)
# Nächste Prüfung: 2026-08-08

TOOLS - Tool-Verwaltung
=======================

BESCHREIBUNG
------------
BACH verwaltet drei Arten von Tools:
1. Python-Tools: Scripts in tools/ (Coding, Steuer, Migration)
2. CLI-Tools: Kommandozeilen-Programme (git, ffmpeg, python)
3. Externe KI-Tools: Web-basierte KI-Dienste (ChatGPT, Midjourney)

Die CLI- und externen Tools werden in der Datenbank verwaltet (bach.db/tools).

CLI-BEFEHLE
-----------
bach --tools list              Python-Tools auflisten (Dateisystem)
bach --tools db                Alle DB-Tools auflisten (CLI + extern)
bach --tools db --type cli     Nur CLI-Tools anzeigen
bach --tools db --type external Nur externe KI-Tools anzeigen
bach --tools show <n>       Tool-Details anzeigen
bach --tools run <n> [args] Python-Tool ausführen
bach --tools search <term>     Tools durchsuchen (Dateisystem + DB)
bach --tools migrate           Migration der Connections starten

DIREKTAUFRUF VIA BACH (empfohlen)
---------------------------------
Tools können direkt über bach.py aufgerufen werden - ohne --tools run:

  bach <toolname> [argumente]

Beispiele:
  bach python_cli_editor script.py --show-all     Struktur anzeigen
  bach c_encoding_fixer datei.py                  Encoding reparieren
  bach c_import_organizer datei.py --save         Imports sortieren
  bach c_json_repair kaputt.json                  JSON reparieren
  bach c_pycutter grosse_datei.py                 Datei aufteilen
  bach c_sqlite_viewer data/bach.db               DB anzeigen
  bach code_analyzer projekt/                     Code analysieren

Vorteile:
  - Kuerzer als: bach --tools run c_encoding_fixer datei.py
  - Tab-Completion möglich
  - Gleiche Syntax wie direkter Python-Aufruf

Hinweis: Funktioniert für alle Tools in tools/*.py

TOOL-ÜBERSICHTEN
-----------------
Verschiedene Wege um verfügbare Tools zu finden:

  bach --tools list              Alle Python-Tools (tools/*.py)
  bach --tools db                Alle DB-Tools (CLI + extern)
  bach --tools search <term>     Nach Begriff suchen
  bach tool suggest "problem"    Problem-basierte Empfehlung
  bach --help tools              Diese Hilfe
  bach --help tools/_index       Index der Tool-Dokumentationen

Für spezifische Tool-Hilfe:
  bach <tool> --help             Argparse-Hilfe des Tools
  bach --help tools/<tool>       Ausführliche Dokumentation (falls vorhanden)

TOOL-DISCOVERY (NEU v1.1.27)
----------------------------
Problem-basiertes Tool-Matching: Beschreibe ein Problem und erhalte Tool-Empfehlungen.

bach tool suggest "Encoding-Problem in Datei"  Tool-Empfehlung basierend auf Problem
bach tool suggest "JSON reparieren"            Findet json_repair_tool.py
bach tool patterns                             Alle Problem-Pattern anzeigen

Funktionsweise:
1. Keyword-Extraktion aus Problem-Beschreibung
2. Matching gegen 15+ Problem-Kategorien
3. Score-basierte Empfehlung passender Tools

Problem-Kategorien: encoding, json_repair, code_analysis, import_issues,
formatting, database, conversion, backup, cleanup, documentation,
path_issues, duplicate, emoji, german_text, steuer

Code: tools/tool_discovery.py (195 Zeilen)

PYTHON-TOOLS (tools/)
---------------------
Praefix-Konvention (siehe: bach --help naming):

  c_*        CLI-optimiert für AI (Claude/recludOS)
             - Klare Outputs, encoding-sicher, JSON-safe
  b_*        BACH-Kern (System-kritisch)
  a_*        Agent-Runner
  t_*        Test-Tools
  m_*        Maintain/Wartung
  g_*        Generator-Tools

Legacy-Praefixe (werden migriert):
  agent_*    -> a_*
  backup_*   -> b_* oder m_*
  migrate_*  -> m_*

Domain-Praefixe (bleiben):
  ollama_*   Ollama-Integration
  steuer_*   Steuer-Tools (in tools/steuer/)

PYTHON-TOOLS NACH FUNKTION
--------------------------

### CLI-zugaenglich (via Handler)

  Verzeichnis    Handler               Funktion
  -------------  --------------------  ----------------------------
  testing/       --test                Test-System (B/O/E-Tests)
  generators/    --maintain generate   Skill/Agent Generatoren
  mapping/       (direkt)              Feature-Mapping

### Kernfunktionen

  Tool                      Funktion
  ------------------------  ----------------------------
  autolog.py                Auto-Logging System
  autolog_analyzer.py       AutoLog-Analyse
  backup_manager.py         Backup-Verwaltung
  injectors.py              Injector-System
  c_dirscan.py              Verzeichnis-Scan
  session_analyzer.py       Session-Analyse
  time_system.py            Zeit-System
  token_monitor.py          Token-Monitoring
  success_tracker.py        Success-Tracking
  fs_protection.py          Dateisystem-Schutz

### Wartung (via --maintain Handler)

  Tool                      CLI-Befehl                  Funktion
  ------------------------  --------------------------  ----------------------------
  doc_update_checker.py     bach --maintain docs        Dokumentations-Check
  c_duplicate_detector.py   bach --maintain duplicates  Duplikat-Erkennung
  c_pattern_tool.py         bach --maintain pattern     Dateinamen-Patterns
  c_tool_scanner.py         bach --maintain scan        CLI-Tools Discovery
  c_file_cleaner.py         bach --maintain clean       Alte Dateien löschen
  c_json_fixer.py           bach --maintain json        JSON reparieren
  c_sync_registry.py        Registry synchronisieren
  c_json_registry_cleaner.py Registry-Bereinigung
  backup_manager.py         Backup-Verwaltung
  nulcleaner.py             NUL-Character entfernen

### Generator-Tools (tools/generators/)

  Tool                      CLI-Befehl                  Funktion
  ------------------------  --------------------------  ----------------------------
  skill_generator.py        bach --maintain generate    Skill-Strukturen erstellen
  exporter.py               bach --maintain export      Skills/Agents exportieren

  Profile für skill_generator:
    MICRO    - Nur Datei(en), kein Ordnersystem
    LIGHT    - Minimal (SKILL.md + config + data)
    STANDARD - Standard-Skill mit einfachem Memory
    EXTENDED - Komplexer Skill mit Mikro-Skills

### Mapping-Tools (tools/mapping/)

  Tool                      Funktion
  ------------------------  ----------------------------
  query_features.py         Feature-Matrix abfragen
  populate_features.py      Datenbank befuellen
  schema.sql                DB-Schema

  Wichtig: DB_PATH Variable muss angepasst werden!

### Coding-Tools

  Tool                      Funktion
  ------------------------  ----------------------------
  c_encoding_fixer.py       Encoding reparieren
  c_emoji_scanner.py        Emoji finden/ersetzen
  c_standard_fixer.py       Code-Standards anwenden
  c_json_repair.py          JSON reparieren
  c_json_fixer.py           JSON reparieren (alt)
  c_import_organizer.py     Imports sortieren
  c_import_diagnose.py      Import-Probleme finden
  c_indent_checker.py       Einrückung prüfen
  c_umlaut_fixer.py         Umlaute korrigieren
  c_german_scanner.py       Deutsche Wörter finden
  c_method_analyzer.py      Methoden analysieren
  c_pycutter.py             Python-Dateien aufteilen
  c_sqlite_viewer.py        SQLite-Datenbanken anzeigen
  c_license_generator.py    Lizenzdateien erstellen
  c_md_to_pdf.py            Markdown zu PDF
  c_universal_converter.py  Format-Konvertierung
  c_universal_compiler.py   Universal Compiler
  c_youtube_extractor.py    YouTube-Extraktion
  c_code_analyzer.py        Code-Analyse
  c_code_generator.py       Code-Generierung
  c_python_cli_editor.py    Python strukturiert bearbeiten
  c_structure_generator.py  Struktur-Generator
  c_header_migrate.py       Header-Migration
  call_graph.py             Call-Graph-Analyse

### Steuer-Tools

  Tool                      Funktion
  ------------------------  ----------------------------
  steuer_scanner.py         Belege scannen
  steuer_sync.py            Synchronisation
  steuer_batch.py           Batch-Verarbeitung
  steuer_apply.py           Kategorien anwenden
  setup_steuer_db.py        DB-Setup
  scan_new_belege.py        Neue Belege erkennen
  rename_belege.py          Belege umbenennen
  show_posten.py            Posten anzeigen
  temu_ocr_batch.py         Temu-OCR Batch
  ocr_engine.py             OCR-Engine

### Ollama-Tools

  Tool                      Funktion
  ------------------------  ----------------------------
  ollama_benchmark.py       Benchmarks
  ollama_summarize.py       Zusammenfassungen
  ollama_worker.py          Worker-Prozess

### Test-Tools (tools/testing/)

  Tool                      CLI-Befehl                  Funktion
  ------------------------  --------------------------  ----------------------------
  test_runner.py            bach --test run             Test-Ausführung
  run_b_tests.py            bach --test self            B-Tests ausführen
  run_o_tests.py            bach --test ops             O-Tests ausführen

  Testprofile (testing/profiles/):
    QUICK.json          - Schnelle Prüfung
    STANDARD.json       - Standard-Suite
    FULL.json           - Vollständige Prüfung
    MEMORY_FOCUS.json   - Memory-Tests
    TASK_FOCUS.json     - Task-Tests
    OUTPUT.json         - Output-Tests
    OBSERVATION.json    - Beobachtungs-Tests

### MCP-Integration (NEU v2.2)

  Tool                      Funktion
  ------------------------  ----------------------------
  mcp_server.py             MCP Server v2.0 (654 Zeilen)
                            - 23 Tools (Task, Memory, Lesson, Backup, Steuer)
                            - 8 Resources (Tasks, Status, Memory, Skills, Contacts)
                            - 3 Prompts (Daily Briefing, Task Review, Session Summary)

  Installation:
    pip install mcp
    python tools/mcp_server.py

  Claude Code Config (~/.claude/claude_code_config.json):
    {
      "mcpServers": {
        "bach": {
          "command": "python",
          "args": ["C:/path/to/system/tools/mcp_server.py"]
        }
      }
    }

### Skill-Management (NEU)

  Tool                      Funktion
  ------------------------  ----------------------------
  c_skill_init.py           Skill-Struktur initialisieren
  c_skill_package.py        Skills paketieren
  c_skill_validate.py       Skill-Validierung
  skill_export.py           Skills exportieren
  skill_header_gen.py       Skill-Header generieren
  skill_help_gen.py         Skill-Hilfe generieren

### Projekt-Tools (NEU)

  Tool                      Funktion
  ------------------------  ----------------------------
  c_project_bundler.py      Projekt-Bundler
  c_audit_bundler.py        Audit-Bundle erstellen
  c_path_healer.py          Pfad-Reparatur
  batch_file_ops.py         Batch-Dateioperationen

### Analyse & Monitoring

  Tool                      Funktion
  ------------------------  ----------------------------
  db_check.py               Datenbank-Check
  debug_scan.py             Debug-Scan
  forensic_db_scan.py       Forensik DB-Scan
  folder_diff_scanner.py    Folder-Diff-Analyse
  custom_analysis.py        Custom-Analyse
  schema_reader.py          Schema-Reader
  problems_first.py         Problems-First Ansatz
  reports.py                Report-System

### Generator & Helper

  Tool                      Funktion
  ------------------------  ----------------------------
  c_dictionary_builder.py   Wörterbuch-Builder
  lesson_trigger_generator.py Lesson-Trigger-Generator
  theme_packet_generator.py Theme-Packet-Generator
  workflow_trigger_generator.py Workflow-Trigger-Generator
  trigger_maintainer.py     Trigger-Wartung
  context_compressor.py     Kontext-Kompression
  translate_batch.py        Batch-Übersetzung

### Integration & Import

  Tool                      Funktion
  ------------------------  ----------------------------
  gemini_llm.py             Gemini LLM Integration
  data_importer.py          Daten-Import
  document_indexer.py       Dokumenten-Indexierung
  doc_search.py             Dokumentensuche
  inbox_watcher.py          Inbox Watcher
  user_console.py           User-Console

### Agents & Auto-Discovery

  Tool                      Funktion
  ------------------------  ----------------------------
  c_headless_agent.py       Headless Agent
  bach_auto_discovery.py    Auto-Discovery System
  tool_auto_discovery.py    Tool Auto-Discovery

### User-Tools (tools/_user/)

  System-spezifische Tools (nicht für Distribution):
  - auto_backup_orchestrator.py   FTP-Backup
  - fritzbox_wlan_control.py      WLAN-Steuerung
  - backup_watchdog.py            Backup-Überwachung

  Siehe: tools/_user/README.md

CLI-TOOLS (bach.db)
-------------------
Verfügbare Kategorien:
  archive         7z (Komprimierung)
  editor          notepad++
  ide             code (VS Code)
  multimedia      ffmpeg (Video/Audio)
  network         curl, ssh
  package_manager pip, pip3
  runtime         python, node
  text_processing grep
  version_control git

EXTERNE KI-TOOLS (bach.db)
--------------------------
Kategorien:
  llm       ChatGPT, Claude, Gemini, Copilot, Mistral, Groq
  image     Midjourney, Ideogram, Leonardo, Flux, Magnific
  video     Runway, Luma, Pika, Kling
  audio     ElevenLabs, Suno, Udio, Descript, Auphonic
  research  Perplexity, Consensus, Elicit, NotebookLM, Scite
  dev       Cursor, Bolt, Copilot Workspace, Replit, Windsurf
  edu       Gamma, Notion AI, Goblin Tools, Taskade

DATENBANK-SCHEMA
----------------
Tabelle: tools (in data/bach.db)

Wichtige Felder:
- name          TEXT UNIQUE
- type          TEXT (cli, external, internal)
- category      TEXT
- command       TEXT (für CLI-Tools)
- endpoint      TEXT (für externe Tools)
- description   TEXT
- capabilities  JSON-Array
- use_for       TEXT
- is_available  BOOLEAN

MIGRATION
---------
Die Tools wurden aus JSON-Dateien in die Datenbank migriert.
Die Quell-Dateien existieren nicht mehr (connections/ wurde aufgeloest).

Migration-Status prüfen:
  bach --tools migrate --status

Falls erneute Migration nötig (nur bei Reset):
  python tools/migrate_connections.py

BEISPIELE
---------
# Python-Tools auflisten
bach --tools list

# Alle registrierten Tools (DB)
bach --tools db

# Nur CLI-Tools
bach --tools db --type cli

# Tool-Details
bach --tools show ffmpeg
bach --tools show chatgpt

# Tool ausführen
bach --tools run c_encoding_fixer datei.py

# Direktaufruf (empfohlen)
bach c_encoding_fixer datei.py
bach c_skill_init neuer_skill
bach c_project_bundler ./projekt

# Suchen
bach --tools search video

# Wartungs-Tools
bach --maintain list
bach --maintain docs
bach --maintain pattern ./docs --dry-run

# Test-Tools
bach --test profiles
bach --test run QUICK

# MCP Server (NEU)
python tools/mcp_server.py
# Dann via Claude Code verfügbar (bach:/ Resources + Tools)

TOOL-INVENTAR (~83 Tools)
-------------------------
Gesamt-Statistik nach Kategorie:

  Kategorie          Anzahl  Beschreibung
  -----------------  ------  ----------------------------
  Agent/Framework    8       Agent-System, Service-Integration, MCP
  Development        25      Code-Analyse, Testing, Projekt-Utils
  Database           8       SQLite, Migration, Schema
  Document           15      OCR, Konvertierung, Text-Verarbeitung
  Financial/Steuer   22      Komplette Steuer-Suite
  Maintenance        15      Backup, Distribution, Cleanup, Registry
  Media              2       YouTube-Extraktion, Gemini-LLM
  Utility/Helper     22      Policies, Generators, Monitoring, Sonstige
  Skill-Management   6       Skill-Init, Package, Validate, Export

Naming-Convention (Praefixe):

  c_*   CLI-optimiert für AI (40+ Tools)
  b_*   BACH-Kern (System-kritisch)
  a_*   Agent-Runner Tools
  t_*   Test-Tools
  m_*   Maintain-Tools
  g_*   Generator-Tools
  (-)   Domain/Utility (43+ Tools)

Synergie-Potential mit externen Suites:

  BACH-Tool               Synergie mit
  ----------------------  ----------------------------
  steuer/ Suite           Finance Suite (Budget, Expense)
  ocr_engine.py           DokuZentrum Pro
  c_md_to_pdf.py          Obsidian Export
  c_youtube_extractor.py  Media Suite

Quelle: Archiviert in user/_archive/BACH_NATIVE_TOOLS_MAPPING.md

DETAILLIERTE TOOL-DOKUMENTATION
--------------------------------
Für komplexe Tools gibt es ausführliche Dokumentation in docs/help/tools/:

  Verfügbare Dokumentationen:
  ---------------------------
  docs/help/tools/python_cli_editor.txt   Python-Dateien strukturiert bearbeiten
                                     (Klassen/Methoden anzeigen, einfügen,
                                     löschen, Edit-Workflow, Export)

  docs/help/tools/_index.txt              Index aller Tool-Dokumentationen

  Abruf:
  ------
  bach --help tools/python_cli_editor    Ausführliche Doku lesen
  bach --help tools/_index               Übersicht verfügbarer Doku
  bach --help tools                      Diese allgemeine Tool-Hilfe

  Wann braucht ein Tool eigene Doku?
  ----------------------------------
  - Viele Optionen (>10 Parameter)
  - Komplexe Workflows möglich
  - Haeufig genutzt
  - Beispiele wichtig zum Verstaendnis

  Einfache Tools nutzen nur:
  - Docstring im Python-File
  - argparse --help (bach <tool> --help)

CONTEXT-INJEKTOR (automatische Tool-Hinweise)
---------------------------------------------
Der ContextInjector erkennt Stichwörter und empfiehlt passende Tools.
Beispiele:

  Stichwort              Tool-Empfehlung
  ---------------------  ------------------------------------------
  "encoding problem"     bach c_encoding_fixer <datei>
  "imports sortieren"    bach c_import_organizer <datei>
  "python bearbeiten"    bach c_python_cli_editor <datei> --show-all
  "datei aufteilen"      bach c_pycutter <datei>
  "sqlite anzeigen"      bach c_sqlite_viewer <db>
  "tool finden"          bach tool suggest 'beschreibung'
  "skill erstellen"      bach c_skill_init <name>
  "projekt bundlen"      bach c_project_bundler <pfad>
  "pfad reparieren"      bach c_path_healer <datei>
  "mcp starten"          python tools/mcp_server.py

Siehe: bach --help injectors (vollständige Trigger-Liste)

SIEHE AUCH
----------
docs/help/tools/_index.txt      Detaillierte Tool-Dokumentation (Index)
docs/help/tools/*.txt           Einzelne Tool-Dokumentationen
docs/help/injectors.txt         Automatische Tool-Hinweise (ContextInjector)
bach --help connections    Connections-Verwaltung
bach --help dirscan           Directory Scanner (Änderungsüberwachung)
bach --help maintain       Wartungs-Tools
bach --help test           Test-System
bach --help naming         Namenskonventionen (Tool-Praefixe)
