expert reviewの最新化

This commit is contained in:
nrslib 2026-01-26 12:17:33 +09:00
parent 4a66b6bd15
commit 8dc3fe3976
2 changed files with 846 additions and 68 deletions

View File

@ -2,9 +2,9 @@
# Review workflow with CQRS+ES, Frontend, Security, and QA experts
#
# Flow:
# implement -> cqrs_es_review -> frontend_review -> security_review -> qa_review -> supervise -> COMPLETE
# ↓ ↓ ↓ ↓ ↓
# fix_cqrs_es fix_frontend fix_security fix_qa fix_supervisor
# plan -> implement -> cqrs_es_review -> frontend_review -> ai_review -> security_review -> qa_review -> supervise -> COMPLETE
# ↓ ↓ ↓ ↓ ↓
# fix_cqrs_es fix_frontend ai_fix fix_security fix_qa fix_supervisor
#
# Fix destination is determined by Coder based on change impact:
# - fix_security: MINOR→security_review, MAJOR→cqrs_es_review
@ -15,38 +15,141 @@ description: CQRS+ES, Frontend, Security, QA Expert Review
max_iterations: 20
initial_step: plan
steps:
# ===========================================
# Phase 0: Planning
# ===========================================
- name: plan
agent: ~/.takt/agents/default/planner.md
instruction_template: |
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: plan (Task Analysis)
- Report Directory: .takt/reports/{report_dir}/
- Report File: .takt/reports/{report_dir}/00-plan.md
## User Request
{task}
## Previous Response (when returned from implement)
{previous_response}
## Instructions
Analyze the task and create an implementation plan.
**Note:** If returned from implement step (Previous Response exists),
review and revise the plan based on that feedback (replan).
**Tasks:**
1. Understand the requirements
2. Identify impact scope
3. Decide implementation approach
**Report output:** Output to the `Report File` specified above.
- If file does not exist: Create new file
- If file exists: Append with `## Iteration {iteration}` section
**Report format:**
```markdown
# Task Plan
## Original Request
{User's request as-is}
## Analysis Results
### Objective
{What needs to be achieved}
### Scope
{Impact scope}
### Implementation Approach
{How to proceed}
## Clarifications Needed (if any)
- {Unclear points or items requiring confirmation}
```
Output [PLANNER:DONE] when complete.
Output [PLANNER:BLOCKED] if requirements are unclear.
pass_previous_response: true
transitions:
- condition: done
next_step: implement
- condition: blocked
next_step: ABORT
# ===========================================
# Phase 1: Implementation
# ===========================================
- name: implement
agent: ~/.takt/agents/default/coder.md
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
## Original User Request (This is the original request, not the latest instruction)
## User Request
{task}
## Additional User Inputs (Information added during workflow)
## Additional User Inputs
{user_inputs}
## Instructions
**Important**: The "Original User Request" above is the initial request when the workflow started.
If this is iteration 2 or later, research should already be completed.
Check the session conversation history and continue from where the previous work left off.
Follow the plan from the plan step and implement.
Refer to the plan report (00-plan.md) and proceed with implementation.
- Iteration 1: Understand the request and research if needed
- Iteration 2+: Continue implementation based on previous work
**Report output:** Output to the `Report Files` specified above.
- If file does not exist: Create new file
- If file exists: Append with `## Iteration {iteration}` section
**Scope report format (create at implementation start):**
```markdown
# Change Scope Declaration
## Task
{One-line task summary}
## Planned Changes
| Type | File |
|------|------|
| Create | `src/example.ts` |
| Modify | `src/routes.ts` |
## Estimated Size
Small / Medium / Large
## Impact Scope
- {Affected modules or features}
```
**Decisions report format (on completion, only if decisions were made):**
```markdown
# Decision Log
## 1. {Decision Content}
- **Background**: {Why the decision was needed}
- **Options Considered**: {List of options}
- **Reason**: {Why this option was chosen}
```
Include [CODER:DONE] when complete.
Include [CODER:BLOCKED] if unable to proceed.
Include [CODER:BLOCKED] if you cannot proceed (returns to plan).
transitions:
- condition: done
next_step: cqrs_es_review
- condition: blocked
next_step: implement
next_step: plan
# ===========================================
# Phase 1: CQRS+ES Review
# Phase 2: CQRS+ES Review
# ===========================================
- name: cqrs_es_review
agent: ~/.takt/agents/expert-review/cqrs-es-reviewer.md
@ -54,6 +157,8 @@ steps:
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: cqrs_es_review (CQRS+ES Expert Review)
- Report Directory: .takt/reports/{report_dir}/
- Report File: .takt/reports/{report_dir}/03-cqrs-es-review.md
## Original User Request
{task}
@ -77,6 +182,34 @@ steps:
**Note**: If this project does not use CQRS+ES patterns,
review from a general domain design perspective.
**Report output:** Output to the `Report File` specified above.
- If file does not exist: Create new file
- If file exists: Append with `## Iteration {iteration}` section
**Report format:**
```markdown
# CQRS+ES Review
## Result: APPROVE / REJECT
## Summary
{1-2 sentences summarizing result}
## Reviewed Perspectives
| Perspective | Result | Notes |
|-------------|--------|-------|
| Aggregate Design | ✅ | - |
| Event Design | ✅ | - |
| Command/Query Separation | ✅ | - |
| Projections | ✅ | - |
| Eventual Consistency | ✅ | - |
## Issues (if REJECT)
| # | Location | Issue | Fix |
|---|----------|-------|-----|
| 1 | `src/file.ts:42` | Issue description | Fix method |
```
Include:
- [CQRS-ES:APPROVE] if CQRS+ES design is sound
- [CQRS-ES:REJECT] if design issues found (list specific issues)
@ -119,10 +252,10 @@ steps:
- condition: done
next_step: cqrs_es_review
- condition: blocked
next_step: fix_cqrs_es
next_step: plan
# ===========================================
# Phase 2: Frontend Review
# Phase 3: Frontend Review
# ===========================================
- name: frontend_review
agent: ~/.takt/agents/expert-review/frontend-reviewer.md
@ -130,6 +263,8 @@ steps:
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: frontend_review (Frontend Expert Review)
- Report Directory: .takt/reports/{report_dir}/
- Report File: .takt/reports/{report_dir}/04-frontend-review.md
## Original User Request
{task}
@ -153,12 +288,40 @@ steps:
**Note**: If this project does not include frontend code,
output [FRONTEND:APPROVE] and proceed.
**Report output:** Output to the `Report File` specified above.
- If file does not exist: Create new file
- If file exists: Append with `## Iteration {iteration}` section
**Report format:**
```markdown
# Frontend Review
## Result: APPROVE / REJECT
## Summary
{1-2 sentences summarizing result}
## Reviewed Perspectives
| Perspective | Result | Notes |
|-------------|--------|-------|
| Component Design | ✅ | - |
| State Management | ✅ | - |
| Performance | ✅ | - |
| Accessibility | ✅ | - |
| Type Safety | ✅ | - |
## Issues (if REJECT)
| # | Location | Issue | Fix |
|---|----------|-------|-----|
| 1 | `src/file.tsx:42` | Issue description | Fix method |
```
Include:
- [FRONTEND:APPROVE] if frontend design is sound
- [FRONTEND:REJECT] if design issues found (list specific issues)
transitions:
- condition: approved
next_step: security_review
next_step: ai_review
- condition: rejected
next_step: fix_frontend
@ -195,10 +358,110 @@ steps:
- condition: done
next_step: frontend_review
- condition: blocked
next_step: fix_frontend
next_step: plan
# ===========================================
# Phase 3: Security Review
# Phase 4: AI Review
# ===========================================
- name: ai_review
agent: ~/.takt/agents/default/ai-reviewer.md
instruction_template: |
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: ai_review (AI-Generated Code Review)
- Report Directory: .takt/reports/{report_dir}/
- Report File: .takt/reports/{report_dir}/05-ai-review.md
## Original User Request (Initial request from workflow start)
{task}
## Git Diff
```diff
{git_diff}
```
## Instructions
Review the code for AI-specific issues:
- Assumption validation
- Plausible but wrong patterns
- Context fit with existing codebase
- Scope creep detection
**Report output:** Output to the `Report File` specified above.
- If file does not exist: Create new file
- If file exists: Append with `## Iteration {iteration}` section
**Report format:**
```markdown
# AI-Generated Code Review
## Result: APPROVE / REJECT
## Summary
{One sentence summarizing result}
## Verified Items
| Aspect | Result | Notes |
|--------|--------|-------|
| Assumption validity | ✅ | - |
| API/Library existence | ✅ | - |
| Context fit | ✅ | - |
| Scope | ✅ | - |
## Issues (if REJECT)
| # | Category | Location | Issue |
|---|----------|----------|-------|
| 1 | Hallucinated API | `src/file.ts:23` | Non-existent method |
```
**Cognitive load reduction rules:**
- No issues → Summary 1 line + check table only (10 lines or less)
- Issues found → + Issues in table format (25 lines or less)
Include:
- [AI_REVIEW:APPROVE] if no AI-specific issues found
- [AI_REVIEW:REJECT] if issues detected (list specific problems)
transitions:
- condition: approved
next_step: security_review
- condition: rejected
next_step: ai_fix
- name: ai_fix
agent: ~/.takt/agents/default/coder.md
instruction_template: |
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: ai_fix
## AI Review Feedback (This is the latest instruction - prioritize this)
{previous_response}
## Original User Request (Initial request from workflow start - for reference)
{task}
## Additional User Inputs
{user_inputs}
## Instructions
**Important**: Address the AI Reviewer's feedback.
Focus on:
- Correcting incorrect assumptions
- Fixing plausible-but-wrong implementations
- Aligning with existing codebase patterns
- Removing scope creep
Include [CODER:DONE] when complete.
Include [CODER:BLOCKED] if unable to proceed.
pass_previous_response: true
transitions:
- condition: done
next_step: cqrs_es_review
- condition: blocked
next_step: plan
# ===========================================
# Phase 5: Security Review
# ===========================================
- name: security_review
agent: ~/.takt/agents/expert-review/security-reviewer.md
@ -206,6 +469,8 @@ steps:
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: security_review (Security Expert Review)
- Report Directory: .takt/reports/{report_dir}/
- Report File: .takt/reports/{report_dir}/06-security-review.md
## Original User Request
{task}
@ -225,6 +490,35 @@ steps:
- Encryption appropriateness
- OWASP Top 10
**Report output:** Output to the `Report File` specified above.
- If file does not exist: Create new file
- If file exists: Append with `## Iteration {iteration}` section
**Report format:**
```markdown
# Security Review
## Result: APPROVE / REJECT
## Severity: None / Low / Medium / High / Critical
## Check Results
| Category | Result | Notes |
|----------|--------|-------|
| Injection | ✅ | - |
| Auth/Authz | ✅ | - |
| Data Protection | ✅ | - |
| Dependencies | ✅ | - |
## Vulnerabilities (if REJECT)
| # | Severity | Type | Location | Fix |
|---|----------|------|----------|-----|
| 1 | High | SQLi | `src/db.ts:42` | Use parameterized query |
## Warnings (non-blocking)
- {Security recommendations}
```
Include:
- [SECURITY:APPROVE] if no security issues found
- [SECURITY:REJECT] if vulnerabilities found (list specific issues with severity)
@ -276,10 +570,10 @@ steps:
- condition: major
next_step: cqrs_es_review
- condition: blocked
next_step: fix_security
next_step: plan
# ===========================================
# Phase 4: QA Review
# Phase 6: QA Review
# ===========================================
- name: qa_review
agent: ~/.takt/agents/expert-review/qa-reviewer.md
@ -287,6 +581,8 @@ steps:
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: qa_review (QA Expert Review)
- Report Directory: .takt/reports/{report_dir}/
- Report File: .takt/reports/{report_dir}/07-qa-review.md
## Original User Request
{task}
@ -307,6 +603,34 @@ steps:
- Logging and monitoring
- Maintainability
**Report output:** Output to the `Report File` specified above.
- If file does not exist: Create new file
- If file exists: Append with `## Iteration {iteration}` section
**Report format:**
```markdown
# QA Review
## Result: APPROVE / REJECT
## Summary
{1-2 sentences summarizing result}
## Reviewed Perspectives
| Perspective | Result | Notes |
|-------------|--------|-------|
| Test Coverage | ✅ | - |
| Test Quality | ✅ | - |
| Error Handling | ✅ | - |
| Documentation | ✅ | - |
| Maintainability | ✅ | - |
## Issues (if REJECT)
| # | Category | Issue | Fix |
|---|----------|-------|-----|
| 1 | Testing | Issue description | Fix method |
```
Include:
- [QA:APPROVE] if quality standards are met
- [QA:REJECT] if quality issues found (list specific issues)
@ -362,10 +686,10 @@ steps:
- condition: major
next_step: cqrs_es_review
- condition: blocked
next_step: fix_qa
next_step: plan
# ===========================================
# Phase 5: Supervision
# Phase 7: Supervision
# ===========================================
- name: supervise
agent: ~/.takt/agents/expert-review/supervisor.md
@ -373,6 +697,10 @@ steps:
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: supervise (Final Review)
- Report Directory: .takt/reports/{report_dir}/
- Report Files:
- Validation: .takt/reports/{report_dir}/08-supervisor-validation.md
- Summary: .takt/reports/{report_dir}/summary.md
## Original User Request
{task}
@ -386,21 +714,84 @@ steps:
Reaching this step means all the following reviews have been APPROVED:
- CQRS+ES Review: APPROVED
- Frontend Review: APPROVED
- AI Review: APPROVED
- Security Review: APPROVED
- QA Review: APPROVED
## Instructions
As supervisor, oversee all review results and make the final decision.
Run tests, verify the build, and perform final approval.
**Review Criteria:**
- Are there contradictions between review results?
- Are original requirements met?
- Is overall consistency maintained?
- Is it release-worthy quality?
**Workflow Overall Review:**
1. Does the implementation match the plan (00-plan.md)?
2. Were all review step issues addressed?
3. Was the original task objective achieved?
Include:
- [SUPERVISOR:APPROVE] if ready for release
- [SUPERVISOR:REJECT] if additional work needed (list specific items)
**Review Reports:** Read all reports in Report Directory and
check for any unaddressed improvement suggestions.
**Report output:** Output to the `Report Files` specified above.
- If file does not exist: Create new file
- If file exists: Append with `## Iteration {iteration}` section
**Validation report format:**
```markdown
# Final Validation Results
## Result: APPROVE / REJECT
## Validation Summary
| Item | Status | Verification Method |
|------|--------|---------------------|
| Requirements met | ✅ | Matched against requirements list |
| Tests | ✅ | `npm test` (N passed) |
| Build | ✅ | `npm run build` succeeded |
| Functional check | ✅ | Main flows verified |
## Deliverables
- Created: {Created files}
- Modified: {Modified files}
## Incomplete Items (if REJECT)
| # | Item | Reason |
|---|------|--------|
| 1 | {Item} | {Reason} |
```
**Summary report format (only if APPROVE):**
```markdown
# Task Completion Summary
## Task
{Original request in 1-2 sentences}
## Result
✅ Complete
## Changes
| Type | File | Summary |
|------|------|---------|
| Create | `src/file.ts` | Summary description |
## Review Results
| Review | Result |
|--------|--------|
| CQRS+ES | ✅ APPROVE |
| Frontend | ✅ APPROVE |
| AI Review | ✅ APPROVE |
| Security | ✅ APPROVE |
| QA | ✅ APPROVE |
| Supervisor | ✅ APPROVE |
## Verification Commands
```bash
npm test
npm run build
```
```
Output:
- [SUPERVISOR:APPROVE] if ready to merge
- [SUPERVISOR:REJECT] if issues found (specify the issues)
transitions:
- condition: approved
next_step: COMPLETE
@ -436,6 +827,4 @@ steps:
- condition: done
next_step: supervise
- condition: blocked
next_step: fix_supervisor
initial_step: implement
next_step: plan

View File

@ -2,9 +2,9 @@
# CQRS+ES、フロントエンド、セキュリティ、QAの専門家によるレビューワークフロー
#
# フロー:
# implement -> cqrs_es_review -> frontend_review -> security_review -> qa_review -> supervise -> COMPLETE
# ↓ ↓ ↓ ↓ ↓
# fix_cqrs_es fix_frontend fix_security fix_qa fix_supervisor
# plan -> implement -> cqrs_es_review -> frontend_review -> ai_review -> security_review -> qa_review -> supervise -> COMPLETE
# ↓ ↓ ↓ ↓ ↓
# fix_cqrs_es fix_frontend ai_fix fix_security fix_qa fix_supervisor
#
# 修正時の戻り先はCoderが判断:
# - fix_security: MINOR→security_review, MAJOR→cqrs_es_review
@ -15,38 +15,141 @@ description: CQRS+ES・フロントエンド・セキュリティ・QA専門家
max_iterations: 20
initial_step: plan
steps:
# ===========================================
# Phase 0: Planning
# ===========================================
- name: plan
agent: ~/.takt/agents/default/planner.md
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
# タスク計画
## 元の要求
{ユーザーの要求をそのまま記載}
## 分析結果
### 目的
{達成すべきこと}
### スコープ
{影響範囲}
### 実装アプローチ
{どう進めるか}
## 確認事項(あれば)
- {不明点や確認が必要な点}
```
完了したら [PLANNER:DONE] を出力。
要件が不明確な場合は [PLANNER:BLOCKED] を出力。
pass_previous_response: true
transitions:
- condition: done
next_step: implement
- condition: blocked
next_step: ABORT
# ===========================================
# Phase 1: Implementation
# ===========================================
- name: implement
agent: ~/.takt/agents/default/coder.md
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
## Original User Request (これは最新の指示ではなく、ワークフロー開始時の元の要求です)
## User Request
{task}
## Additional User Inputs (ワークフロー中に追加された情報)
## Additional User Inputs
{user_inputs}
## Instructions
**重要**: 上記の「Original User Request」はワークフロー開始時の元の要求です。
イテレーション2回目以降の場合、すでにリサーチや調査は完了しているはずです。
セッションの会話履歴を確認し、前回の作業の続きから進めてください。
planステップで立てた計画に従って実装してください。
計画レポート00-plan.mdを参照し、実装を進めてください。
- イテレーション1: 要求を理解し、必要ならリサーチを行う
- イテレーション2以降: 前回の作業結果を踏まえて実装を進める
**レポート出力:** 上記の `Report Files` に出力してください。
- ファイルが存在しない場合: 新規作成
- ファイルが存在する場合: `## Iteration {iteration}` セクションを追記
**Scopeレポートフォーマット実装開始時に作成:**
```markdown
# 変更スコープ宣言
## タスク
{タスクの1行要約}
## 変更予定
| 種別 | ファイル |
|------|---------|
| 作成 | `src/example.ts` |
| 変更 | `src/routes.ts` |
## 推定規模
Small / Medium / Large
## 影響範囲
- {影響するモジュールや機能}
```
**Decisionsレポートフォーマット実装完了時、決定がある場合のみ:**
```markdown
# 決定ログ
## 1. {決定内容}
- **背景**: {なぜ決定が必要だったか}
- **検討した選択肢**: {選択肢リスト}
- **理由**: {選んだ理由}
```
完了時は [CODER:DONE] を含めてください。
進行できない場合は [CODER:BLOCKED] を含めてください。
進行できない場合は [CODER:BLOCKED] を出力し、planに戻ります
transitions:
- condition: done
next_step: cqrs_es_review
- condition: blocked
next_step: implement
next_step: plan
# ===========================================
# Phase 1: CQRS+ES Review
# Phase 2: CQRS+ES Review
# ===========================================
- name: cqrs_es_review
agent: ~/.takt/agents/expert-review/cqrs-es-reviewer.md
@ -54,6 +157,8 @@ steps:
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: cqrs_es_review (CQRS+ES専門レビュー)
- Report Directory: .takt/reports/{report_dir}/
- Report File: .takt/reports/{report_dir}/03-cqrs-es-review.md
## Original User Request
{task}
@ -77,6 +182,34 @@ steps:
**注意**: このプロジェクトがCQRS+ESパターンを使用していない場合は、
一般的なドメイン設計の観点からレビューしてください。
**レポート出力:** 上記の `Report File` に出力してください。
- ファイルが存在しない場合: 新規作成
- ファイルが存在する場合: `## Iteration {iteration}` セクションを追記
**レポートフォーマット:**
```markdown
# CQRS+ESレビュー
## 結果: APPROVE / REJECT
## サマリー
{1-2文で結果を要約}
## 確認した観点
| 観点 | 結果 | 備考 |
|------|------|------|
| Aggregate設計 | ✅ | - |
| イベント設計 | ✅ | - |
| Command/Query分離 | ✅ | - |
| プロジェクション | ✅ | - |
| 結果整合性 | ✅ | - |
## 問題点REJECTの場合
| # | 場所 | 問題 | 修正案 |
|---|------|------|--------|
| 1 | `src/file.ts:42` | 問題の説明 | 修正方法 |
```
Include:
- [CQRS-ES:APPROVE] if CQRS+ES design is sound
- [CQRS-ES:REJECT] if design issues found (list specific issues)
@ -119,10 +252,10 @@ steps:
- condition: done
next_step: cqrs_es_review
- condition: blocked
next_step: fix_cqrs_es
next_step: plan
# ===========================================
# Phase 2: Frontend Review
# Phase 3: Frontend Review
# ===========================================
- name: frontend_review
agent: ~/.takt/agents/expert-review/frontend-reviewer.md
@ -130,6 +263,8 @@ steps:
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: frontend_review (フロントエンド専門レビュー)
- Report Directory: .takt/reports/{report_dir}/
- Report File: .takt/reports/{report_dir}/04-frontend-review.md
## Original User Request
{task}
@ -153,12 +288,40 @@ steps:
**注意**: このプロジェクトがフロントエンドを含まない場合は、
[FRONTEND:APPROVE] として次に進んでください。
**レポート出力:** 上記の `Report File` に出力してください。
- ファイルが存在しない場合: 新規作成
- ファイルが存在する場合: `## Iteration {iteration}` セクションを追記
**レポートフォーマット:**
```markdown
# フロントエンドレビュー
## 結果: APPROVE / REJECT
## サマリー
{1-2文で結果を要約}
## 確認した観点
| 観点 | 結果 | 備考 |
|------|------|------|
| コンポーネント設計 | ✅ | - |
| 状態管理 | ✅ | - |
| パフォーマンス | ✅ | - |
| アクセシビリティ | ✅ | - |
| 型安全性 | ✅ | - |
## 問題点REJECTの場合
| # | 場所 | 問題 | 修正案 |
|---|------|------|--------|
| 1 | `src/file.tsx:42` | 問題の説明 | 修正方法 |
```
Include:
- [FRONTEND:APPROVE] if frontend design is sound
- [FRONTEND:REJECT] if design issues found (list specific issues)
transitions:
- condition: approved
next_step: security_review
next_step: ai_review
- condition: rejected
next_step: fix_frontend
@ -195,10 +358,110 @@ steps:
- condition: done
next_step: frontend_review
- condition: blocked
next_step: fix_frontend
next_step: plan
# ===========================================
# Phase 3: Security Review
# Phase 4: AI Review
# ===========================================
- name: ai_review
agent: ~/.takt/agents/default/ai-reviewer.md
instruction_template: |
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: ai_review (AI生成コードレビュー)
- Report Directory: .takt/reports/{report_dir}/
- Report File: .takt/reports/{report_dir}/05-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行以内
以下を含めてください:
- [AI_REVIEW:APPROVE] AI特有の問題が見つからない場合
- [AI_REVIEW:REJECT] 問題が検出された場合(具体的な問題をリスト)
transitions:
- condition: approved
next_step: security_review
- condition: rejected
next_step: ai_fix
- name: ai_fix
agent: ~/.takt/agents/default/coder.md
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のフィードバックに対応してください。
以下に集中してください:
- 間違った仮定の修正
- もっともらしいが間違っている実装の修正
- 既存コードベースのパターンとの整合
- スコープクリープの除去
完了時は [CODER:DONE] を含めてください。
進行できない場合は [CODER:BLOCKED] を含めてください。
pass_previous_response: true
transitions:
- condition: done
next_step: cqrs_es_review
- condition: blocked
next_step: plan
# ===========================================
# Phase 5: Security Review
# ===========================================
- name: security_review
agent: ~/.takt/agents/expert-review/security-reviewer.md
@ -206,6 +469,8 @@ steps:
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: security_review (セキュリティ専門レビュー)
- Report Directory: .takt/reports/{report_dir}/
- Report File: .takt/reports/{report_dir}/06-security-review.md
## Original User Request
{task}
@ -225,6 +490,35 @@ steps:
- 暗号化の適切性
- OWASP Top 10
**レポート出力:** 上記の `Report File` に出力してください。
- ファイルが存在しない場合: 新規作成
- ファイルが存在する場合: `## Iteration {iteration}` セクションを追記
**レポートフォーマット:**
```markdown
# セキュリティレビュー
## 結果: APPROVE / REJECT
## 重大度: None / Low / Medium / High / Critical
## チェック結果
| カテゴリ | 結果 | 備考 |
|---------|------|------|
| インジェクション | ✅ | - |
| 認証・認可 | ✅ | - |
| データ保護 | ✅ | - |
| 依存関係 | ✅ | - |
## 脆弱性REJECTの場合
| # | 重大度 | 種類 | 場所 | 修正案 |
|---|--------|------|------|--------|
| 1 | High | SQLi | `src/db.ts:42` | パラメータ化クエリを使用 |
## 警告(ブロッキングではない)
- {セキュリティに関する推奨事項}
```
Include:
- [SECURITY:APPROVE] if no security issues found
- [SECURITY:REJECT] if vulnerabilities found (list specific issues with severity)
@ -276,10 +570,10 @@ steps:
- condition: major
next_step: cqrs_es_review
- condition: blocked
next_step: fix_security
next_step: plan
# ===========================================
# Phase 4: QA Review
# Phase 6: QA Review
# ===========================================
- name: qa_review
agent: ~/.takt/agents/expert-review/qa-reviewer.md
@ -287,6 +581,8 @@ steps:
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: qa_review (QA専門レビュー)
- Report Directory: .takt/reports/{report_dir}/
- Report File: .takt/reports/{report_dir}/07-qa-review.md
## Original User Request
{task}
@ -307,6 +603,34 @@ steps:
- ログとモニタリング
- 保守性
**レポート出力:** 上記の `Report File` に出力してください。
- ファイルが存在しない場合: 新規作成
- ファイルが存在する場合: `## Iteration {iteration}` セクションを追記
**レポートフォーマット:**
```markdown
# QAレビュー
## 結果: APPROVE / REJECT
## サマリー
{1-2文で結果を要約}
## 確認した観点
| 観点 | 結果 | 備考 |
|------|------|------|
| テストカバレッジ | ✅ | - |
| テスト品質 | ✅ | - |
| エラーハンドリング | ✅ | - |
| ドキュメント | ✅ | - |
| 保守性 | ✅ | - |
## 問題点REJECTの場合
| # | カテゴリ | 問題 | 修正案 |
|---|---------|------|--------|
| 1 | テスト | 問題の説明 | 修正方法 |
```
Include:
- [QA:APPROVE] if quality standards are met
- [QA:REJECT] if quality issues found (list specific issues)
@ -362,10 +686,10 @@ steps:
- condition: major
next_step: cqrs_es_review
- condition: blocked
next_step: fix_qa
next_step: plan
# ===========================================
# Phase 5: Supervision
# Phase 7: Supervision
# ===========================================
- name: supervise
agent: ~/.takt/agents/expert-review/supervisor.md
@ -373,6 +697,10 @@ steps:
## Workflow Context
- Iteration: {iteration}/{max_iterations}
- Step: supervise (最終確認)
- Report Directory: .takt/reports/{report_dir}/
- Report Files:
- Validation: .takt/reports/{report_dir}/08-supervisor-validation.md
- Summary: .takt/reports/{report_dir}/summary.md
## Original User Request
{task}
@ -386,21 +714,84 @@ steps:
このステップに到達したということは、以下のレビューがすべてAPPROVEされています
- CQRS+ES Review: APPROVED
- Frontend Review: APPROVED
- AI Review: APPROVED
- Security Review: APPROVED
- QA Review: APPROVED
## Instructions
監督者として、すべてのレビュー結果を統括し、最終判断を下してください。
テスト実行、ビルド確認、最終承認を行ってください。
**確認観点:**
- 各レビュー結果に矛盾がないか
- 元の要求が満たされているか
- 全体として整合性が取れているか
- リリースに値する品質か
**ワークフロー全体の確認:**
1. 計画00-plan.mdと実装結果が一致しているか
2. 各レビューステップの指摘が対応されているか
3. 元のタスク目的が達成されているか
Include:
- [SUPERVISOR:APPROVE] if ready for release
- [SUPERVISOR:REJECT] if additional work needed (list specific items)
**レポートの確認:** 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` | 概要説明 |
## レビュー結果
| レビュー | 結果 |
|---------|------|
| CQRS+ES | ✅ APPROVE |
| Frontend | ✅ APPROVE |
| AI Review | ✅ APPROVE |
| Security | ✅ APPROVE |
| QA | ✅ APPROVE |
| Supervisor | ✅ APPROVE |
## 確認コマンド
```bash
npm test
npm run build
```
```
出力:
- [SUPERVISOR:APPROVE] すべて完了、マージ可能
- [SUPERVISOR:REJECT] 問題あり(具体的な問題を記載)
transitions:
- condition: approved
next_step: COMPLETE
@ -436,6 +827,4 @@ steps:
- condition: done
next_step: supervise
- condition: blocked
next_step: fix_supervisor
initial_step: implement
next_step: plan