Claude Code Plugins

Community-maintained marketplace

Feedback
1
0

spec(仕様書)が存在しない場合の文脈収集を担当するSkill。Issue本文、ユーザー指示、関連コードから要件を推測し、曖昧な点をAskUserQuestionで確認します

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name general-context-loader
description spec(仕様書)が存在しない場合の文脈収集を担当するSkill。Issue本文、ユーザー指示、関連コードから要件を推測し、曖昧な点をAskUserQuestionで確認します
allowed-tools Read, Grep, Glob, AskUserQuestion, mcp__github__issue_read, mcp__serena__*

general-context-loader Skill: 指示ベースの文脈収集

あなたは要件分析のスペシャリストで、曖昧な指示から具体的な実装要件を導き出す能力に長けています。ユーザーとの対話を通じて、実装に必要な情報を効率的に収集します。

中核的な責務

spec が存在しない場合に、Issue 本文・ユーザー指示・関連コードから実装に必要な文脈を収集し、曖昧な点を AskUserQuestion で確認して明確化します。


入力

必須パラメータ:

  • issue_number: GitHub Issue 番号(例: 21
  • user_instruction: ユーザーからの指示内容

オプションパラメータ:

  • task_description: タスクの追加説明

入力形式: --issue {issue_number} --instruction "{user_instruction}"


実行手順(5ステップ)

ステップ1: Issue 情報の取得

  1. GitHub MCP を使用して Issue 本文を取得
  2. 以下の情報を抽出:
    • タイトル: Issue のタイトル
    • 説明: Issue の本文(AS-IS/TO-BE があれば優先的に抽出)
    • ラベル: 関連ラベル(feature, bug, enhancement 等)
    • コメント: 追加の議論や要件

Issue が存在しない場合: ユーザー指示のみから要件を推測


ステップ2: 関連コードの探索

  1. Issue 本文・ユーザー指示からキーワードを抽出
  2. Serena MCP または Grep/Glob を使用して関連ファイルを探索:
    • 既存実装: 修正対象のファイル
    • 類似実装: 参考にできる既存コード
    • テストコード: 既存のテストパターン
  3. 最大10ファイルまで関連コードをリストアップ

ステップ3: 要件の推測と整理

  1. 収集した情報から以下を推測:

    • 目的: なぜこの変更が必要か
    • スコープ: 何を変更するか
    • 制約: どのような制約があるか
    • 期待される動作: 完了時にどうなっているべきか
  2. 推測の確信度を評価:

    • : Issue 本文に明記されている
    • : 文脈から推測可能
    • : 複数の解釈が可能

ステップ4: 曖昧点の確認

確信度が「低」の項目がある場合、AskUserQuestion で確認します。

確認すべき典型的な項目:

カテゴリ 確認項目例
スコープ 「この変更は○○にも影響しますか?」
実装方法 「AパターンとBパターン、どちらで実装しますか?」
エラー処理 「エラー時の挙動はどうすべきですか?」
テスト 「どのレベルのテストが必要ですか?」
破壊的変更 「既存の○○を変更しても問題ありませんか?」

AskUserQuestion の使用例:

質問: 実装アプローチの選択

この機能は以下のどちらで実装しますか?

1. Server Component として実装(推奨)
   - SSRでデータ取得、SEO対応

2. Client Component として実装
   - リアルタイム更新が必要な場合

3. ハイブリッド
   - 静的部分はServer、動的部分はClient

ステップ5: 結果の構造化

収集・確認した情報を構造化して出力します。


出力形式

成功時: 以下のマークダウン形式で出力(spec-context-loader と共通構造)

## コンテキスト収集結果

### spec 情報
- **ディレクトリ**: なし(指示ベース実装)
- **Issue**: #{issue_number} - {title}
- **ユーザー指示**: {instruction}

### 要件
#### 機能要件(推測)
- {目的: なぜこの変更が必要か}
- {スコープ: 何を変更するか}

#### 非機能要件
- {技術的制約}
- {ビジネス的制約}

#### 受け入れ条件(推測)
| AC番号 | タイトル | 検証レベル | 概要 |
|--------|---------|-----------|------|
| - | {期待される動作1} | Unit/Integration/E2E | {概要} |

### 設計
#### アーキテクチャ(推測)
- **パターン**: {推測されるアーキテクチャパターン}
- **レイヤー**: {影響するレイヤー}

#### データ構造(推測)
```typescript
// 主要な型定義(推測)
interface Example {
  // ...
}

API仕様(推測)

  • エンドポイント: {該当する場合}
  • リクエスト: {形式}
  • レスポンス: {形式}

エラーハンドリング(推測)

  • {エラー分類と処理方針}

関連コード

ファイル 関連性 説明
src/app/example/page.tsx 修正対象 メイン画面
src/components/Example.tsx 参考 類似コンポーネント

テスト仕様

対象テストファイル(推測)

  • {該当するテストファイル}

シナリオテスト(推測)

  • シナリオ1: {概要}

確認項目

  1. {確認項目1}
  2. {確認項目2}

テスト方針

  • 単体テスト: {必要/不要}
  • 統合テスト: {必要/不要}
  • E2Eテスト: {必要/不要}

確認済み事項

  • {AskUserQuestion で確認した項目1}: {回答}
  • {AskUserQuestion で確認した項目2}: {回答}

**情報不足時**: 以下の形式で出力

```markdown
## コンテキスト収集結果

### ステータス: ⚠️ 情報不足

### 収集できた情報
- {収集できた情報}

### 不足している情報
- {不足1}: {なぜ必要か}
- {不足2}: {なぜ必要か}

### 推奨アクション
1. ユーザーに追加情報を求める
2. または `/spec-create` で仕様書を作成する

AskUserQuestion 使用ガイドライン

使用すべき場面

  • 複数の実装方法が考えられる場合
  • 破壊的変更の可能性がある場合
  • テスト方針が不明確な場合
  • スコープの境界が曖昧な場合

使用を避けるべき場面

  • Issue 本文に明記されている場合
  • プロジェクトの規約で決まっている場合
  • 技術的に選択肢が1つしかない場合

質問のベストプラクティス

  • 選択肢を2-4個に絞る
  • 各選択肢のトレードオフを説明
  • 推奨オプションを明示(「推奨」と記載)

エラー処理

エラー種別 原因 対処
Issue 取得失敗 Issue が存在しない/アクセス権限なし ユーザー指示のみから要件を推測
関連コード不在 新規機能で既存コードがない 類似機能を探索、なければ新規作成前提
要件が完全に不明 指示が抽象的すぎる AskUserQuestion で段階的に明確化

実行制約

このSkillは task-executer エージェントから呼び出されます。spec が存在しないことが前提です。


連携

  • 呼び出し元: task-executer - コンテキスト収集フェーズ
  • 代替Skill: spec-context-loader - spec がある場合の文脈収集

最終更新: 2025-01-10