mcpField
E
export-open-issues

export-open-issues

github.com/huytieu生産性1.3k178 回インストール5 日前に更新
リポジトリ

export-open-issues について

プロジェクトトラッカーの未完了課題を収集・分析し、バックログ監査レポートを作成する COG スキルです。複数の有効なトラッカーをまとめ、スプリント計画や状況報告に利用できます。

主な機能

  1. 01一つ以上のトラッカーから課題を収集
  2. 02優先度・種類・ステータス別に分類
  3. 03滞留・ブロック中・未割り当てを検出
  4. 04監査レポートを作成して保存
  5. 05必要に応じて CSV を作成

活用シーン

  1. 01スプリントやサイクル計画の準備
  2. 02滞留・ブロック中のバックログ項目を確認
  3. 03関係者に現在の作業状況を報告
  4. 04表計算で分析するため課題一覧を出力

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/huytieu/cog-second-brain --skill export-open-issues

インストール後、Claude Code で/export-open-issuesを入力して読み込まれたか確認します。

詳細

COG Export Open Issues スキル

呼び出すタイミング

  • ユーザーが未解決のイシューやバックログの健全性を監査したい場合
  • ユーザーが「イシューをエクスポート」「未解決のイシュー」「バックログ監査」「イシューレポート」「未解決のものは?」と言った場合
  • スプリント/サイクル計画の準備 — 進行中の作業を明確に把握する必要がある場合
  • ステークホルダーへの報告 — 現在の作業状況を把握する必要がある場合

エージェントモードの確認

00-inbox/MY-PROFILE.md のフロントマターにある agent_mode を確認します:

  • agent_mode: team の場合 — 並列エージェントを使ってすべてのアクティブなトラッカーから同時に情報を収集し、統合レポートを作成します
  • agent_mode: solo の場合 — プライマリトラッカーから順次情報を収集します

コマンド:/export-open-issues

事前確認

  1. 00-inbox/MY-INTEGRATIONS.md を読み、どのトラッカーがアクティブかを確認します

  2. 00-inbox/MY-PROFILE.md を読み、アクティブなプロジェクトを確認します

  3. 現在のタイムスタンプを取得します: Bash を使って date '+%Y-%m-%d %H:%M' を実行します

  4. ユーザーに質問します(まだ指定されていない場合):

    • どのプロジェクトですか?(複数のプロジェクトがアクティブな場合)
    • 対象範囲:すべての未解決イシューですか、それともラベル/マイルストーン/担当者で絞り込みますか?
    • 追加分析(経過期間、優先度の分布、担当者の負荷)も含めますか?

実行方針

フェーズ 1:未解決イシューを収集
チームモード(並列エージェント)

run_in_background: true を指定し、Task ツールを使って収集エージェントを起動します:

エージェント:「github-issues-collector」(GitHub がアクティブな場合)

Export all open issues from GitHub.
Repository: [CUSTOMIZE: your-org/your-repo]

1. Get all open issues:
   gh issue list --repo [CUSTOMIZE: your-org/your-repo] --state open --json number,title,author,assignees,labels,createdAt,updatedAt,milestone,url --limit 500

2. Get all open PRs (separate from issues):
   gh pr list --repo [CUSTOMIZE: your-org/your-repo] --state open --json number,title,author,labels,createdAt,updatedAt,reviewDecision,url --limit 200

For each issue, calculate:
- Age in days (today - createdAt)
- Days since last update (today - updatedAt)
- Staleness flag: >30 days since last update = stale

Return: full issue list with calculated fields

エージェント:「linear-issues-collector」(Linear がアクティブな場合)

Export all open issues from Linear.

1. Use ToolSearch to load Linear tools
2. List all teams: mcp__claude_ai_Linear_2__list_teams
3. For each relevant team, list open issues: mcp__claude_ai_Linear_2__list_issues
4. Get current cycles: mcp__claude_ai_Linear_2__list_cycles
5. Get milestones: mcp__claude_ai_Linear_2__list_milestones

For each issue, collect:
- ID, title, status, priority, assignee, labels, project
- Created date, updated date
- Cycle membership
- Blocked status

Return: full issue list with metadata

エージェント:「jira-issues-collector」(Jira がアクティブな場合)

Export all open issues from Jira.
Project: [CUSTOMIZE: YOUR-PROJECT-KEY]

1. Search open issues:
   JQL: project = "[CUSTOMIZE: YOUR-PROJECT-KEY]" AND status NOT IN (Done, Closed, Resolved) ORDER BY priority DESC, created ASC

2. For each issue, collect:
   key, summary, issuetype, status, priority, assignee, reporter, labels, components, fixVersion, created, updated, duedate

Return: full issue list with metadata
ソロモード

プライマリトラッカーから順次収集します。

フェーズ 2:分析と分類

収集したデータを処理し、以下を作成します:

2.1 概要統計
Total Open Issues: [N]
  - By Priority: Critical [N], High [N], Medium [N], Low [N], None [N]
  - By Type: Feature [N], Bug [N], Task [N], Other [N]
  - By Status: To Do [N], In Progress [N], In Review [N], Blocked [N]
  - By Assignee: [Name] ([N]), [Name] ([N]), Unassigned ([N])
2.2 健全性の指標
  • 停滞中のイシュー(30 日を超えて更新なし):経過日数とともに一覧表示
  • 担当者未設定のイシュー:優先度とともに一覧表示
  • ブロック中のイシュー:ブロッカーの詳細とともに一覧表示
  • 期限超過のイシュー(期限を過ぎている):超過日数とともに一覧表示
  • 最も古い未解決イシュー:経過期間の長い上位 10 件
  • 進行中のボトルネック:「In Progress」の状態が 7 日を超えているイシュー
2.3 分布チャート(テキスト形式)
Priority Distribution:
  Critical  ████░░░░░░  12%
  High      ████████░░  38%
  Medium    ██████░░░░  28%
  Low       ████░░░░░░  22%

Age Distribution:
  <7 days   ██████████  45%
  7-30 days ██████░░░░  30%
  30-90 d   ███░░░░░░░  15%
  >90 days  ██░░░░░░░░  10%
フェーズ 3:レポートを作成
---
type: open-issues-audit
project: [project-name]
date: [YYYY-MM-DD]
created: [YYYY-MM-DD HH:MM]
source: [github/linear/jira/multi]
tags: ["#issues-audit", "#[project-name]", "#backlog"]
summary:
  total_open: [N]
  critical: [N]
  high: [N]
  stale: [N]
  unassigned: [N]
  blocked: [N]
  oldest_days: [N]
---

# Open Issues Audit — [Project Name]

**Date:** [YYYY-MM-DD]
**Source:** [Tracker(s) used]
**Total Open Issues:** [N]

---

## Executive Summary

[2-3 sentences: overall backlog health, biggest concerns, and recommended actions]

---

## Summary Statistics

| Category | Count | % of Total |
|----------|-------|-----------|
| **By Priority** | | |
| Critical | [N] | [%] |
| High | [N] | [%] |
| Medium | [N] | [%] |
| Low | [N] | [%] |
| No Priority | [N] | [%] |
| **By Status** | | |
| To Do | [N] | [%] |
| In Progress | [N] | [%] |
| In Review | [N] | [%] |
| Blocked | [N] | [%] |
| **By Type** | | |
| Feature/Story | [N] | [%] |
| Bug | [N] | [%] |
| Task | [N] | [%] |
| Other | [N] | [%] |

---

## Assignee Load

| Assignee | Open Issues | Critical/High | In Progress | Oldest Issue (days) |
|----------|-------------|---------------|-------------|-------------------|
| [Name] | [N] | [N] | [N] | [N] |
| [Name] | [N] | [N] | [N] | [N] |
| Unassigned | [N] | [N] | — | [N] |

---

## Health Alerts

### Stale Issues (>30 days without update)
| # | Title | Assignee | Priority | Age (days) | Last Updated |
|---|-------|----------|----------|-----------|-------------|
| [#] | [Title] | [Name] | [Priority] | [N] | [Date] |

### Blocked Issues
| # | Title | Assignee | Blocked By | Days Blocked |
|---|-------|----------|-----------|-------------|
| [#] | [Title] | [Name] | [Reason] | [N] |

### Unassigned High-Priority Issues
| # | Title | Priority | Age (days) | Labels |
|---|-------|----------|-----------|--------|
| [#] | [Title] | [Priority] | [N] | [Labels] |

### Overdue Issues
| # | Title | Assignee | Due Date | Days Overdue |
|---|-------|----------|----------|-------------|
| [#] | [Title] | [Name] | [Date] | [N] |

---

## Full Issue List

### Critical Priority
| # | Title | Status | Assignee | Age | Labels | URL |
|---|-------|--------|----------|-----|--------|-----|
| [#] | [Title] | [Status] | [Name] | [N]d | [Labels] | [URL] |

### High Priority
[Same table format]

### Medium Priority
[Same table format]

### Low Priority
[Same table format]

---

## Recommendations

1. **[Recommendation 1]** — [Specific action with rationale]
2. **[Recommendation 2]** — [Specific action with rationale]
3. **[Recommendation 3]** — [Specific action with rationale]

---

*Generated by COG Open Issues Audit | [Date]*
フェーズ 4:Vault に保存

保存先:04-projects/[project]/audits/open-issues-YYYY-MM-DD.md

mkdir -p "04-projects/[project]/audits"
フェーズ 5:結果を提示

ユーザーに以下を表示します:

  1. エグゼクティブサマリー
  2. 主要な健全性アラート(停滞中、ブロック中、担当者未設定)
  3. 主な推奨事項
  4. ファイルの場所

以下の希望があるか確認します:

  • 詳細な全体表示
  • CSV 形式でエクスポート(Markdown とともに簡単な CSV ファイルを生成)
  • 特定のチャンネルまたは Wiki への共有

CSV エクスポート(任意)

ユーザーが CSV を希望する場合は、Markdown とともに生成します:

#,Title,Type,Status,Priority,Assignee,Labels,Created,Updated,Age(days),URL
[data rows]

保存先:04-projects/[project]/audits/open-issues-YYYY-MM-DD.csv


フォールバック時の動作

シナリオ動作
アクティブなトラッカーがないプロジェクトトラッカーの連携が必要であることをユーザーに伝え、設定を提案します
トラッカー API が失敗する1 回再試行し、その後エラーの注記を付けて部分的な結果を報告します
イシューが多すぎる(500 件超)ページ分割して収集し、ユーザーに警告したうえで、ラベル/マイルストーン/担当者による絞り込みを提案します
複数のトラッカーがアクティブすべてから情報を収集して統合レポートを作成し、各項目のソースを明記します
未解決イシューが見つからないバックログに問題がない状態であることを報告します(これは良い知らせです!)

エラー処理

  • レート制限:リクエストをページ分割し、必要に応じて待ち時間を入れます
  • 大きなペイロード:イシューが 200 件を超える場合は、すべての項目を列挙せずに要約します
  • フィールドの欠落:エラーにせず「N/A」としてマークします
  • コンテキストの超過:バッチ単位で処理し、バッチごとに要約します

コメント