Claude-skill-registry issue-reporter

作業進捗をGitHub issueに自動報告します。計画立案時、知見獲得時、問題発覚時にブランチ名からissue番号を抽出し、構造化されたコメントを投稿します。

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/issue-reporter" ~/.claude/skills/majiayu000-claude-skill-registry-issue-reporter && rm -rf "$T"
manifest: skills/data/issue-reporter/SKILL.md
source content

Issue Reporter スキル

このスキルは、作業進捗を関連するGitHub issueに自動報告します。

起動条件

以下の状況で自動起動します:

  1. 計画立案時: 実装・調査などの計画を立てたとき
  2. 知見獲得時: 新たな知見が得られたとき(特にプロジェクトにとって有益な情報は必須)
  3. 問題発覚時: 新たな問題が発覚したとき
  4. その他: 記録すべき重要な情報があるとき

前提条件

  • 現在のブランチ名にissue番号が含まれていること
  • gh
    CLIがインストールされ認証済みであること
  • リポジトリがGitHubにプッシュされていること

ブランチ名からのissue番号抽出

ブランチ命名規則の詳細は

.claude/git-conventions.md
を参照してください。

サポートされるパターン

標準パターン(推奨):

パターン例抽出結果
feat/121-xxx
121
fix/121-xxx
121
refactor/123-xxx
123
docs/101-xxx
101
test/111-xxx
111
chore/222-xxx
222

レガシーパターン(後方互換性):

パターン例抽出結果
feature/111-xxx
111
bugfix/456-xxx
456

抽出ロジック

# 現在のブランチ名を取得
branch=$(git branch --show-current)

# issue番号を抽出(標準パターン + レガシーパターン対応)
issue_number=$(echo "$branch" | sed -n 's#^\(feat\|fix\|chore\|docs\|refactor\|test\|feature\|bugfix\)/\([0-9]\+\)-.*#\2#p')

# 先頭ゼロを除去(004 -> 4)
if [ -n "$issue_number" ]; then
    issue_number=$((10#$issue_number))
fi

コメント形式

計画立案時(Plan)

## 📋 実装計画

**作業内容**: [作業の概要]

### 計画

1. [ステップ1]
2. [ステップ2]
3. [ステップ3]

### 予想される課題

- [課題1]
- [課題2]

---
*Posted by Claude Code at YYYY-MM-DD HH:MM*

知見獲得時(Insight)

## 💡 新たな知見

**発見内容**: [発見の概要]

### 詳細

[発見の詳細説明]

### プロジェクトへの影響

- [影響1]
- [影響2]

### 推奨アクション

- [ ] [アクション1]
- [ ] [アクション2]

---
*Posted by Claude Code at YYYY-MM-DD HH:MM*

問題発覚時(Problem)

## ⚠️ 問題発覚

**問題**: [問題の概要]

### 詳細

[問題の詳細説明]

### 再現手順

1. [手順1]
2. [手順2]

### 暫定対応

- [対応1]

### 根本対応(提案)

- [ ] [対応提案1]

---
*Posted by Claude Code at YYYY-MM-DD HH:MM*

その他(Note)

## 📝 作業メモ

**内容**: [内容の概要]

### 詳細

[詳細説明]

---
*Posted by Claude Code at YYYY-MM-DD HH:MM*

実行プロセス

1. issue番号の特定

branch=$(git branch --show-current)
issue_number=$(echo "$branch" | sed -n 's#^\(feat\|fix\|chore\|docs\|refactor\|test\|feature\|bugfix\)/\([0-9]\+\)-.*#\2#p')
if [ -n "$issue_number" ]; then
    issue_number=$((10#$issue_number))
fi

2. issueの存在確認

gh issue view "$issue_number" --json state,title 2>/dev/null

3. コメントの投稿

gh issue comment "$issue_number" --body "$comment_body"

エラーハンドリング

mainブランチ等(issue番号なし)の場合

issue番号が検出できないブランチ(main, develop等)の場合は、ブランチ切り替えを提案します:

⚠️ issue番号が検出できません

現在のブランチ: main

issueに紐づいたブランチに切り替えることを推奨します。

対応中のissueがある場合:
  git checkout -b feat/<issue番号>-<説明>

例:
  git checkout -b feat/121-fix-embed-error

issueが存在しない場合

⚠️ Issue #XXX が見つかりません

ブランチ名から抽出したissue番号に対応するissueが存在しません。

考えられる原因:
- issueが削除された
- issueが別のリポジトリにある
- ブランチ名のフォーマットが想定と異なる

現在のブランチ: [branch_name]
抽出したissue番号: [issue_number]

gh未認証の場合

⚠️ GitHub CLI認証が必要です

gh CLIの認証が必要です。以下のコマンドで認証してください:

  gh auth login

その後、再度コメントを投稿できます。

自動起動の判断基準

スキルは以下の状況を検知して自動的に報告します:

シナリオ報告タイプ
TodoWriteで複数タスクを作成した直後Plan
API仕様・実装パターンを発見した際Insight
テスト失敗の原因を特定した際Problem
ブロッカーを発見した際Problem
設計変更を決定した際Insight

重複防止

以下の場合はコメントを投稿しません:

  • 同一セッション内で既に同様の内容を報告済み
  • 軽微な進捗(単なるファイル読み取りや軽微な調査)
  • まだ結論が出ていない調査途中

使用例

例1: 計画立案後のコメント

gh issue comment 121 --body "$(cat <<'EOF'
## 📋 実装計画

**作業内容**: note.com埋め込みサーバーエラーの修正

### 計画

1. エラー発生箇所の特定(api/v1/embed)
2. レスポンス形式の調査
3. エラーハンドリングの実装
4. E2Eテストの追加

### 予想される課題

- 埋め込みAPIの仕様が非公開
- レート制限の可能性

---
*Posted by Claude Code at 2026-01-13 10:30*
EOF
)"

例2: 知見獲得後のコメント

gh issue comment 121 --body "$(cat <<'EOF'
## 💡 新たな知見

**発見内容**: 埋め込みAPIはキーを使用してリゾルブする必要がある

### 詳細

`api.note.com/v1/embed/resolve` エンドポイントは、
note_keyを使用してURLから埋め込み可能なコンテンツを取得します。

レスポンス形式:
```json
{
  "data": {
    "html": "<iframe...>",
    "provider_name": "YouTube"
  }
}

プロジェクトへの影響

  • 現在の直接埋め込み方式を変更する必要がある
  • API経由での処理に移行すべき

推奨アクション

  • embed_resolver モジュールの作成
  • 既存の埋め込み処理をリファクタリング

Posted by Claude Code at 2026-01-13 11:45 EOF )"


## 注意事項

- **機密情報を含めない**: APIキー、認証情報、個人情報をコメントに含めない
- **簡潔に**: 長すぎるコメントは避け、要点を絞る
- **構造化**: テンプレートに従って構造化されたコメントを作成
- **タイムスタンプ**: コメントには必ずタイムスタンプを含める

## チェックリスト

コメント投稿前に確認:

- [ ] ブランチにissue番号が含まれているか
- [ ] issueが存在し、アクセス可能か
- [ ] コメント内容が適切なテンプレートに従っているか
- [ ] 機密情報が含まれていないか
- [ ] 重複したコメントではないか