カエルを食べる順
年次報告書の作成を9、取締役会資料の準備を7、定型メールへの返信を2とすると、報告書が「カエル」として先頭に、メール返信が最後に並びます。同点は入力順を保ちます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
カエルを食べるとは、一日が易しい作業や割り込みで埋まる前に、最も難しくエネルギーを奪うタスクから着手するという生産性のルールです。チームやコーチ、個人の計画者は、各項目を簡易な難易度尺度で採点し、最高点を朝のリスト先頭に置く安定した順序を必要とすることが多いです。
カエルを食べる順とは何か、なぜ難しいものから始めるのか
カエルを食べるという比喩は、Mark Twain の一句を Brian Tracy が広めたものです。生きたカエルを食べなければならないなら、朝一番に済ませて最悪を後ろに残す、という考え方です。現代の仕事システムでは、カエルは無作為な嫌な雑用ではなく、当日の一覧の中で難易度・認知負荷・気が進まなさがいちばん高いタスクです。
難易度の降順ソートは、その習慣を再現可能な規則にします。最大スコアの項目が rank 1、次に難しいものが rank 2、最も易しい作業が末尾になります。難易度は、あなたがすでに付けた数値です。
同じスコアのタスクが二つある場合、元の入力順を保つので、同じ一覧を再実行しても同点が入れ替わりません。緊急度と重要度で一件を do、schedule、delegate、delete に分類する Eisenhower マトリクスとは異なり、カエルを食べる順は複数項目のバックログがあり、難易度優先の並びだけが必要な前提です。
残高と金利を返済心理で並べる債務スノーボールとも違い、本機能は金銭ではなく作業タスクとエネルギーが対象です。一日をどの難しい仕事が先導するかが論点のときに使い、単一チケットがどの象限に入るかが論点のときには使わないでください。
難しい順に並べると役立つ場面
プロダクトとエンジニアリングのマネージャーは、スプリント候補を工数や複雑さで採点し、朝の集中ブロックやボット駆動の日次計画のために、最も難しいチケットを先頭に並べる単一の真実源を必要とします。
エグゼクティブアシスタントや参謀系ツールは、1 から 10 の難度スコア付き短いコミットメント一覧を集め、各表計算でソート規則を再実装せずにカエルを食べる順のアジェンダを印刷しなければなりません。難易度によるタスク順計算機やカエルを食べる順で検索順位を狙うコンテンツサイトは、有料経路と一致するライブ無料ツールの恩恵を受けます。検証失敗は残高を消費しません。
活用例
朝の集中と日次計画
本日の採点済みタスクを難しい順に並べ、易しい雑務が受信箱を埋める前に、カエルがカレンダー枠を先導するようにします。
スプリントとバックログの集中リスト
チケット上の工数・複雑さスコアを、スタンドアップやボット生成の日次計画向けの安定したカエルを食べる順に変換します。
コーチング演習と生産性講座
手作業で各例を並べ替えずに、カエルの授業と一致する決定的な難しい順オラクルを学習者に提供します。
よくある質問
カエルを食べるタスク順はどのように動きますか?
各項目に有限の difficulty がある空でない tasks 配列を送ってください。
難易度にはどの尺度を使えばよいですか?
任意の有限数が使えます。よくあるのは 1–10 または 0–100 です。
Eisenhower マトリクスと何が違いますか?
Eisenhower は一件の緊急度と重要度を do、schedule、delegate、delete に写像します。カエルを食べる順は多数のタスクを difficulty で並べ、最も難しい作業が先に来るようにします。
一度に並べ替えられるタスクはいくつですか?
1件から100件までです。空の一覧は受け付けず、名前のないタスクには番号付きの固定ラベルが付くので、並び順を読み違えることはありません。
同じ難易度のタスクはどう並びますか?
入力した順番のまま並びます。同点の扱いが固定されているため、同じ一覧で何度実行しても順番が入れ替わることはありません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/biz/eat-the-frog-order \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"tasks":[{"name":"Draft annual report","difficulty":9},{"name":"Reply to routine emails","difficulty":2},{"name":"Prepare board slides","difficulty":7}]}'const res = await fetch("https://api.kit.forhosting.com/biz/eat-the-frog-order", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"tasks": [
{
"name": "Draft annual report",
"difficulty": 9
},
{
"name": "Reply to routine emails",
"difficulty": 2
},
{
"name": "Prepare board slides",
"difficulty": 7
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/eat-the-frog-order",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"tasks": [
{
"name": "Draft annual report",
"difficulty": 9
},
{
"name": "Reply to routine emails",
"difficulty": 2
},
{
"name": "Prepare board slides",
"difficulty": 7
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/eat-the-frog-order", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"tasks":[{"name":"Draft annual report","difficulty":9},{"name":"Reply to routine emails","difficulty":2},{"name":"Prepare board slides","difficulty":7}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"tasks":[{"name":"Draft annual report","difficulty":9},{"name":"Reply to routine emails","difficulty":2},{"name":"Prepare board slides","difficulty":7}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/eat-the-frog-order", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"tasks": [
{
"name": "Draft annual report",
"difficulty": 9
},
{
"name": "Reply to routine emails",
"difficulty": 2
},
{
"name": "Prepare board slides",
"difficulty": 7
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.eat_the_frog_order",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
この難易度によるタスク順計算機は、数値の難易度スコア付きタスク一覧を受け取り、同点は入力順で安定に割りながら難しい順に並べ、完全な順位列と最も難しい一点を示す frog フィールドを返します。同じ純粋な解析経路が無料のブラウザツールと有料 API の両方を動かすため、難易度スコアが既に分かっているとき、スタンドアップ用ボットや週次レビューのテンプレート、コーチングアプリは、どのチケットが一日をリードすべきかで食い違いません。
カエルを食べる順とは何か、なぜ難しいものから始めるのか
個人計画では 1 から 10、ポートフォリオ採点では 0 から 100 などが多く、このエンドポイントが自由文から発明するものではありません。
入力契約、応答フィールド、検証ルール
配列は 1 件から 100 件のオブジェクトを含みます。任意の name(別名 label、title)は短い文字列です。欠落または trim 後に空なら、ゼロ始まりの index から安定した Task N ラベルが付きます。例:Draft annual report が難易度 9、Reply to routine emails が 2、Prepare board slides が 7 なら、frog は Draft annual report、続いて board slides、emails です。スコアが既に決まり、決定的な難しい順が必要なときに呼び出してください。必須の配列フィールド tasks(別名 list、items、todos)を持つ JSON 本体を POST してください。各オブジェクトには有限数の difficulty(別名 score、hard_score、level)が必須で、値が大きいほど難しい作業を意味します。空配列、配列以外、difficulty 欠落、非有限スコアは invalid_input で失敗し、課金されません。成功時は task_count、一覧全体の max_difficulty と min_difficulty、rank・name・difficulty・original_index を持つ rank 1 の frog、カエルを食べる順の完全な order、method の eat_the_frog、先頭タスク名を含む短い英語 summary を返します。このエンドポイントは時間見積もり、自由文の優先度解析、緊急フラグの合成は行いません。
難易度優先のタスク順 API が価値を生む場面
個人の生産性アプリや Notion 風テンプレートは小さな parse エンドポイントを呼び、無料ブラウザ経路と自動化 webhook が同じ純粋モジュールでバイト一致するようにします。
技術的な質問
二つのタスクが同じ難易度のときはどうなりますか?
同点は元の入力順を保ちます(original_index による安定ソート)。同じ一覧を再実行しても、等しいスコアは入れ替わりません。
難易度によるタスク順計算機の料金は?
ブラウザツールは無料です。API リクエストは成功した呼び出しごとに前払い KIT 残高から $0.002 です。無効な入力は課金されません。