2026-01-26 23:03:23 +09:00

908 lines
26 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Default TAKT Workflow
# Plan -> Coder -> Architect Review -> AI Review -> Security Review -> Supervisor Approval
name: default
description: Standard development workflow with planning and specialized reviews
max_iterations: 20
initial_step: plan
steps:
- name: plan
agent: ~/.takt/agents/default/planner.md
allowed_tools:
- Read
- Glob
- Grep
- Bash
- WebSearch
- WebFetch
status_rules: |
## 判断基準
| 状況 | 判定 |
|------|------|
| 要件が明確で実装可能 | DONE |
| 要件が不明確、情報不足 | BLOCKED |
## 出力フォーマット
| 状況 | タグ |
|------|------|
| 分析完了 | `[PLANNER:DONE]` |
| 情報不足 | `[PLANNER:BLOCKED]` |
### DONE時の出力構造
```
[PLANNER:DONE]
```
### BLOCKED時の出力構造
```
[PLANNER:BLOCKED]
確認事項:
- {質問1}
- {質問2}
```
分析結果を以下のタグで出力してください:
- [PLANNER:DONE] 分析完了
- [PLANNER:BLOCKED] 情報不足(確認事項を記載)
instruction_template: |
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: plan (タスク分析)
- Report Directory: .takt/reports/{report_dir}/
- Report File: .takt/reports/{report_dir}/00-plan.md
## User Request
{task}
## Previous Response (implementからの差し戻し時)
{previous_response}
## Instructions
タスクを分析し、実装方針を立ててください。
**注意:** Previous Responseがある場合は差し戻しのため、
その内容を踏まえて計画を見直してくださいreplan
**やること:**
1. タスクの要件を理解する
2. 影響範囲を特定する
3. 実装アプローチを決める
**レポート出力:** 上記の `Report File` に出力してください。
- ファイルが存在しない場合: 新規作成
- ファイルが存在する場合: `## Iteration {iteration}` セクションを追記
**レポートフォーマット:**
```markdown
# タスク計画
## 元の要求
{ユーザーの要求をそのまま記載}
## 分析結果
### 目的
{達成すべきこと}
### スコープ
{影響範囲}
### 実装アプローチ
{どう進めるか}
## 確認事項(あれば)
- {不明点や確認が必要な点}
```
pass_previous_response: true
transitions:
- condition: done
next_step: implement
- condition: blocked
next_step: ABORT
- name: implement
agent: ~/.takt/agents/default/coder.md
allowed_tools:
- Read
- Glob
- Grep
- Edit
- Write
- Bash
- WebSearch
- WebFetch
status_rules: |
## 出力フォーマット
作業完了時は必ず以下のタグを含めてください:
| 状況 | タグ |
|------|------|
| 実装完了 | `[CODER:DONE]` |
| Architectの指摘を修正完了 | `[CODER:FIXED]` |
| 判断できない/情報不足 | `[CODER:BLOCKED]` |
**重要**: 迷ったら `[BLOCKED]`。勝手に判断しない。
### 出力例
**実装完了時:**
```
実装完了しました。
- 作成: `src/auth/service.ts`, `tests/auth.test.ts`
- 変更: `src/routes.ts`
[CODER:DONE]
```
**ブロック時:**
```
[CODER:BLOCKED]
理由: DBスキーマが未定義のため実装できません
必要な情報: usersテーブルの構造
```
**修正完了時:**
```
Architectの指摘3点を修正しました。
- 型定義を追加
- エラーハンドリングを修正
- テストケースを追加
[CODER:FIXED]
```
instruction_template: |
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: implement
- Report Directory: .takt/reports/{report_dir}/
- Report Files:
- Scope: .takt/reports/{report_dir}/01-coder-scope.md
- Decisions: .takt/reports/{report_dir}/02-coder-decisions.md
## User Request
{task}
## Additional User Inputs
{user_inputs}
## Instructions
planステップで立てた計画に従って実装してください。
計画レポート00-plan.mdを参照し、実装を進めてください。
**レポート出力:** 上記の `Report Files` に出力してください。
- ファイルが存在しない場合: 新規作成
- ファイルが存在する場合: `## Iteration {iteration}` セクションを追記
**Scopeレポートフォーマット実装開始時に作成:**
```markdown
# 変更スコープ宣言
## タスク
{タスクの1行要約}
## 変更予定
| 種別 | ファイル |
|------|---------|
| 作成 | `src/example.ts` |
| 変更 | `src/routes.ts` |
## 推定規模
Small / Medium / Large
## 影響範囲
- {影響するモジュールや機能}
```
**Decisionsレポートフォーマット実装完了時、決定がある場合のみ:**
```markdown
# 決定ログ
## 1. {決定内容}
- **背景**: {なぜ決定が必要だったか}
- **検討した選択肢**: {選択肢リスト}
- **理由**: {選んだ理由}
```
transitions:
- condition: done
next_step: review
- condition: blocked
next_step: plan
- name: review
agent: ~/.takt/agents/default/architect.md
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
status_rules: |
## 判定基準
| 状況 | 判定 |
|------|------|
| 構造に問題がある | REJECT |
| 設計原則違反がある | REJECT |
| セキュリティ問題がある | REJECT |
| テストが不十分 | REJECT |
| 改善すべき点がある(ブロッキングではないが対応すべき) | IMPROVE |
| 問題なし | APPROVE |
**IMPROVEの使い方:**
- 設計としては許容範囲だが、改善した方が良い点がある場合
- 次のステップに進む前に修正させたい軽微な問題
- 例: 命名の改善、小さなリファクタリング、コメント追加
## ステータス出力形式
レビュー結果を以下のタグで出力してください:
- [ARCHITECT:APPROVE] 問題なし
- [ARCHITECT:IMPROVE] 軽微な改善必要
- [ARCHITECT:REJECT] 構造的な修正必要
### 出力例
**REJECTの場合:**
```
[ARCHITECT:REJECT]
### 問題点
1. **ファイルサイズ超過**
- 場所: `src/services/user.ts` (523行)
- 問題: 単一ファイルに認証・権限・プロフィール管理が混在
- 修正案: 以下の3ファイルに分割
- `src/services/auth.ts` - 認証
- `src/services/permission.ts` - 権限
- `src/services/profile.ts` - プロフィール
```
**APPROVEの場合:**
```
[ARCHITECT:APPROVE]
### 良い点
- モジュール分割が適切
- 単一責務が守られている
### 改善提案(任意)
- `utils/` 内の共通処理は将来的に整理を検討
```
instruction_template: |
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: review (アーキテクチャレビュー)
- Report Directory: .takt/reports/{report_dir}/
- Report File: .takt/reports/{report_dir}/03-architect-review.md
## Original User Request (ワークフロー開始時の元の要求)
{task}
## Git Diff
```diff
{git_diff}
```
## Instructions
**アーキテクチャと設計**のレビューに集中してください。AI特有の問題はレビューしないでください次のステップで行います
変更をレビューしてフィードバックを提供してください。
**レポート出力:** 上記の `Report File` に出力してください。
- ファイルが存在しない場合: 新規作成
- ファイルが存在する場合: `## Iteration {iteration}` セクションを追記
**レポートフォーマット:**
```markdown
# アーキテクチャレビュー
## 結果: APPROVE / IMPROVE / REJECT
## サマリー
{1-2文で結果を要約}
## 確認した観点
- [x] 構造・設計
- [x] コード品質
- [x] 変更スコープ
## 問題点REJECTの場合
| # | 場所 | 問題 | 修正案 |
|---|------|------|--------|
| 1 | `src/file.ts:42` | 問題の説明 | 修正方法 |
## 改善提案(任意・ブロッキングではない)
- {将来的な改善提案}
```
**認知負荷軽減ルール:**
- APPROVE + 問題なし → サマリーのみ5行以内
- APPROVE + 軽微な提案 → サマリー + 改善提案15行以内
- REJECT → 問題点を表形式で30行以内
transitions:
- condition: approved
next_step: ai_review
- condition: improve
next_step: improve
- condition: rejected
next_step: fix
- name: improve
agent: ~/.takt/agents/default/coder.md
allowed_tools:
- Read
- Glob
- Grep
- Edit
- Write
- Bash
- WebSearch
- WebFetch
status_rules: |
## 出力フォーマット
作業完了時は必ず以下のタグを含めてください:
| 状況 | タグ |
|------|------|
| 実装完了 | `[CODER:DONE]` |
| Architectの指摘を修正完了 | `[CODER:FIXED]` |
| 判断できない/情報不足 | `[CODER:BLOCKED]` |
**重要**: 迷ったら `[BLOCKED]`。勝手に判断しない。
### 出力例
**実装完了時:**
```
実装完了しました。
- 作成: `src/auth/service.ts`, `tests/auth.test.ts`
- 変更: `src/routes.ts`
[CODER:DONE]
```
**ブロック時:**
```
[CODER:BLOCKED]
理由: DBスキーマが未定義のため実装できません
必要な情報: usersテーブルの構造
```
**修正完了時:**
```
Architectの指摘3点を修正しました。
- 型定義を追加
- エラーハンドリングを修正
- テストケースを追加
[CODER:FIXED]
```
instruction_template: |
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: improve
## Architect Feedback (これが最新の指示です - 優先して対応してください)
{previous_response}
## Original User Request (ワークフロー開始時の元の要求 - 参考情報)
{task}
## Additional User Inputs
{user_inputs}
## Instructions
**重要**: Architectの改善提案に対応してください。
これらは軽微な改善であり、設計上の大きな問題ではありません。
以下のような改善を行ってください:
- 命名の改善
- 小さなリファクタリング
- コメントの追加・修正
- コードの整理
pass_previous_response: true
transitions:
- condition: done
next_step: review
- condition: blocked
next_step: plan
- name: ai_review
agent: ~/.takt/agents/default/ai-reviewer.md
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
status_rules: |
## 判定基準
| 状況 | 判定 |
|------|------|
| 仮定が間違っている(動作に影響) | REJECT |
| もっともらしいが間違っているコード | REJECT |
| コードベースの文脈に重大な不整合 | REJECT |
| スコープクリープ | APPROVE警告を付記 |
| 軽微なスタイルの逸脱のみ | APPROVE |
| コードが文脈に合い動作する | APPROVE |
**注意:** スコープクリープは警告として記載するが、それだけでREJECTしない。大きな変更が必要なタスクもある。
## 出力フォーマット
| 状況 | タグ |
|------|------|
| AI特有の問題なし | `[AI_REVIEW:APPROVE]` |
| 問題あり | `[AI_REVIEW:REJECT]` |
## ステータス出力形式
レビュー結果を以下のタグで出力してください:
- [AI_REVIEW:APPROVE] AI特有の問題なし
- [AI_REVIEW:REJECT] 問題あり
instruction_template: |
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: ai_review (AI生成コードレビュー)
- Report Directory: .takt/reports/{report_dir}/
- Report File: .takt/reports/{report_dir}/04-ai-review.md
## Original User Request (ワークフロー開始時の元の要求)
{task}
## Git Diff
```diff
{git_diff}
```
## Instructions
AI特有の問題についてコードをレビューしてください:
- 仮定の検証
- もっともらしいが間違っているパターン
- 既存コードベースとの適合性
- スコープクリープの検出
**レポート出力:** 上記の `Report File` に出力してください。
- ファイルが存在しない場合: 新規作成
- ファイルが存在する場合: `## Iteration {iteration}` セクションを追記
**レポートフォーマット:**
```markdown
# AI生成コードレビュー
## 結果: APPROVE / REJECT
## サマリー
{1文で結果を要約}
## 検証した項目
| 観点 | 結果 | 備考 |
|------|------|------|
| 仮定の妥当性 | ✅ | - |
| API/ライブラリの実在 | ✅ | - |
| コンテキスト適合 | ✅ | - |
| スコープ | ✅ | - |
## 問題点REJECTの場合
| # | カテゴリ | 場所 | 問題 |
|---|---------|------|------|
| 1 | 幻覚API | `src/file.ts:23` | 存在しないメソッド |
```
**認知負荷軽減ルール:**
- 問題なし → サマリー1文 + チェック表のみ10行以内
- 問題あり → + 問題を表形式で25行以内
transitions:
- condition: approved
next_step: security_review
- condition: rejected
next_step: ai_fix
- name: ai_fix
agent: ~/.takt/agents/default/coder.md
allowed_tools:
- Read
- Glob
- Grep
- Edit
- Write
- Bash
- WebSearch
- WebFetch
status_rules: |
## 出力フォーマット
作業完了時は必ず以下のタグを含めてください:
| 状況 | タグ |
|------|------|
| 実装完了 | `[CODER:DONE]` |
| Architectの指摘を修正完了 | `[CODER:FIXED]` |
| 判断できない/情報不足 | `[CODER:BLOCKED]` |
**重要**: 迷ったら `[BLOCKED]`。勝手に判断しない。
### 出力例
**実装完了時:**
```
実装完了しました。
- 作成: `src/auth/service.ts`, `tests/auth.test.ts`
- 変更: `src/routes.ts`
[CODER:DONE]
```
**ブロック時:**
```
[CODER:BLOCKED]
理由: DBスキーマが未定義のため実装できません
必要な情報: usersテーブルの構造
```
**修正完了時:**
```
Architectの指摘3点を修正しました。
- 型定義を追加
- エラーハンドリングを修正
- テストケースを追加
[CODER:FIXED]
```
instruction_template: |
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: ai_fix
## AI Review Feedback (これが最新の指示です - 優先して対応してください)
{previous_response}
## Original User Request (ワークフロー開始時の元の要求 - 参考情報)
{task}
## Additional User Inputs
{user_inputs}
## Instructions
**重要**: AI Reviewerのフィードバックに対応してください。
以下に集中してください:
- 間違った仮定の修正
- もっともらしいが間違っている実装の修正
- 既存コードベースのパターンとの整合
- スコープクリープの除去
pass_previous_response: true
transitions:
- condition: done
next_step: review
- condition: blocked
next_step: plan
- name: security_review
agent: ~/.takt/agents/default/security.md
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
status_rules: |
## 判定基準
| 状況 | 判定 |
|------|------|
| 重大な脆弱性即REJECT | REJECT |
| 中程度の脆弱性 | REJECT |
| 軽微な問題・警告のみ | APPROVE警告を付記 |
| セキュリティ問題なし | APPROVE |
## ステータス出力形式
レビュー結果を以下のタグで出力してください:
- [SECURITY:APPROVE] セキュリティ問題なし
- [SECURITY:REJECT] 脆弱性があり修正が必要(具体的な問題をリスト)
instruction_template: |
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: security_review
- Report Directory: .takt/reports/{report_dir}/
- Report File: .takt/reports/{report_dir}/05-security-review.md
## Original User Request (ワークフロー開始時の元の要求)
{task}
## Git Diff
```diff
{git_diff}
```
## Instructions
変更に対してセキュリティレビューを行ってください。以下の脆弱性を確認してください:
- インジェクション攻撃SQL, コマンド, XSS
- 認証・認可の問題
- データ露出リスク
- 暗号化の弱点
**レポート出力:** 上記の `Report File` に出力してください。
- ファイルが存在しない場合: 新規作成
- ファイルが存在する場合: `## Iteration {iteration}` セクションを追記
**レポートフォーマット:**
```markdown
# セキュリティレビュー
## 結果: APPROVE / REJECT
## 重大度: None / Low / Medium / High / Critical
## チェック結果
| カテゴリ | 結果 | 備考 |
|---------|------|------|
| インジェクション | ✅ | - |
| 認証・認可 | ✅ | - |
| データ保護 | ✅ | - |
| 依存関係 | ✅ | - |
## 脆弱性REJECTの場合
| # | 重大度 | 種類 | 場所 | 修正案 |
|---|--------|------|------|--------|
| 1 | High | SQLi | `src/db.ts:42` | パラメータ化クエリを使用 |
## 警告(ブロッキングではない)
- {セキュリティに関する推奨事項}
```
**認知負荷軽減ルール:**
- 問題なし → チェック表のみ10行以内
- 警告あり → + 警告を1-2行15行以内
- 脆弱性あり → + 表形式で30行以内
transitions:
- condition: approved
next_step: supervise
- condition: rejected
next_step: security_fix
- name: security_fix
agent: ~/.takt/agents/default/coder.md
allowed_tools:
- Read
- Glob
- Grep
- Edit
- Write
- Bash
- WebSearch
- WebFetch
status_rules: |
## ステータス出力形式
作業完了時は必ず以下のタグを含めてください:
- [CODER:DONE] セキュリティ修正完了
- [CODER:BLOCKED] 判断できない/情報不足
instruction_template: |
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: security_fix
## Security Review Feedback (これが最新の指示です - 優先して対応してください)
{previous_response}
## Original User Request (ワークフロー開始時の元の要求 - 参考情報)
{task}
## Additional User Inputs
{user_inputs}
## Instructions
**重要**: セキュリティレビューで指摘された脆弱性を修正してください。
セキュリティの問題は最優先で対応が必要です。
pass_previous_response: true
transitions:
- condition: done
next_step: security_review
- condition: blocked
next_step: plan
- name: fix
agent: ~/.takt/agents/default/coder.md
allowed_tools:
- Read
- Glob
- Grep
- Edit
- Write
- Bash
- WebSearch
- WebFetch
status_rules: |
## 出力フォーマット
作業完了時は必ず以下のタグを含めてください:
| 状況 | タグ |
|------|------|
| 実装完了 | `[CODER:DONE]` |
| Architectの指摘を修正完了 | `[CODER:FIXED]` |
| 判断できない/情報不足 | `[CODER:BLOCKED]` |
**重要**: 迷ったら `[BLOCKED]`。勝手に判断しない。
### 出力例
**実装完了時:**
```
実装完了しました。
- 作成: `src/auth/service.ts`, `tests/auth.test.ts`
- 変更: `src/routes.ts`
[CODER:DONE]
```
**ブロック時:**
```
[CODER:BLOCKED]
理由: DBスキーマが未定義のため実装できません
必要な情報: usersテーブルの構造
```
**修正完了時:**
```
Architectの指摘3点を修正しました。
- 型定義を追加
- エラーハンドリングを修正
- テストケースを追加
[CODER:FIXED]
```
instruction_template: |
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: fix
## Architect Feedback (これが最新の指示です - 優先して対応してください)
{previous_response}
## Original User Request (ワークフロー開始時の元の要求 - 参考情報)
{task}
## Additional User Inputs
{user_inputs}
## Instructions
**重要**: Architectのフィードバックに対応してください。
「Original User Request」は参考情報であり、最新の指示ではありません。
セッションの会話履歴を確認し、Architectの指摘事項を修正してください。
pass_previous_response: true
transitions:
- condition: done
next_step: review
- condition: blocked
next_step: plan
- name: supervise
agent: ~/.takt/agents/default/supervisor.md
allowed_tools:
- Read
- Glob
- Grep
- Bash
- WebSearch
- WebFetch
status_rules: |
| 状況 | 判定 |
|------|------|
| 要求が満たされていない | REJECT |
| テストが失敗する | REJECT |
| ビルドが通らない | REJECT |
| その場しのぎが残っている | REJECT |
| すべて問題なし | APPROVE |
**原則**: 疑わしきは REJECT。曖昧な承認はしない。
## 出力フォーマット
| 状況 | タグ |
|------|------|
| 最終承認 | `[SUPERVISOR:APPROVE]` |
| 差し戻し | `[SUPERVISOR:REJECT]` |
instruction_template: |
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: supervise (final verification)
- Report Directory: .takt/reports/{report_dir}/
- Report Files:
- Validation: .takt/reports/{report_dir}/06-supervisor-validation.md
- Summary: .takt/reports/{report_dir}/summary.md
## Original User Request
{task}
## Git Diff
```diff
{git_diff}
```
## Instructions
テスト実行、ビルド確認、最終承認を行ってください。
**ワークフロー全体の確認:**
1. 計画00-plan.mdと実装結果が一致しているか
2. 各レビューステップの指摘が対応されているか
3. 元のタスク目的が達成されているか
**レポートの確認:** Report Directory内の全レポートを読み、
未対応の改善提案がないか確認してください。
**レポート出力:** 上記の `Report Files` に出力してください。
- ファイルが存在しない場合: 新規作成
- ファイルが存在する場合: `## Iteration {iteration}` セクションを追記
**Validationレポートフォーマット:**
```markdown
# 最終検証結果
## 結果: APPROVE / REJECT
## 検証サマリー
| 項目 | 状態 | 確認方法 |
|------|------|---------|
| 要求充足 | ✅ | 要求リストと照合 |
| テスト | ✅ | `npm test` (N passed) |
| ビルド | ✅ | `npm run build` 成功 |
| 動作確認 | ✅ | 主要フロー確認 |
## 成果物
- 作成: {作成したファイル}
- 変更: {変更したファイル}
## 未完了項目REJECTの場合
| # | 項目 | 理由 |
|---|------|------|
| 1 | {項目} | {理由} |
```
**SummaryレポートフォーマットAPPROVEの場合のみ:**
```markdown
# タスク完了サマリー
## タスク
{元の要求を1-2文で}
## 結果
✅ 完了
## 変更内容
| 種別 | ファイル | 概要 |
|------|---------|------|
| 作成 | `src/file.ts` | 概要説明 |
## レビュー結果
| レビュー | 結果 |
|---------|------|
| Architect | ✅ APPROVE |
| AI Review | ✅ APPROVE |
| Security | ✅ APPROVE |
| Supervisor | ✅ APPROVE |
## 確認コマンド
```bash
npm test
npm run build
```
```
transitions:
- condition: approved
next_step: COMPLETE
- condition: rejected
next_step: plan