AgentSkillsCN

implementation

依据测试用例进行开发的技能。根据 test-first-development 技能所创建的测试用例,完成相应的实现。实现完成后,调用 test-first-development 技能执行测试,待测试通过后,再调用 code-reviewer 技能进行代码审查。适用场景:(1) 接受来自 test-first-development 的开发任务;(2) 对现有代码进行重构;(3) 实施 Bug 修复。

SKILL.md
--- frontmatter
name: implementation
description: テストケースに基づいて実装を行うスキル。test-first-developmentスキルで作成されたテストケースをパスする実装を行う。実装完了後はテスト実行のためtest-first-developmentスキルを呼び出し、テストパス後はcode-reviewerスキルを呼び出す。使用タイミング:(1) test-first-developmentからの実装依頼、(2) 既存コードのリファクタリング、(3) バグ修正実装。

Implementation Skill

テストケースに基づいて実装を行うスキル。

ワークフロー

1. 入力情報の確認

以下のファイル/情報を確認:

  • output_interface_design.yaml: インターフェース設計
  • 失敗しているテストケース
  • 実装対象のインターフェース/メソッド

2. 実装計画

実装順序の決定

  1. 依存関係のないコンポーネントから開始
  2. 下位レイヤーから上位レイヤーへ
  3. シンプルなメソッドから複雑なメソッドへ

実装アプローチ

  • 最小実装: テストをパスする最小限のコード
  • インクリメンタル: 小さな変更を積み重ねる
  • YAGNI: 必要になるまで作らない

3. 実装実行

コード構造

code
src/
├── domain/          # ドメインロジック
│   ├── models/      # エンティティ、値オブジェクト
│   └── services/    # ドメインサービス
├── application/     # アプリケーション層
│   ├── usecases/    # ユースケース
│   └── dto/         # データ転送オブジェクト
├── infrastructure/  # インフラ層
│   ├── repositories/# リポジトリ実装
│   └── external/    # 外部サービス連携
└── interfaces/      # インターフェース層
    ├── api/         # API エンドポイント
    └── cli/         # CLIコマンド

実装チェックリスト

  • インターフェース設計に準拠
  • エラーハンドリング実装
  • ログ出力実装
  • ドキュメントコメント記述
  • 命名規則遵守

4. コーディング規約

命名規則

対象規則
クラスPascalCaseUserService
メソッドcamelCase/snake_casegetUser/get_user
定数UPPER_SNAKE_CASEMAX_RETRY_COUNT
変数camelCase/snake_caseuserName/user_name

コード品質

code
可読性 > パフォーマンス(早期最適化を避ける)
  • 1メソッド: 20行以内目標
  • 1クラス: 200行以内目標
  • サイクロマティック複雑度: 10以下

5. エラーハンドリング

エラー分類

種類対応
バリデーションエラー400系エラー、詳細メッセージ
ビジネスルール違反カスタム例外、ログ記録
システムエラー500系エラー、アラート
外部サービスエラーリトライ、フォールバック

例外設計

code
BaseException
├── ValidationException
├── BusinessException
│   ├── NotFoundExeption
│   └── ConflictException
└── InfrastructureException
    ├── DatabaseException
    └── ExternalServiceException

6. テスト実行依頼

実装完了後、test-first-development スキルを呼び出し:

yaml
# test-first-development スキルへの引き継ぎ情報
implementation_result:
  status: "completed"
  implemented_components:
    - interface: "UserService"
      file: "src/domain/services/user_service.py"
      methods:
        - name: "create_user"
          status: "implemented"
        - name: "get_user"
          status: "implemented"
  
  changes:
    - file: "src/domain/services/user_service.py"
      type: "created"
    - file: "src/domain/models/user.py"
      type: "created"
  
  request: "テスト実行と結果確認"

7. テスト結果対応

テスト成功時

  1. カバレッジ確認
  2. リファクタリング検討
  3. code-reviewer スキル呼び出し

テスト失敗時

  1. 失敗原因分析
  2. 修正実装
  3. 再度 test-first-development スキル呼び出し

8. リファクタリング

テストパス後、以下の改善を検討:

リファクタリングパターン

パターン適用場面
Extract Method長いメソッド
Extract Class大きすぎるクラス
Rename不明確な命名
Replace Magic Numberハードコードされた値
Introduce Parameter Object多すぎるパラメータ

実装原則

SOLID原則

  • S: 単一責任の原則
  • O: 開放閉鎖の原則
  • L: リスコフの置換原則
  • I: インターフェース分離の原則
  • D: 依存性逆転の原則

クリーンコード

  • 意図を明確にする命名
  • 小さな関数
  • 副作用を避ける
  • コメントより自己文書化

スキル連携

スキル呼び出しタイミング
test-first-development実装完了後、テスト実行依頼
code-reviewer全テストパス後、レビュー依頼