Agent Skills by ALSEL
汎用ソフトウェア開発⭐ リポ 11品質スコア 70/100

devteam-issue

GitHubの課題番号を指定して修正できます。詳細を自動的に取得し、修正を実装します。

description の原文を見る

Fix a GitHub issue by number. Automatically fetches details and implements a fix.

SKILL.md 本文

Current session: !source "${CLAUDE_PLUGIN_ROOT}/scripts/state.sh" && get_current_session 2>/dev/null || echo "No active session" Active sprint: !source "${CLAUDE_PLUGIN_ROOT}/scripts/state.sh" && get_kv_state "active_sprint" 2>/dev/null || echo "None" Failure count: !source "${CLAUDE_PLUGIN_ROOT}/scripts/state.sh" && get_kv_state "consecutive_failures" 2>/dev/null || echo "0"

DevTeam Issue コマンド

コマンド: /devteam:issue <number>

GitHubのイシューを番号で修正します。詳細を自動的に取得し、修正を実装します。

使用方法

/devteam:issue 123             # GitHubのイシュー#123を修正
/devteam:issue 456 --council   # 複雑な診断にバグカウンシルを強制

処理フロー

フェーズ 0: 状態トラッキングの初期化

開始前に、SQLiteデータベース(.devteam/devteam.db)に状態を初期化します:

# 状態管理機能をソースする
source "${CLAUDE_PLUGIN_ROOT}/scripts/state.sh"

# 必要に応じてデータベースを初期化
source "${CLAUDE_PLUGIN_ROOT}/scripts/db-init.sh"

# プロジェクトメタデータを設定
set_kv_state "metadata.created_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
set_kv_state "metadata.project_name" "Issue #123 Fix"
set_kv_state "metadata.project_type" "issue"

# イシューの詳細を設定
set_kv_state "issue.number" "123"
set_kv_state "issue.title" "[GitHubから取得]"
set_kv_state "issue.type" "bug"           # bug | security | performance | enhancement
set_kv_state "issue.severity" "high"       # critical | high | medium | low
set_kv_state "issue.complexity" "moderate"  # simple | moderate | complex

# 実行コンテキストを設定
set_kv_state "current_execution.command" "/devteam:issue 123"
set_phase "diagnosis"

# 自律実行モードを設定
set_kv_state "autonomous_mode.enabled" "true"
set_kv_state "autonomous_mode.max_iterations" "20"
set_kv_state "autonomous_mode.current_iteration" "0"
set_kv_state "autonomous_mode.circuit_breaker.consecutive_failures" "0"
set_kv_state "autonomous_mode.circuit_breaker.max_failures" "3"
set_kv_state "autonomous_mode.circuit_breaker.state" "closed"

フェーズ 1: イシューの詳細を取得

# GitHubからイシューを取得
gh issue view 123 --json title,body,labels,comments,state

# 主要情報を抽出
- タイトル
- 説明
- 再現手順
- ラベル (bug、enhancement、security など)
- コメント (追加のコンテキストが含まれている可能性あり)

フェーズ 2: イシューを分類

イシュータイプを判定:

  • bug - 何か壊れている
  • security - セキュリティの脆弱性
  • performance - パフォーマンス低下
  • enhancement - 小規模な機能リクエスト

重要度を判定:

  • critical - システム停止、セキュリティの脆弱性、データ喪失
  • high - 主要な機能が壊れている
  • medium - 重要だが回避策がある
  • low - 軽微な問題

複雑さを判定:

  • simple - 原因が明確で、修正が単純 (1~2ファイル)
  • moderate - 調査が必要で、複数ファイルに影響
  • complex - アーキテクチャ上の問題で、深い分析が必要

フェーズ 3: バグカウンシル (複雑なバグの場合)

以下の場合にバグカウンシルを有効化:

  • 複雑さが complex
  • イシューに明確な再現手順がない
  • 修正試行が複数回失敗している
  • --council フラグが指定されている

バグカウンシルのプロセス:

// 5つの診断エージェントを並行実行
const councilResults = await Promise.all([
  Task({
    subagent_type: "diagnosis:root-cause-analyst",
    model: "opus",
    prompt: `イシュー #${issueNumber} を分析:
      タイトル: ${title}
      説明: ${body}

      以下を含む診断を提供:
      - 根本原因分析
      - 証拠
      - 推奨される修正
      - 信頼度スコア (0-1)`
  }),

  Task({
    subagent_type: "diagnosis:code-archaeologist",
    model: "opus",
    prompt: `イシュー #${issueNumber} のgit履歴を調査...`
  }),

  Task({
    subagent_type: "diagnosis:pattern-matcher",
    model: "opus",
    prompt: `コードベースで類似パターンを検索...`
  }),

  Task({
    subagent_type: "diagnosis:systems-thinker",
    model: "opus",
    prompt: `システム相互作用を分析...`
  }),

  Task({
    subagent_type: "diagnosis:adversarial-tester",
    model: "opus",
    prompt: `エッジケースと関連する障害を見つけ...`
  })
])

// ランク付き選択投票
const proposals = councilResults.map(r => r.proposal)
const votes = councilResults.map(r => r.ranking)
const winner = calculateRankedChoice(proposals, votes)

console.log(`バグカウンシルの決定: ${winner.approach}`)
console.log(`合意: ${winner.votes}/${councilResults.length}`)

バグカウンシルの出力:

bug_council:
  activated: true
  issue_number: 123

  proposals:
    A:
      agent: diagnosis:root-cause-analyst
      diagnosis: "ゲストユーザー処理のNull参照"
      confidence: 0.85
    B:
      agent: diagnosis:code-archaeologist
      diagnosis: "コミットabc123からのリグレッション"
      confidence: 0.78
    C:
      agent: diagnosis:pattern-matcher
      diagnosis: "オプショナルチェーンの不一貫性"
      confidence: 0.92
    D:
      agent: diagnosis:systems-thinker
      diagnosis: "AuthContextコントラクト違反"
      confidence: 0.80
    E:
      agent: diagnosis:adversarial-tester
      diagnosis: "同じ障害への複数のパス"
      confidence: 0.75

  voting:
    method: ranked_choice
    winner: C
    consensus: "強い合意 (5/5中4つがCを上位2に投票)"

  selected_approach:
    diagnosis: "4つの場所でのオプショナルチェーンの不一貫性"
    fix: "すべてのuser.settings アクセスにオプショナルチェーンを追加"
    prevention: "オプショナルチェーン向けのeslintルールを追加"

フェーズ 4: 修正の実装

シンプル/中程度のイシュー (カウンシルなし):

Task({
  subagent_type: "orchestration:task-loop",
  model: "opus",
  prompt: `イシュー #${issueNumber} を修正:

    イシュー: ${title}
    根本原因: ${diagnosis}

    1. 修正を実装
    2. リグレッションテストを追加
    3. 既存のテストを実行
    4. コードレビュー

    各ステップ後に状態を更新してください。`
})

複雑なイシュー (カウンシルあり):

Task({
  subagent_type: "orchestration:task-loop",
  model: "sonnet",
  prompt: `バグカウンシルの決定を使用してイシュー #${issueNumber} を修正:

    選択されたアプローチ: ${councilDecision.approach}
    場所: ${councilDecision.locations}

    1. すべての特定された場所に修正を適用
    2. 予防措置を実装
    3. 包括的なリグレッションテストを追加
    4. 完全なテストスイートを実行
    5. セキュリティ監査 (該当する場合)

    カウンシルの推奨事項を正確に従ってください。`
})

フェーズ 4.5: 失敗時のモデルエスカレーション

修正の試行が失敗した場合:

model_escalation:
  # イシュー固有のエスカレーション (プロジェクト作業より高速)
  consecutive_failures:
    simple_issue:
      haiku_to_sonnet: 1      # 素早くエスカレーション
      sonnet_to_opus: 1
      opus_to_council: 2      # バグカウンシルを有効化
    moderate_issue:
      sonnet_to_opus: 1
      opus_to_council: 2
    complex_issue:
      # 既にopusで、2回の失敗後カウンシルへ
      opus_to_council: 2

エスカレーション時に状態を更新:

issue:
  fix_attempts:
    - attempt: 1
      model: haiku
      result: fail
      reason: "テストが引き続き失敗"
    - attempt: 2
      model: sonnet
      result: fail
      reason: "リグレッションを導入"
    - attempt: 3
      model: opus
      result: pass

フェーズ 5: 検証とドキュメント作成

  1. すべてのテストを実行
  2. イシューが解決されたことを確認
  3. リグレッションがないことを確認
  4. 動作が変更された場合はドキュメントを更新
  5. チェンジログエントリを追加

フェーズ 6: GitHub統合

# 修正の詳細とともにイシューにコメント
gh issue comment 123 --body "コミット $(git rev-parse HEAD) で修正されました

**根本原因:**
${diagnosis}

**修正:**
${fixDescription}

**テスト:**
- リグレッションテストを追加
- すべての既存テストが成功

**予防:**
${preventionMeasures}"

# イシューをクローズ
gh issue close 123 --reason completed

ユーザーへの通知

開始時:

イシュー #123 を取得中...

イシュー: ゲストユーザーのログインに失敗
ラベル: bug、high-priority
ステータス: open

イシューの複雑さを分析中...
  タイプ: bug
  重要度: high
  複雑さ: complex

深い分析のためバグカウンシルを有効化中...

バグカウンシルの進行:

バグカウンシルの検討

5つの診断エージェントをスポーン中...

[A] Root Cause Analyst    分析中...
[B] Code Archaeologist    分析中...
[C] Pattern Matcher       分析中...
[D] Systems Thinker       分析中...
[E] Adversarial Tester    分析中...

すべての分析が完了しました。ランク付き選択投票を実施中...

提案のランキング:
  C (Pattern Matcher): 11ポイント - 勝者
  D (Systems Thinker): 10ポイント
  A (Root Cause):      16ポイント
  E (Adversarial):     16ポイント
  B (Archaeologist):   22ポイント

カウンシルの決定: 提案 C
「4つの場所でのオプショナルチェーンの不一貫性」
合意: 強い (5/5中4つが上位2に投票)

実装中:

修正を実装中

以下に修正を適用:
  UserService.java:142
  ProfileController.java:89
  SettingsPage.tsx:45
  AccountApi.ts:112

予防策を追加:
  オプショナルチェーン向けのESLintルール

テスト実行中...
  234/234 テスト成功
  新しいリグレッションテストを追加

コードレビュー中...
  承認

完了時:

イシュー #123 が解決されました

イシュー: ゲストユーザーのログインに失敗

根本原因: オプショナルチェーンの不一貫性
修正: 4つの場所に ?. 演算子を追加
予防: ESLintルールを追加

変更されたファイル:
  - UserService.java
  - ProfileController.java
  - SettingsPage.tsx
  - AccountApi.ts
  - .eslintrc.js (新しいルール)

テスト: 235個が成功 (新規1個)

GitHubのイシュー #123 が自動的にクローズされました。

コスト見積もり

シンプルなバグ (カウンシルなし):

  • 分析: 約$0.20
  • 実装: 約$0.50
  • テスト: 約$0.30
  • 合計: 約$1.00

複雑なバグ (カウンシルあり):

  • カウンシル (5x Opus): 約$3.50
  • 実装: 約$1.50
  • テスト: 約$0.50
  • 合計: 約$5.50

関連項目

  • /devteam:bug - ローカルで発見されたバグを修正 (GitHubイシューがない場合に使用)
  • /devteam:implement - 一般的な実装
  • /devteam:status - 進行状況を確認

/devteam:issue vs /devteam:bug の使い分け: 追跡されているGitHubイシューを番号で修正する場合は /devteam:issue を使用します。GitHubイシューなしでローカルで発見されたバグに対しては /devteam:bug を使用します。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
michael-harris
リポジトリ
michael-harris/devteam
ライセンス
MIT
最終更新
2026/2/26

Source: https://github.com/michael-harris/devteam / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: michael-harris · michael-harris/devteam · ライセンス: MIT