Genesis Deslop
選択された変更をレビューし、製品の動作を変更せずに簡略化します。Deslop は明示的に実行されるものです。実装が終了したという理由だけで決して実行しないでください。
最初の Genesis 操作を実行する前に、呼び出しを解決してください。Genesis 操作や genesis --version を可用性の確認に使用しないでください。
- リポジトリルートの
package.jsonを読み取ります。マニフェストのnameがgenesis-compilerである場合、またはそのdependencies、devDependencies、optionalDependenciesに正確なgenesis-compilerキーが含まれている場合にのみ、Genesis をプロジェクト固定として扱います。 - プロジェクト固定リポジトリの場合、すべての Genesis CLI 操作を
npm exec --no -- genesis <arguments>で呼び出します。これにより、別のパッケージをフェッチせずに実行されます。宣言されたパッケージがインストールされていない場合は、プロジェクトの依存関係が準備されていないことを報告し、別の Genesis バージョンにフォールバックしないでください。 - それ以外の場合は、
npm execを試みないでください。command -v genesis(または現在のシェル相当のPATHルックアップ)を実行します。実行可能ファイルが解決された場合は、genesis <arguments>を直接呼び出します。 - どちらのソースも利用できない場合は、停止して Genesis が利用不可であることを報告します。ワークフロー指示を満たすためだけに Genesis をインストールまたは更新しないでください。
呼び出し解決の成功は日常的なことです。Genesis がプロジェクト固定か PATH 上にあるかを説明したり、直接の PATH 使用をフォールバックと表現したりしないでください。呼び出しがどのように選択されたかは、解決に失敗した場合、またはユーザーが明示的に尋ねた場合にのみ言及してください。
ユーザー向けの更新には、設定された協調アプローチに従い、その技術的深度と応答長を守ってください。具体的な進捗、発見、または障害を報告し、ガイダンスに従っていることをアナウンスしないでください。
有効なプロジェクト指示を一度ロードする
Deslop リクエストは、完全な Genesis 生成プロンプトとして、またはエージェントセッションでの Deslop のような直接リクエストとして到着する場合があります。
現在のタスクに既にタスクが deslop である GENESIS CONTEXT が含まれている場合は、そのまま続行してください。別のプロンプトを生成しないでください。
それ以外の場合は、Git スコープを解決する前に、上記の呼び出しルールを使用して Genesis prompt --task deslop 操作を 1 回実行してください。裸の Deslop リクエストの場合は、リクエスト引数を渡さないでください。ユーザーが数、コミット、または範囲を指定した場合は、その正確なリクエストを安全に引用符で囲んだ 1 つの引数として渡します。出力されたプロンプトを同じターンでの指示として扱います。別のエージェントにディスパッチしたり、再度生成したりしないでください。この手順により、選択されたスタックのテクノロジー固有の Deslop ガイダンスとプロジェクトのカスタマイズが、以下のポータブルな契約と組み合わされます。
クリーンアップスコープを解決する
編集前に git status --short とステージング済みおよび未ステージングの差分を検査します。ダーティなワークツリーは許可されます。事前のコミットは必要ありません。既存のインデックスと無関係な作業を保持します。クリーンアップの前提条件または一部として、変更をステージ、スタッシュ、コミット、または破棄しないでください。
ユーザーのスコープを次のように解決します。
- 明示されたスコープがない場合は、先行するターンを含む、現在のタスクに対する自分の変更のみを選択します。これには、ステージング済みおよび未ステージングの編集、新しい追跡されていないファイル、および既にコミットされたタスク変更が含まれます。タスクと編集履歴から所有権を特定し、現在のソースと Git 差分に対してそれらの変更を確認します。ダーティな差分全体、最新のコミット、または Git 作者 ID は、所有権を証明しません。
- ユーザーまたは他のエージェントによる変更(同じファイル内の編集を含む)を保持します。所有権を確立できない場合は、どの変更を deslop するかを尋ねます。このタスクで自分の変更がない場合は、deslop するものがないことを報告します。最新のコミットや他の誰かの作業を黙って選択しないでください。
- 明示的なコミット、ファーストペアレントカウント、または範囲は、それらの変更の作成者に関係なく、デフォルトよりも優先されます。
- 「最後のコミット」とは、そのファーストペアレントに対する
HEADを意味します。 - 「最後の N 個のコミット」とは、それらの N 個のコミットの前のファーストペアレントから
HEADまでの正味の存続変更を意味します。 - 名前付きコミットとは、そのファーストペアレントに対するそのコミットを意味します。
- 明示的なコミット範囲とは、正確にその範囲を意味します。
- ルートコミットは親を持たないため、Git のルート差分形式を使用します。
解決された変更とパス、および該当する場合はコミット ID を検査します。それらの差分、現在のソース、直接の呼び出し箇所、関連するテスト、および影響を受ける Program と Stack コンテキストを確認します。明示的なコミットスコープの場合、通常のワークツリー差分を選択されたコミット差分に代用しないでください。現在のソースにクリーンアップを適用しながら、スコープ外の編集は保持します。安全に分離できない重複する編集がある場合は、リポジトリがダーティであるという理由だけでブロックするのではなく、その重複について尋ねてください。
クリーンアップ契約を適用する
タスクと共に提供されたエンジニアリングアプローチを適用します。このスキルが直接呼び出された場合は、genesis/engineering.md と関連するプロジェクトコンテキストを読み取ります。クリーンアップは複雑性を低減または維持する必要があり、選択されたプロファイルや具体的な要件で必要とされない、承認されていないメカニズムを決して導入してはなりません。
既存の公開関数および内部関数を見つけるために、.genesis/machine-city.json を参照するか、Genesis index <name-or-path> 操作を実行してから、抽象化を導入または統合します。ソースとその呼び出し箇所で、見かけ上のすべての重複を確認します。
選択された変更の意図された動作とスコープ内で、繰り返されるヘルパー、不明瞭または推論が難しいコード、コードベースの確立されたパターンに反するコードを残さないでください。不要なラッパー、放棄された足場、パラレルフレームワークの配管、推測による抽象化を削除します。1 つの明確なモジュールで十分な場合は、所有権を統合します。小さなファイルや間接性のために最適化するのではなく、ジュニアプログラマーが追跡できる、小さく明白な設計のために最適化します。
クリーンアップは 2 回目の実装パスではありません。選択された変更によってクリーンアップが発生する場所が制限されます。ファイルを共有しても、無関係な編集がスコープに入ったり、そのファイルでの異なる動作が許可されたりするわけではありません。Deslop は既に存在する動作を再編成する場合があります。動作を完成、修正、または拡張することはできません。レビューで欠陥、欠落している動作、契約の不一致、またはテストのギャップが明らかになった場合は、フォローアップの発見事項として報告し、変更されたパス内にある場合や、先行する実装に関連しているように見える場合でも、それを変更せずに残します。Deslop 中に発見事項を実装したり、それに対応するためにテストを変更したりしないでください。
選択されたスタックによって提供されるすべてのテクノロジー固有の Deslop 指示を適用し、フレームワークと言語コンテキストのために該当する公式テクノロジースキルをロードします。スタックガイダンスはこの契約を充実させますが、動作保存の境界を弱めたり、選択されたスコープを変更したり、無関係な実装を許可したりすることはできません。
それが最も明確な動作保存クリーンアップである場合は、実装ファイルとテストファイルを編集または削除しても構いません。選択されたソースの移動または名前変更により、影響を受ける Program の引用が古くなった場合は、その引用または情報提供の実装マップのみを更新します。クリーンアップ動作を正当化するために Blueprint または Program の公開契約を変更しないでください。.genesis/、Git メタデータ、依存関係ディレクトリ、生成されたビルド出力、保持された移行履歴、または外部リソースを編集しないでください。テスト、パブリックな動作、またはデータ保証を弱めないでください。2 番目のアーキテクチャを作成したり、無関係な書き換えを実行したりしないでください。
クリーンアップは、レビューと後続の通常のコミットのために、通常のコミットされていない作業として残します。選択されたコミットを修正または書き換えないでください。有用な場合に焦点を絞ったチェックを実行します。最終的な宣言済みチェックは、Genesis verify 操作を通じて利用可能です。解決されたスコープと選択されたコミット ID、簡略化された内容、変更されたファイル、実際に実行されたチェック、および変更されずに残されたフォローアップの発見事項を要約します。