破壊的変更を許可
現在の会話の残り全体において、プロジェクト所有の過去の動作との互換性をオプションとして扱います。現在の要件に対して最もシンプルで健全なアーキテクチャを優先し、単なる新奇性のために動作を壊さないでください。
ポリシーの有効化と維持
- 明示的な
$allow-breaking-changeの呼び出しがあった場合のみ有効化します。 - 単独の呼び出しの場合、有効化とそのデータ保護の境界を簡潔な一文で確認し、タスクを待ちます。タスクが付随する呼び出しの場合、最初に有効化してからタスクを処理します。
- 会話が終了するか、ユーザーが明示的に無効化するまで、計画、設計、レビュー、診断、実装を含むすべてのプロジェクトとタスクにポリシーを適用します。
- 「このタスクでは互換性を維持する」といった明確なタスクレベルの指示は一時的なオーバーライドとして扱います。「allow-breaking-change を無効化」といった明確な指示は、会話の残り全体に対する取り消しとして扱います。
- アクティブなポリシーは、互換性が決定や結果に影響する場合にのみ言及します。無関係なターンでステータスを繰り返し通知しないでください。
- 優先度の高い指示、リポジトリの要件、明示的な現在のタスクの制約には引き続き従います。
過去の互換性なしで決定を行う
- プロジェクト所有のレガシーAPI、CLI、設定、プロトコル、ファイル形式との後方互換性および前方互換性を決定基準から除外します。
- 過去の利用者を維持するためだけに、アダプター、非推奨期間、並行実装、バージョンブリッジ、レガシーパーシングを追加しないでください。
- スコープ内のすべての呼び出し元、テスト、ドキュメント、例、生成されたアーティファクトを新しい契約に更新します。
- 古いテストを意図に基づいて分類します。互換性のためだけに存在するアサーションは削除または書き換え、正確性、セキュリティ、データ整合性、アクセシビリティ、現在の動作に関する要件は保持します。
- 実装労力、リグレッションリスク、検証の難しさ、パフォーマンス、運用リスクは引き続き考慮します。互換性を壊す許可は、タスクスコープの拡大や破壊的行為の許可ではありません。
- 外部標準、プラットフォームABI、アクティブなサードパーティ契約、現在のタスクの一部であるその他の相互運用性要件は引き続き尊重します。
KISSとUnixifyでアーキテクチャを判断する
責任境界、インターフェース、データ表現、システムレイヤーへの重要な変更については、最初にインストールされた $kiss スキルを適用して不要な概念とメカニズムを削除し、次に $unixify を適用して残りの責任、表現、構成インターフェースを整形します。ローカルな機械的変更にはこの追加ワークフローをスキップします。
このポリシーがアクティブな間は、KISSおよびUnixifyの互換性維持ガードレールのみをオーバーライドします。正確性、セキュリティ、データ整合性、明確性、正当化された境界、観測可能な障害動作など、他のガードレールは維持します。
データと操作の保護
- 保存データを互換性のない表現に移行する必要がある場合は、一方向のロスレスマイグレーションを提供し検証します。マイグレーション後は新しい表現のみをサポートします。
- ロスレスマイグレーションが不可能な場合は、失われる情報やセマンティクスを特定して報告します。ロッシーマイグレーションを実行する前に、タスク固有の決定を取得します。
- 現在の可用性要件やローリングデプロイ要件により、混在バージョン運用が必要な場合にのみ、一時的な互換性ブリッジを導入します。ブリッジには明示的な削除条件を設定し、移行後に削除します。
破壊的変更の伝達
選択した設計が破壊的であるという理由だけで許可を要求しないでください。計画、レビュー、または完了報告書で、主要な破壊された契約、影響を受ける呼び出し元やデータ、必要なマイグレーション、実行された検証を簡潔に特定します。