active: true
derived: false
groups:
- DB
header: |
  DB プロトコル階層テスト
level: 2.8
links:
- SPEC008: tZe1E4MWteBUzKoyAUAdIH-PLk5MjI0AjTIO7ul46o0=
normative: true
ref: ''
references:
- path: tests/unit/test_db_writer_queue.py
  type: file
reviewed: IkerUYf4ctoVh55fXY0UWmwLtWPiBp3Pn6GIq0jwmF8=
text: |
  ## 目的

  `TaskDBCore` / `TaskDBBase` のプロトコル階層は、サードパーティによるカスタムDB実装（Redis、PostgreSQL 等）の差し替えを可能にする拡張ポイントである。インターフェース契約が不明確だと、カスタム実装が実行時に予期しないエラーを起こす。

  ## 検証観点

  - **インターフェース準拠**: `TaskDBCore` の必須メソッド（save, load, delete 等）を実装したクラスが `isinstance` チェックをパスすること
  - **TaskDBBase 拡張**: `TaskDBBase` がメンテナンス系メソッド（prune, stats 等）のデフォルト実装を提供し、サブクラスが必須メソッドのみの実装で動作すること
  - **デフォルト動作**: メンテナンスメソッドのデフォルト実装が安全なno-op（空リスト返却等）であること
  - **カスタム実装の注入**: `bs.Spot(db=CustomDB())` でプロトコル準拠のカスタムDBが正常に動作すること
