Communitygithub.com

Loop It

制限付きで検証可能なコーディングループを、Codex、Claude Code、Cursor、およびSKILL.md互換エージェント向けに設定します。

Loop It とは?

Loop Itは、曖昧なコーディング目標を、明確な成功条件と停止条件を持つ反復可能なループに変換するスキルです。ライブラリから適切なループを選択したり、プロジェクトの進行状況に基づいて次のループを推奨したり、カスタムループを設計して実行できます。各ループは「目的」「スコープ」「成功確認」「反復上限」「停止条件」「証跡」「承認ゲート」という必須フィールドで構成され、計画的かつ安全な反復開発を支援します。Codex、Claude Code、Cursorなど複数のAIエージェントプラットフォームで動作し、各プラットフォームの適切なディレクトリにインストールすることで利用可能です。このスキルは「継続的な改善」のような検証不可能な要求に対しては、具体的なチェック条件を伴う小さなループを提案するなど、厳格なループ設計を促進します。

対応✓Claude Code✓Codex CLI✓Cursor
npx skills add fhajjej-ship-it/loop-it

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Loop It は何をしますか?

曖昧なコーディング目標を、制限付きで検証可能なループに変換します。Loop It はループライブラリでもあります: 適切なスターターループを選択し、ユーザーのコンテキストに適応させ、次のループが明確になるように進捗を追跡します。

判断

まず、ユーザーが必要としているモードを判断します:

  • ライブラリから検索: ユーザーの目標に合ったバンドルループを選択します。
  • 進捗から次を選択: .loop-it/progress.json または .loop-it/LOOP.md を検査し、次に何をループすべきか推奨します。
  • 設計のみ: 再利用可能なループプロンプトまたはプロジェクトローカルのループファイルを生成します。
  • 今すぐ実行: 一度に1つの制限付きイテレーションを実行し、検証して、別のイテレーションが正当化されるかどうかを判断します。
  • エクスポート/インストール: 同じループをCodex、Claude Code、Cursor、または他のSKILL.md互換エージェント向けに適応させます。

タスクが曖昧な場合、広範な発見質問はしないでください。まず、最も可能性の高いライブラリループを推奨し、その前提を述べてください。目標、成功確認、リポジトリのスコープ、または承認境界が実際にブロックしている場合にのみ、最大3つの的を絞った質問をしてください。

契約

実行前に、すべてのループに以下のフィールドが必要です:

  • 目的: テーマではなく、具体的な成果。
  • スコープ: リポジトリ、ファイル、機能領域、データソース、または環境。
  • 成功確認: コマンド、ベンチマーク、手動検査、レビュー基準、または測定可能なしきい値。
  • 反復上限: 最大パス数または時間予算。
  • 停止条件: 成功、意味のある改善なし、繰り返しの失敗、アクセス拒否、安全でないアクション、または承認要件。
  • 証跡: 各パスの後に記録する内容。
  • 承認ゲート: プロダクションへの書き込み、外部メッセージ、支払い、破壊的なgit操作、認証情報、デプロイ、または不可逆的なデータ変更。

要求されたループがチェックなしの「ただ改善を続ける」だけの場合は、拒否してください。代わりに、明確なチェックを伴うより小さなループを提案してください。

ループの選択

ゼロからループを考案するよりも、バンドルライブラリを優先してください。

セレクタースクリプトが利用可能な場合はそれを使用します:

node <skill-dir>/scripts/select-loop.mjs list
node <skill-dir>/scripts/select-loop.mjs search "failing ci"
node <skill-dir>/scripts/select-loop.mjs recommend --goal "fix failing checkout test"
node <skill-dir>/scripts/select-loop.mjs next --cwd <project>

<skill-dir> をこのスキルのフォルダに解決します。Claude Codeでは、${CLAUDE_SKILL_DIR} が利用可能な場合があります。他のエージェントでは、この SKILL.md を含むディレクトリを見つけてください。

選択時:

  1. ユーザーが次にループするものを尋ねた場合は、最初に .loop-it/progress.json を確認します。
  2. 進捗がない場合は、ユーザーの目標を references/library/loops.json と照合します。
  3. 1つのループを推奨し、最大2つの代替案を示します。
  4. 一致理由を1文で説明します。
  5. 必要な場合にのみ、ループの主要な質問をします。
  6. ライブラリループが適合しない場合は、カスタムループを設計し、それが有用であることが証明された後にライブラリに追加することを検討すべきであると述べてください。

セレクタースクリプトが利用できない場合、または手動検査が必要な場合にのみ、references/library/loops.json を読んでください。タスクに汎用的な永続状態の形状が必要な場合は、references/loop-template.md を読んでください。

現在のライブラリカテゴリは以下の通りです:

  • チケットから検証済み修正へ: 再現、診断、パッチ、回帰テストの追加、検証。
  • CI失敗修理: 失敗した出力を検査、再現、パッチ、失敗したチェックを再実行。
  • ドキュメントスイープ: ドキュメントを実装と比較、古いドキュメントを更新、例やリンクを検証。
  • 製品評価: シナリオと基準を定義、テスト、失敗を修正、影響を受けるテストと全テストを再実行。
  • パフォーマンスループ: ベースラインを計測、1つの焦点を絞った変更、再計測、証明された改善のみを保持。
  • レビュー修復ループ: diffをレビュー、ブロッキングな発見を修正、チェックを再実行、許容されるリスクのみが残るまで繰り返す。
  • 新規セットアップループ: クリーンな環境から開始、文書化されたセットアップに従う、隠れた前提を修正、クリーンに再試行。
  • リリース準備: パッケージ、デプロイ、または公開インストールパスを公開前に検証。
  • UX磨き上げ、依存関係アップグレード、セキュリティ強化、リファクタリング封じ込め、テストカバレッジギャップのループ。

ループのドラフト作成

ループプロンプトと状態ファイルには次の構造を使用します:

  1. 目標と非目標を述べます。
  2. 繰り返しアクションを1つのタイトなサイクルで定義します: 検査、行動、検証、記録、判断。
  3. 正確な検証コマンドまたは手動チェックに名前を付けます。
  4. 反復上限と停止条件を定義します。
  5. 最終レポートに含める必要がある内容を定義します。

バージョン1は狭く保ちます: 1つのリポジトリ、1つの主要な役割、1つの主要な成功確認。スケジューリング、ダッシュボード、マルチエージェントオーケストレーション、プロダクション自動化は、手動ループが有用であることが証明されるまで延期します。

永続状態ファイルが有用な場合は、references/loop-template.md から .loop-it/LOOP.md を作成するか、以下を実行します:

node <skill-dir>/scripts/create-loop.mjs --name "Loop name" --objective "Concrete outcome" --check "Verification command or criterion"
node <skill-dir>/scripts/create-loop.mjs --from failing-ci-repair

ライブラリバックアップのループファイルは、--no-progress が渡されない限り、.loop-it/progress.json も作成します。

ループの実行

各イテレーションにおいて:

  1. 目的、成功確認、上限、承認ゲートを再読します。
  2. 次の制限されたアクションに必要なコンテキストのみを検査します。
  3. 最小の信頼できる変更を行います。
  4. 最初に最も狭い関連する検証を実行し、必要に応じてより広いチェックを行います。
  5. 状態ファイルが存在する場合は .loop-it/LOOP.md に証跡を記録し、.loop-it/progress.json が存在する場合はそれを更新します。
  6. 判断します: 停止、続行、承認要求、またはブロック報告。

安全性、認証情報、プロダクションデータ、課金、ユーザーメッセージング、破壊的なgit操作、デプロイ承認に関する暗黙の前提が必要になる場合は、直ちに停止します。

使い果たされた、ブロックされた、または部分的に検証されたループを完了したと説明しないでください。どの条件で停止したか、どの証跡が存在するかを正確に述べてください。

エクスポート

呼び出し方法のみを変えて、ツール間で同じループテキストを使用します:

  • Codex: .agents/skills/loop-it/ の下、またはCodexプラグインとしてインストールし、$loop-it で呼び出します。
  • Claude Code: .claude/skills/loop-it/ の下にインストールし、/loop-it で呼び出します。
  • Cursor: .cursor/skills/loop-it/ の下にインストールし、Agentチャットから /loop-it で、またはループを依頼して呼び出します。常時オンになっているプロジェクト規約にはCursorルールを使用し、この手続き型ループには使用しないでください。

エクスポート時は、1つの正規ループ本体を維持し、ツール固有の構文は、そのツールで必要な場合を除き避けてください。

関連スキル