feat: default ピースをテスト先行開発に変更し、レポートファイル名をセマンティック命名に統一

- 全ピースのレポートファイル名から番号プレフィックスを除去(00-plan.md → plan.md 等)
- default ピースに write_tests ムーブメントと testing-review 並列レビューを追加
- プランナーに参照資料の意図判断ルールとスコープ外セクションを追加
This commit is contained in:
nrslib 2026-02-25 01:02:33 +09:00
parent 8372721607
commit 6901b2a121
48 changed files with 305 additions and 179 deletions

View File

@ -4,7 +4,7 @@ Review the reports from each cycle and determine whether this loop
is healthy (making progress) or unproductive (repeating the same issues). is healthy (making progress) or unproductive (repeating the same issues).
**Reports to reference:** **Reports to reference:**
- AI Review results: {report:03-ai-review.md} - AI Review results: {report:ai-review.md}
**Judgment criteria:** **Judgment criteria:**
- Are new issues being found/fixed in each cycle? - Are new issues being found/fixed in each cycle?

View File

@ -12,6 +12,7 @@ For small tasks, skip the design sections in the report.
**Actions:** **Actions:**
1. Understand the task requirements 1. Understand the task requirements
- **When reference material points to an external implementation, determine whether it is a "bug fix clue" or a "design approach to adopt". If narrowing scope beyond the reference material's intent, include the rationale in the plan report**
- **For each requirement, determine "change needed / not needed". If "not needed", cite the relevant code (file:line) as evidence. Claiming "already correct" without evidence is prohibited** - **For each requirement, determine "change needed / not needed". If "not needed", cite the relevant code (file:line) as evidence. Claiming "already correct" without evidence is prohibited**
2. Investigate code to resolve unknowns 2. Investigate code to resolve unknowns
3. Identify the impact area 3. Identify the impact area

View File

@ -9,6 +9,6 @@ Review the changes from a test quality perspective.
## Judgment Procedure ## Judgment Procedure
1. Cross-reference the test plan report ({report:00-test-plan.md}) with the implemented tests 1. Cross-reference the test plan/test scope reports in the Report Directory with the implemented tests
2. For each detected issue, classify as blocking/non-blocking based on Policy's scope determination table and judgment rules 2. For each detected issue, classify as blocking/non-blocking based on Policy's scope determination table and judgment rules
3. If there is even one blocking issue, judge as REJECT 3. If there is even one blocking issue, judge as REJECT

View File

@ -9,18 +9,15 @@
### Objective ### Objective
{What needs to be achieved} {What needs to be achieved}
### Reference Material Findings (when reference material exists)
{Overview of reference implementation's approach and key differences from current implementation}
### Scope ### Scope
{Impact area} {Impact area}
### Design Decisions (only when design is needed) ### Approaches Considered (when design decisions exist)
| Approach | Adopted? | Rationale |
#### File Structure |----------|----------|-----------|
| File | Role |
|------|------|
| `src/example.ts` | Overview |
#### Design Patterns
- {Adopted patterns and where they apply}
### Implementation Approach ### Implementation Approach
{How to proceed} {How to proceed}
@ -28,6 +25,10 @@
## Implementation Guidelines (only when design is needed) ## Implementation Guidelines (only when design is needed)
- {Guidelines the Coder should follow during implementation} - {Guidelines the Coder should follow during implementation}
## Out of Scope (only when items exist)
| Item | Reason for exclusion |
|------|---------------------|
## Open Questions (if any) ## Open Questions (if any)
- {Unclear points or items that need confirmation} - {Unclear points or items that need confirmation}
``` ```

View File

@ -97,6 +97,11 @@ Only plan work that is explicitly stated in the task order. Do not include impli
"Change statuses to 5 values" means "rewrite enum values," NOT "delete flows that seem unnecessary." "Change statuses to 5 values" means "rewrite enum values," NOT "delete flows that seem unnecessary."
Do not over-interpret the task order. Plan only what is written. Do not over-interpret the task order. Plan only what is written.
**Reference material intent:**
- When the task order specifies external implementations as reference material, determine WHY that reference was specified
- "Fix/improve by referencing X" includes evaluating whether to adopt the reference's design approach
- When narrowing scope beyond the reference material's implied intent, explicitly document the rationale in the plan report
**Bug fix propagation check:** **Bug fix propagation check:**
- After identifying the root cause pattern, grep for the same pattern in related files - After identifying the root cause pattern, grep for the same pattern in related files
- If the same bug exists in other files, include them in scope - If the same bug exists in other files, include them in scope

View File

@ -34,7 +34,7 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -93,7 +93,7 @@ movements:
- condition: AI-specific issues found - condition: AI-specific issues found
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: supervise - name: supervise
edit: false edit: false

View File

@ -31,7 +31,7 @@ movements:
next: ABORT next: ABORT
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -92,7 +92,7 @@ movements:
next: ai_fix next: ai_fix
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -159,7 +159,7 @@ movements:
instruction: review-cqrs-es instruction: review-cqrs-es
output_contracts: output_contracts:
report: report:
- name: 04-cqrs-es-review.md - name: cqrs-es-review.md
format: cqrs-es-review format: cqrs-es-review
- name: security-review - name: security-review
edit: false edit: false
@ -178,7 +178,7 @@ movements:
instruction: review-security instruction: review-security
output_contracts: output_contracts:
report: report:
- name: 05-security-review.md - name: security-review.md
format: security-review format: security-review
- name: qa-review - name: qa-review
edit: false edit: false
@ -198,7 +198,7 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 06-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
rules: rules:
- condition: all("approved") - condition: all("approved")

View File

@ -33,7 +33,7 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -91,7 +91,7 @@ movements:
- condition: AI-specific issues found - condition: AI-specific issues found
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: supervise - name: supervise
edit: false edit: false

View File

@ -30,7 +30,7 @@ movements:
next: ABORT next: ABORT
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -90,7 +90,7 @@ movements:
next: ai_fix next: ai_fix
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -156,7 +156,7 @@ movements:
instruction: review-arch instruction: review-arch
output_contracts: output_contracts:
report: report:
- name: 04-architect-review.md - name: architect-review.md
format: architecture-review format: architecture-review
- name: security-review - name: security-review
edit: false edit: false
@ -175,7 +175,7 @@ movements:
instruction: review-security instruction: review-security
output_contracts: output_contracts:
report: report:
- name: 05-security-review.md - name: security-review.md
format: security-review format: security-review
- name: qa-review - name: qa-review
edit: false edit: false
@ -195,7 +195,7 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 06-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
rules: rules:
- condition: all("approved") - condition: all("approved")

View File

@ -30,7 +30,7 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -85,7 +85,7 @@ movements:
- condition: AI-specific issues found - condition: AI-specific issues found
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: supervise - name: supervise
edit: false edit: false

View File

@ -30,7 +30,7 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: write_tests - name: write_tests
edit: true edit: true
@ -61,9 +61,9 @@ movements:
interactive_only: true interactive_only: true
output_contracts: output_contracts:
report: report:
- name: 01-test-scope.md - name: test-scope.md
format: coder-scope format: coder-scope
- name: 01-test-decisions.md - name: test-decisions.md
format: coder-decisions format: coder-decisions
- name: implement - name: implement
edit: true edit: true
@ -118,7 +118,7 @@ movements:
- condition: AI-specific issues found - condition: AI-specific issues found
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: supervise - name: supervise
edit: false edit: false

View File

@ -1,5 +1,5 @@
name: default name: default
description: Standard development piece with planning and specialized reviews description: Test-first development piece (plan → write tests → implement → AI review → 3-parallel review → fix → supervise → complete)
piece_config: piece_config:
provider_options: provider_options:
codex: codex:
@ -22,7 +22,7 @@ loop_monitors:
is healthy (making progress) or unproductive (repeating the same issues). is healthy (making progress) or unproductive (repeating the same issues).
**Reports to reference:** **Reports to reference:**
- AI Review results: {report:04-ai-review.md} - AI Review results: {report:ai-review.md}
**Judgment criteria:** **Judgment criteria:**
- Are new issues being found/fixed in each cycle? - Are new issues being found/fixed in each cycle?
@ -47,7 +47,7 @@ movements:
- WebFetch - WebFetch
rules: rules:
- condition: Requirements are clear and implementable - condition: Requirements are clear and implementable
next: implement next: write_tests
- condition: User is asking a question (not an implementation task) - condition: User is asking a question (not an implementation task)
next: COMPLETE next: COMPLETE
- condition: Requirements unclear, insufficient info - condition: Requirements unclear, insufficient info
@ -59,8 +59,43 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: write_tests
edit: true
persona: coder
policy:
- coding
- testing
knowledge:
- backend
- architecture
allowed_tools:
- Read
- Glob
- Grep
- Edit
- Write
- Bash
- WebSearch
- WebFetch
required_permission_mode: edit
instruction: write-tests-first
rules:
- condition: Tests written successfully
next: implement
- condition: Cannot proceed with test writing
next: ABORT
- condition: User input needed for clarification
next: write_tests
requires_user_input: true
interactive_only: true
output_contracts:
report:
- name: test-scope.md
format: coder-scope
- name: test-decisions.md
format: coder-decisions
- name: implement - name: implement
edit: true edit: true
persona: coder persona: coder
@ -92,7 +127,7 @@ movements:
next: implement next: implement
requires_user_input: true requires_user_input: true
interactive_only: true interactive_only: true
instruction: implement instruction: implement-after-tests
output_contracts: output_contracts:
report: report:
- name: coder-scope.md - name: coder-scope.md
@ -119,7 +154,7 @@ movements:
instruction: ai-review instruction: ai-review
output_contracts: output_contracts:
report: report:
- name: 04-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -185,7 +220,7 @@ movements:
instruction: review-arch instruction: review-arch
output_contracts: output_contracts:
report: report:
- name: 05-architect-review.md - name: architect-review.md
format: architecture-review format: architecture-review
- name: qa-review - name: qa-review
edit: false edit: false
@ -205,8 +240,28 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 06-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
- name: testing-review
edit: false
persona: testing-reviewer
policy:
- review
- testing
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
rules:
- condition: approved
- condition: needs_fix
instruction: review-test
output_contracts:
report:
- name: testing-review.md
format: testing-review
rules: rules:
- condition: all("approved") - condition: all("approved")
next: supervise next: supervise

View File

@ -22,7 +22,7 @@ loop_monitors:
is healthy (making progress) or unproductive (repeating the same issues). is healthy (making progress) or unproductive (repeating the same issues).
**Reports to reference:** **Reports to reference:**
- AI Review results: {report:04-ai-review.md} - AI Review results: {report:ai-review.md}
**Judgment criteria:** **Judgment criteria:**
- Are new issues being found/fixed in each cycle? - Are new issues being found/fixed in each cycle?
@ -62,7 +62,7 @@ movements:
instruction: plan-e2e-test instruction: plan-e2e-test
output_contracts: output_contracts:
report: report:
- name: 00-test-plan.md - name: test-plan.md
format: test-plan format: test-plan
- name: implement_test - name: implement_test
edit: true edit: true
@ -122,7 +122,7 @@ movements:
instruction: ai-review instruction: ai-review
output_contracts: output_contracts:
report: report:
- name: 04-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -187,7 +187,7 @@ movements:
instruction: review-test instruction: review-test
output_contracts: output_contracts:
report: report:
- name: 05-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
- name: fix - name: fix
edit: true edit: true

View File

@ -35,7 +35,7 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -95,7 +95,7 @@ movements:
- condition: AI-specific issues found - condition: AI-specific issues found
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: supervise - name: supervise
edit: false edit: false

View File

@ -45,7 +45,7 @@ movements:
next: ABORT next: ABORT
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -107,7 +107,7 @@ movements:
next: ai_fix next: ai_fix
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -175,7 +175,7 @@ movements:
instruction: review-cqrs-es instruction: review-cqrs-es
output_contracts: output_contracts:
report: report:
- name: 04-cqrs-es-review.md - name: cqrs-es-review.md
format: cqrs-es-review format: cqrs-es-review
- name: frontend-review - name: frontend-review
edit: false edit: false
@ -194,7 +194,7 @@ movements:
instruction: review-frontend instruction: review-frontend
output_contracts: output_contracts:
report: report:
- name: 05-frontend-review.md - name: frontend-review.md
format: frontend-review format: frontend-review
- name: security-review - name: security-review
edit: false edit: false
@ -213,7 +213,7 @@ movements:
instruction: review-security instruction: review-security
output_contracts: output_contracts:
report: report:
- name: 06-security-review.md - name: security-review.md
format: security-review format: security-review
- name: qa-review - name: qa-review
edit: false edit: false
@ -233,7 +233,7 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 07-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
rules: rules:
- condition: all("approved") - condition: all("approved")

View File

@ -34,7 +34,7 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -93,7 +93,7 @@ movements:
- condition: AI-specific issues found - condition: AI-specific issues found
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: supervise - name: supervise
edit: false edit: false

View File

@ -44,7 +44,7 @@ movements:
next: ABORT next: ABORT
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -105,7 +105,7 @@ movements:
next: ai_fix next: ai_fix
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -172,7 +172,7 @@ movements:
instruction: review-arch instruction: review-arch
output_contracts: output_contracts:
report: report:
- name: 04-architect-review.md - name: architect-review.md
format: architecture-review format: architecture-review
- name: frontend-review - name: frontend-review
edit: false edit: false
@ -191,7 +191,7 @@ movements:
instruction: review-frontend instruction: review-frontend
output_contracts: output_contracts:
report: report:
- name: 05-frontend-review.md - name: frontend-review.md
format: frontend-review format: frontend-review
- name: security-review - name: security-review
edit: false edit: false
@ -210,7 +210,7 @@ movements:
instruction: review-security instruction: review-security
output_contracts: output_contracts:
report: report:
- name: 06-security-review.md - name: security-review.md
format: security-review format: security-review
- name: qa-review - name: qa-review
edit: false edit: false
@ -230,7 +230,7 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 07-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
rules: rules:
- condition: all("approved") - condition: all("approved")

View File

@ -33,7 +33,7 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -91,7 +91,7 @@ movements:
- condition: AI-specific issues found - condition: AI-specific issues found
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: supervise - name: supervise
edit: false edit: false

View File

@ -30,7 +30,7 @@ movements:
next: ABORT next: ABORT
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -90,7 +90,7 @@ movements:
next: ai_fix next: ai_fix
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -156,7 +156,7 @@ movements:
instruction: review-arch instruction: review-arch
output_contracts: output_contracts:
report: report:
- name: 04-architect-review.md - name: architect-review.md
format: architecture-review format: architecture-review
- name: frontend-review - name: frontend-review
edit: false edit: false
@ -175,7 +175,7 @@ movements:
instruction: review-frontend instruction: review-frontend
output_contracts: output_contracts:
report: report:
- name: 05-frontend-review.md - name: frontend-review.md
format: frontend-review format: frontend-review
- name: security-review - name: security-review
edit: false edit: false
@ -194,7 +194,7 @@ movements:
instruction: review-security instruction: review-security
output_contracts: output_contracts:
report: report:
- name: 06-security-review.md - name: security-review.md
format: security-review format: security-review
- name: qa-review - name: qa-review
edit: false edit: false
@ -214,7 +214,7 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 07-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
rules: rules:
- condition: all("approved") - condition: all("approved")

View File

@ -23,7 +23,7 @@ movements:
instruction: gather-review instruction: gather-review
output_contracts: output_contracts:
report: report:
- name: 00-review-target.md - name: review-target.md
format: review-gather format: review-gather
rules: rules:
- condition: Review target information gathered - condition: Review target information gathered
@ -52,7 +52,7 @@ movements:
instruction: review-arch instruction: review-arch
output_contracts: output_contracts:
report: report:
- name: 01-architecture-review.md - name: architecture-review.md
format: architecture-review format: architecture-review
rules: rules:
- condition: approved - condition: approved
@ -73,7 +73,7 @@ movements:
instruction: review-security instruction: review-security
output_contracts: output_contracts:
report: report:
- name: 02-security-review.md - name: security-review.md
format: security-review format: security-review
rules: rules:
- condition: approved - condition: approved
@ -95,7 +95,7 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 03-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
rules: rules:
- condition: approved - condition: approved
@ -117,7 +117,7 @@ movements:
instruction: review-test instruction: review-test
output_contracts: output_contracts:
report: report:
- name: 04-testing-review.md - name: testing-review.md
format: testing-review format: testing-review
rules: rules:
- condition: approved - condition: approved
@ -137,7 +137,7 @@ movements:
instruction: review-requirements instruction: review-requirements
output_contracts: output_contracts:
report: report:
- name: 05-requirements-review.md - name: requirements-review.md
format: requirements-review format: requirements-review
rules: rules:
- condition: approved - condition: approved

View File

@ -22,8 +22,8 @@ loop_monitors:
is making progress or repeating the same issues. is making progress or repeating the same issues.
**Reports to reference:** **Reports to reference:**
- Architect review: {report:04-architect-review.md} - Architect review: {report:architect-review.md}
- QA review: {report:05-qa-review.md} - QA review: {report:qa-review.md}
**Judgment criteria:** **Judgment criteria:**
- Are review findings being addressed in each fix cycle? - Are review findings being addressed in each fix cycle?
@ -236,7 +236,7 @@ movements:
- {Question 2} - {Question 2}
output_contracts: output_contracts:
report: report:
- name: 01-reform-plan.md - name: reform-plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -295,7 +295,7 @@ movements:
instruction: review-arch instruction: review-arch
output_contracts: output_contracts:
report: report:
- name: 04-architect-review.md - name: architect-review.md
format: architecture-review format: architecture-review
- name: qa-review - name: qa-review
edit: false edit: false
@ -315,7 +315,7 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 05-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
rules: rules:
- condition: all("approved") - condition: all("approved")
@ -400,7 +400,7 @@ movements:
next: fix next: fix
output_contracts: output_contracts:
report: report:
- name: 06-verification.md - name: verification.md
format: validation format: validation
- name: next_target - name: next_target
edit: false edit: false
@ -420,7 +420,7 @@ movements:
- Movement: next_target (progress check and next target selection) - Movement: next_target (progress check and next target selection)
## Original Reform Plan ## Original Reform Plan
{report:01-reform-plan.md} {report:reform-plan.md}
## Latest Verification ## Latest Verification
{previous_response} {previous_response}

View File

@ -22,7 +22,7 @@ loop_monitors:
is healthy (making progress) or unproductive (repeating the same issues). is healthy (making progress) or unproductive (repeating the same issues).
**Reports to reference:** **Reports to reference:**
- AI Review results: {report:04-ai-review.md} - AI Review results: {report:ai-review.md}
**Judgment criteria:** **Judgment criteria:**
- Are new issues being found/fixed in each cycle? - Are new issues being found/fixed in each cycle?
@ -62,7 +62,7 @@ movements:
instruction: plan-test instruction: plan-test
output_contracts: output_contracts:
report: report:
- name: 00-test-plan.md - name: test-plan.md
format: test-plan format: test-plan
- name: implement_test - name: implement_test
edit: true edit: true
@ -122,7 +122,7 @@ movements:
instruction: ai-review instruction: ai-review
output_contracts: output_contracts:
report: report:
- name: 04-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -187,7 +187,7 @@ movements:
instruction: review-test instruction: review-test
output_contracts: output_contracts:
report: report:
- name: 05-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
- name: fix - name: fix
edit: true edit: true

View File

@ -4,7 +4,7 @@ ai_review と ai_fix のループが {cycle_count} 回繰り返されました
非生産的(同じ問題を繰り返している)かを判断してください。 非生産的(同じ問題を繰り返している)かを判断してください。
**参照するレポート:** **参照するレポート:**
- AIレビュー結果: {report:03-ai-review.md} - AIレビュー結果: {report:ai-review.md}
**判断基準:** **判断基準:**
- 各サイクルで新しい問題が発見・修正されているか - 各サイクルで新しい問題が発見・修正されているか

View File

@ -18,6 +18,7 @@
- **指示書に明記されていない別ファイルを「参照資料の代わり」として使うことは禁止** - **指示書に明記されていない別ファイルを「参照資料の代わり」として使うことは禁止**
2. タスクの要件を理解する 2. タスクの要件を理解する
- 参照資料の内容と現在の実装を突き合わせて差分を特定する - 参照資料の内容と現在の実装を突き合わせて差分を特定する
- **参照資料が外部実装を指す場合、「バグ修正の手がかり」か「採用すべき設計アプローチ」かを判断する。スコープを参照資料の意図より狭める場合は判断根拠を計画レポートに含めること**
- **要件ごとに「変更要/不要」を判定する。「不要」の場合は現行コードの該当箇所(ファイル:行)を根拠として示すこと。根拠なしの「既に正しい」は禁止** - **要件ごとに「変更要/不要」を判定する。「不要」の場合は現行コードの該当箇所(ファイル:行)を根拠として示すこと。根拠なしの「既に正しい」は禁止**
3. コードを調査して不明点を解決する 3. コードを調査して不明点を解決する
4. 影響範囲を特定する 4. 影響範囲を特定する

View File

@ -9,6 +9,6 @@
## 判定手順 ## 判定手順
1. テスト計画レポート{report:00-test-plan.md}と実装されたテストを突合する 1. Report Directory内のテスト計画・テストスコープに関するレポートと実装されたテストを突合する
2. 検出した問題ごとに、Policyのスコープ判定表と判定ルールに基づいてブロッキング/非ブロッキングを分類する 2. 検出した問題ごとに、Policyのスコープ判定表と判定ルールに基づいてブロッキング/非ブロッキングを分類する
3. ブロッキング問題が1件でもあればREJECTと判定する 3. ブロッキング問題が1件でもあればREJECTと判定する

View File

@ -9,18 +9,15 @@
### 目的 ### 目的
{達成すべきこと} {達成すべきこと}
### 参照資料の調査結果(参照資料がある場合)
{参照資料の実装アプローチの概要と、現在の実装との主要な差異}
### スコープ ### スコープ
{影響範囲} {影響範囲}
### 設計判断(設計が必要な場合のみ) ### 検討したアプローチ(設計判断がある場合)
| アプローチ | 採否 | 理由 |
#### ファイル構成 |-----------|------|------|
| ファイル | 役割 |
|---------|------|
| `src/example.ts` | 概要 |
#### 設計パターン
- {採用するパターンと適用箇所}
### 実装アプローチ ### 実装アプローチ
{どう進めるか} {どう進めるか}
@ -28,6 +25,10 @@
## 実装ガイドライン(設計が必要な場合のみ) ## 実装ガイドライン(設計が必要な場合のみ)
- {Coderが実装時に従うべき指針} - {Coderが実装時に従うべき指針}
## スコープ外(項目がある場合のみ)
| 項目 | 除外理由 |
|------|---------|
## 確認事項(あれば) ## 確認事項(あれば)
- {不明点や確認が必要な点} - {不明点や確認が必要な点}
``` ```

View File

@ -76,6 +76,11 @@
「ステータスを5つに変更する」は「enum値を書き換える」であり、「不要になったフローを丸ごと削除する」ではない。 「ステータスを5つに変更する」は「enum値を書き換える」であり、「不要になったフローを丸ごと削除する」ではない。
タスク指示書の文言を拡大解釈しない。書かれていることだけを計画する。 タスク指示書の文言を拡大解釈しない。書かれていることだけを計画する。
**参照資料の意図:**
- タスク指示書が外部実装を参照資料に指定している場合、「なぜその参照資料が指定されたか」を判断する
- 「〜を参照して修正・改善する」は、参照資料の設計アプローチの採用可否も検討対象に含まれる
- スコープを参照資料の意図より狭める場合は、その判断根拠を計画レポートに明記する
**バグ修正の波及確認:** **バグ修正の波及確認:**
- バグの原因パターンを特定したら、同じパターンが他のファイルにないか grep で確認する - バグの原因パターンを特定したら、同じパターンが他のファイルにないか grep で確認する
- 同一原因のバグが見つかった場合、修正対象としてスコープに含める - 同一原因のバグが見つかった場合、修正対象としてスコープに含める

View File

@ -34,7 +34,7 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -93,7 +93,7 @@ movements:
- condition: AI特有の問題あり - condition: AI特有の問題あり
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: supervise - name: supervise
edit: false edit: false

View File

@ -31,7 +31,7 @@ movements:
next: ABORT next: ABORT
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -92,7 +92,7 @@ movements:
next: ai_fix next: ai_fix
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -159,7 +159,7 @@ movements:
instruction: review-cqrs-es instruction: review-cqrs-es
output_contracts: output_contracts:
report: report:
- name: 04-cqrs-es-review.md - name: cqrs-es-review.md
format: cqrs-es-review format: cqrs-es-review
- name: security-review - name: security-review
edit: false edit: false
@ -178,7 +178,7 @@ movements:
instruction: review-security instruction: review-security
output_contracts: output_contracts:
report: report:
- name: 05-security-review.md - name: security-review.md
format: security-review format: security-review
- name: qa-review - name: qa-review
edit: false edit: false
@ -198,7 +198,7 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 06-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
rules: rules:
- condition: all("approved") - condition: all("approved")

View File

@ -33,7 +33,7 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -91,7 +91,7 @@ movements:
- condition: AI特有の問題あり - condition: AI特有の問題あり
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: supervise - name: supervise
edit: false edit: false

View File

@ -30,7 +30,7 @@ movements:
next: ABORT next: ABORT
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -90,7 +90,7 @@ movements:
next: ai_fix next: ai_fix
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -156,7 +156,7 @@ movements:
instruction: review-arch instruction: review-arch
output_contracts: output_contracts:
report: report:
- name: 04-architect-review.md - name: architect-review.md
format: architecture-review format: architecture-review
- name: security-review - name: security-review
edit: false edit: false
@ -175,7 +175,7 @@ movements:
instruction: review-security instruction: review-security
output_contracts: output_contracts:
report: report:
- name: 05-security-review.md - name: security-review.md
format: security-review format: security-review
- name: qa-review - name: qa-review
edit: false edit: false
@ -195,7 +195,7 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 06-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
rules: rules:
- condition: all("approved") - condition: all("approved")

View File

@ -30,7 +30,7 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -85,7 +85,7 @@ movements:
- condition: AI特有の問題あり - condition: AI特有の問題あり
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: supervise - name: supervise
edit: false edit: false

View File

@ -30,7 +30,7 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: write_tests - name: write_tests
edit: true edit: true
@ -61,9 +61,9 @@ movements:
interactive_only: true interactive_only: true
output_contracts: output_contracts:
report: report:
- name: 01-test-scope.md - name: test-scope.md
format: coder-scope format: coder-scope
- name: 01-test-decisions.md - name: test-decisions.md
format: coder-decisions format: coder-decisions
- name: implement - name: implement
edit: true edit: true
@ -118,7 +118,7 @@ movements:
- condition: AI特有の問題あり - condition: AI特有の問題あり
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: supervise - name: supervise
edit: false edit: false

View File

@ -1,5 +1,5 @@
name: default name: default
description: Standard development piece with planning and specialized reviews description: テスト先行開発ピース(計画 → テスト作成 → 実装 → AIレビュー → 3並列レビュー → 修正 → 監督 → 完了)
piece_config: piece_config:
provider_options: provider_options:
codex: codex:
@ -22,7 +22,7 @@ loop_monitors:
非生産的(同じ問題を繰り返している)かを判断してください。 非生産的(同じ問題を繰り返している)かを判断してください。
**参照するレポート:** **参照するレポート:**
- AIレビュー結果: {report:04-ai-review.md} - AIレビュー結果: {report:ai-review.md}
**判断基準:** **判断基準:**
- 各サイクルで新しい問題が発見・修正されているか - 各サイクルで新しい問題が発見・修正されているか
@ -47,7 +47,7 @@ movements:
- WebFetch - WebFetch
rules: rules:
- condition: 要件が明確で実装可能 - condition: 要件が明確で実装可能
next: implement next: write_tests
- condition: ユーザーが質問をしている(実装タスクではない) - condition: ユーザーが質問をしている(実装タスクではない)
next: COMPLETE next: COMPLETE
- condition: 要件が不明確、情報不足 - condition: 要件が不明確、情報不足
@ -59,8 +59,43 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: write_tests
edit: true
persona: coder
policy:
- coding
- testing
knowledge:
- backend
- architecture
allowed_tools:
- Read
- Glob
- Grep
- Edit
- Write
- Bash
- WebSearch
- WebFetch
required_permission_mode: edit
instruction: write-tests-first
rules:
- condition: テスト作成が完了した
next: implement
- condition: テスト作成を進行できない
next: ABORT
- condition: ユーザーへの確認事項があるためユーザー入力が必要
next: write_tests
requires_user_input: true
interactive_only: true
output_contracts:
report:
- name: test-scope.md
format: coder-scope
- name: test-decisions.md
format: coder-decisions
- name: implement - name: implement
edit: true edit: true
persona: coder persona: coder
@ -92,7 +127,7 @@ movements:
next: implement next: implement
requires_user_input: true requires_user_input: true
interactive_only: true interactive_only: true
instruction: implement instruction: implement-after-tests
output_contracts: output_contracts:
report: report:
- name: coder-scope.md - name: coder-scope.md
@ -119,7 +154,7 @@ movements:
instruction: ai-review instruction: ai-review
output_contracts: output_contracts:
report: report:
- name: 04-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -185,7 +220,7 @@ movements:
instruction: review-arch instruction: review-arch
output_contracts: output_contracts:
report: report:
- name: 05-architect-review.md - name: architect-review.md
format: architecture-review format: architecture-review
- name: qa-review - name: qa-review
edit: false edit: false
@ -205,8 +240,28 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 06-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
- name: testing-review
edit: false
persona: testing-reviewer
policy:
- review
- testing
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
rules:
- condition: approved
- condition: needs_fix
instruction: review-test
output_contracts:
report:
- name: testing-review.md
format: testing-review
rules: rules:
- condition: all("approved") - condition: all("approved")
next: supervise next: supervise

View File

@ -22,7 +22,7 @@ loop_monitors:
非生産的(同じ問題を繰り返している)かを判断してください。 非生産的(同じ問題を繰り返している)かを判断してください。
**参照するレポート:** **参照するレポート:**
- AIレビュー結果: {report:04-ai-review.md} - AIレビュー結果: {report:ai-review.md}
**判断基準:** **判断基準:**
- 各サイクルで新しい問題が発見・修正されているか - 各サイクルで新しい問題が発見・修正されているか
@ -62,7 +62,7 @@ movements:
instruction: plan-e2e-test instruction: plan-e2e-test
output_contracts: output_contracts:
report: report:
- name: 00-test-plan.md - name: test-plan.md
format: test-plan format: test-plan
- name: implement_test - name: implement_test
edit: true edit: true
@ -122,7 +122,7 @@ movements:
instruction: ai-review instruction: ai-review
output_contracts: output_contracts:
report: report:
- name: 04-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -187,7 +187,7 @@ movements:
instruction: review-test instruction: review-test
output_contracts: output_contracts:
report: report:
- name: 05-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
- name: fix - name: fix
edit: true edit: true

View File

@ -35,7 +35,7 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -95,7 +95,7 @@ movements:
- condition: AI特有の問題あり - condition: AI特有の問題あり
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: supervise - name: supervise
edit: false edit: false

View File

@ -45,7 +45,7 @@ movements:
next: ABORT next: ABORT
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -107,7 +107,7 @@ movements:
next: ai_fix next: ai_fix
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -175,7 +175,7 @@ movements:
instruction: review-cqrs-es instruction: review-cqrs-es
output_contracts: output_contracts:
report: report:
- name: 04-cqrs-es-review.md - name: cqrs-es-review.md
format: cqrs-es-review format: cqrs-es-review
- name: frontend-review - name: frontend-review
edit: false edit: false
@ -194,7 +194,7 @@ movements:
instruction: review-frontend instruction: review-frontend
output_contracts: output_contracts:
report: report:
- name: 05-frontend-review.md - name: frontend-review.md
format: frontend-review format: frontend-review
- name: security-review - name: security-review
edit: false edit: false
@ -213,7 +213,7 @@ movements:
instruction: review-security instruction: review-security
output_contracts: output_contracts:
report: report:
- name: 06-security-review.md - name: security-review.md
format: security-review format: security-review
- name: qa-review - name: qa-review
edit: false edit: false
@ -233,7 +233,7 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 07-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
rules: rules:
- condition: all("approved") - condition: all("approved")

View File

@ -34,7 +34,7 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -93,7 +93,7 @@ movements:
- condition: AI特有の問題あり - condition: AI特有の問題あり
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: supervise - name: supervise
edit: false edit: false

View File

@ -44,7 +44,7 @@ movements:
next: ABORT next: ABORT
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -105,7 +105,7 @@ movements:
next: ai_fix next: ai_fix
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -172,7 +172,7 @@ movements:
instruction: review-arch instruction: review-arch
output_contracts: output_contracts:
report: report:
- name: 04-architect-review.md - name: architect-review.md
format: architecture-review format: architecture-review
- name: frontend-review - name: frontend-review
edit: false edit: false
@ -191,7 +191,7 @@ movements:
instruction: review-frontend instruction: review-frontend
output_contracts: output_contracts:
report: report:
- name: 05-frontend-review.md - name: frontend-review.md
format: frontend-review format: frontend-review
- name: security-review - name: security-review
edit: false edit: false
@ -210,7 +210,7 @@ movements:
instruction: review-security instruction: review-security
output_contracts: output_contracts:
report: report:
- name: 06-security-review.md - name: security-review.md
format: security-review format: security-review
- name: qa-review - name: qa-review
edit: false edit: false
@ -230,7 +230,7 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 07-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
rules: rules:
- condition: all("approved") - condition: all("approved")

View File

@ -33,7 +33,7 @@ movements:
instruction: plan instruction: plan
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -91,7 +91,7 @@ movements:
- condition: AI特有の問題あり - condition: AI特有の問題あり
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: supervise - name: supervise
edit: false edit: false

View File

@ -30,7 +30,7 @@ movements:
next: ABORT next: ABORT
output_contracts: output_contracts:
report: report:
- name: 00-plan.md - name: plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -90,7 +90,7 @@ movements:
next: ai_fix next: ai_fix
output_contracts: output_contracts:
report: report:
- name: 03-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -156,7 +156,7 @@ movements:
instruction: review-arch instruction: review-arch
output_contracts: output_contracts:
report: report:
- name: 04-architect-review.md - name: architect-review.md
format: architecture-review format: architecture-review
- name: frontend-review - name: frontend-review
edit: false edit: false
@ -175,7 +175,7 @@ movements:
instruction: review-frontend instruction: review-frontend
output_contracts: output_contracts:
report: report:
- name: 05-frontend-review.md - name: frontend-review.md
format: frontend-review format: frontend-review
- name: security-review - name: security-review
edit: false edit: false
@ -194,7 +194,7 @@ movements:
instruction: review-security instruction: review-security
output_contracts: output_contracts:
report: report:
- name: 06-security-review.md - name: security-review.md
format: security-review format: security-review
- name: qa-review - name: qa-review
edit: false edit: false
@ -214,7 +214,7 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 07-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
rules: rules:
- condition: all("approved") - condition: all("approved")

View File

@ -23,7 +23,7 @@ movements:
instruction: gather-review instruction: gather-review
output_contracts: output_contracts:
report: report:
- name: 00-review-target.md - name: review-target.md
format: review-gather format: review-gather
rules: rules:
- condition: レビュー対象の情報収集完了 - condition: レビュー対象の情報収集完了
@ -52,7 +52,7 @@ movements:
instruction: review-arch instruction: review-arch
output_contracts: output_contracts:
report: report:
- name: 01-architecture-review.md - name: architecture-review.md
format: architecture-review format: architecture-review
rules: rules:
- condition: approved - condition: approved
@ -73,7 +73,7 @@ movements:
instruction: review-security instruction: review-security
output_contracts: output_contracts:
report: report:
- name: 02-security-review.md - name: security-review.md
format: security-review format: security-review
rules: rules:
- condition: approved - condition: approved
@ -95,7 +95,7 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 03-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
rules: rules:
- condition: approved - condition: approved
@ -117,7 +117,7 @@ movements:
instruction: review-test instruction: review-test
output_contracts: output_contracts:
report: report:
- name: 04-testing-review.md - name: testing-review.md
format: testing-review format: testing-review
rules: rules:
- condition: approved - condition: approved
@ -137,7 +137,7 @@ movements:
instruction: review-requirements instruction: review-requirements
output_contracts: output_contracts:
report: report:
- name: 05-requirements-review.md - name: requirements-review.md
format: requirements-review format: requirements-review
rules: rules:
- condition: approved - condition: approved

View File

@ -22,8 +22,8 @@ loop_monitors:
同じ問題を繰り返しているかを判断してください。 同じ問題を繰り返しているかを判断してください。
**参照するレポート:** **参照するレポート:**
- アーキテクチャレビュー: {report:04-architect-review.md} - アーキテクチャレビュー: {report:architect-review.md}
- QAレビュー: {report:05-qa-review.md} - QAレビュー: {report:qa-review.md}
**判断基準:** **判断基準:**
- 各修正サイクルでレビュー指摘が解消されているか - 各修正サイクルでレビュー指摘が解消されているか
@ -236,7 +236,7 @@ movements:
- {質問2} - {質問2}
output_contracts: output_contracts:
report: report:
- name: 01-reform-plan.md - name: reform-plan.md
format: plan format: plan
- name: implement - name: implement
edit: true edit: true
@ -295,7 +295,7 @@ movements:
instruction: review-arch instruction: review-arch
output_contracts: output_contracts:
report: report:
- name: 04-architect-review.md - name: architect-review.md
format: architecture-review format: architecture-review
- name: qa-review - name: qa-review
edit: false edit: false
@ -315,7 +315,7 @@ movements:
instruction: review-qa instruction: review-qa
output_contracts: output_contracts:
report: report:
- name: 05-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
rules: rules:
- condition: all("approved") - condition: all("approved")
@ -400,7 +400,7 @@ movements:
next: fix next: fix
output_contracts: output_contracts:
report: report:
- name: 06-verification.md - name: verification.md
format: validation format: validation
- name: next_target - name: next_target
edit: false edit: false
@ -420,7 +420,7 @@ movements:
- ムーブメント: next_target進捗確認と次ターゲット選択 - ムーブメント: next_target進捗確認と次ターゲット選択
## 改革計画 ## 改革計画
{report:01-reform-plan.md} {report:reform-plan.md}
## 最新の検証結果 ## 最新の検証結果
{previous_response} {previous_response}

View File

@ -22,7 +22,7 @@ loop_monitors:
非生産的(同じ問題を繰り返している)かを判断してください。 非生産的(同じ問題を繰り返している)かを判断してください。
**参照するレポート:** **参照するレポート:**
- AIレビュー結果: {report:04-ai-review.md} - AIレビュー結果: {report:ai-review.md}
**判断基準:** **判断基準:**
- 各サイクルで新しい問題が発見・修正されているか - 各サイクルで新しい問題が発見・修正されているか
@ -62,7 +62,7 @@ movements:
instruction: plan-test instruction: plan-test
output_contracts: output_contracts:
report: report:
- name: 00-test-plan.md - name: test-plan.md
format: test-plan format: test-plan
- name: implement_test - name: implement_test
edit: true edit: true
@ -122,7 +122,7 @@ movements:
instruction: ai-review instruction: ai-review
output_contracts: output_contracts:
report: report:
- name: 04-ai-review.md - name: ai-review.md
format: ai-review format: ai-review
- name: ai_fix - name: ai_fix
edit: true edit: true
@ -187,7 +187,7 @@ movements:
instruction: review-test instruction: review-test
output_contracts: output_contracts:
report: report:
- name: 05-qa-review.md - name: qa-review.md
format: qa-review format: qa-review
- name: fix - name: fix
edit: true edit: true

View File

@ -153,7 +153,7 @@ movement の `instruction:` キーから指示テンプレートファイルを
### {report:ファイル名} の処理 ### {report:ファイル名} の処理
インストラクション内に `{report:04-ai-review.md}` のような記法がある場合: インストラクション内に `{report:ai-review.md}` のような記法がある場合:
1. レポートディレクトリ内に対応するレポートファイルがあれば Read で読む 1. レポートディレクトリ内に対応するレポートファイルがあれば Read で読む
2. 読み込んだ内容をプレースホルダーに展開する 2. 読み込んだ内容をプレースホルダーに展開する
3. ファイルが存在しない場合は「(レポート未作成)」に置換する 3. ファイルが存在しない場合は「(レポート未作成)」に置換する

View File

@ -71,16 +71,17 @@ describe('default piece parallel reviewers movement', () => {
const reviewersMovement = piece!.movements.find((s) => s.name === 'reviewers'); const reviewersMovement = piece!.movements.find((s) => s.name === 'reviewers');
expect(reviewersMovement).toBeDefined(); expect(reviewersMovement).toBeDefined();
expect(reviewersMovement!.parallel).toBeDefined(); expect(reviewersMovement!.parallel).toBeDefined();
expect(reviewersMovement!.parallel).toHaveLength(2); expect(reviewersMovement!.parallel).toHaveLength(3);
}); });
it('should have arch-review and qa-review as parallel sub-movements', () => { it('should have arch-review, qa-review, and testing-review as parallel sub-movements', () => {
const piece = getBuiltinPiece('default', process.cwd()); const piece = getBuiltinPiece('default', process.cwd());
const reviewersMovement = piece!.movements.find((s) => s.name === 'reviewers')!; const reviewersMovement = piece!.movements.find((s) => s.name === 'reviewers')!;
const subMovementNames = reviewersMovement.parallel!.map((s) => s.name); const subMovementNames = reviewersMovement.parallel!.map((s) => s.name);
expect(subMovementNames).toContain('arch-review'); expect(subMovementNames).toContain('arch-review');
expect(subMovementNames).toContain('qa-review'); expect(subMovementNames).toContain('qa-review');
expect(subMovementNames).toContain('testing-review');
}); });
it('should have aggregate conditions on the reviewers parent movement', () => { it('should have aggregate conditions on the reviewers parent movement', () => {

View File

@ -165,12 +165,13 @@ describe('Piece Patterns IT: default piece (parallel reviewers)', () => {
setMockScenario([ setMockScenario([
{ persona: 'planner', status: 'done', content: 'Requirements are clear and implementable' }, { persona: 'planner', status: 'done', content: 'Requirements are clear and implementable' },
{ persona: 'architect-planner', status: 'done', content: 'Design complete' }, { persona: 'coder', status: 'done', content: 'Tests written successfully' },
{ persona: 'coder', status: 'done', content: 'Implementation complete' }, { persona: 'coder', status: 'done', content: 'Implementation complete' },
{ persona: 'ai-antipattern-reviewer', status: 'done', content: 'No AI-specific issues' }, { persona: 'ai-antipattern-reviewer', status: 'done', content: 'No AI-specific issues' },
// Parallel reviewers: both approved // Parallel reviewers: all approved
{ persona: 'architecture-reviewer', status: 'done', content: 'approved' }, { persona: 'architecture-reviewer', status: 'done', content: 'approved' },
{ persona: 'qa-reviewer', status: 'done', content: 'approved' }, { persona: 'qa-reviewer', status: 'done', content: 'approved' },
{ persona: 'testing-reviewer', status: 'done', content: 'approved' },
// Supervisor // Supervisor
{ persona: 'supervisor', status: 'done', content: 'All checks passed' }, { persona: 'supervisor', status: 'done', content: 'All checks passed' },
]); ]);
@ -186,19 +187,19 @@ describe('Piece Patterns IT: default piece (parallel reviewers)', () => {
setMockScenario([ setMockScenario([
{ persona: 'planner', status: 'done', content: 'Requirements are clear and implementable' }, { persona: 'planner', status: 'done', content: 'Requirements are clear and implementable' },
{ persona: 'architect-planner', status: 'done', content: 'Design complete' }, { persona: 'coder', status: 'done', content: 'Tests written successfully' },
{ persona: 'coder', status: 'done', content: 'Implementation complete' }, { persona: 'coder', status: 'done', content: 'Implementation complete' },
{ persona: 'ai-antipattern-reviewer', status: 'done', content: 'No AI-specific issues' }, { persona: 'ai-antipattern-reviewer', status: 'done', content: 'No AI-specific issues' },
// Parallel: arch approved, qa needs_fix // Parallel: arch approved, qa needs_fix, testing approved
{ persona: 'architecture-reviewer', status: 'done', content: 'approved' }, { persona: 'architecture-reviewer', status: 'done', content: 'approved' },
{ persona: 'qa-reviewer', status: 'done', content: 'needs_fix' }, { persona: 'qa-reviewer', status: 'done', content: 'needs_fix' },
{ persona: 'testing-reviewer', status: 'done', content: 'approved' },
// Fix step // Fix step
{ persona: 'coder', status: 'done', content: 'Fix complete' }, { persona: 'coder', status: 'done', content: 'Fix complete' },
// AI review after fix // Re-review: all approved
{ persona: 'ai-antipattern-reviewer', status: 'done', content: 'No AI-specific issues' },
// Re-review: both approved
{ persona: 'architecture-reviewer', status: 'done', content: 'approved' }, { persona: 'architecture-reviewer', status: 'done', content: 'approved' },
{ persona: 'qa-reviewer', status: 'done', content: 'approved' }, { persona: 'qa-reviewer', status: 'done', content: 'approved' },
{ persona: 'testing-reviewer', status: 'done', content: 'approved' },
// Supervisor // Supervisor
{ persona: 'supervisor', status: 'done', content: 'All checks passed' }, { persona: 'supervisor', status: 'done', content: 'All checks passed' },
]); ]);

View File

@ -122,7 +122,7 @@ describe('review piece (EN)', () => {
it('should have gather movement with output_contracts for review target', () => { it('should have gather movement with output_contracts for review target', () => {
const gather = raw.movements.find((s: { name: string }) => s.name === 'gather'); const gather = raw.movements.find((s: { name: string }) => s.name === 'gather');
expect(gather.output_contracts).toBeDefined(); expect(gather.output_contracts).toBeDefined();
expect(gather.output_contracts.report[0].name).toBe('00-review-target.md'); expect(gather.output_contracts.report[0].name).toBe('review-target.md');
}); });
}); });