45395 - シコウサクゴ -

Claude Codeで15種のデータ分析モジュールを1日5種ペースで量産した方法

2026-04-08
AI駆動開発
AI駆動開発
Claude Code
Python
データ分析
自動化
Last updated:2026-04-09
11 Minutes
2026 Words

概要

2025年8月12日から9月7日にかけて、データ分析プロジェクトで20種のデータ分析モジュールを実装しました。1モジュールあたり30〜60分、最速の日には1日で5種を実装しています。

量産を可能にしたのは、「テンプレート化」と「6ファイル連鎖更新パターン」の2つの仕組みです。Claude Codeにこの2つを理解させた状態で指示を出すと、1つのモジュール追加に必要な全ファイルの変更を一貫して処理してくれます。

本記事では、テンプレートの設計、連鎖更新の仕組み、そしてAIとの量産ワークフローを記録します。


実装した20種の分析モジュール

#モジュール名分類
1閾値判定A(短期)数値計算系
2複合シグナル分析数値計算系
3偏差バンド分析統計系
4多段階トレンド判定トレンド分析系
5移動平均クロス判定トレンド分析系
6順位相関分析数値計算系
7トレンド構造分析トレンド分析系
8ダブルピーク/ボトム検出パターン検出系
9複合均衡分析トレンド分析系
10追従型トレンド分析トレンド分析系
11複合パターン検出パターン検出系
12三点天井検出パターン検出系
13菱形パターン検出パターン検出系
14段階的パターン検出パターン検出系
15収束/平行パターン検出パターン検出系
16レンジ判定分析閾値判定系
17移動平均+比率分析トレンド分析系
18方向性指数分析トレンド分析系
19孤立反転検出パターン検出系
20センチメント指数分析数値計算系

2025年8月17日には、順位相関分析、ダブルピーク/ボトム検出、トレンド構造分析、収束/平行パターン検出、レンジ判定分析の5種を1日で実装しました。


6ファイル連鎖更新パターン

アーキテクチャ

分析モジュールを1つ追加するとき、必ず更新が必要なファイルは6つあります。

1
signalsConfig.py ← モジュールのパラメータ設定
2
3
analyticsEngine.py ← 分析エンジン本体
4
5
mgmtTechnicalIndicators.py ← 全モジュールの一元管理
6
7
pipeline/main.py ← パイプラインへの組み込み
8
9
putAnalyticsDatas/main.py ← 分析結果のDB格納
10
11
dev_analyticsdatas.sql ← DB DDL(カラム追加)

6ファイルのうち1つでも更新漏れがあると、パイプライン全体が止まります。これが最初の数モジュールでよく発生した問題でした。

連鎖更新のルール

Claude Codeに指示する際、以下のルールを伝えています。

1
## 分析モジュール追加時の連鎖更新ルール
2
1. signalsConfig.py にパラメータ定義を追加
3
2. mgmt{モジュール名}.py を新規作成(mgmtModuleA.pyをテンプレートとして使用)
4
3. moduleManager.py にimportと呼び出しを追加
5
4. engine.py にモジュールの呼び出しを追加
6
5. pipeline/main.py にモジュール結果の参照を追加
7
6. putAnalyticsDatas/main.py にDB格納ロジックを追加
8
7. dev_analyticsdatas.sql にカラム定義を追加
9
10
※ 1つでも漏れるとパイプライン全体が停止する。全ファイルの更新を確認すること。

テンプレート化の設計

mgmtModuleA.pyをベースにした横展開

最初に実装したmgmtModuleA.pyをテンプレートとして、残りのモジュールをコピー+カスタマイズで作成しました。

1
# mgmtModuleA.py の構造(テンプレート)
2
3
def calculate(df, period=14):
4
"""分析モジュールの計算"""
5
delta = df['value'].diff()
6
positive = delta.where(delta > 0, 0)
7
negative = -delta.where(delta < 0, 0)
8
avg_pos = positive.rolling(window=period).mean()
9
avg_neg = negative.rolling(window=period).mean()
10
ratio = avg_pos / avg_neg
11
score = 100 - (100 / (1 + ratio))
12
return score
13
14
def generate_result(df, config):
15
"""検出条件を判定する"""
12 collapsed lines
16
score = calculate(df, config['period'])
17
# アラート条件: スコアが下限閾値以下
18
# 検出条件: スコアが上限閾値以上
19
results = []
20
for i in range(len(score)):
21
if score.iloc[i] < config['lower_threshold']:
22
results.append('ALERT')
23
elif score.iloc[i] > config['upper_threshold']:
24
results.append('DETECT')
25
else:
26
results.append('NORMAL')
27
return results

全モジュールが共通して持つインターフェースは以下の2つです。

  1. calculate(df, **params) — 分析モジュールの値を計算
  2. generate_result(df, config) — 検出条件を判定

このインターフェースを統一したことで、moduleManager.pyでの一元管理が可能になりました。

新しいモジュールを追加するときの指示例

1
mgmtModuleA.pyをテンプレートにして、順位相関分析のモジュールを作成してください。
2
- 計算期間は9, 26, 52の3パターン
3
- 検出条件: 短期値が-80以下でアラート、+80以上で検出
4
- 6ファイル連鎖更新をすべて実施してください

この指示で、Claude Codeは6ファイルすべてを一括で更新します。


1日5種を実装したワークフロー

TodoWriteでタスクを管理

1日5種を実装した8月17日は、以下のようにTodoWriteで管理していました。

1
☐ 順位相関分析モジュール作成
2
☐ ダブルピーク/ボトム検出モジュール作成
3
☐ トレンド構造分析モジュール作成
4
☐ 収束/平行パターン検出モジュール作成
5
☐ レンジ判定分析モジュール作成

3〜7アイテムを維持し、1つ完了したら次を追加するサイクルです。

1モジュールあたりの作業フロー

1
1. Claude Codeにテンプレート+パラメータを指示(2分)
2
2. 6ファイルの自動更新を確認(5分)
3
3. ユニットテスト実行(3分)
4
4. パイプライン実行で結果確認(10分)
5
5. 微調整(パラメータ閾値の変更など)(10-20分)
6
---
7
合計: 30-60分/モジュール

モジュールの難易度によって所要時間は変わります。閾値判定Aや複合シグナル分析のような計算が明確なモジュールは30分程度、三点ピーク検出や菱形パターン検出のようなパターン検出系は60分近くかかりました。

パターン検出系の難しさ

数値計算系(閾値判定A、複合シグナル分析、順位相関分析)は数式が明確なので、テンプレートからの展開がスムーズでした。

一方、パターン検出系(三点ピーク検出、菱形パターン検出、段階的パターン検出)は「パターンの定義」自体に幅があります。

1
# 三点ピークの検出ロジック(簡略版)
2
# 「3つの山のうち中央が最も高い」をどの程度の誤差で判定するか
3
def detect_triple_peak(df, tolerance=0.02):
4
peaks = find_local_peaks(df['value'])
5
if len(peaks) < 3:
6
return None
7
left, center, right = peaks[-3], peaks[-2], peaks[-1]
8
# 中央の山が左右より高いか
9
if df['value'].iloc[center] > df['value'].iloc[left] * (1 + tolerance):
10
if df['value'].iloc[center] > df['value'].iloc[right] * (1 + tolerance):
11
return {'type': 'triple_peak', 'center': center}
12
return None

このような判定ロジックは、Claude Codeに「まず基本的な検出ロジックを実装して、パラメータは後で調整する」と指示するのが効率的でした。


ドメインAからドメインBへの横展開

9月5-7日の横展開作業

ドメインAで実装したモジュール群を、ドメインBにも横展開しました。横展開で変わる部分は主に以下の3つです。

  1. データソースの時間特性 — ドメインAは営業時間内のみ、ドメインBは常時データが流れる
  2. データの粒度 — ドメインAは分単位/日単位、ドメインBはより細粒度のデータも扱う
  3. ドメイン固有のパラメータ — データソースごとに変動特性が異なる

横展開時は「ドメインAのmgmt{モジュール名}.pyをドメインBにコピーして、上記3点を調整してください」と指示するだけで、Claude Codeが差分を把握して修正してくれました。


量産から学んだこと

テンプレート化の効果

テンプレートなしで実装した最初の3モジュール(閾値判定A、複合シグナル分析、偏差バンド分析)は、それぞれ2-3時間かかりました。テンプレート化後は30-60分に短縮され、工数は1/3以下になっています。

6ファイル連鎖更新の自動化

最初の数モジュールでは、6ファイルのうち1-2ファイルの更新漏れが必ず発生しました。連鎖更新ルールをCLAUDE.mdに明記してからは、更新漏れはほぼゼロになっています。

AIとの量産における注意点

  • 1セッションで3-5モジュールが限界: コンテキストウィンドウの制約で、それ以上は精度が落ちる
  • テスト実行は毎回必須: 「前のモジュールと同じパターンだから大丈夫」は通用しない。微妙な差分でバグが入る
  • パラメータの初期値は仮で良い: 検出ロジックの正しさを先に確認し、パラメータチューニングは後回し

テンプレート化 × AIによるコード生成は、定型的な実装作業を大幅に効率化します。ただし、AIに任せきりにするのではなく、テンプレートの設計と連鎖更新ルールの整備を人間が主導することが前提です。

Article title:Claude Codeで15種のデータ分析モジュールを1日5種ペースで量産した方法
Article author:45395
Release time:2026-04-08

記事へのご質問・ご感想をお聞かせください

フィードバックを送る