## 概要
仕様ドキュメント `/Users/m_naruse/work/git/takt/task_planning/output-contracts-and-quality-gates.md` に基づき、YAML構造の変更を実装する。
---
## タスク一覧
### 【高】トップレベル構造の変更
- 現在の `output_contracts` を `report_formats` にリネーム
- レポートテンプレート定義として機能させる
### 【高】Movement内の output_contracts 構造変更
- 各 movement の `output_contracts` が直接レポート配列を持つ構造に変更
- `output_contracts.report` の `report` キーを廃止
**変更後の構造:**
```yaml
report_formats: # トップレベル(テンプレート定義)
plan: ...
movements:
- name: plan
output_contracts: # 直接配列(reportキー不要)
- name: 00-plan.md
format: plan
```
### 【中】quality_gates の実装
- エージェントへの通達として機能させる(自動検証は将来実装)
- Movement完了時にエージェントが参照できる形式で定義
---
## 制約(ユーザー明示)
- 後方互換性は不要
---
## 確認方法
- 既存のピース定義YAMLが新構造でパースできること
- テストが通ること
114 lines
3.2 KiB
YAML
114 lines
3.2 KiB
YAML
name: research
|
|
description: Research piece - autonomously executes research without asking questions
|
|
max_iterations: 10
|
|
personas:
|
|
research-planner: ../personas/research-planner.md
|
|
research-digger: ../personas/research-digger.md
|
|
research-supervisor: ../personas/research-supervisor.md
|
|
initial_movement: plan
|
|
movements:
|
|
- name: plan
|
|
persona: research-planner
|
|
allowed_tools:
|
|
- Read
|
|
- Glob
|
|
- Grep
|
|
- WebSearch
|
|
- WebFetch
|
|
instruction_template: |
|
|
## Piece Status
|
|
- Iteration: {iteration}/{max_iterations} (piece-wide)
|
|
- Movement Iteration: {movement_iteration} (times this movement has run)
|
|
- Movement: plan
|
|
|
|
## Research Request
|
|
{task}
|
|
|
|
## Supervisor Feedback (for re-planning)
|
|
{previous_response}
|
|
|
|
## Additional User Inputs
|
|
{user_inputs}
|
|
|
|
## Instructions
|
|
Create a research plan for the above request.
|
|
|
|
**Important**: Do not ask the user questions.
|
|
- Make assumptions for unclear points and proceed
|
|
- If multiple interpretations exist, include all in the research scope
|
|
- If there is feedback from Supervisor, incorporate it into the plan
|
|
rules:
|
|
- condition: Planning is complete
|
|
next: dig
|
|
- condition: Insufficient information to create a plan
|
|
next: ABORT
|
|
- name: dig
|
|
persona: research-digger
|
|
allowed_tools:
|
|
- Read
|
|
- Glob
|
|
- Grep
|
|
- WebSearch
|
|
- WebFetch
|
|
instruction_template: |
|
|
## Piece Status
|
|
- Iteration: {iteration}/{max_iterations} (piece-wide)
|
|
- Movement Iteration: {movement_iteration} (times this movement has run)
|
|
- Movement: dig
|
|
|
|
## Original Research Request
|
|
{task}
|
|
|
|
## Research Plan
|
|
{previous_response}
|
|
|
|
## Additional User Inputs
|
|
{user_inputs}
|
|
|
|
## Instructions
|
|
Execute the research according to the plan above.
|
|
|
|
**Important**: Do not ask the user questions.
|
|
- Research within the scope of what can be investigated
|
|
- Report items that could not be researched as "Unable to research"
|
|
|
|
Available tools:
|
|
- Web search
|
|
- GitHub search (gh command)
|
|
- Codebase search
|
|
- File reading
|
|
rules:
|
|
- condition: Research is complete
|
|
next: supervise
|
|
- condition: Unable to conduct research
|
|
next: ABORT
|
|
- name: supervise
|
|
persona: research-supervisor
|
|
allowed_tools:
|
|
- Read
|
|
- Glob
|
|
- Grep
|
|
- WebSearch
|
|
- WebFetch
|
|
instruction_template: |
|
|
## Piece Status
|
|
- Iteration: {iteration}/{max_iterations} (piece-wide)
|
|
- Movement Iteration: {movement_iteration} (times this movement has run)
|
|
- Movement: supervise (research quality evaluation)
|
|
|
|
## Original Research Request
|
|
{task}
|
|
|
|
## Digger's Research Results
|
|
{previous_response}
|
|
|
|
## Instructions
|
|
Evaluate the research results and determine if they adequately answer the original request.
|
|
|
|
**Important**: If there are issues, include specific instructions for the Planner.
|
|
rules:
|
|
- condition: Research results adequately answer the original request
|
|
next: COMPLETE
|
|
- condition: Research results are insufficient and replanning is needed
|
|
next: plan
|