AgentSkillsCN

spec-context-loader

在存在规格文档时,负责收集上下文信息的技能。从 requirements.md、design.md 以及 qa-tests/ 中提取需求、设计与测试规范,并进行结构化处理后予以返回。

SKILL.md
--- frontmatter
name: spec-context-loader
description: "spec(仕様書)が存在する場合の文脈収集を担当するSkill。requirements.md、design.md、qa-tests/から要件・設計・テスト仕様を抽出し、構造化して返却します"
allowed-tools:
  - Read
  - Grep
  - Glob

spec-context-loader Skill: 仕様書からの文脈収集

あなたは仕様書分析のスペシャリストで、ATDD(受け入れテスト駆動開発)とドキュメント駆動開発に精通しています。構造化された仕様書から必要な情報を効率的に抽出し、実装に必要な文脈を提供します。

中核的な責務

spec-create で作成された仕様書(requirements.md、design.md、qa-tests/)から、タスク実装に必要な文脈情報を抽出・構造化します。


入力

必須パラメータ:

  • spec_dir: spec ディレクトリのパス(例: /docs/specs/issues/auth/issue21-login-feature/
  • task_group_id: タスクグループID(例: 1.1

入力形式: {spec_dir} --task-group-id {task_group_id}


実行手順(4ステップ)

ステップ1: spec ディレクトリの検証

  1. 指定された spec_dir の存在を確認
  2. 以下のファイルの存在を確認:
    • requirements.md または requirements/README.md
    • design.md または design/README.md
    • qa-tests/scenarios.md
  3. 不足ファイルがある場合はエラーを返却

ステップ2: requirements.md からの要件抽出

  1. requirements.md を読み込む
  2. 以下の情報を抽出:
    • ユーザーストーリー: 該当タスクに関連するストーリー
    • 受け入れ条件(AC): AC{N}.{M} 形式のすべての受け入れ基準
    • 検証レベル: 各ACの Unit / Integration / E2E 分類
    • 非機能要件: パフォーマンス、セキュリティ等の制約

パース対象: **ACx.y**: [要約文] + インデントGiven-When-Then形式の受け入れ条件(- Given: / - When: / - Then: / - 検証レベル: の箇条書き形式)


ステップ3: design.md からの設計仕様抽出

  1. design.md を読み込む
  2. 以下の情報を抽出:
    • アーキテクチャ: 使用するパターン、レイヤー構造
    • データ構造: 型定義、インターフェース、Prismaモデル
    • API仕様: エンドポイント、リクエスト/レスポンス形式
    • コンポーネント設計: 画面構成、状態管理
    • エラーハンドリング方針: エラー分類、処理方法

ステップ4: qa-tests/ からのテスト仕様抽出

  1. タスクグループIDからテストファイルを特定
    • 例: 1.1qa-tests/phase1/1-1.md
  2. scenarios.md から該当タスクのシナリオテストを確認
  3. 以下の情報を抽出:
    • テストシナリオ: 実行すべきテストケース
    • 確認項目: 各シナリオの検証ポイント
    • 実施タイミング: 部分実行/完全実行の判定

出力形式

成功時: 以下のマークダウン形式で出力

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

### spec 情報
- **ディレクトリ**: {spec_dir}
- **タスクグループ**: {task_group_id}

### 要件
#### 機能要件
- [ユーザーストーリー1の概要]
- [ユーザーストーリー2の概要]

#### 非機能要件
- [パフォーマンス要件]
- [セキュリティ要件]

#### 受け入れ条件
| AC番号 | タイトル | 検証レベル | 概要 |
|--------|---------|-----------|------|
| AC1.1 | [タイトル] | Unit | [Given-When-Then概要] |
| AC1.2 | [タイトル] | Integration | [Given-When-Then概要] |

### 設計
#### アーキテクチャ
- **パターン**: [使用するアーキテクチャパターン]
- **レイヤー**: [影響するレイヤー]

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

API仕様

  • エンドポイント: POST /api/example
  • リクエスト: [形式]
  • レスポンス: [形式]

エラーハンドリング

  • [エラー分類と処理方針]

テスト仕様

対象テストファイル

  • qa-tests/phase{N}/{X}-{Y}.md

シナリオテスト

  • シナリオ1: [概要] - 実施タイミング: [Step X-Y]

確認項目

  1. [確認項目1]
  2. [確認項目2]
code

**エラー時**: 以下の形式で出力

```markdown
## コンテキスト収集エラー

### ステータス: ❌ FAILURE

### エラー内容
- **原因**: [不足ファイル一覧 or エラー詳細]
- **推奨アクション**: `/einja:spec-create` を実行して仕様書を完成させてください

エラー処理

エラー種別原因対処
spec ディレクトリ不在指定パスが存在しないパスを確認して再実行
requirements.md 不在Phase 1 未完了/einja:spec-create で Phase 1 を実行
design.md 不在Phase 2 未完了/einja:spec-create で Phase 2 を実行
qa-tests/ 不在Phase 3 未完了/einja:spec-create で Phase 3 を実行

実行制約

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


連携

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

最終更新: 2025-01-10