> For AI agents: the complete documentation index is available at https://open-spaced-repetition.github.io/ts-fsrs/ja-JP/llms.txt, the full documentation bundle is available at https://open-spaced-repetition.github.io/ts-fsrs/ja-JP/llms-full.txt.

# 組み込みポリシー

以下は `ts-fsrs/middlewares` と `ts-fsrs` のルートからエクスポートされています。

| ミドルウェア                                 | 動作                                                                                                                                                                                                                                                                                                                           |
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `schedulerDesiredRetentionMiddleware`  | 間隔の計算前に設定の `desiredRetention` を適用します。範囲は `(0, 1)` です。                                                                                                                                                                                                                                                                        |
| `schedulerLearningStepsMiddleware`     | `enableShortTerm` が有効な場合に明示的な `learningSteps` と `relearningSteps` を適用し、`learningStep` を管理します。この設定にかかわらず、モデルによる間隔も含め、最終間隔が `graduatingInterval`（既定 1 日）未満なら `Learning`/`Relearning` に割り当てます。ステップを設定している場合、卒業と `Review` のカードの Hard、Good、Easy は少なくとも `graduatingInterval` を使い、`allowModelOverride` はより長いモデル間隔を現在のステップの代わりに使います。 |
| `schedulerFuzzingMiddleware`           | `enableFuzz` が有効な場合に間隔を分散します。`cardId` と復習回数を使うため結果を再現できます。`createSchedulerFuzzingMiddleware()` で範囲や乱数生成器を指定できます。                                                                                                                                                                                                             |
| `schedulerMaximumIntervalMiddleware`   | 日単位の間隔を `maximumInterval` 以下に制限します。呼び出しから戻る際、明示的な学習ステップはこの上限を上書きできます。                                                                                                                                                                                                                                                        |
| `schedulerStatsMiddleware`             | `reps` と `lapses` を管理します。リセット時に消去するかは `clearStatsOnForget` で指定します。Review 状態のカードを Again と評価した場合に忘却を一回と数えます。                                                                                                                                                                                                                   |
| `schedulerMonotonicIntervalMiddleware` | `maximumInterval` の範囲内で、評価ごとの日単位の間隔を順序付けます。上限に達すると同じ間隔になることがあります。                                                                                                                                                                                                                                                            |
| `schedulerScheduledDaysMiddleware`     | 最終間隔を非負の `scheduledDays` としてカードに保存し、変更前の値を revlog に記録します。既定の `fractionalDays: false` では日数を切り捨て、一日未満のステップは `0` になります。`true` では `0.5` などの小数の日数を保持します。                                                                                                                                                                          |
| `schedulerLeechMiddleware`             | 忘却回数が正の `leechThreshold` の倍数に達するたびに、`scheduleStatus` を `suspended` にします。デフォルトの閾値 `0` では無効です。カード選択時にこの状態を考慮するのはアプリケーションの役割です。                                                                                                                                                                                                 |
| `schedulerCostAdrMiddleware`           | `costAdrPolicy` と `goalCostWeight` を使い、記憶状態と復習コストに応じて保持率を調整します。スケジューラの構成時は `schedulerDesiredRetentionMiddleware` の代わりに使用し、併用しないでください。                                                                                                                                                                                        |

`DefaultScheduler` には最初の七つが含まれています。順序は目標保持率 → fuzzing → 統計 → scheduled days → 学習ステップ → 最大間隔 → 単調間隔です。Leech は独自の定義を組み立てる際に必要に応じて追加します。順序が重要な理由は[ライフサイクル](https://open-spaced-repetition.github.io/ts-fsrs/ja-JP/guide/middleware/lifecycle.md)、ミドルウェアの実行方法は[概要](https://open-spaced-repetition.github.io/ts-fsrs/ja-JP/guide/middleware/index.md)を参照してください。

既成のスケジューラを使う場合は[クイックスタート](https://open-spaced-repetition.github.io/ts-fsrs/ja-JP/guide/quick-start.md)、必要なポリシーを組み合わせる場合は[アーキテクチャ](https://open-spaced-repetition.github.io/ts-fsrs/ja-JP/guide/architecture.md)を参照してください。
