dev-cycle

コード品質改善サイクル — スイープ → レビュー → Issue化 → 自律実装

スキル呼び出し: /dev-cycle  |  ループ起動: bash ~/.claude/scripts/auto-dev/start.sh --auto <repo>

全体フロー

【0】規模判断 小規模(変更ファイル少)→ フェーズ2から 大規模(50件超) → フェーズ1から ↓ 【1】品質スイープ(任意) 🟡 GLM ↓ 【2】コードレビュー v3(推奨) 🟡 GLM / 🔵 Sonnet ↓ 【3】Issue化 ↓ 【4】自律実装ループ 🟠 MiniMax(コード生成) ↓ 【5】完了通知(自動) Windowsトースト + ベル音

フェーズ詳細

1
品質スイープ 任意 🟡 GLM
全ファイルを機械的に走査。High/Medium/Low リストを生成(読み取り専用・変更なし)
項目内容
実行方法CronCreate(20分間隔)または手動
テンプレート00_SYSTEM/共通ルール/コード品質スイープ.md
出力先01_DECISIONS/<project>/YYYY-MM-DD_リファクタリング調査_<area>.md
いつ使う50件超の大規模改善前、または定期健全性確認
2
コードレビュー v3 推奨 🟡 GLM 🔵 Sonnet
重要ファイルを深く読み ★スコア + P1/P2 改善提案を出力。MiniMax は使わない(主観評価が必要)

実行手順

# Step 0: スコアリング
python score-files.py <project_path> --top 20 --json

# Step 1: 行数実測
wc -l <file1> <file2> ...

# Step 2: Read ツールで実際に読む → GLM / Sonnet で評価
  
項目内容
テンプレート00_SYSTEM/プロンプト集/コードレビュー/code-review-v3.md
出力先40_CAREER/キャリア分析/02_コード品質/YYYY-MM-DD_<内容>/_REPORT.md
LLM🟡 GLM(通常)/ 🔵 Sonnet(許可時)
3
Issue化 必須 🟡 GLM
P1/P2 リストを GitHub Issues に一括登録

タイトル形式

ラベル優先度目安工数
[A]priority:low1h以下
[B][C]priority:medium2〜3h
[D]priority:high4h以上

GitHub API 一括作成(Python)

import yaml, json, urllib.request
hosts = yaml.safe_load(open('/home/yn4416/.config/gh/hosts.yml'))
token = hosts['github.com']['oauth_token']
REPO = "fukukei23/<リポ名>"

issues = [
  {"title": "test: [A] xxx", "body": "...", "labels": ["type:test","priority:low"]},
]
for issue in issues:
    req = urllib.request.Request(
        f'https://api.github.com/repos/{REPO}/issues',
        data=json.dumps(issue).encode(),
        headers={'Authorization': f'token {token}', 'Content-Type': 'application/json'}
    )
    res = json.load(urllib.request.urlopen(req))
    print(f"Created #{res['number']}: {res['title']}")
  
4
自律実装ループ 必須 🟠 MiniMax
GitHub Issues を高→中→低の順に自動実装。Stop Hook 連鎖またはCronCreateで実行

今すぐ実行(Stop Hook 連鎖)

# Issue番号を指定
bash ~/.claude/scripts/auto-dev/start.sh 76 77 78

# GitHub から自動取得(priority:high → medium → low 順)
bash ~/.claude/scripts/auto-dev/start.sh --auto atelier-kyo-manager
  

夜間・放置実行(CronCreate)

# Claude Code 内で実行
CronCreate: schedule="7 * * * *", durable=true, prompt=<ループプロンプト>
  
方式使い分け
Stop Hook(start.sh)今すぐ連続実行したい
CronCreate夜間・放置・数日かけて処理

状態確認

cat ~/.claude/scripts/auto-dev/state.json
tail -f ~/.claude/scripts/auto-dev/loop.log
  

緊急停止

python3 -c "
import json; p='/home/yn4416/.claude/scripts/auto-dev/state.json'
s=json.load(open(p)); s['active']=False; json.dump(s,open(p,'w'),indent=2)
print('停止:', s)
"
  
自動処理の流れ(1 Issue あたり)
実装 → pytest 全件パス確認 → git commit / push → CI確認 → Issue close → 次へ(Stop Hook)

ファイル構成

ファイル役割
~/.claude/scripts/auto-dev/state.jsonキュー状態(active/pending/current/completed)
~/.claude/scripts/auto-dev/start.sh手動起動(--auto 対応)
~/.claude/scripts/auto-dev/next-issue.pyStop Hook 本体・完了通知
~/.claude/scripts/auto-dev/run-issue.shIssue 実行 wrapper
~/.claude/scripts/auto-dev/loop.log実行ログ
~/.claude/skills/dev-cycle/SKILL.md/dev-cycle スキル定義

LLM 割り当て早見表

フェーズLLM理由
品質スイープ🟡 GLMパターン検出・列挙
コードレビュー v3🟡 GLM / 🔵 Sonnet深い読解・主観評価
Issue 化🟡 GLMテンプレート変換
コード生成(実装)🟠 MiniMax大量コード処理・無制限
テスト・CI 確認Claude 直接ツール呼び出し

トラブルシューティング

症状原因対処
Stop 後に次が起動しないactive:falsestart.sh を再実行
通知が来ないPowerShell 非起動powershell.exe -c 'echo ok' で確認
CI 失敗で詰まるテストエラーloop.log 確認 → 手動対応 → 再 start.sh
Issue が自動取得されないラベルなしpriority:high/medium/low ラベルを付与
完走後もcronが発動し続ける自動停止未設定下記「自動停止ルール」参照

🛑 自動停止ルール(必須)

問題: Issue完走後もcronが毎時発動し、トークンが無駄に消費され続ける。

対策: プロンプト末尾に以下の指示を必ず含める。

自動停止条件:
- GitHub API確認の結果、対象ラベルのオープンIssueが0件の場合:
  1. CronList でこのループのcron IDを特定
  2. CronDelete でcronを削除
  3. state.json の active を false に更新
  4. SSOT日記に「自律ループ完走・自動停止」を記録

二重安全装置: next-issue.py は pending 空の時点で active: false に設定。次回cron発動でも即終了する。

再開方法: CronCreate 再設定 + state.jsonactive: true + pending にIssue番号追加。

← ガイド一覧に戻る