Skip to content

aies-dev/git-based-task-logger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Git Task Logger

Gitのコミット履歴から作業実績レポートを自動生成するCLIツール。

社内報告のために、コミット履歴から作業時間を推定し、見やすいレポートとして出力します。

特徴

  • AI要約生成: コミット履歴からAIが作業内容を自動要約(NEW!)
    • 全体サマリ、タスク別グループ化、セッション要約の3段階
    • 複数のAIプロバイダー対応(Claude, OpenAI, Ollama等)
  • 作業時間の推定: コミット間の時間差から作業セッションを自動検出
  • 複数の出力形式: Markdown、JSON、CSVに対応
  • 柔軟な期間指定: 今日、昨日、今週、カスタム期間など
  • カスタマイズ可能: タイムアウト値や最小/最大セッション時間を調整可能
  • 詳細な統計: ファイル変更数、追加/削除行数なども表示

インストール

npm install
npm run build

グローバルにインストールする場合:

npm install -g .

使い方

基本的な使い方

# 今日の作業実績を表示(デフォルト)
npm run dev

# または開発モード
npm run dev -- --today

# 昨日の作業実績
npm run dev -- --yesterday

# 今週の作業実績
npm run dev -- --this-week

# 先週の作業実績
npm run dev -- --last-week

# 過去7日間
npm run dev -- --days 7

# カスタム期間
npm run dev -- --from 2025-01-01 --to 2025-01-31

AI要約機能(NEW!)

# AI要約を有効化(自動でプロバイダーを検出)
npm run dev -- --today --ai-summary

# 特定のAIプロバイダーを指定
npm run dev -- --ai-summary --ai-provider claude
npm run dev -- --ai-summary --ai-provider codex
npm run dev -- --ai-summary --ai-provider gemini
npm run dev -- --ai-summary --ai-provider anthropic
npm run dev -- --ai-summary --ai-provider openai
npm run dev -- --ai-summary --ai-provider ollama

対応AIプロバイダー:

CLIツール(APIキー不要、最優先):

  • Claude CLI: claude コマンドがインストール済みの場合
  • Codex CLI: codex コマンドがインストール済みの場合
  • Gemini CLI: gemini コマンドがインストール済みの場合

API サービス(要APIキー):

  • Anthropic API: 高品質な要約(環境変数 ANTHROPIC_API_KEY 必要)
  • OpenAI API: 安定した要約(環境変数 OPENAI_API_KEY 必要)

ローカルサービス:

  • Ollama: ローカル実行、無料(要Ollama起動)

優先順位(auto-detect時):

  1. CLIツール(インストール済みなら自動検出、APIキー不要)
  2. API サービス(APIキーが設定されていれば利用)
  3. ローカルサービス(Ollamaが起動していれば利用)

AI要約の出力例:

## 📊 Overall Summary (AI-Generated)
今日はGit作業実績レポートツールの開発を行いました。
プロジェクトの初期セットアップとTypeScript環境構築、
AI要約機能の実装、複数のAIプロバイダー対応を完了しました。

## 📋 Tasks (AI-Grouped)
### Git task logger プロジェクトの初期実装
**Summary:** TypeScript環境のセットアップ、基本機能の実装、
テストファイルの追加を行いました。
**Commits:** 4

### バグ修正とコード改善
**Summary:** Gitコマンドのシェル解釈問題を修正しました。
**Commits:** 1

出力形式の指定

# Markdown形式(デフォルト)
npm run dev -- --today --format markdown

# JSON形式
npm run dev -- --today --format json

# CSV形式(Excelで開ける)
npm run dev -- --today --format csv

リポジトリの指定

# 別のリポジトリを指定
npm run dev -- --repo /path/to/repo

作業時間推定のカスタマイズ

# タイムアウトを60分に設定(コミット間隔が60分以上なら別セッション)
npm run dev -- --timeout 60

# 最小セッション時間を10分に設定
npm run dev -- --min-session 10

# 最大セッション時間を180分に設定
npm run dev -- --max-session 180

オプション一覧

オプション 説明 デフォルト
--today 今日のコミット
--yesterday 昨日のコミット
--this-week 今週のコミット
--last-week 先週のコミット
--from <date> 開始日 (YYYY-MM-DD)
--to <date> 終了日 (YYYY-MM-DD)
--days <number> 何日前まで遡るか
--format <type> 出力形式 (markdown/json/csv) markdown
--repo <path> リポジトリパス カレントディレクトリ
--config <path> 設定ファイルパス
--timeout <minutes> コミット間タイムアウト(分) 120
--min-session <minutes> 最小セッション時間(分) 5
--max-session <minutes> 最大セッション時間(分) 240
--ai-summary AI要約を生成 オフ
--ai-provider <type> AIプロバイダー選択 auto

設定ファイル

設定ファイル .git-task-logger.json をプロジェクトルートまたはホームディレクトリに配置することで、デフォルト設定をカスタマイズできます。

{
  "timeoutMinutes": 120,
  "minSessionMinutes": 5,
  "maxSessionMinutes": 240,
  "defaultLastCommitDuration": 30,
  "aiProvider": "anthropic",
  "apiKeys": {
    "anthropic": "sk-ant-...",
    "openai": "sk-..."
  }
}

設定項目

  • timeoutMinutes: コミット間のタイムアウト(この時間以上空いたら別セッションとみなす)
  • minSessionMinutes: 最小セッション時間
  • maxSessionMinutes: 最大セッション時間
  • defaultLastCommitDuration: 最後のコミット後の作業時間として加算する時間
  • aiProvider: 使用するAIプロバイダー(claude | codex | gemini | anthropic | openai | ollama | auto
  • apiKeys: 各AIプロバイダーのAPIキー

作業時間推定のロジック

  1. コミットを時系列順に並べる
  2. コミット間の時間差を計算
  3. 時間差がtimeoutMinutes以下なら同じセッション、超えたら別セッションとする
  4. 各セッションの最後のコミットにはdefaultLastCommitDurationを加算
  5. セッション時間がminSessionMinutes未満なら最小値に、maxSessionMinutes超過なら最大値に調整

出力例

Markdown

# Work Report

**Period:** 2025-10-22 - 2025-10-22

## Summary

- **Total Work Time:** 3h 45m
- **Total Commits:** 8
- **Files Changed:** 15
- **Lines Added:** 234
- **Lines Deleted:** 89

## Work Sessions

### Session 1

- **Time:** 09:30 - 11:45
- **Duration:** 2h 15m
- **Commits:** 5
...

JSON

完全な構造化データとして出力されるため、他のツールとの連携が容易です。

CSV

Excel等で開いて、グラフ化したり集計したりできます。

ライセンス

MIT

作者

作業実績の報告が面倒だと感じているすべての開発者のために。

今後の予定

  • Web UIの追加
  • 複数リポジトリ対応
  • チーム集計機能

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published