1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIと人間のコード比率を追跡するCLIツール「AI Code Tracker」を作ってみた

Last updated at Posted at 2025-08-01

はじめに

最近、Claude CodeやGitHub Copilotなど、AIを活用したコーディングが当たり前になってきました。AIの助けを借りることで開発効率は飛躍的に向上しましたが、ふと「自分のプロジェクトでAIが書いたコードってどのくらいの割合なんだろう?」と疑問に思ったことはありませんか?

そこでAIと人間が書いたコードの割合をリアルタイムで追跡できるCLIツール「AI Code Tracker (AICT)」 を作ってみました。現在はClaude Code専用のツールとして実装しています。

作った背景

AIペアプログラミングが普及する中で、以下のような課題を感じていました:

  • AIがどれくらいコードを書いているか把握できない
  • プロジェクトの目標AI利用率を設定・管理したい
  • コードレビュー時にAI生成部分を識別したい
  • チームのAI活用状況を可視化したい

これらを解決するため、Claude Codeと連携して自動的にコードの出所を記録するツールを開発しました。

主な機能

1. 自動トラッキング

Claude Codeのフック機能と統合し、AIがコードを編集する前後で自動的に状態を記録します。

# Claude Codeでファイルを編集すると...
# 1. PreToolUse: 編集前の人間のコード状態を記録
# 2. PostToolUse: 編集後のAIのコード状態を記録

2. リアルタイムのレポート

現在のコード比率と目標達成率を一目で確認できます。

AI Code Tracking Report
======================
Total Lines: 817
AI Lines: 455 (55.6%)
Human Lines: 362 (44.3%)

Target: 80.0% AI code
Progress: 69.5%

Last Updated: 2025-07-30 16:04:08

3. 柔軟な設定

追跡対象のファイル拡張子や除外パターンをカスタマイズ可能です。

{
  "target_ai_percentage": 80.0,
  "tracked_extensions": [".go", ".py", ".js", ".ts", ".swift"],
  "exclude_patterns": ["*_test.go", "*.test.js"],
  "author_mappings": {"y-hirakaw": "human"}
}

使い方

# 計測に利用するディレクトリやhooksで使うshを配置
$ aict init

# hooksを自動で設定する
$ aict setup-hooks

# 人間のコード状態を記録
$ aict track -author human

# AIのコード状態を記録(Claude Code使用時は自動)
$ aict track -author claude

# 現在の統計を表示
$ aict report

aict trackを毎回叩くのは大変なので次の項で書いているClaude Codeのhooks(+gitのhooks)を利用して自動化してます。

Claude Code専用である理由

現在、AI Code TrackerはClaude Code専用のツールとして開発しています。これは、Claude Codeが提供する強力なフック機能を活用しているためです。

Claude Codeでは、.claude/settings.jsonに以下のようなフック設定を記述することで、コード編集の前後でカスタムスクリプトを実行できます:

{
  "hooks": [
    {
      "event": "PreToolUse",
      "matcher": "Write|Edit|MultiEdit",
      "hooks": [{"type": "command", "command": "...pre-tool-use.sh"}]
    },
    {
      "event": "PostToolUse",
      "matcher": "Write|Edit|MultiEdit",
      "hooks": [{"type": "command", "command": "...post-tool-use.sh"}]
    }
  ]
}

この仕組みにより、ユーザーが特別な操作をすることなく、自然な開発フローの中でコードの出所を自動的に記録できます。

実装で工夫した点

1. 標準ライブラリのみで実装

依存関係を最小限に抑えるため、Goの標準ライブラリのみで実装しました。これによりインストールが簡単で、どんな環境でも動作します。

2. ローカル完結型

すべてのデータはローカルに保存され、外部との通信は一切行いません。

今後の展望

  • グラフによる可視化機能
  • チームメンバー別の統計機能
  • 他のAIツール(CursorなどのVSCode系など)との連携

まとめ

AI Code Trackerを作ることで、AIとの協働開発を数値で把握できるようになりました。現在はClaude Code専用ですが、AIは強力なツールであり、その利用状況を可視化することで、より効果的な活用ができると考えています。

※興味を持っていただけた方は、ぜひGitHubでスターをお願いします!イシューやプルリクエストも大歓迎です。

参考リンク


この記事は8割ほどAIで書いてます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?