# 🌑 The Philosophy of beautyspot

`beautyspot` は、生成AIとマルチモーダルデータを扱うシーンにおいて、開発者が「ロジックそのもの」に没頭し、合理的かつ高速に価値を生み出すための開発ツールです。

## 1. Core Philosophy (設計思想)

### Kuroko and Hokuro: Non-Intrusive Design
**主役は常に、あなたのコード（ロジック）です。**
`beautyspot` はデコレータという形で機能を提供しますが、あなたのクラス設計やアーキテクチャには一切干渉しません。
継承を強要せず、複雑な設定ファイルもありません。

**"Beauty Spot (Hokuro)"** の名の通り、あなたのコード上の重要な場所（Spot）に印（Mark）を付けるだけで機能します。
「黒子」として、裏側でキャッシュやレート制限といった複雑な制御を一手に引き受け、あなたのコードを美しく「純粋なロジック」の状態に保つことに貢献します。

### Rational Iteration: Speed with Confidence
**健全な試行錯誤のための基盤を、最速最軽量で提供します。**
APIのエラーハンドリング、途中停止からのリカバリ、そしてキャッシュ管理。これらは、生成AIアプリケーションのエンジニアリングにとって本質的な要素で、**合理的な試行錯誤を行うために不可欠な「足場」です。**
しかし、この足場を組むために時間を費やしては、本末転倒です。
`beautyspot` は、この必須の足場を即座に提供します。「失敗しても大丈夫」「止まっても再開できる」という安心感がチャレンジを容易にし、発想の余地を広げ、スピードと品質を同時に引き上げます。

### Transparent Existence: No Lock-in
**空気のように纏い、いつでも脱げること。**
特定のフレームワークへのロックイン（囲い込み）を嫌います。
デコレータを外した瞬間、あなたのコードは標準的な Python 関数に戻ります。
プロジェクトが成長し、大規模な分散基盤が必要になったとき──それが `beautyspot` からの「卒業」のタイミングです。その時、あなたは痛みなく次のステージへ移行できます。それまでの間、私たちは最高の伴走者として振る舞います。

## 2. Anti-Goals (やらないこと)

このライブラリのシンプルさと「卒業のしやすさ」を守るため、以下の機能は**意図的に**実装しません。

### Not a Distributed System (分散システムではない)
Redis や Memcached を前提とした分散ロック、リーダー選出、整合性プロトコル（Raft/Paxos）は実装しません。
これらが必要な規模は `beautyspot` の領分ではありません。私たちは、ローカル（または単一ノード）環境において、最速最軽量の開発体験を提供することに集中します。

### Not a Workflow Engine (ワークフローエンジンではない)
Airflow や Prefect のような、DAG（有向非巡回グラフ）による依存関係解決や、複雑なリトライスケジューリングは提供しません。
あくまで「関数単位」の実行制御に留めます。

### Not a Job Queue (ジョブキューではない)
Celery のような、ワーカーへのタスク分散（Dispatch）機能は持ちません。
このツールは「関数を呼び出したその場」で仕事をします。

### Not an Observability Platform (監視基盤ではない)
Datadog や Prometheus のような、メトリクスの蓄積・監視・アラート機能は内製しません。
ログやイベントは「吐き出す」ことに徹し、その活用は専用のツールに委ねます。付属のダッシュボードは、あくまで開発中の「デバッグと現状確認」のための簡易ビューアです。

