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 # Review workflow with CQRS+ES, Frontend, Security, and QA experts
# #
# Flow: # Flow:
# implement -> cqrs_es_review -> frontend_review -> security_review -> qa_review -> supervise -> COMPLETE # plan -> implement -> cqrs_es_review -> frontend_review -> ai_review -> security_review -> qa_review -> supervise -> COMPLETE
# ↓ ↓ ↓ ↓ ↓ # ↓ ↓ ↓ ↓ ↓
# fix_cqrs_es fix_frontend fix_security fix_qa fix_supervisor # fix_cqrs_es fix_frontend ai_fix fix_security fix_qa fix_supervisor
# #
# Fix destination is determined by Coder based on change impact: # Fix destination is determined by Coder based on change impact:
# - fix_security: MINOR→security_review, MAJOR→cqrs_es_review # - fix_security: MINOR→security_review, MAJOR→cqrs_es_review
@ -15,38 +15,141 @@ description: CQRS+ES, Frontend, Security, QA Expert Review
max_iterations: 20 max_iterations: 20
initial_step: plan
steps: 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 - name: implement
agent: ~/.takt/agents/default/coder.md agent: ~/.takt/agents/default/coder.md
instruction_template: | instruction_template: |
## Workflow Context ## Workflow Context
- Iteration: {iteration}/{max_iterations} - Iteration: {iteration}/{max_iterations}
- Step: implement - 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} {task}
## Additional User Inputs (Information added during workflow) ## Additional User Inputs
{user_inputs} {user_inputs}
## Instructions ## Instructions
**Important**: The "Original User Request" above is the initial request when the workflow started. Follow the plan from the plan step and implement.
If this is iteration 2 or later, research should already be completed. Refer to the plan report (00-plan.md) and proceed with implementation.
Check the session conversation history and continue from where the previous work left off.
- Iteration 1: Understand the request and research if needed **Report output:** Output to the `Report Files` specified above.
- Iteration 2+: Continue implementation based on previous work - 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:DONE] when complete.
Include [CODER:BLOCKED] if unable to proceed. Include [CODER:BLOCKED] if you cannot proceed (returns to plan).
transitions: transitions:
- condition: done - condition: done
next_step: cqrs_es_review next_step: cqrs_es_review
- condition: blocked - condition: blocked
next_step: implement next_step: plan
# =========================================== # ===========================================
# Phase 1: CQRS+ES Review # Phase 2: CQRS+ES Review
# =========================================== # ===========================================
- name: cqrs_es_review - name: cqrs_es_review
agent: ~/.takt/agents/expert-review/cqrs-es-reviewer.md agent: ~/.takt/agents/expert-review/cqrs-es-reviewer.md
@ -54,6 +157,8 @@ steps:
## Workflow Context ## Workflow Context
- Iteration: {iteration}/{max_iterations} - Iteration: {iteration}/{max_iterations}
- Step: cqrs_es_review (CQRS+ES Expert Review) - 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 ## Original User Request
{task} {task}
@ -77,6 +182,34 @@ steps:
**Note**: If this project does not use CQRS+ES patterns, **Note**: If this project does not use CQRS+ES patterns,
review from a general domain design perspective. 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: Include:
- [CQRS-ES:APPROVE] if CQRS+ES design is sound - [CQRS-ES:APPROVE] if CQRS+ES design is sound
- [CQRS-ES:REJECT] if design issues found (list specific issues) - [CQRS-ES:REJECT] if design issues found (list specific issues)
@ -119,10 +252,10 @@ steps:
- condition: done - condition: done
next_step: cqrs_es_review next_step: cqrs_es_review
- condition: blocked - condition: blocked
next_step: fix_cqrs_es next_step: plan
# =========================================== # ===========================================
# Phase 2: Frontend Review # Phase 3: Frontend Review
# =========================================== # ===========================================
- name: frontend_review - name: frontend_review
agent: ~/.takt/agents/expert-review/frontend-reviewer.md agent: ~/.takt/agents/expert-review/frontend-reviewer.md
@ -130,6 +263,8 @@ steps:
## Workflow Context ## Workflow Context
- Iteration: {iteration}/{max_iterations} - Iteration: {iteration}/{max_iterations}
- Step: frontend_review (Frontend Expert Review) - 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 ## Original User Request
{task} {task}
@ -153,12 +288,40 @@ steps:
**Note**: If this project does not include frontend code, **Note**: If this project does not include frontend code,
output [FRONTEND:APPROVE] and proceed. 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: Include:
- [FRONTEND:APPROVE] if frontend design is sound - [FRONTEND:APPROVE] if frontend design is sound
- [FRONTEND:REJECT] if design issues found (list specific issues) - [FRONTEND:REJECT] if design issues found (list specific issues)
transitions: transitions:
- condition: approved - condition: approved
next_step: security_review next_step: ai_review
- condition: rejected - condition: rejected
next_step: fix_frontend next_step: fix_frontend
@ -195,10 +358,110 @@ steps:
- condition: done - condition: done
next_step: frontend_review next_step: frontend_review
- condition: blocked - 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 - name: security_review
agent: ~/.takt/agents/expert-review/security-reviewer.md agent: ~/.takt/agents/expert-review/security-reviewer.md
@ -206,6 +469,8 @@ steps:
## Workflow Context ## Workflow Context
- Iteration: {iteration}/{max_iterations} - Iteration: {iteration}/{max_iterations}
- Step: security_review (Security Expert Review) - 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 ## Original User Request
{task} {task}
@ -225,6 +490,35 @@ steps:
- Encryption appropriateness - Encryption appropriateness
- OWASP Top 10 - 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: Include:
- [SECURITY:APPROVE] if no security issues found - [SECURITY:APPROVE] if no security issues found
- [SECURITY:REJECT] if vulnerabilities found (list specific issues with severity) - [SECURITY:REJECT] if vulnerabilities found (list specific issues with severity)
@ -276,10 +570,10 @@ steps:
- condition: major - condition: major
next_step: cqrs_es_review next_step: cqrs_es_review
- condition: blocked - condition: blocked
next_step: fix_security next_step: plan
# =========================================== # ===========================================
# Phase 4: QA Review # Phase 6: QA Review
# =========================================== # ===========================================
- name: qa_review - name: qa_review
agent: ~/.takt/agents/expert-review/qa-reviewer.md agent: ~/.takt/agents/expert-review/qa-reviewer.md
@ -287,6 +581,8 @@ steps:
## Workflow Context ## Workflow Context
- Iteration: {iteration}/{max_iterations} - Iteration: {iteration}/{max_iterations}
- Step: qa_review (QA Expert Review) - 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 ## Original User Request
{task} {task}
@ -307,6 +603,34 @@ steps:
- Logging and monitoring - Logging and monitoring
- Maintainability - 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: Include:
- [QA:APPROVE] if quality standards are met - [QA:APPROVE] if quality standards are met
- [QA:REJECT] if quality issues found (list specific issues) - [QA:REJECT] if quality issues found (list specific issues)
@ -362,10 +686,10 @@ steps:
- condition: major - condition: major
next_step: cqrs_es_review next_step: cqrs_es_review
- condition: blocked - condition: blocked
next_step: fix_qa next_step: plan
# =========================================== # ===========================================
# Phase 5: Supervision # Phase 7: Supervision
# =========================================== # ===========================================
- name: supervise - name: supervise
agent: ~/.takt/agents/expert-review/supervisor.md agent: ~/.takt/agents/expert-review/supervisor.md
@ -373,6 +697,10 @@ steps:
## Workflow Context ## Workflow Context
- Iteration: {iteration}/{max_iterations} - Iteration: {iteration}/{max_iterations}
- Step: supervise (Final Review) - 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 ## Original User Request
{task} {task}
@ -386,21 +714,84 @@ steps:
Reaching this step means all the following reviews have been APPROVED: Reaching this step means all the following reviews have been APPROVED:
- CQRS+ES Review: APPROVED - CQRS+ES Review: APPROVED
- Frontend Review: APPROVED - Frontend Review: APPROVED
- AI Review: APPROVED
- Security Review: APPROVED - Security Review: APPROVED
- QA Review: APPROVED - QA Review: APPROVED
## Instructions ## Instructions
As supervisor, oversee all review results and make the final decision. Run tests, verify the build, and perform final approval.
**Review Criteria:** **Workflow Overall Review:**
- Are there contradictions between review results? 1. Does the implementation match the plan (00-plan.md)?
- Are original requirements met? 2. Were all review step issues addressed?
- Is overall consistency maintained? 3. Was the original task objective achieved?
- Is it release-worthy quality?
Include: **Review Reports:** Read all reports in Report Directory and
- [SUPERVISOR:APPROVE] if ready for release check for any unaddressed improvement suggestions.
- [SUPERVISOR:REJECT] if additional work needed (list specific items)
**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: transitions:
- condition: approved - condition: approved
next_step: COMPLETE next_step: COMPLETE
@ -436,6 +827,4 @@ steps:
- condition: done - condition: done
next_step: supervise next_step: supervise
- condition: blocked - condition: blocked
next_step: fix_supervisor next_step: plan
initial_step: implement

View File

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