> For the complete documentation index, see [llms.txt](https://getsquish.gitbook.io/squish/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://getsquish.gitbook.io/squish/ja/rifarensu/stability.md).

# 安定性とバージョニング

Squish の機械可読なインターフェース面は、明示的な **契約文字列**を、すべてのペイロードに `契約` フィールドとして埋め込みます。利用側はその文字列を解析します。完全一致する場合、その形状はここで文書化されているものです。見慣れない文字列の場合、破壊的変更が発生したことを意味し、利用側は旧い形状を前提にしてはいけません。

## 3つの契約

| 契約文字列            | 対象となる面                                                                | 記載先                                                      |
| ---------------- | --------------------------------------------------------------------- | -------------------------------------------------------- |
| `squish-cli-v0`  | CLI の `--json` stdout オブジェクト                                          | [CLI リファレンス](/squish/ja/rifarensu/cli.md#--json-output)  |
| `squish-mcp-v0`  | MCP ツールが返す JSON ペイロード `squish_video` （CLI のフィールドに加えて `timecodes[][]`) | [MCP リファレンス](/squish/ja/rifarensu/mcp.md#result-payload) |
| `squish-http-v0` | ホスト型 API の JSON レスポンスと、その `/healthz` ボディ                              | [ホスト型 API リファレンス](/squish/ja/rifarensu/http-api.md)      |

MCP ペイロードは独自の文字列を持ちます。CLI のものではありません。形状が異なるためです（`タイムコード` はそこにのみ存在します）。各面は個別にバージョン管理されます。

## 追加のみのルール

契約バージョン内での変更は **追加のみです**:

* 新しいフィールドの **追加は可能です**.
* 既存フィールドは決して **名前変更されず**, **削除されず**、または **型変更されません**.
* 上記に違反するものはすべて破壊的変更であり、 **契約文字列が更新されます** （例: `squish-cli-v0` → `squish-cli-v1`).

利用側にとっては、認識できないフィールドは無視し、解析は `契約` の値で制御する、という意味です。この組み合わせは、破壊的変更のないすべてのリリースと前方互換です。形状を推測せず、解析してください `契約`.

## 固定されているもの

3つの契約の JSON キー集合に加えて、以下の面も固定されており、同じく追加のみの規律で扱われます。

* **MCP ツール名 `squish_video`** — クライアントとエージェントスキルは名前でこれにバインドします。
* **JSON キー** 各契約のもので、CLI/MCP ペイロード内のキー順序と、次の条件付き存在ルールも含みます: `window` （window が要求された場合にのみ存在します）。
* **ファイル名形式** `<basename>.sheet-N.jpg` — 以下を参照してください。 [ファイル名契約](/squish/ja/rifarensu/sheet-format.md#filename-contract).
* **タイムコードの文法** — 出力される形式 `m:ss` / `m:ss.d` / `m:ss.dd` / `m:ss.ddd`、分の上限なし、切り捨てです。さらに、受け付ける入力文法とその [双方向変換特性](/squish/ja/rifarensu/sheet-format.md#round-trip-property) （シートに表示されるものはすべて有効な `start`/`end` 入力です）。
* **絶対タイムコードの意味** — タイムコードは、どのズーム深度でも元動画の時計を参照します。window 指定の実行でそれらが再基準化されることはありません。
* **アドレス可能な下限は 2 ms/セルです** — それ未満の window は教育用エラーで拒否され、重複アドレスを伴って静かに生成されることはありません（以下を参照: [適応的精度](/squish/ja/rifarensu/sheet-format.md#adaptive-precision)).

## 対象外のもの

安定性の保証は次のものには適用されません:

* **シートの視覚的スタイル** — 色、フォント、タイムコードピルの形状、フッターブランディング、ヘッダー/余白、ピクセル寸法、JPEG エンコーダ設定。シートの *アドレス* は契約上のものです。その *見た目* は契約対象ではありません。
* **CLI の人間可読な出力** （ `--json`を指定せずに実行した場合）— プレーンテキストではなく JSON を解析してください。
* **エラーメッセージの文言** — エラー *条件* とそのカテゴリは [CLI](/squish/ja/rifarensu/cli.md#usage-errors) と [MCP](/squish/ja/rifarensu/mcp.md#error-behavior) リファレンスに記載されていますが、正確な文面は今後改善される場合があります。
* **内部実装** — エンジン内部、レンダリングコード、ffmpeg 呼び出しの詳細、一時ファイルのレイアウト。契約文字列が付与されていないもの、または上記に列挙されていないものは、すべてインターフェースではなく実装です。

## 破壊的変更の告知方法

1. 影響を受ける面には **新しい契約文字列が付与されます** (`…-v1`）；旧い文字列が別の形状に再利用されることはありません。
2. 変更は [変更履歴](/squish/ja/rissu/changelog.md).

実行中のペイロードが黙って変わることはありません。もしパーサーが `契約` を確認し、かつ引き続き `squish-cli-v0` / `squish-mcp-v0` / `squish-http-v0`を読み取れるなら、このページと [sheet-format 仕様](/squish/ja/rifarensu/sheet-format.md) に記載されたすべての保証は引き続き有効です。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://getsquish.gitbook.io/squish/ja/rifarensu/stability.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
