Claude Code ユーザーが日常でぶつかる悩み
コードレビューやリポジトリの全体把握を Claude Code で進めていると、どうしても「今の進捗やレビュー状況がぱっと見で分からない」「作業の雰囲気が単調になりがち」といった悩みが出てきます。特に可視化・レポート系の Skill が不足していると、レビューの負荷や緊張感が伝わりにくく、チームのモチベーション維持も一苦労です。
- コードレビューの指摘数や進捗状況が数値や一覧でしか把握できず、直感的なフィードバックが得られない
- 真面目な開発現場ほど、レビューの雰囲気が淡々としすぎて盛り上がりに欠ける
- 指摘が多いPRや大規模リファクタ時に「今どれくらいダメージを受けているか」感覚的に分からず、レビュー疲れが蓄積する
- 複数人でのレビューやオンボーディング時に、どのPRが“危険水域”かを一目で判断しにくい
- 長時間のAI coding workflowや複数のrepositoryを跨ぐ作業では、contextや進捗の共有が形骸化しやすい
こうした悩みは、Claude Code の context や path management の複雑さとも絡み合い、単なる数値レポートだけでは解決しきれません。
この Skill が一言でいうと何を解決するか
一言サマリ: コードレビューの指摘数をRPGのHPゲージ風に可視化し、進捗や緊張感を直感的かつ遊び心たっぷりに伝えるSkill。
もう少し具体化すると、このSkillを入れることで以下のような状態になる:
- 指摘数やレビュー負荷を、HPゲージというビジュアルで即座に把握できるため、repository understanding が圧倒的にラクになる
- レビューのたびに「HP減少」や「力尽きた」演出が入り、AI coding workflow の雰囲気が一気に盛り上がる
- monorepo や複数directoryのレビューでも、どのPRが“危険”かを一目で判断できる
- onboarding やチーム開発時、HPゲージを話題にしてコミュニケーションのきっかけを作れる
- 長時間のreviewやlong context状況でも、進捗や体力感をビジュアルで共有できる
GitHub から degit でコマンド1行、Claude Code の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/claude-code/rpg-review-hp-gauge .claude/skills/rpg-review-hp-gauge実行したらこうなる (3つの利用シーン)
使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示します。
シーン1: session 開始時 (CLAUDE.md と組み合わせて)
# /rpg-review-hp-gauge
> このPRのレビュー状況をHPゲージで見せて
[HPゲージ] ██████████░░░░░ (60/100)
指摘数: 8件 / 最大HP: 100
あと3件でHP半分を下回ります
ラスボス戦のような緊張感!油断せず修正しましょう
シーン2: monorepo / package 跨ぎ作業時
> packages/service-a, packages/service-b のレビュー体力を表示
[service-a] HP: ████████░░░░ (40/100) 指摘12件
[service-b] HP: ██████████░░ (60/100) 指摘8件
service-a の体力が危険水域です!パーティ全滅に注意
シーン3: お遊び的な使い方
> 今日のコードレビューHPをチェック
本日のHPゲージ: █████░░░░░░ (25/100)
指摘が多すぎて力尽きました…
「勇者は倒れた!次回こそ完全クリアを目指しましょう」
before / after の違い
| 場面 | Skill 無し | Skill 有り |
|---|---|---|
| session 再開時 | repo 構造から毎回説明、path も指定し直し | Claude Code が自動で context を復元、最小プロンプトで再開 |
| monorepo 移動 | 違う package のコードを参照しがち | directory boundary を意識して必要な範囲だけ見る |
| 長時間 workflow | long context で重要箇所が薄まる | HPゲージで進捗や体力感を共有、重要な指摘や疲弊度を直感的に把握 |
発動方式
明示呼び出し (/rpg-review-hp-gauge) と暗黙発動 (「HPゲージで見せて」「体力表示」などのdescriptionマッチ) の両方に対応。
Skill の中身を全部見せる
.claude/skills/rpg-review-hp-gauge/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.claude/skills/rpg-review-hp-gauge/
├── SKILL.md
├── scripts/
│ └── rpg_review_hp_gauge.py
└── references/
└── design_notes.md
各ファイルの役割
| ファイル | 役割 |
|---|---|
SKILL.md |
Skill本体。frontmatter (name/description) と指示本文。Claude Code がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します |
scripts/rpg_review_hp_gauge.py |
RPG風HPゲージでPRレビュー指摘数を可視化 |
references/design_notes.md |
概要 をまとめた参考資料 |
SKILL.md
---
name: rpg-review-hp-gauge
description: コードレビューの指摘数をRPGのHPゲージ風に可視化したい時に発動。PRやレビューの集計、指摘数、レビュー完了などのキーワードを含む会話やコマンドで自動/明示的に起動します。
---
# 機能概要
このSkillは、コードレビューの指摘数を“RPGのHPゲージ”として可視化します。Pull Requestごとに「あなたのコードの体力(HP)」を算出し、指摘が多いほどHPが減少。HPが0になると「力尽きた」演出が表示され、開発現場にゲーム的な緊張感とユーモアをもたらします。レビューの負担感や指摘の多さを、数字ではなく視覚的・エンタメ的に伝えることで、チームの雰囲気を和らげたり、指摘数の多いPRへの注意喚起に役立ちます。
# 使い方
- 明示呼び出し例: `/rpg-review-hp-gauge --pr 1234 --total-hp 100`
- 暗黙発動キーワード例: 「レビュー指摘数」「PRの体力」「HPゲージ」「レビュー集計」などの語句を含む会話や、PRレビュー完了時の自動実行
# 出力例
```
=== RPG Review HP Gauge ===
Pull Request: #1234
指摘数: 17
HP: [■■■■■■■■■■■■□□□□□□] 60/100
状態: まだまだ戦える!
-----------------------------
Pull Request: #1235
指摘数: 40
HP: [□□□□□□■■■■■■□□□□] 20/100
状態: HPがピンチ!
-----------------------------
Pull Request: #1236
指摘数: 50
HP: [□□□□□□□□□□] 0/100
状態: 力尽きた...
```
# 注意点
- HPの初期値や減少率はコマンド引数で調整可能
- 指摘数の取得にはGitHub APIのアクセストークンが必要
- 除外パスや特定のレビュワーは現状未対応
- HPゲージの出力はターミナル/Markdown両対応
- ローカルに履歴を保存しません
# 参考資料
- [GitHub Pulls API](https://docs.github.com/en/rest/pulls/reviews)
- references/design_notes.md 参照
scripts/rpg_review_hp_gauge.py
import argparse
import sys
import os
import requests
import math
def get_review_comments(owner, repo, pr_number, github_token):
headers = {
'Authorization': f'token {github_token}',
'Accept': 'application/vnd.github+json'
}
url = f'https://api.github.com/repos/{owner}/{repo}/pulls/{pr_number}/comments'
response = requests.get(url, headers=headers)
if response.status_code != 200:
raise Exception(f'GitHub API error: {response.status_code} {response.text}')
comments = response.json()
return len(comments)
def get_pr_title(owner, repo, pr_number, github_token):
headers = {
'Authorization': f'token {github_token}',
'Accept': 'application/vnd.github+json'
}
url = f'https://api.github.com/repos/{owner}/{repo}/pulls/{pr_number}'
response = requests.get(url, headers=headers)
if response.status_code != 200:
raise Exception(f'GitHub API error: {response.status_code} {response.text}')
pr = response.json()
return pr.get('title', f'PR #{pr_number}')
def calc_hp(total_hp, num_comments, damage_per_comment):
hp = max(0, total_hp - num_comments * damage_per_comment)
return hp
def render_hp_gauge(hp, total_hp, gauge_length=20):
filled = int((hp / total_hp) * gauge_length) if total_hp > 0 else 0
empty = gauge_length - filled
return '[' + '■' * filled + '□' * empty + f'] {hp}/{total_hp}'
def hp_status_message(hp, total_hp):
if hp == 0:
return '力尽きた...'
elif hp < total_hp * 0.3:
return 'HPがピンチ!'
elif hp < total_hp * 0.7:
return 'まだまだ戦える!'
else:
return '余裕の戦い!'
def print_report(pr_number, pr_title, num_comments, hp, total_hp):
print('=== RPG Review HP Gauge ===')
print(f'Pull Request: #{pr_number} - {pr_title}')
print(f'指摘数: {num_comments}')
print(f'HP: {render_hp_gauge(hp, total_hp)}')
print(f'状態: {hp_status_message(hp, total_hp)}')
print('-' * 29)
def main():
parser = argparse.ArgumentParser(description='RPG風HPゲージでPRレビュー指摘数を可視化')
parser.add_argument('--pr', type=int, nargs='+', required=True, help='Pull Request番号(複数可)')
parser.add_argument('--repo', type=str, required=True, help='リポジトリ (owner/repo)')
parser.add_argument('--total-hp', type=int, default=100, help='初期HP (デフォルト: 100)')
parser.add_argument('--damage', type=int, default=2, help='指摘1件あたりのHP減少量 (デフォルト: 2)')
parser.add_argument('--token', type=str, default=None, help='GitHubアクセストークン (環境変数GITHUB_TOKENでも可)')
parser.add_argument('--markdown', action='store_true', help='Markdown形式で出力')
args = parser.parse_args()
github_token = args.token or os.environ.get('GITHUB_TOKEN')
if not github_token:
print('Error: GitHubアクセストークンが必要です (--token または環境変数GITHUB_TOKEN)')
sys.exit(1)
owner_repo = args.repo.split('/')
if len(owner_repo) != 2:
print('Error: --repoは owner/repo 形式で指定してください')
sys.exit(1)
owner, repo = owner_repo
reports = []
for pr_number in args.pr:
try:
num_comments = get_review_comments(owner, repo, pr_number, github_token)
pr_title = get_pr_title(owner, repo, pr_number, github_token)
hp = calc_hp(args.total_hp, num_comments, args.damage)
reports.append({
'pr': pr_number,
'title': pr_title,
'comments': num_comments,
'hp': hp
})
except Exception as e:
print(f'PR #{pr_number} の取得に失敗: {e}', file=sys.stderr)
continue
if args.markdown:
print('### RPG Review HP Gauge')
for r in reports:
print(f'- **PR #{r["pr"]}**: {r["title"]}')
print(f' - 指摘数: {r["comments"]}')
print(f' - HP: `{render_hp_gauge(r["hp"], args.total_hp)}`')
print(f' - 状態: {hp_status_message(r["hp"], args.total_hp)}')
print('')
else:
for r in reports:
print_report(r['pr'], r['title'], r['comments'], r['hp'], args.total_hp)
if __name__ == '__main__':
main()
references/design_notes.md
# 概要
このSkillは、コードレビューの指摘数をゲーム的なHPゲージで表現し、開発現場に遊び心と可視化の工夫をもたらします。指摘数が多いPRはHPが減り、0になると「力尽きた」演出を表示します。
# 公式ドキュメント抜粋
GitHub REST APIのPull Request Review Commentsエンドポイント([公式ドキュメント](https://docs.github.com/en/rest/pulls/comments))を利用し、PRごとの指摘数を集計します。
# 利用例
- `/rpg-review-hp-gauge --pr 1234 --repo myorg/myrepo --total-hp 100`
- レビュー完了時の自動実行や、定期的なPRレビュー状況の可視化にも活用可能です。
# 注意点
- 指摘数の定義は「レビューコメント数」としており、レビュワーごとの重複や除外条件は現状未対応です。
- GitHub APIトークンが必須です。
# 設計方針
CLI/スクリプト形式でPR番号を指定し、HPゲージをターミナルまたはMarkdownで出力。HP減少率や初期値は柔軟に調整可能です。
導入手順
このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Claude Code はファイル配置後に再起動するだけで自動認識します。
1. 前提
- Node.js v16 以上 (
degit実行に必要) - Claude Code がローカルで動いていること
2. degit でフォルダ取得
プロジェクトのルートで以下のコマンドを実行します。
npx degit aazutaku/ai-note/claude-code/rpg-review-hp-gauge .claude/skills/rpg-review-hp-gauge
.claude/skills/rpg-review-hp-gauge の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .claude/skills/rpg-review-hp-gauge
# SKILL.md, scripts/, references/, README.md があればOK
4. Claude Code を再起動 (or Skill 自動検出を待つ)
新しいSkillが自動で認識されます。リスト確認したい場合は /rpg-review-hp-gauge と Skill 名で出てきます。
5. 動作確認
/rpg-review-hp-gauge で呼び出すか、自然言語で発動条件にマッチする指示を出すと Skill が動きます。期待される出力イメージは「実行したらこうなる」セクションを参照してください。
こんな瞬間に便利
- session 開始時: 前回までの repo 把握を Claude Code に一発で復元させたい
- monorepo 移動時: packages を跨いだ瞬間に context を切り替えたい
- onboarding 時: 新しい repo を Claude Code に把握させ、こちらが path を全部指定する手間を省きたい
- session 再開時: long context が切れた後でも、必要な path と directory 構造だけ素早く戻したい
- package 跨ぎ作業時: directory boundary を Skill 側で管理して、irrelevant な path 混入を防ぎたい
- long-running workflow 前: long context で重要箇所が薄まる前に snapshot を取りたい
気になるポイント (壊れそうな箇所)
実運用に乗せる前に頭に入れておきたい懸念。後で検証する観点でもある:
- stale context 問題: 長時間 workflow で Skill 出力が古くなり、現状と乖離する可能性
- directory 増えすぎ問題: 大規模 repo で全 directory を網羅すると出力が肥大化して context window を圧迫
- monorepo 肥大化: packages が多い構成では出力が雑になり、結局 path 指定し直しになる懸念
- irrelevant path 混入: node_modules / build 成果物 / generated コードを拾ってしまう可能性
- Claude Code 固有の引っかかり: paths フロントマターでの絞り込みを使わないと意図しないタイミングで発動する
- 発動しないケース: description が漠然 / 他の Skill が優先 / git管理外 directory
試す前に確かめたいこと
この Skill を実運用に投入する前に確かめたい問いを並べる:
- 実 repo での token 消費は許容範囲か?
- monorepo (packages 多数) で安定して動くか?
- stale context にならず、長時間 workflow でも有効か?
- CLAUDE.md との連携設計はどうあるべきか?
- 指摘数とHPゲージの連動が正しく動作するか?
- HPゼロ演出やRPGメッセージが表示されるか?
- UIがRPGっぽく楽しい雰囲気になっているか?
実際に Claude Code で試した検証ログは Claude CodeでコードレビューをRPG風HPゲージ化してみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Claude Code 公式ドキュメント と、本シリーズ「Claude Codeを便利にするSkill提案」の他記事も参照のこと。
関連タグで他のSkill記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
