name: unit-test description: 単体テスト追加に特化したピース(テスト分析→テスト実装→レビュー→修正) piece_config: provider_options: codex: network_access: true opencode: network_access: true max_movements: 20 initial_movement: plan_test loop_monitors: - cycle: - ai_review - ai_fix threshold: 3 judge: persona: supervisor instruction_template: | ai_review と ai_fix のループが {cycle_count} 回繰り返されました。 各サイクルのレポートを確認し、このループが健全(進捗がある)か、 非生産的(同じ問題を繰り返している)かを判断してください。 **参照するレポート:** - AIレビュー結果: {report:ai-review.md} **判断基準:** - 各サイクルで新しい問題が発見・修正されているか - 同じ指摘が繰り返されていないか - 修正が実際に反映されているか rules: - condition: 健全(進捗あり) next: ai_review - condition: 非生産的(改善なし) next: review_test movements: - name: plan_test edit: false persona: test-planner policy: testing knowledge: - architecture - backend provider_options: claude: allowed_tools: - Read - Glob - Grep - Bash - WebSearch - WebFetch rules: - condition: テスト計画が完了 next: implement_test - condition: ユーザーが質問をしている(テスト追加タスクではない) next: COMPLETE - condition: 要件が不明確、情報不足 next: ABORT appendix: | 確認事項: - {質問1} - {質問2} instruction: plan-test output_contracts: report: - name: test-plan.md format: test-plan - name: implement_test edit: true persona: coder policy: - coding - testing session: refresh knowledge: - backend - architecture provider_options: claude: allowed_tools: - Read - Glob - Grep - Edit - Write - Bash - WebSearch - WebFetch required_permission_mode: edit rules: - condition: テスト実装完了 next: ai_review - condition: 実装未着手(レポートのみ) next: ai_review - condition: 判断できない、情報不足 next: ai_review - condition: ユーザー入力が必要 next: implement_test requires_user_input: true interactive_only: true instruction: implement-test output_contracts: report: - name: coder-scope.md format: coder-scope - name: coder-decisions.md format: coder-decisions - name: ai_review edit: false persona: ai-antipattern-reviewer policy: - review - ai-antipattern provider_options: claude: allowed_tools: - Read - Glob - Grep - WebSearch - WebFetch rules: - condition: AI特有の問題なし next: review_test - condition: AI特有の問題あり next: ai_fix instruction: ai-review output_contracts: report: - name: ai-review.md format: ai-review - name: ai_fix edit: true persona: coder policy: - coding - testing session: refresh knowledge: - backend - architecture provider_options: claude: allowed_tools: - Read - Glob - Grep - Edit - Write - Bash - WebSearch - WebFetch required_permission_mode: edit pass_previous_response: false rules: - condition: AI問題の修正完了 next: ai_review - condition: 修正不要(指摘対象ファイル/仕様の確認済み) next: ai_no_fix - condition: 判断できない、情報不足 next: ai_no_fix instruction: ai-fix - name: ai_no_fix edit: false persona: architecture-reviewer policy: review provider_options: claude: allowed_tools: - Read - Glob - Grep rules: - condition: ai_reviewの指摘が妥当(修正すべき) next: ai_fix - condition: ai_fixの判断が妥当(修正不要) next: review_test instruction: arbitrate - name: review_test edit: false persona: qa-reviewer policy: - review - qa provider_options: claude: allowed_tools: - Read - Glob - Grep - WebSearch - WebFetch rules: - condition: approved next: supervise - condition: needs_fix next: fix instruction: review-test output_contracts: report: - name: qa-review.md format: qa-review - name: fix edit: true persona: coder policy: - coding - testing session: refresh knowledge: - backend - architecture provider_options: claude: allowed_tools: - Read - Glob - Grep - Edit - Write - Bash - WebSearch - WebFetch required_permission_mode: edit pass_previous_response: false rules: - condition: 修正完了 next: review_test - condition: 判断できない、情報不足 next: plan_test instruction: fix - name: supervise edit: false persona: supervisor policy: review provider_options: claude: allowed_tools: - Read - Glob - Grep - Bash - WebSearch - WebFetch pass_previous_response: false rules: - condition: すべて問題なし next: COMPLETE - condition: 要求未達成、テスト失敗、ビルドエラー next: plan_test instruction: supervise output_contracts: report: - name: supervisor-validation.md format: supervisor-validation - name: summary.md format: summary use_judge: false