資金調達レポートのパイプライン
=======================

エンドツーエンドのレポート作成: ファイル フォルダーから完成した資金調達レポートまで。
フォルダ名から名前と生年月日が自動認識されます。

フォルダ構造
--------------
  data_roh/ ユーザーがファイル フォルダーを挿入 (AI は直接読み取りません)
  data_ano/ 匿名化された個別ファイル（AIによる読み取りを許可）
  data_bundled/ バンドルされたテキスト + LLM のプロンプト
  Output_reports/ 完成したレポート (匿名化されていない、最終製品)

役割分担 (重要)
-------------------------
  USER はクライアント ファイルを data_roh/ に配置します。
  AI はパイプライン スクリプトを開始するだけであり、ファイルは送信されません。
  ファイルをコピーしたり、ファイルが存在するかどうかを確認したりしません。
  スクリプト自体は、「ファイルが見つかりました、プロセスが開始されました」と報告します。
  「エラー: data_roh/ にファイルが設定されていません。」

使用 (4 つの標準的な方法)
----------------------------
  1. チャット:「資金レポートの作成」(推奨、自動検出)
  2. .bat: Foerderbericht_Pipeline.bat (自動検出の場合は Enter キーを 3 回押します)
  3. チェーン: バッチチェーン開始資金レポート
  4. CLI: バッチ レポート パイプライン (自動検出)

オプション
--------
  --期間「01/01/2025 - 12/31/2025」レポート期間
  --backend claude_code|llmauto LLM バックエンド (デフォルト: claude_code)
  --model クロード-ソネット-4-6 LLM モデル
  --parents "母親の名前" "父親の名前" 親の名前 (匿名化用)
  --no-cleanup 中間フォルダーを空にしないでください

PROCESS (3 フェーズ フロー)
----------------------

  フェーズ 1 -- prepare_prompt() [Python、AI なし]:
    1. 検証: data_roh/ を空にすることはできません。1 クライアント ルールを確認してください。
    2.自動検出：フォルダ名から名前+生年月日を検出
    3. プロファイル：一時的な匿名化プロファイル（偽名、偽データ）
    4. 匿名化: ファイルを匿名化 -> data_ano/
    5.バンドル: テキストを抽出 -> data_bundled/ (優先順位: 新しい順)
    6. プロンプト: ICF スキーマを使用した LLM プロンプト -> data_bundled/prompt.txt

  フェーズ 2 -- AI は、prompt.txt を読み取り、JSON 応答を生成します。
    7. AIが匿名化されたprompt.txtを読み取ります（チャット/サブエージェント方式）
    8. JSON 応答 -> data_bundled/llm_response.txt

  フェーズ 3 --finish_report() [Python、AI なし]:
    9. JSON の匿名化を解除します (すべてのマッピングを含む session_info.json 経由)
   10. Word の生成 -> Output_reports/
   11. クリーンアップ: すべての中間データ + 従来のフォルダーを削除します

  完全自動 (.bat/llmauto/CLI):
    run_full_pipeline() は内部で prepare_prompt() + _call_llm() +finish_report() を呼び出します

  注: data_roh/!

ドキュメントの優先順位
-------------------------
 のパスごとにクライアントは 1 つだけです  高: 現在のプロトコル、ファイルのカバーシート、支援計画、承認
  中: 自閉症の報告書、医師の報告書 (10 歳未満)、学校の報告書、電子メール
  低: 10 年以上前の医療報告書

目標計画に役立ちます (重要)
--------------------------
  支援計画が利用可能な場合は、その枠組み目標/成果目標が含まれます。
  が主な資金目標として採用されました。それ以外の話題のみ
  new_goals テーブルに目標を計画するのに役立ちます。
  ウムラウトの後処理 (ue->ue、ae->ae、oe->oe) は自動です
  単語ベースで適用されます (「現在」などの誤検知はありません)。

安全性
----------
  - data_roh/ は AI によって直接読み取られることはありません
  - LLM は匿名化されたデータ (コード名) のみを参照します
  - すべてのマッピングを含む session_info.json による匿名化解除
  - 永続的なプロファイルなし (セッションベース)
  - .pipeline_lock は並列実行を防止します
  - OneDrive 同期は自動的に一時停止/再開されます
  - クリーンアップにより、すべての中間データと従来のフォルダーが削除されます

LLM-BACKENDS
-------------
  claude_code (デフォルト) サブプロセスとしてのクロード コード CLI
  llmauto llmauto チェーン システム
  anthropic_sdk オプション (セットアップではなく、ANTHROPIC_API_KEY が必要です)

トラブルシューティング
---------------
  「data_roh/ は空です」 -> ファイルフォルダーを data_roh/ に挿入します
  「ClaudeRunner エラー」 -> クロード CLI が PATH にありません。llmauto を使用してください
  「インポートエラー」 -> pip install python-docx openpyxl
  OneDrive ロック -> ファイルを閉じ、少し待ってから再起動します

ファイル
-------
  オーケストレーター: Hub/_services/document/foerderbericht_pipeline.py
  CLI ランナー: Hub/_services/document/pipeline_runner.py
  CLI ハンドラー: Hub/report.py (操作: パイプライン)
  チェーン: tools/llmauto/chains/foerderbericht.json
  テンプレート:skills/_templates/report_template_geiger_universal.docx
