agentpace は何をしますか?
使用するタイミング:誰かがソフトウェア作業にかかる時間を尋ねたとき、またはエージェントが行う作業に対して日、週、月単位で期間を示したとき。
出力内容:測定されたP50/P80/P90の範囲とそのクリティカルパス、人間の作業部分は独立した行で表示され、引用された期間が未検証として横に表示されます。
「これにはどのくらい時間がかかるか?」という質問には、実際のエージェント実行からの測定範囲で答え、人間の作業部分は独自に記載してください。人間チームの期間を引用したり、単一の数値を決して与えないでください。
このスキルは自然言語の質問でトリガーされます。/pace-estimateは、特定のプランに対する明示的なコマンドです。
ツールの確認
agentpace --version を実行してください。失敗した場合は、インストールコマンドをユーザーに伝えて停止してください。依頼なしに何もインストールしないでください:
uv tool install agentpace
ユーザーが何もインストールしたくない場合は、代わりに assets/portable-prompt.md を使用してください。
見積もり
- ユーザーが明示的に別の指示をしない限り、エージェントが実装を行うと想定します。不明確で答えが変わる場合は、一度質問してください。
- 作業を、エージェントが個別の実行として行うタスクに分割します。
- 各タスクに
id、kind、riskを割り当て、別のタスクを待つ必要がある場合はdepends_onを設定します。agent_capには同時に実行するエージェントの数を設定します。 - プランをファイルに書き込み、推定ツールを実行します。
{
"agent_cap": 3,
"model": "claude-opus-5-5",
"tasks": [
{ "id": "schema", "kind": "feature", "risk": "normal" },
{ "id": "api", "kind": "feature", "risk": "normal", "depends_on": ["schema"] },
{ "id": "review", "kind": "review", "risk": "low", "depends_on": ["api"] }
]
}
agentpace estimate plan.json
種類:feature、bugfix、refactor、migration、tests、docs、review、other。リスク:low、normal、high。マイグレーションや元に戻すのが難しい作業には risk: high を使用します。model はオプションです。
人間の見積もりへの再回答
会話中に、ユーザー、ドキュメント、または以前の回答から日、週、月単位の期間が既にある場合でも、プランを見積もり、その期間をそのままの文言で渡します:
agentpace estimate plan.json --quoted "3ヶ月"
すると出力には、合計の下に Quoted: 行が追加され、その期間がカレンダー時間として引用され、未検証であることが示されます。その行を印刷されたまま中継し、測定範囲の横に表示します。引用された期間をエージェント時間に変換したり、定数で除算や乗算をしたり、範囲と比較したり、それらの比率を示したりしないでください。唯一のエージェント時間は測定範囲であり、人間の作業部分は独自の行に残ります。引用と範囲の差が何であるかを決して言わず、それを人間の作業部分と呼んではいけません。それは人間の作業部分をエージェント時間から導出することになります。また、引用が何をカウントしているかも決して言わないでください。何もチェックしていません。
後でどの数値が正しかったかをユーザーが確認したい場合は、同じコマンドに --record を追加して提供します。作業が完了したら、agentpace score <id> --session <ref> で、両方の数値をエージェントが実際にかかった時間と比較します。
結果の報告
- プランの合計をセッションクロック上の範囲(P50、P80、P90)で最初に示します。計画にはP80を推奨します。
- セッションクロック行と人間の作業部分行をCLIが印刷するままに渡します。最初の行は、実行間のギャップがアイドルキャップまで合計にカウントされることを示しており、ユーザーへの短い待機時間はこれに含まれます。人間の作業部分行は、測定されていない場合、レビュー、テスト、意思決定、およびエージェントターン間の待機に対する余裕は追加されないことを示しています。
agentpace turnsで測定された場合、ユーザー自身のローカル履歴から、人間のターンあたりの待機時間を引用します。いずれの場合も、それに対してエージェント時間から数値を導出したり、ターンあたりの待機時間を推測したターン数で乗算したりしないでください。ユーザーが自分の数値を提供した場合は、それを繰り返し、ユーザーのものとしてラベル付けします。ユーザーがレビュー能力(例:「1日に4つのPR」)を述べた場合は、--review-capacity "<数値>"でそのまま渡し、Review capacity:行を印刷されたまま中継し、決して期間に変換しないでください。 - クリティカルパスと実効並列度を明記します。
- すべての警告をそのまま渡します。警告は、セルの実行回数が少なすぎて、その範囲がより広範なデータに依存していることを意味します。
- たとえ迫られても、単一の数値を示さないでください。計画のために1つの数値が必要な場合は、P80を与え、それをP80と呼びます。
重要となる場合に述べる制限事項
- シードデータは1人の人物のワークフローであるため、ユーザーのものと類似していない可能性があります。
agentpace ingestはユーザー自身の実行をデータにプールします。--data ~/.agentpace/runs.jsonlはユーザーのデータのみを使用します。Gemini CLI、OpenCode、Clineアダプターは実験的であり、実際のセッションで検証されていないため、推定がそれらの行に依存する場合はその旨を述べてください。 - プロンプトを読み取らないため、メタデータは機能追加とバグ修正やリファクタリングを区別できません。そのため、これらの種類はデータを共有する可能性があります。
sizeは、--use-sizeが渡されない限り無視されます。保存されたサイズは実行後に測定されるためです。ユーザーが要求しない限り渡さないでください。
推定の仕組みについては references/method.md を参照してください。