AgentSkillsCN

github-issue-manager

掌握 GitHub Issue 的管理技巧,借助 gh CLI 实现与任务规格书的双向联动、本地同步,以及评分筛选功能。 锚点: • task-specification-creator / 适用场景:元信息与 Issue 结构 / 目的:确保格式兼容性 • gh CLI(GitHub CLI)/ 适用场景:Issue 操作 / 目的:创建/列出/编辑/关闭 Issue • 渐进式披露 / 适用场景:仅在必要时加载资源 / 目的:提升上下文效率 触发条件: 当您需要管理 GitHub Issue、根据任务规格书创建 Issue,或选择最优的下一项任务时,可使用此技能。 当您需要管理 GitHub Issue、从任务规格书中创建 Issue,或选择最合适的下一项任务时,可使用此技能。

SKILL.md
--- frontmatter
name: github-issue-manager
description: |
  GitHub Issueを`gh` CLIで管理し、タスク仕様書との双方向連携・ローカル同期・スコアリング選択を実現するスキル。

  Anchors:
  • task-specification-creator / 適用: メタ情報・Issue構造 / 目的: フォーマット互換性確保
  • gh CLI (GitHub CLI) / 適用: Issue操作 / 目的: create/list/edit/close
  • Progressive Disclosure / 適用: 必要時のみリソース読み込み / 目的: コンテキスト効率化

  Trigger:
  GitHub Issue管理, Issue作成, Issue選択, 最適タスク選定, タスク仕様書→Issue化
  Use when managing GitHub issues, creating issues from task specs, or selecting optimal next task.
tags:
  - github
  - issue
  - task-management
  - gh-cli
allowed-tools:
  - Read
  - Write
  - Edit
  - Bash
  - Glob
  - Grep
  - Task

GitHub Issue Manager

概要

GitHub Issueをgh CLIで操作し、タスク仕様書との双方向連携を実現するスキル。 ローカル同期(docs/30-workflows/issues/)により高速検索が可能。

モード一覧

モード用途スクリプト
syncGitHub↔ローカル同期sync_issues.js
sync-new未同期仕様書→Issue一括作成sync_new_issues.js
create仕様書→Issue作成create_issue.js
select最適Issue選択select_issue.js
listIssue一覧(フィルタ対応)list_issues.js
updateIssue更新update_issue.js
closeIssueクローズclose_issue.js
relinkIssue↔仕様書再リンクrelink_issues.js
label全Issueにラベル一括付与label_all_issues.js

Part 1: クイックスタート

初期セットアップ(初回のみ)

bash
# ラベル作成
node .claude/skills/github-issue-manager/scripts/init_labels.js

# GitHub→ローカル同期
node .claude/skills/github-issue-manager/scripts/sync_issues.js

基本ワークフロー

code
1. /task-specification-creator で仕様書作成
   → docs/30-workflows/unassigned-task/task-xxx.md
       ↓
2. 【自動】Claude Code Hookにより自動Issue作成/更新
   → GitHub Issue作成 + ラベル自動付与
   → issue_number が仕様書に自動書き戻し
       ↓
3. 仕様書編集 → 自動でGitHub Issue更新
       ↓
4. 最適Issue選択: node scripts/select_issue.js
   → スコア上位5件を表示、推奨理由付き
       ↓
5. 選択後、実装開始

双方向同期

タスク仕様書(docs/30-workflows/unassigned-task/task-*.md)とGitHub Issueが双方向に連動。

仕様書 → GitHub(自動)

code
仕様書作成/編集
    ↓ Claude Code Hook
GitHub Issue 作成/更新
    ↓
issue_number を仕様書に書き戻し

GitHub → 仕様書(手動)

bash
node .claude/skills/github-issue-manager/scripts/sync_issues.js
# GitHub上のステータス変更を仕様書に反映

自動Issue同期(Claude Code Hook)

docs/30-workflows/unassigned-task/task-*.md へのWrite/Edit操作時に自動でIssue作成/更新。

  • フックファイル: .claude/hooks/auto-create-issue.sh
  • 設定場所: .claude/settings.local.json の PostToolUse
  • 動作:
    • issue_number なし → Issue新規作成、番号を書き戻し
    • issue_number あり → 既存Issue更新

自動Issueクローズ(削除時)

仕様書ファイルが削除されると、対応するIssueが自動でクローズされる。

  • フックファイル:
    • .claude/hooks/pre-delete-spec.sh (PreToolUse)
    • .claude/hooks/post-delete-spec.sh (PostToolUse)
  • 動作:
    • 削除前: issue_numberをキャッシュ
    • 削除後: Issueをクローズ、status:completedラベル付与

Part 2: コマンドリファレンス

sync: GitHub↔ローカル同期

bash
node .claude/skills/github-issue-manager/scripts/sync_issues.js           # GitHub→ローカル
node .claude/skills/github-issue-manager/scripts/sync_issues.js --all     # 閉じたIssue含む
node .claude/skills/github-issue-manager/scripts/sync_issues.js --push    # ローカル→GitHub

sync-new: 未同期仕様書→Issue一括作成

issue_numberを持たないタスク仕様書を検出し、GitHub Issueを一括作成。 PR作成前git merge/stash後に実行推奨(Claude Code Hookが発火しないケース対応)。

bash
node .claude/skills/github-issue-manager/scripts/sync_new_issues.js           # 新規Issue作成
node .claude/skills/github-issue-manager/scripts/sync_new_issues.js --dry-run # 変更内容を確認のみ
node .claude/skills/github-issue-manager/scripts/sync_new_issues.js --check   # CI用:未同期があれば終了コード1

ユースケース:

  • git merge main 後に新規仕様書が含まれていた場合
  • git stash pop で仕様書ファイルが復元された場合
  • PR作成前のIssue同期確認

create: Issue作成

bash
node .claude/skills/github-issue-manager/scripts/create_issue.js --spec <path>
node .claude/skills/github-issue-manager/scripts/create_issue.js --all    # 全仕様書

select: 最適Issue選択

bash
node .claude/skills/github-issue-manager/scripts/select_issue.js
node .claude/skills/github-issue-manager/scripts/select_issue.js --priority high
node .claude/skills/github-issue-manager/scripts/select_issue.js --category bugfix
node .claude/skills/github-issue-manager/scripts/select_issue.js --remote  # GitHub直接

list: Issue一覧

bash
node .claude/skills/github-issue-manager/scripts/list_issues.js
node .claude/skills/github-issue-manager/scripts/list_issues.js --priority high --status unassigned
node .claude/skills/github-issue-manager/scripts/list_issues.js --json

update: Issue更新

bash
node .claude/skills/github-issue-manager/scripts/update_issue.js -n 123 --status in-progress
node .claude/skills/github-issue-manager/scripts/update_issue.js -n 123 --priority high
node .claude/skills/github-issue-manager/scripts/update_issue.js -n 123 --close

close: Issueクローズ

bash
node .claude/skills/github-issue-manager/scripts/close_issue.js --number 123
node .claude/skills/github-issue-manager/scripts/close_issue.js --spec docs/30-workflows/unassigned-task/task-xxx.md
node .claude/skills/github-issue-manager/scripts/close_issue.js --number 123 --reason "完了しました"

relink: Issue↔仕様書再リンク

既存のIssueと仕様書ファイルをタスクIDでマッチングし、issue_numberを書き戻す。

bash
node .claude/skills/github-issue-manager/scripts/relink_issues.js            # 全Issueを再リンク
node .claude/skills/github-issue-manager/scripts/relink_issues.js --dry-run  # 変更内容を確認

cleanup: 孤立Issue検出・クローズ

仕様書ファイルが削除されたが、Issueが残っている「孤立Issue」を検出し、クローズする。 手動削除時など、Claude Code Hook が発火しない場合に使用。

bash
node .claude/skills/github-issue-manager/scripts/cleanup_orphaned.js           # 孤立Issue検出(確認のみ)
node .claude/skills/github-issue-manager/scripts/cleanup_orphaned.js --close   # 孤立Issueをクローズ
node .claude/skills/github-issue-manager/scripts/cleanup_orphaned.js --dry-run # 変更内容を表示

label: 全Issueにラベル一括付与

オープン中の全Issueにメタ情報(優先度・規模・分類・ステータス)からラベルを付与。

bash
node .claude/skills/github-issue-manager/scripts/label_all_issues.js           # 全Issueにラベル付与
node .claude/skills/github-issue-manager/scripts/label_all_issues.js --dry-run # 変更内容を確認
node .claude/skills/github-issue-manager/scripts/label_all_issues.js --force   # 既存ラベルを上書き

注意: Issue作成時(create_issue.js)は自動でラベル付与されます。このコマンドは既存Issueの一括ラベル付与に使用。


Part 3: スコアリング&ラベル

スコアリング計算

要素スコア
優先度高/中/低+100/+50/+25
規模小/中/大+30/+20/+10
依存関係満足/未満足+50/-100
経過日数1日あたり+1 (max 30)

自動付与ラベル

カテゴリラベル例
優先度priority:high, priority:medium, priority:low
規模scale:large, scale:medium, scale:small
分類type:requirements, type:improvement, type:bugfix, type:refactoring, type:security, type:performance
ステータスstatus:unassigned, status:in-progress, status:completed

Part 4: リソースマップ

scripts/

Script用途
sync_issues.jsGitHub↔ローカル同期
sync_new_issues.js未同期仕様書→Issue一括作成
create_issue.js仕様書→Issue作成
select_issue.js最適Issue選択+スコアリング
list_issues.jsIssue一覧(ローカル優先)
update_issue.jsIssue更新(ローカル+GitHub)
close_issue.jsIssueクローズ
relink_issues.jsIssue↔仕様書再リンク
cleanup_orphaned.js孤立Issue検出・クローズ
label_all_issues.js全Issueラベル一括付与
init_labels.jsラベル初期化
utils.js共通ユーティリティ
log_usage.js使用ログ記録

agents/

Agent用途
select-optimal-issue.md最適Issue推奨・理由説明

assets/

Asset用途
issue-template.mdIssueボディテンプレート

メタ情報構造(YAML形式)

yaml
task_id: FR-011
task_name: ファイルタイプアイコン表示
category: 改善
target_feature: FileSelectorPanel
priority: 高
scale: 中規模
status: 未実施
source_phase: Phase 11
created_date: 2026-01-21
dependencies: []
項目内容
優先度
規模中規模
ステータス未実施

解析: YAML優先、Markdownテーブルはフォールバック


変更履歴

VersionDateChanges
1.7.02026-01-21未同期仕様書一括Issue作成機能追加(sync_new_issues.js)
1.6.02026-01-21全Issueラベル一括付与機能追加(label_all_issues.js)
1.5.02026-01-21削除時自動クローズ、孤立Issue検出、再リンク機能追加
1.4.02026-01-21双方向同期(仕様書↔Issue)、issue_number書戻
1.3.02026-01-21YAML形式メタ情報、自動Issue作成Hook追加
1.2.02026-01-21SKILL.md最適化(394→200行、49%削減)
1.1.02026-01-21ローカル同期機能追加
1.0.02026-01-21初版作成