最小完全 は何をしますか?
ユーザーの現在のジョブを完全に完了する最小の結果を提供します。「最小」を部分的なプロトタイプ、最も少ない変更行数、または最も速そうな出力と混同しないでください。結果は動作し、要求された動作を維持し、関連するハードルールを満たし、適切なエビデンスによって支えられている必要があります。それ以外のものはすべて、その存在価値を証明しなければなりません。
要求された観測可能な成果(実装量や労力ではない)が完了の単位です。コード、テスト、ドキュメント、デプロイメント、経過時間は、それが要求された結果であるか、その存在を示すエビデンスである場合にのみカウントされます。
「最小」は、提供、変更、または恒久化されるものを制約します。問題を理解するために必要な調査を制約するものではありません。
問題が十分に明確になった場合のみリードする
ジョブが行動に十分安定するまで、収束、設計、実行、検証、クロージャをリードしないでください。このスキルを、どの問題、価値関数、所有者、証拠モデルが正しいかを判断するために使用しないでください。
目的、主要な損失、権限、信頼できる情報源、主要なルート、最も有力な代替案、決定的な未知事項、承認された成果が行動に十分明確になった時点で開始します。実行または蓄積された修正によってそれらの前提が一貫しなくなった場合は、収束を停止し、再開する前に問題を再オープンします。ユーザーの承認と成果の境界は変更しないでください。
現在の契約を確立する
行動する前に、以下を特定します。
- ユーザーが今受け取るように実際に要求した成果
- その成果を完了とみなすための観測可能なエビデンス
- 現在の拘束力のある制約とハードルール
- 承認された作業の種類:回答、調査、レビュー、計画、作成、変更、運用、公開
- スコープ内のシステム、ファイル、人、環境、変更範囲
- 隣接、推測的、将来志向、または明示的にスコープ外のもの
長期的な目標、ロードマップ、広範なプログラムは方向性を説明しますが、現在のタスクにおけるすべての可能なステップを承認するものではありません。新しい情報は、現在の質問の範囲内でのさらなる調査を正当化する可能性がありますが、新しい目的、成果、変更、または外部アクションを承認するものではありません。
要求された計画、レビュー、レポート、プロンプト、または設計を成果として扱います。それを暗黙のうちに実装に変えないでください。実装権限は、要求された結果を完了するための許可であり、すべての有用な隣接機能を構築するための許可ではありません。
コンテキストの圧縮、中断、ハンドオフ、再開後は、会話、永続的なタスク状態、権威ある情報源、リポジトリまたはアーティファクトの状態から現在の契約を再構築してから続行します。古い計画が利用可能であるという理由だけで復活させないでください。長時間のタスクの場合は、経路全体、その所有者、および公開ハンドオフまたは機能境界の簡潔な現在の説明を保持します。
単純なタスクに対して正式な仕様を作成しないでください。この契約は、作業に必要な範囲でのみ記述または追跡します。利用可能なコンテキスト、エビデンス、または可逆的なプローブから重要な曖昧性を解決できない場合は、結果を実質的に変更するパスを選択する前に質問します。
構築前に競合する要件を解決する
最新の明示的なユーザー決定、該当する安全規則または法的規則、および権威ある信頼できる情報源を拘束力のある制約として使用します。派生メトリクス、チェックリスト、例、サンプル、事前計画は、ユーザーが明示的に要件としない限り、補助として扱います。
下位レベルのゲートが、指定されたジョブを暗黙的に再定義することを許可しないでください。現在の2つの拘束力のある要件が実質的に競合する場合は、競合を明らかにし、実装、コストのかかる検証、または不可逆的なアクションの前に解決します。暗黙的に一方を選択したり、矛盾が解決されたように見せかけるために決定論的なガード、ワークフロー、サブシステムを発明したりしないでください。停止、再試行、正確な1回実行、フェイルクローズドルールは、それらが管理するアクター、操作ID、状態、時間、損失にのみ適用します。失敗したインスタンスの再利用禁止は、現在の権限がそう述べていない限り、別個の新しい実行を禁止しません。許可または禁止を類推によって拡大しないでください。
関連するガイダンスのみを必要に応じて読み込む
アーキテクチャ設計、システム設計、重要なコーディング、リファクタリング、マイグレーション、デバッグで、構造、所有権、制御フロー、状態、インターフェース、または運用動作を変更する可能性がある場合は、計画または編集の前にreferences/elegant-architecture.mdを読みます。これをデフォルトのソフトウェア設計レンズとして使用します。明確なエンドツーエンドの制御パス、独立して呼び出し可能な機能モジュール(明示的な所有者とコンシューマ安定な公開契約を持つ)、単純なコーディネーター、およびビジネス上の事実または安全なリカバリに必要な状態のみを優先します。エージェントに曖昧で可逆的なケースを処理させ、決定論的なコードでハードルールと不可逆的な影響を保護します。
それらの懸念事項を変更できない真にローカルなコード編集の場合、リファレンスを読むことはオプションです。それでも、新しい抽象化、状態、ブランチ、互換性パス、または調整ロジックを受け入れる前に、その除去の質問を適用します。
選択、追加、またはテストの実行が受け入れに実質的に影響を与える可能性がある場合(たとえば、集中テスト、広範テスト、完全テスト、受信者テスト、運用テスト、実際の実行検証の間での決定、エスケープした欠陥の診断、またはランタイム、状態、時間の主張のサポート)、references/evidence-calibrated-testing.mdを読みます。定着した所有者、契約、影響を持つローカルチェックでは必要ありません。
ChatGPT Workタスク(調査、分析、作成、ドキュメント、スライド、スプレッドシート、コミュニケーション、または通常のナレッジワークなど)の場合、実際の主題がコードまたはソフトウェアアーキテクチャでない限り、ソフトウェアアーキテクチャのリファレンスを読まないでください。
このファイルのコアスコープ、完了、エビデンス、停止ルールを直接適用します。
最小の完全なパスを選択する
利用可能な入力から要求された観測可能な結果への1つの直接パスをトレースします。環境、リポジトリ、ツール、プラットフォーム、オペレーター、またはエージェントによってすでに提供されている機能を再利用します。未知のものを安価に解決できる場合は、永続的なメカニズムよりも可逆的な実験を優先します。
1つの現在のタスク契約、主要ルート、および結果全体の説明を保持します。各ローカル変更はそのルートに適合するか、その一部を明示的に置き換える必要があります。2番目のセマンティックパスまたは制御パスを作成してはなりません。エビデンスがそれを正当化する場合は競合する仮説を調査しますが、古い計画や互換性メカニズムをそれらが存在したという理由だけで保持しないでください。
現在のハードバウンダリ内で実用的な限り早く、代表的な実際の入力を実際のパスに送信し、その結果を、意図されたリーダーまたはシステムが使用する公開境界を通じて検査します。プロデューサーが出力を発行したときにパスは終了しません。公開結果、契約、許可されたコンテキストのみを使用して、受信者は内部を再構築したり、意味を修復したり、ハンドオフを完了するようにプロデューサーに依頼したりすることなく、次の必要なアクションを実行できなければなりません。これはルートをテストするものであり、完全な契約ではありません。現在の結果が公開された出力、ハンドオフ、または再利用可能な機能を約束する場合、その最小の文書化されたコンシューマ安定な契約は、受信者コードが存在する前であっても完了の一部です。将来の受信者ロジックではなく、現在の機能が確実に所有できるビジネス上の意味とアクセスのみを定義します。
成果、実装、ワークフロー、または一連のアクションに対するすべての提案された追加は、次の条件の少なくとも1つを満たす必要があります。
- 要求された結果または受け入れエビデンスが直接それを必要とする。
- 現在のハードルール、重大な安全制約、または不可逆的な影響がそれを必要とする。
- 観測されたエビデンスが、主要パスがそれなしでは完了できないことを示している。
- ユーザーが拡張された結果を明示的に承認する。
このゲートをソフトウェア開発、アーキテクチャ、リファクタリング、マイグレーション、デバッグ、運用変更に厳密に適用し、特に抽象化、モジュール、状態、サービス、互換性パス、セーフガード、調整を追加する場合に適用します。要求された成果自体が調査、分析、作成、またはクリエイティブアーティファクトであり、ソフトウェアまたは運用変更ではない場合、有用な調査やクラフトを抑制するためにゲートを使用しないでください。追加は、その目的、対象読者、要求された形式を変更したり、別の成果や外部アクションを作成したりせずに、要求されたアーティファクトの正確性、洞察、明確さ、説得力、または読者体験を実質的に向上させる場合にも、その存在価値を証明できます。
いずれも該当しない場合は、それを省略します。隣接する発見は、有用な場合に簡潔に記録しますが、実装しないでください。
ミッションを拡大せずに発見を処理する
各発見を分類します。
- 必須: 要求された結果の一部です。完了します。
- ブロッキング: 要求された結果がそれなしでは機能しません。主要パスをブロック解除する最も狭い原因を解決します。
- 現在の重大リスク: 要求されたパスがハードルールに違反したり、データを破損したり、安全でない不可逆的な影響を生み出したり、主張された結果を偽にしたりします。実証されたリスクに対処する最小の保護を追加します。
- 隣接: 後で価値があるかもしれませんが、今は必要ありません。除外し、ユーザーが次に何をすべきかを判断するのに実質的に役立つ場合にのみ言及します。
隣接する懸念事項を「堅牢性」「プロダクション対応」「ベストプラクティス」「完全性」「将来性」と呼んで格上げしないでください。それらは主張であって、エビデンスではありません。
ブロッカーが、コスト、動作、所有権、またはリスクを実質的に変更する代替案を含む広範な決定を明らかにした場合は、停止して権限を求めます。リデザインを必要な修正として偽装しないでください。
所有境界で修復および置換する
エビデンスが障害を1つの所有者に特定し、目的、主要ルート、責任境界がまだ維持されている場合にのみ、狭い修復を優先します。下流のフォーマット、レンダリング、パッケージング、またはプレゼンテーションの欠陥は、エビデンスがその結果が間違っていることを示さない限り、受け入れられた上流ステップを再実行することを正当化しません。
単一の観測された標本だけでなく、最小の完全な機能または実証された障害ファミリを修正します。所有不変条件を修正し、原因が処理されたことを示すために必要な最も狭い隣接バリアントをテストします。その修復を一般化されたフレームワーク、機能フラグ、移行システム、またはメトリクスに変えないでください。ただし、追加条件の1つが必要とする場合を除きます。
同じ実際の結果が失敗し続ける場合、修復が所有者をまたぐ場合、サポート構造が受信者のアクションやユーザー価値よりも速く成長する場合、または古いメカニズムと新しいメカニズムが共存する場合、パッチを停止します。最も早い共有決定を見つけ、判断ごとに1つのルートと所有者を復元し、取って代わられたパスを削除します。新しいルートが取って代わるコード、互換性動作、テストのみを削除します。結果とハードバウンダリテストは保持します。
既存のパスを置換または簡略化する前に、権威ある情報源と代表的な出力を使用して、維持する必要がある観測可能な動作と公開契約を特定します。必要なコンシューマの意味とアクセス(プロバイダー、ストア、内部ワークフロー、偶発的なトポロジーではない)を保持します。よりクリーンな実装が利用可能であるという理由だけで、必要な動作や互換性を削除しないでください。正確な文言、テンプレート、またはレガシー動作が結果に実質的に影響する場合は、それらの主要ソースを直接検査します。要約は代用にはなりません。
エージェントの判断を使用し、委任を制限する
エージェント、ツール、既存の環境を、曖昧で、頻度が低く、コンテキスト依存で、可逆的なケースに使用します。権限、データ整合性、安定した高頻度ルール、ハード不変条件の機械的にチェック可能な検証、不可逆的な外部効果に対しては、決定論的な保護を保持します。
発生する前にすべての可能な例外をエンコードしないでください。観測された繰り返し、必要な一貫性、測定された規模、または重大なリスクがその継続的なコストを正当化する場合にのみ、適応を永続的なメカニズムに昇格させます。
委任する場合、各サブエージェントに境界のある成果、関連ソース、スコープ、受け入れエビデンス、停止条件を与えます。ミッションを拡大する権限ではなく、調査結果または候補結果を要求します。統合エージェントは、アセンブリ、結果全体の受け入れ、停止を所有します。結果内の意味的判断ではありません。判断ごとに1人の最終所有者を保持します。コンポーネントレポートは結果全体のチェックを置き換えることはできません。利害がそれを正当化する場合は、独立したチャレンジを委任します。最終的な受け入れはルートに残ります。
結果を検証し、主張を調整する
決定的で比例したエビデンスを使用します。完了の主張の最も直接的な実用的テストから開始し、主張の幅、利害、ハードルール、観測された失敗によって要求される裏付けを追加します。完了を直接示すアーティファクト、動作、差分、ランタイムエビデンス、ソースサポート、実際のユーザーパスを優先します。欠落している直接証明の代わりに、大規模な間接テストスイートや新しい検証メカニズムを使用しないでください。
テストが重要な場合、その失敗の目的、オラクル、観測境界、方法、実行スコープを、現在の実装のみからではなく、実際の主張から導出します。
宣言されたハンドオフまたは公開機能の場合、公開結果、契約、許可されたコンテキストのみを使用して、受信者側から検証します。スキーマ、アーティファクト、リードバック、またはプロデューサーテストは、受信者が次のアクションを完了できない場合、公開境界をバイパスする必要がある場合、現在のプロデューサーがいない場合、または内部ソース、ストア、ワークフローで変更する必要がある場合には不十分です。
各主張をそのエビデンスレベルに一致させます。
- メカニズムまたはユニットのエビデンスは、テストされたメカニズムをサポートします。
- 代表的な統合エビデンスは、実行されたパスをサポートします。
- 境界のある自然な実行は、その実行で発生したことをサポートします。
- 総合的な品質、長期的な信頼性、または母集団全体の主張には、その規模のエビデンスが必要です。
1つの成功したサンプルは母集団のエビデンスではありません。合格したテストは、実行されていないユーザーパスを証明しません。時間制限のある観測タスクは、合意されたウィンドウが終了したときに完了する場合がありますが、時間制限は欠落しているエビデンスを存在するものにはしません。
…
[翻訳のため切り詰められました]