#!/usr/bin/env python3
"""Create ten fictional Japanese text files; no model, network, or dependencies.

Python 3.9+. Creates a NEW directory only; never overwrites an existing path.
"""
import argparse
import json
from pathlib import Path

CASES = [('01_2026-09_請求書_あおぞら計画.txt', '架空案件「あおぞら計画」の請求書。請求額は練習用の12,000円。支払状況は未入金。入金確認を経理担当へ依頼する。'), ('02_立替精算_打合せ.txt', '架空の打合せで購入した文具600円の立替精算依頼。領収書の照合と精算処理を依頼する。実際の購入はない。'), ('03_見積依頼_展示会.txt', '架空のお客様から展示会用の説明資料制作について見積依頼。予算上限と納期を聞き、提案内容をまとめる。'), ('04_商談メモ_展示会.txt', '架空の商談記録。説明資料の構成案を来週提案する。顧客に希望部数と掲載内容を確認する。'), ('05_不具合報告_試作画面.txt', '練習用の試作画面で、保存ボタンを押すと入力欄が空になる。手順を再現し、保存処理を調査して修正する。'), ('06_改修仕様_検索画面.txt', '架空アプリの検索画面改修仕様。検索結果が0件のときに案内文を表示する。表示条件と動作確認項目を定義する。'), ('07_次回対応メモ.txt', '次回までに例の件を対応する。担当者と作業内容は未記入。これは分類練習用の架空メモ。'), ('08_見積テンプレ_画面改修仕様.txt', '架空アプリの見積テンプレート編集画面を改修する仕様。テンプレート複製ボタンの追加と入力検証を実装する。顧客向け見積回答ではない。'), ('09_請求書_画面表示不具合.txt', '架空アプリの請求書表示画面で合計欄が二重表示になる不具合。発生条件を確認して表示処理を修正する。入金確認の依頼ではない。'), ('10_議事録_部門合同.txt', '架空の合同会議。入金確認、次の提案、検索画面の修正を別々の担当が進める。文書を丸ごと1部署に置く方針はまだ決まっていない。')]


def main():
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument('--dest', default='koboldcpp-practice',
                        help='New directory to create (parent must already exist)')
    args = parser.parse_args()
    root = Path(args.dest).expanduser().absolute()
    try:
        root.mkdir(exist_ok=False)
    except FileExistsError:
        parser.exit(2, f'中止: 既存のパスには書き込みません: {root}\n')
    except OSError as exc:
        parser.exit(2, f'作成できません: {exc}\n')
    inbox = root / 'inbox'
    inbox.mkdir()
    for name, body in CASES:
        with (inbox / name).open('x', encoding='utf-8', newline='\n') as handle:
            handle.write('【架空データ・ファイル整理の練習用】\n' + body + '\n')
    with (root / 'README.txt').open('x', encoding='utf-8', newline='\n') as handle:
        handle.write('inbox 内の10件は架空データです。実在の取引・顧客・個人情報はありません。\n'
                     '分類案を確認した後、人が新しい分類フォルダへ移してください。\n'
                     'このフォルダを指定してもKoboldCpp Agentのアクセス範囲は制限されません。\n')
    print(f'作成完了: {root}')
    print(f'架空ファイル数: {len(CASES)}')
    print(f'Agentの作業先: {inbox}')
    print('このスクリプトはAIを呼び出さず、分類・移動も行いません。')


if __name__ == '__main__':
    main()
