mcpField
P
pomodoro

pomodoro

github.com/jakedahn生産性5668 回インストール53 週間前に更新
リポジトリ

pomodoro について

集中作業セッションを管理し、作業パターンを振り返る Pomodoro スキルです。セッションを SQLite に保存し、日・週・月・年ごとの履歴や統計を確認できます。

主な機能

  1. 01作業と休憩のサイクルを開始・管理
  2. 02時間とサイクル数のカスタマイズ
  3. 03セッション記録を SQLite に保存
  4. 04履歴と完了状況の確認
  5. 05期間別の集中統計を表示

活用シーン

  1. 01特定のタスクに集中時間を設定
  2. 02実行中のタイマー確認や早期停止
  3. 03週ごとの集中時間と完了率の振り返り
  4. 04履歴から生産性の高い時間帯を把握

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jakedahn/pomodoro --skill pomodoro

インストール後、Claude Code で/pomodoroを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

cli/
db.ts
deno.json
deno.lock
pomodoro.ts
timer.ts

詳細

ポモドーロタイマースキル

概要

集中して作業するための25分タイマーで、各セッションをSQLiteに保存します。履歴の追跡、生産性の分析、時間の経過に伴うパターンの認識が可能です。

これはシステムスキルです — 個人データシステムを操作するためのハンドルを提供します。コマンドを実行してセッションが蓄積されるにつれ、コンテキストが構築され、積み重なっていきます。このシステムはパターンを学習し、観察、状況判断、意思決定、行動からなるOODAループを通じて、ますます価値の高いインサイトを提供します。

メンタルモデル:OODAループ

このスキルの運用では、次のサイクルを継続的に実行します。

  1. 観察 → 現在の状況を確認し(./pomodoro status)、履歴を確認します(./pomodoro history)
  2. 状況判断 → データのパターンを分析します(./pomodoro stats --period week)
  3. 意思決定 → 最適な行動を判断します(例:「午前中のセッションは完了率が95%なので、その時間に集中作業を予定する」)
  4. 行動 → セッションを開始し(./pomodoro start)、推奨事項を提示し、節目を祝います

各サイクルは蓄積されたデータを基に進み、時間の経過とともにインサイトの価値が高まります。

依存関係

  • バイナリの場所:~/.claude/skills/pomodoro/pomodoro
  • データベース:初回実行時に~/.claude/skills/pomodoro/pomodoro.dbに自動作成
  • 外部依存関係は不要

クイック判断ツリー

User task → What kind of request?
   ├─ Start focused work → Check status first, then start session
   ├─ Check current timer → Use status command
   ├─ Review productivity → Use stats command (day/week/month/year)
   ├─ View past sessions → Use history command
   └─ Stop early → Use stop command

主なコマンド

すべての利用可能なオプションを確認するには:./pomodoro --helpまたは./pomodoro <command> --helpを実行します

セッションの開始

ポモドーロセッションを開始します。

# Traditional 25-minute Pomodoro
./pomodoro start --task "Refactor authentication module"

# Custom durations and cycles
./pomodoro start --task "Quick review" --work 5 --break 3 --cycles 2
./pomodoro start --task "Deep focus" --work 50 --break 10 --cycles 1

# Flash cards (rapid cycles)
./pomodoro start --task "Flash cards" --work 2 --break 1 --cycles 5

オプション:

  • --work <minutes> - 作業時間(デフォルト:25)
  • --break <minutes> - 休憩時間(デフォルト:5)
  • --cycles <count> - 作業と休憩の繰り返し回数(デフォルト:1)

動作:

  • 同時に実行できるセッションは1つだけです
  • タイマーはフォアグラウンドで動作し、毎分進捗を表示します
  • 作業セッションの後に休憩が自動的に開始されます
  • 休憩の後、サイクルが残っていれば次の作業セッションが自動的に開始されます
  • 各作業セッションは個別にデータベースへ保存されます

JSON出力例:

./pomodoro start --task "Write docs" --json
# Returns: {"status": "started", "task": "Write docs", "duration": 25, "started_at": "2025-10-22T14:30:00Z"}
ステータスの確認

タイマーが動作中かどうかを確認します。

./pomodoro status
./pomodoro status --json  # For programmatic use

出力例:

Active session: "Write documentation"
Started: 2:30 PM
Time remaining: 18 minutes
履歴の表示

過去のセッションを確認します。

./pomodoro history --days 7    # Last 7 days
./pomodoro history --days 30   # Last 30 days
./pomodoro history --json      # For programmatic use

出力内容:

  • タスク名
  • 開始時刻と完了時刻
  • 所要時間
  • 完了状況(完了または途中停止)
生産性の分析

蓄積されたデータからインサイトを得ます。

./pomodoro stats --period day     # Today's stats
./pomodoro stats --period week    # This week
./pomodoro stats --period month   # This month
./pomodoro stats --period year    # This year
./pomodoro stats --json           # For programmatic use

統計情報:

  • セッションの合計数と完了数
  • 完了率(終了したセッションの割合)
  • 集中時間の合計
  • 最も生産性の高い時間帯
  • タスクの内訳(最も多く完了したタスク)

JSON出力例:

{
  "period": "week",
  "total_sessions": 23,
  "completed": 19,
  "completion_rate": 0.826,
  "focus_hours": 7.9,
  "productive_hours": [9, 10, 11],
  "top_tasks": ["Refactoring", "Documentation", "Code review"]
}
途中で停止する

現在のセッションを完了前に終了します。

./pomodoro stop

中断が発生した場合や、タスクが早く完了した場合に使用します。セッションは未完了としてデータベースに記録されます。

基本的なワークフロー

集中作業の開始

ユーザーがポモドーロセッションを開始できるよう支援するには:

  1. 実行中のセッションを確認します:./pomodoro status
  2. 問題がなければ、適切なオプションで開始します:
    • 標準:./pomodoro start --task "Deep work on authentication"
    • カスタム:./pomodoro start --task "Sprint planning" --work 15 --break 5 --cycles 3
    • フラッシュカード:./pomodoro start --task "Vocabulary review" --work 2 --break 1 --cycles 10
  3. ユーザーに確認します:「[task name]の25分間のポモドーロを開始しました。タイマーが動作中です。」
日次レビュー

1日の生産性の概要を提示するには:

  1. 今日のデータを取得します:./pomodoro stats --period day --json
  2. インサイトを読み取り、提示します:
    • 「今日はポモドーロを6回完了しました(集中時間は3.0時間です)」
    • 「6セッション中5セッションを完了し、完了率は83%でした」
    • 「最も多く取り組んだタスク:リファクタリング、ドキュメント作成」
    • 「生産性の高い時間帯:午前9時~11時」
週間分析

週間の生産性を振り返るには:

  1. 1週間分のデータを取得する:./pomodoro stats --period week --json
  2. パターンを特定する:
    • データがある場合は、前週までのデータと比較します
    • 生産性が最も高い時間帯を確認します
    • 完了率が最も高いタスクの種類を特定します
  3. 提案する:
    • 「集中力が最も高い時間帯(午前9~11時)に、集中して取り組む作業を予定しましょう」
    • 「コーディングセッションの完了率は90%で、会議の70%を上回っています。タスクの分割を検討しましょう」
長期的なパターン認識

セッションが蓄積されるにつれて、より価値のあるインサイトを提供できます。

数回のセッション後(1~5回):

  • 「今日はポモドーロを3回完了しました」
  • 「集中セッションを重ねて、勢いがついてきています」

数日後(5~20セッション):

  • 「9セッション中7セッションを完了し、完了率は78%です」
  • 「生産性が最も高い時間帯は午前9~11時です」

1週間後(20~50セッション):

  • 「好調な1週間でした。23セッションを実施し、完了率は85%です」
  • 「生産性のピーク:午前9~11時(完了率95%)、午後2~4時(完了率65%)」
  • 「午前中に集中して取り組む作業を予定することを検討しましょう」

1か月後(50セッション以上):

  • 「コーディングタスク:完了率90%」
  • 「ドキュメント作成タスク:完了率70%」
  • 「ドキュメント作成には、短めのポモドーロ(15分)を検討しましょう」

数か月後(100セッション以上):

  • 「完了率が向上しています:過去3か月で72%から85%へ」
  • 「水曜日が最も生産性の高い曜日です(完了率92%)」
  • 「午後のセッションは、15分に制限すると成果が上がります」
  • 「ドキュメント作成タスクよりもコーディングタスクのほうが、完了したセッションが80%多くなっています」

パターン認識に使用するコマンド:

./pomodoro stats --period month --json  # Get monthly data
./pomodoro history --days 90 --json     # Review last 90 days
マイルストーンのお祝い

節目に達したら、進捗を称えましょう。

  • 10セッション:「最初の10ポモドーロを完了しました。習慣が身についてきています!」
  • 50セッション:「50セッション達成です。集中して取り組んだ時間は20時間を超えました!」
  • 100セッション:「ポモドーロを100回達成しました!集中して取り組んだ時間は40時間以上です。」
  • 高い完了率:「今週の完了率は95%です。素晴らしい集中力です!」

マイルストーンの達成状況を確認するには:./pomodoro stats --period year --json

よくある落とし穴

セッションがすでに実行中のときに開始する

❌ 避けること:最初にステータスを確認せず、新しいセッションを開始する ✅ 推奨:開始前に ./pomodoro status を実行する

理由:同時に実行できるセッションは1つだけです。実行中に開始するとエラーになります。

従うべき手順:

# Check first
./pomodoro status
# If "No active session", then start
./pomodoro start --task "New task"
内容がわかりにくいタスク名

❌ 避けること:「作業」「いろいろ」「あれこれ」のような曖昧な名前を使う ✅ 推奨:「認証モジュールをリファクタリング」「APIドキュメントを作成」「PR #123をレビュー」のように具体的な名前を使う

理由:内容がわかる名前を付けると、より優れた分析が可能になります。パターン認識で最適なタスクの種類を特定するには、具体性が必要です。

長時間セッションを中断する

❌ 避けること:セッション中にターミナルを閉じたり、プロセスを終了したりする ✅ 推奨:中断が必要な場合は ./pomodoro stop を使用する

理由:中断されたセッションはデータベースに保存されません。途中までのセッションを記録するには、stop コマンドを使用してください。

完了率の兆候を無視する

❌ 避けること:特定の種類のタスクで完了率が一貫して低いのに、無視する ✅ 推奨:タスクの種類ごとの傾向に応じて、セッションの長さを調整する

理由:ドキュメント作成タスクの完了率が60%で、コーディングが90%の場合、ドキュメント作成には短めのセッション(15分)のほうが適している可能性があります。

特定方法:

./pomodoro stats --period month --json
# Review completion rates by task type
# Suggest duration adjustments based on patterns

ベストプラクティス

セッション管理
  • より優れた分析のため、タスクには内容がわかる名前を付けます
  • 可能であれば、25分間すべて完了します
  • セッションの間に休憩を取ります
  • タスクの種類に応じて時間を調整します(--work フラグを使用)
  • 中断された場合は、明示的に停止します(プロセスを終了させないでください)
ユーザーとのやり取り
  • マイルストーン(10、50、100、250、500セッション)を祝います
  • 完了率を称えます:「今週は完了率90%です。素晴らしい集中力です!」
  • 過去のデータに基づいて最適な時間帯を提案します
  • 継続的な実践を促します
  • 改善点を伝えます:「完了率が75%から85%に上がりました」
データ分析
  • 毎日の終わりに日次統計を確認します
  • スケジュール設定の参考にするため、週ごとのパターンを確認します
  • 時間の経過に伴う傾向(月、年)を追跡します
  • カスタム分析には JSON 出力を使用します
  • タスクの種類と完了率を相互参照します
  • 生産性が最も高い時間帯を特定します
コマンドの組み合わせ

コマンドを組み合わせて、より深い分析を行います。

# Morning check-in: status + daily stats
./pomodoro status
./pomodoro stats --period day

# Weekly review: history + stats
./pomodoro history --days 7 --json
./pomodoro stats --period week --json

# Long-term analysis: monthly trends
./pomodoro stats --period month --json
./pomodoro history --days 90 --json

技術メモ

JSON 出力

すべてのコマンドは、プログラムからアクセスするための --json フラグをサポートしています。

./pomodoro status --json
./pomodoro history --json
./pomodoro stats --json

次の場合は JSON 出力を使用します。

  • プログラムでデータを解析する
  • カスタム分析を作成する
  • 他のツールに渡す
  • 構造化された出力が必要である
データベース
  • 場所:~/.claude/skills/pomodoro/pomodoro.db
  • 形式:単一の sessions テーブルを持つ SQLite データベース
  • 永続性:すべてのセッションが永続的に保存されます
  • 増加:使用に伴ってデータベースが大きくなります(各セッション約 100 バイト)
  • 分析:データの蓄積に伴い、より豊富な分析が可能になります
  • メンテナンス:クリーンアップやアーカイブは不要です

スキーマ:

CREATE TABLE sessions (
  id INTEGER PRIMARY KEY,
  task TEXT NOT NULL,
  duration INTEGER NOT NULL,
  started_at TEXT NOT NULL,
  completed_at TEXT
);
タイマーの動作
  • フォアグラウンドプロセスとして実行されます(ターミナルをブロックします)
  • 作業セッション中は毎分、進捗を表示します
  • 休憩セッション中は毎分、進捗を表示します
  • 作業 → 休憩 → 作業へ自動的に切り替わります
  • 各作業セッションは個別にデータベースへ保存されます
  • フラグで時間をカスタマイズできます

セッションの流れの例(3 サイクル):

Work 25min → Break 5min → Work 25min → Break 5min → Work 25min → Break 5min → Done

結果:データベースに 3 件のエントリが作成されます(作業セッションごとに 1 件)

バイナリの場所
  • パス:~/.claude/skills/pomodoro/pomodoro
  • 常に使用:スキルディレクトリから実行する場合は ./pomodoro
  • フルパス:どこからでも ~/.claude/skills/pomodoro/pomodoro

スキルディレクトリから実行するには:

cd ~/.claude/skills/pomodoro
./pomodoro start --task "Task name"

システムスキルパターンの実例

このスキルは、システムスキルパターン(CLI + SKILL.md + データベース)を示しています。

  1. CLI バイナリ:セッションの開始、履歴の照会、パターンの分析など、システムを操作します
  2. SKILL.md:OODA ループ(観察 → 状況判断 → 意思決定 → 行動)の運用手順です
  3. SQLite データベース:すべてのセッションがコンテキストを追加する永続的なメモリです

重要なポイント:これら 3 つのコンポーネントにより、このスキルはリクエストに応答するだけでなく、システムに命を吹き込みます。やり取りのたびに、前回の内容を基盤として活用します。分析はより豊かになり、洞察はより鋭くなります。ツールの価値は蓄積されていきます。

価値が蓄積される例:

  • 1 週目:「5 セッションを開始しました」
  • 4 週目:「午前のセッション:完了率 95%。午後:70%。午前中に集中作業を予定しましょう。」
  • 3 か月目:「コーディング:完了率 90%。ドキュメント:72%。ドキュメント作成には 15 分のセッションを試してみましょう。」

このパターンは、データの蓄積によって価値が高まり、システムを操作する手段を Claude に提供することで、一度限りの応答よりも高い有用性を実現できるあらゆるスキルに適用できます。

関連項目:技術的な詳細と実装ガイドについては README.md を参照してください。

コメント