プログラミング
Show HN: Ordewell – 1つの目標をコーディングエージェントタスクの順序付けられた計画に変換
Show HN: Ordewell – turn one goal into an ordered plan of coding-agent tasks (github.com)
要約
Ordewellは、単一の目標を、個別のランナー、モデル、モードを持つコーディングエージェントタスクの順序付けられた計画に変換するツールです。計画は実行前に編集可能で、タスクごとに最適なモデルを選択でき、AIによる推論と実行のプロセスを透明化します。VS Code拡張機能やCLI、TUIで利用でき、APIキー不要で既存のサブスクリプションを利用できます。
全文翻訳
1つの目標を、個別のランナー、モデル、モードを持つコーディングエージェントタスクの順序付けられた計画に変換し、それを実行して検証します。
ウェブサイト · ドキュメント
これは何ですか
トークンを消費する前に書き直せる計画です。計画は型付けされた成果物であり、エージェントの内部状態ではありません。各タスクはランナー、モデル、思考努力、モードを持ち、それらのいずれかを変更したり、タスクを追加・削除したり、依存関係を再配線したりできます。完了した作業を失ったり、AIとの往復を繰り返したりすることなくです。
オープンな選択肢で、タスクごとに適切なモデルを選択します。プランナーは計画全体で1つのポートフォリオ決定を行い(セキュリティリファクタリングとREADMEの更新に同じモデルを使うべきではありません)、実行前にすべての割り当てを表示します(なぜ別のプランナーが必要なのでしょうか?)。
証拠に基づく判定、意見ではありません。タスクは、その固有の完了マーカーがランナーの出力に現れた場合にのみ完了します。終了コードは診断証拠として保持されます。モデルが決定的な要因になることはありません。行き詰まったタスクは「完了とマーク」で進めることができ、誤って完了とマークされたタスクは「完了していないとマーク」で元に戻すことができます。
話しかけてくるプランナー。計画は1つの連続したチャットです。リポジトリを読み取り専用で調査し、目標が曖昧な場合は質問し、最終メッセージが計画となります(ADR-0002)。読み取りは並列で行われ、ワークスペース外に到達するものは一度だけ尋ねられ、書き込みが発生するコマンドは拒否されます(ADR-0008)。
追加のAPIキーは不要です。Claude Code、Codex、またはOpenCodeをプランナーとして使用でき、厳密に読み取り専用で、ランナーのために既に保持しているサブスクリプションで動作します(ADR-0009)。
設計によるマルチランナー。複数のランナーを有効にすると、プランナーがタスクごとに1つを割り当てます。Claude Code、Codex、OpenCodeは組み込みで提供されます。それ以外(Aider、独自のCLIなど)は、コード変更ではなくプラグインマニフェストです。
クイックスタート
macOS、Linux、またはWindowsでNode.js ≥ 20が必要です。TUIにはtmuxも必要です。プラットフォームサポートを参照してください。
npm install -g ordewell
ordewell # TUI — 左側にチャット、右側に計画
これで完了です。初回実行時にプランナーとランナーを尋ねられます(/planner、/runners、/keyから設定)。再起動や事前のAPIキーは不要です。
npx ordewell はグローバルインストールなしでも同じように動作します。パッケージは @ordewell/cli としてスコープされています。
VS Codeの場合は、拡張機能をインストールしてください。これは独自のコアを持つため、npmからインストールするものは何もありません。
code --install-extension ordewell.ordewell
または拡張機能ビューでOrdewellを検索してください。
ソースからのビルド:git clone https://github.com/ordewell/ordewell.git && cd ordewell && npm install && npm run build && npm link -w packages/cli — CONTRIBUTING.mdを参照してください。
スクリプト可能 / ヘッドレス
すべてのスラッシュコマンドはサブコマンドでもあります。プランナーとランナーを環境変数で設定すれば、TUIを完全にスキップできます。
既にClaude Code、Codex、またはOpenCodeを実行しましたか?追加のAPIキーは不要です。お持ちのサブスクリプションで実行されます。
export AI_PROVIDER="claude-code" # または codex, opencode
ordewell plan --goal "Add rate limiting to the public API" && ordewell run
変更は常にランナーに留まり、プランナーエージェントは探索と推論のみを行います。UIと同じトグルが適用されます:/planner、/model、/planner-effort、またはVS Codeのプランナーバー。
APIキーを優先しますか?25のプロバイダーが認識されます(*_API_KEY経由):OpenRouter、Anthropic、OpenAI、Gemini、xAI、Groq、DeepSeek、Mistral、Together、Fireworks、Perplexity、Cerebras、DeepInfra、Cohere、Novita、Kimi、Zhipu、Qwen、Doubao、Hunyuan、Baichuan、MiniMax、Yi、StepFun、SiliconFlow。
ordewell key を実行して変数名を表示するか、OPENAI_COMPATIBLE_BASE_URL をローカルモデルサーバーを含む他のものにポイントしてください。
export OPENROUTER_API_KEY="sk-or-..."
ordewell plan --goal "Add rate limiting to the public API" && ordewell run
3つのインターフェース、1つのコア
VS Code
ストリーミングタイムライン:ライブ思考、各調査ステップとその結果、展開可能なタスクカード(ランナー自身の出力用)。タスクのランナーをリターゲットすると、モデルとモードがその場で再導出されます。ループ全体は、エンドツーエンドで「The VS Code loop」の下にあります。
ターミナルUI
拡張機能が行うすべてのことを、SSH経由で行います。タブでチャットと計画ペインを切り替え、単一キーで計画を操作します(f 開始、E 全実行、m 完了切り替え、R ランナー、o モデル)。/help で残りをリストします。
CLI
$ ordewell plan --goal "Add rate limiting to the public API"
Generating plan for: "Add rate limiting to the public API"...
✓ list_dir src → D middleware F router.ts F auth.ts
✓ grep X-RateLimit → no matches in 6 files
Question: should limits apply per API key, or per client IP? My recommendation: per key — auth() already threads the key through req.ctx. > per key, with an IP fallback for anonymous routes
Plan: 4 tasks (3 AI, 1 Manual) — claude-code, opencode
Session: session-1751600000000
1. [ AI] Add a token-bucket limiter in src/middleware/rateLimit.ts (Claude Sonnet 4.5 · Claude Code)
2. [ AI] Wire the limiter into route registration (Claude Haiku 4.5 · Claude Code)
3. [ AI] Return RFC 6585 429s with Retry-After (DeepSeek V4 Flash · Opencode)
4. [MAN] Document the limit headers in the OpenAPI spec
[MAN] = manual step — run `ordewell tui` to work through it
Run 'ordewell run' to execute, 'ordewell status' to inspect, or 'ordewell tui' for the full UI.
$ ordewell run
Executing plan...
✓ #a1b2 completed — PASS: Verified: completion marker detected in agent output.
Task c ⟳ #c3d4 in_progress [2/Wire the limiter into route registration] Started: claude-code / claude-haiku-4-5
Done. 4 completed, 0 failed, 0 blocked.
すべてのスラッシュコマンドはordewellのサブコマンドでもあるため、UI専用のものはなく、ヘッドレスオートメーションであらゆる人間ができることに到達できます。
仕組み
目標を平易な言葉で説明します。プランナーはワークスペースを読み取り専用で調査し、質問と調査を1つの永続的な会話に織り交ぜます(ADR-0008)。計画が表示されます — 順序付けられたタスクで、それぞれにランナー、モデル、思考努力、モードがあります。インラインで何も編集したり、再プロンプトして完了した作業を失うことなく計画全体を再形成したりできます。実行は、依存関係グラフを尊重し、各タスクに先行タスクの結果を渡しながら、AIタスクごとに実際のコーディングエージェントセッションを起動します。手動タスクはチェックリストになります。VerdictEngineは、マーカーが表示された場合にのみタスクを完了します。マーカーなしでの終了は視覚的に失敗します。セッションは.ordewell/sessions/に自動保存されます。
使用例 — 計画、編集、マルチランナー、プラグイン
計画、編集、実行
# プランナーはリポジトリを調査し、目標が不明確な場合は会話します
ordewell plan --goal "Migrate the config loader from JSON to TOML"
# 実行前に再割り当て — ランナーを先に、モデル、努力、モードを再導出します
ordewell task-runner 2 opencode
ordewell task-deps 3 1,2
# 実行;独立したタスクは並列で実行されます(デフォルト:3つの同時セッション)
ordewell run
# 後で任意のセッションを検査します
ordewell status --session-id session-1751600000000
インターフェースはターゲットの名前付け方法が異なるだけです。TUIはピッカーを開き、CLIは引数を取ります。引数を省略すると、ピッカーが表示するものと同じオプションが表示されます。
ordewell task-model 3
# そのタスクのランナーが起動できるモデルをリストします
ordewell task-model 3 sonnet
# 1つを選択します
エディタなしで設定
ordewell planner claude-code
# コーディングエージェントのサブスクリプションで計画 — APIキー不要
ordewell model set sonnet
# そのエージェント自身のカタログにスコープされます
ordewell planner-effort high
# 選択されたモデルのバリアント
ordewell key set openrouter sk-…
# .envに保存され、決してエコーバックされません
ordewell runners codex off
それぞれが実行中のサーバーにプッシュしてから.envを書き込むため、変更は再起動なしで次の計画に反映されます。接続が拒否された場合、デーモンが見たことのない設定を持つファイルを残すことはできません。
PRDとのディープインタビュー計画
ordewell grilling on # プランナーはアウトライン化する前に目標を尋問します(最低3回の質問)
ordewell prd on # プランナーはプレビューし、完全なPRDを.scratch/<slug>/PRD.mdに書き込みます
ordewell tdd on # タスクは赤-緑-リファクタリングの指示で拡張されます
ordewell plan --goal "Real-time collaborative editing"
# → プランナーはチャットであなたに質問し、PRDをドラフトし、あなたの承認を待ち、
# その後、計画を最終メッセージとしてコミットします
マルチランナー計画とカスタムランナー
# --runner を渡す