Output Contracts と Quality Gates の実装 + 未使用コード検出ポリシー厳格化
Output Contracts を report 配下のネスト構造に変更し、Quality Gates をスキーマ・パーサーに追加。 未使用コード検出ポリシーから公開API例外ルールを削除し、AIが未使用コードを許容する抜け道を塞ぐ。
This commit is contained in:
parent
487b8bf235
commit
7ae4a78831
@ -42,8 +42,9 @@ movements:
|
|||||||
next: ABORT
|
next: ABORT
|
||||||
instruction: plan
|
instruction: plan
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -76,8 +77,9 @@ movements:
|
|||||||
interactive_only: true
|
interactive_only: true
|
||||||
instruction: implement
|
instruction: implement
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 02-coder-scope.md
|
report:
|
||||||
- Decisions: 03-coder-decisions.md
|
- Scope: 02-coder-scope.md
|
||||||
|
- Decisions: 03-coder-decisions.md
|
||||||
- name: reviewers
|
- name: reviewers
|
||||||
parallel:
|
parallel:
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
@ -97,8 +99,9 @@ movements:
|
|||||||
- condition: AI-specific issues found
|
- condition: AI-specific issues found
|
||||||
instruction: ai-review
|
instruction: ai-review
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 04-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: arch-review
|
- name: arch-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: architecture-reviewer
|
persona: architecture-reviewer
|
||||||
@ -115,8 +118,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-arch
|
instruction: review-arch
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-architect-review.md
|
report:
|
||||||
format: architecture-review
|
- name: 05-architect-review.md
|
||||||
|
format: architecture-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("No AI-specific issues", "approved")
|
- condition: all("No AI-specific issues", "approved")
|
||||||
next: COMPLETE
|
next: COMPLETE
|
||||||
|
|||||||
@ -40,8 +40,9 @@ movements:
|
|||||||
next: ABORT
|
next: ABORT
|
||||||
instruction: plan
|
instruction: plan
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -73,8 +74,9 @@ movements:
|
|||||||
interactive_only: true
|
interactive_only: true
|
||||||
instruction: implement
|
instruction: implement
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 02-coder-scope.md
|
report:
|
||||||
- Decisions: 03-coder-decisions.md
|
- Scope: 02-coder-scope.md
|
||||||
|
- Decisions: 03-coder-decisions.md
|
||||||
- name: reviewers
|
- name: reviewers
|
||||||
parallel:
|
parallel:
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
@ -94,8 +96,9 @@ movements:
|
|||||||
- condition: AI-specific issues found
|
- condition: AI-specific issues found
|
||||||
instruction: ai-review
|
instruction: ai-review
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 04-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: arch-review
|
- name: arch-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: architecture-reviewer
|
persona: architecture-reviewer
|
||||||
@ -112,8 +115,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-arch
|
instruction: review-arch
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-architect-review.md
|
report:
|
||||||
format: architecture-review
|
- name: 05-architect-review.md
|
||||||
|
format: architecture-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("No AI-specific issues", "approved")
|
- condition: all("No AI-specific issues", "approved")
|
||||||
next: COMPLETE
|
next: COMPLETE
|
||||||
|
|||||||
@ -84,8 +84,9 @@ movements:
|
|||||||
- {Question 2}
|
- {Question 2}
|
||||||
instruction: plan
|
instruction: plan
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: architect
|
- name: architect
|
||||||
edit: false
|
edit: false
|
||||||
persona: architect-planner
|
persona: architect-planner
|
||||||
@ -104,8 +105,9 @@ movements:
|
|||||||
next: ABORT
|
next: ABORT
|
||||||
instruction: architect
|
instruction: architect
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 01-architecture.md
|
report:
|
||||||
format: architecture-design
|
- name: 01-architecture.md
|
||||||
|
format: architecture-design
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -140,8 +142,9 @@ movements:
|
|||||||
interactive_only: true
|
interactive_only: true
|
||||||
instruction: implement
|
instruction: implement
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 02-coder-scope.md
|
report:
|
||||||
- Decisions: 03-coder-decisions.md
|
- Scope: 02-coder-scope.md
|
||||||
|
- Decisions: 03-coder-decisions.md
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
edit: false
|
edit: false
|
||||||
persona: ai-antipattern-reviewer
|
persona: ai-antipattern-reviewer
|
||||||
@ -161,8 +164,9 @@ movements:
|
|||||||
next: ai_fix
|
next: ai_fix
|
||||||
instruction: ai-review
|
instruction: ai-review
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 04-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: ai_fix
|
- name: ai_fix
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -226,8 +230,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-arch
|
instruction: review-arch
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-architect-review.md
|
report:
|
||||||
format: architecture-review
|
- name: 05-architect-review.md
|
||||||
|
format: architecture-review
|
||||||
- name: qa-review
|
- name: qa-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: qa-reviewer
|
persona: qa-reviewer
|
||||||
@ -245,8 +250,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-qa
|
instruction: review-qa
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 06-qa-review.md
|
report:
|
||||||
format: qa-review
|
- name: 06-qa-review.md
|
||||||
|
format: qa-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("approved")
|
- condition: all("approved")
|
||||||
next: supervise
|
next: supervise
|
||||||
@ -296,8 +302,9 @@ movements:
|
|||||||
next: plan
|
next: plan
|
||||||
instruction: supervise
|
instruction: supervise
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 07-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 07-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
policies:
|
policies:
|
||||||
coding: ../policies/coding.md
|
coding: ../policies/coding.md
|
||||||
review: ../policies/review.md
|
review: ../policies/review.md
|
||||||
|
|||||||
@ -79,8 +79,9 @@ movements:
|
|||||||
- {Question 2}
|
- {Question 2}
|
||||||
instruction: plan
|
instruction: plan
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: architect
|
- name: architect
|
||||||
edit: false
|
edit: false
|
||||||
persona: architect-planner
|
persona: architect-planner
|
||||||
@ -99,8 +100,9 @@ movements:
|
|||||||
next: ABORT
|
next: ABORT
|
||||||
instruction: architect
|
instruction: architect
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 01-architecture.md
|
report:
|
||||||
format: architecture-design
|
- name: 01-architecture.md
|
||||||
|
format: architecture-design
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -134,8 +136,9 @@ movements:
|
|||||||
interactive_only: true
|
interactive_only: true
|
||||||
instruction: implement
|
instruction: implement
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 02-coder-scope.md
|
report:
|
||||||
- Decisions: 03-coder-decisions.md
|
- Scope: 02-coder-scope.md
|
||||||
|
- Decisions: 03-coder-decisions.md
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
edit: false
|
edit: false
|
||||||
persona: ai-antipattern-reviewer
|
persona: ai-antipattern-reviewer
|
||||||
@ -155,8 +158,9 @@ movements:
|
|||||||
next: ai_fix
|
next: ai_fix
|
||||||
instruction: ai-review
|
instruction: ai-review
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 04-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: ai_fix
|
- name: ai_fix
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -219,8 +223,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-arch
|
instruction: review-arch
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-architect-review.md
|
report:
|
||||||
format: architecture-review
|
- name: 05-architect-review.md
|
||||||
|
format: architecture-review
|
||||||
- name: qa-review
|
- name: qa-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: qa-reviewer
|
persona: qa-reviewer
|
||||||
@ -238,8 +243,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-qa
|
instruction: review-qa
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 06-qa-review.md
|
report:
|
||||||
format: qa-review
|
- name: 06-qa-review.md
|
||||||
|
format: qa-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("approved")
|
- condition: all("approved")
|
||||||
next: supervise
|
next: supervise
|
||||||
@ -288,8 +294,9 @@ movements:
|
|||||||
next: plan
|
next: plan
|
||||||
instruction: supervise
|
instruction: supervise
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 07-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 07-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
report_formats:
|
report_formats:
|
||||||
plan: ../output-contracts/plan.md
|
plan: ../output-contracts/plan.md
|
||||||
architecture-design: ../output-contracts/architecture-design.md
|
architecture-design: ../output-contracts/architecture-design.md
|
||||||
|
|||||||
@ -61,8 +61,9 @@ movements:
|
|||||||
- condition: Requirements are unclear and planning cannot proceed
|
- condition: Requirements are unclear and planning cannot proceed
|
||||||
next: ABORT
|
next: ABORT
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -99,8 +100,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
edit: false
|
edit: false
|
||||||
persona: ai-antipattern-reviewer
|
persona: ai-antipattern-reviewer
|
||||||
@ -120,8 +122,9 @@ movements:
|
|||||||
- condition: AI-specific issues detected
|
- condition: AI-specific issues detected
|
||||||
next: ai_fix
|
next: ai_fix
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: ai_fix
|
- name: ai_fix
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -187,8 +190,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-cqrs-es
|
instruction: review-cqrs-es
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-cqrs-es-review.md
|
report:
|
||||||
format: cqrs-es-review
|
- name: 04-cqrs-es-review.md
|
||||||
|
format: cqrs-es-review
|
||||||
- name: frontend-review
|
- name: frontend-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: frontend-reviewer
|
persona: frontend-reviewer
|
||||||
@ -205,8 +209,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-frontend
|
instruction: review-frontend
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-frontend-review.md
|
report:
|
||||||
format: frontend-review
|
- name: 05-frontend-review.md
|
||||||
|
format: frontend-review
|
||||||
- name: security-review
|
- name: security-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
@ -223,8 +228,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-security
|
instruction: review-security
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 06-security-review.md
|
report:
|
||||||
format: security-review
|
- name: 06-security-review.md
|
||||||
|
format: security-review
|
||||||
- name: qa-review
|
- name: qa-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: qa-reviewer
|
persona: qa-reviewer
|
||||||
@ -242,8 +248,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-qa
|
instruction: review-qa
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 07-qa-review.md
|
report:
|
||||||
format: qa-review
|
- name: 07-qa-review.md
|
||||||
|
format: qa-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("approved")
|
- condition: all("approved")
|
||||||
next: supervise
|
next: supervise
|
||||||
@ -295,8 +302,9 @@ movements:
|
|||||||
- condition: Issues detected during final review
|
- condition: Issues detected during final review
|
||||||
next: fix_supervisor
|
next: fix_supervisor
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 08-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 08-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
- name: fix_supervisor
|
- name: fix_supervisor
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
|
|||||||
@ -55,8 +55,9 @@ movements:
|
|||||||
- condition: Requirements are unclear and planning cannot proceed
|
- condition: Requirements are unclear and planning cannot proceed
|
||||||
next: ABORT
|
next: ABORT
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -92,8 +93,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
edit: false
|
edit: false
|
||||||
persona: ai-antipattern-reviewer
|
persona: ai-antipattern-reviewer
|
||||||
@ -113,8 +115,9 @@ movements:
|
|||||||
- condition: AI-specific issues detected
|
- condition: AI-specific issues detected
|
||||||
next: ai_fix
|
next: ai_fix
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: ai_fix
|
- name: ai_fix
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -179,8 +182,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-cqrs-es
|
instruction: review-cqrs-es
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-cqrs-es-review.md
|
report:
|
||||||
format: cqrs-es-review
|
- name: 04-cqrs-es-review.md
|
||||||
|
format: cqrs-es-review
|
||||||
- name: frontend-review
|
- name: frontend-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: frontend-reviewer
|
persona: frontend-reviewer
|
||||||
@ -197,8 +201,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-frontend
|
instruction: review-frontend
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-frontend-review.md
|
report:
|
||||||
format: frontend-review
|
- name: 05-frontend-review.md
|
||||||
|
format: frontend-review
|
||||||
- name: security-review
|
- name: security-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
@ -215,8 +220,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-security
|
instruction: review-security
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 06-security-review.md
|
report:
|
||||||
format: security-review
|
- name: 06-security-review.md
|
||||||
|
format: security-review
|
||||||
- name: qa-review
|
- name: qa-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: qa-reviewer
|
persona: qa-reviewer
|
||||||
@ -234,8 +240,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-qa
|
instruction: review-qa
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 07-qa-review.md
|
report:
|
||||||
format: qa-review
|
- name: 07-qa-review.md
|
||||||
|
format: qa-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("approved")
|
- condition: all("approved")
|
||||||
next: supervise
|
next: supervise
|
||||||
@ -286,8 +293,9 @@ movements:
|
|||||||
- condition: Issues detected during final review
|
- condition: Issues detected during final review
|
||||||
next: fix_supervisor
|
next: fix_supervisor
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 08-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 08-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
- name: fix_supervisor
|
- name: fix_supervisor
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
|
|||||||
@ -59,8 +59,9 @@ movements:
|
|||||||
- condition: Requirements are unclear and planning cannot proceed
|
- condition: Requirements are unclear and planning cannot proceed
|
||||||
next: ABORT
|
next: ABORT
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -96,8 +97,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
edit: false
|
edit: false
|
||||||
persona: ai-antipattern-reviewer
|
persona: ai-antipattern-reviewer
|
||||||
@ -117,8 +119,9 @@ movements:
|
|||||||
- condition: AI-specific issues detected
|
- condition: AI-specific issues detected
|
||||||
next: ai_fix
|
next: ai_fix
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: ai_fix
|
- name: ai_fix
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -183,8 +186,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-arch
|
instruction: review-arch
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-architect-review.md
|
report:
|
||||||
format: architecture-review
|
- name: 04-architect-review.md
|
||||||
|
format: architecture-review
|
||||||
- name: frontend-review
|
- name: frontend-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: frontend-reviewer
|
persona: frontend-reviewer
|
||||||
@ -201,8 +205,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-frontend
|
instruction: review-frontend
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-frontend-review.md
|
report:
|
||||||
format: frontend-review
|
- name: 05-frontend-review.md
|
||||||
|
format: frontend-review
|
||||||
- name: security-review
|
- name: security-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
@ -219,8 +224,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-security
|
instruction: review-security
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 06-security-review.md
|
report:
|
||||||
format: security-review
|
- name: 06-security-review.md
|
||||||
|
format: security-review
|
||||||
- name: qa-review
|
- name: qa-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: qa-reviewer
|
persona: qa-reviewer
|
||||||
@ -238,8 +244,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-qa
|
instruction: review-qa
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 07-qa-review.md
|
report:
|
||||||
format: qa-review
|
- name: 07-qa-review.md
|
||||||
|
format: qa-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("approved")
|
- condition: all("approved")
|
||||||
next: supervise
|
next: supervise
|
||||||
@ -290,8 +297,9 @@ movements:
|
|||||||
- condition: Issues detected during final review
|
- condition: Issues detected during final review
|
||||||
next: fix_supervisor
|
next: fix_supervisor
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 08-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 08-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
- name: fix_supervisor
|
- name: fix_supervisor
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
|
|||||||
@ -53,8 +53,9 @@ movements:
|
|||||||
- condition: Requirements are unclear and planning cannot proceed
|
- condition: Requirements are unclear and planning cannot proceed
|
||||||
next: ABORT
|
next: ABORT
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -89,8 +90,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
edit: false
|
edit: false
|
||||||
persona: ai-antipattern-reviewer
|
persona: ai-antipattern-reviewer
|
||||||
@ -110,8 +112,9 @@ movements:
|
|||||||
- condition: AI-specific issues detected
|
- condition: AI-specific issues detected
|
||||||
next: ai_fix
|
next: ai_fix
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: ai_fix
|
- name: ai_fix
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -175,8 +178,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-arch
|
instruction: review-arch
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-architect-review.md
|
report:
|
||||||
format: architecture-review
|
- name: 04-architect-review.md
|
||||||
|
format: architecture-review
|
||||||
- name: frontend-review
|
- name: frontend-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: frontend-reviewer
|
persona: frontend-reviewer
|
||||||
@ -193,8 +197,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-frontend
|
instruction: review-frontend
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-frontend-review.md
|
report:
|
||||||
format: frontend-review
|
- name: 05-frontend-review.md
|
||||||
|
format: frontend-review
|
||||||
- name: security-review
|
- name: security-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
@ -211,8 +216,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-security
|
instruction: review-security
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 06-security-review.md
|
report:
|
||||||
format: security-review
|
- name: 06-security-review.md
|
||||||
|
format: security-review
|
||||||
- name: qa-review
|
- name: qa-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: qa-reviewer
|
persona: qa-reviewer
|
||||||
@ -230,8 +236,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-qa
|
instruction: review-qa
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 07-qa-review.md
|
report:
|
||||||
format: qa-review
|
- name: 07-qa-review.md
|
||||||
|
format: qa-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("approved")
|
- condition: all("approved")
|
||||||
next: supervise
|
next: supervise
|
||||||
@ -281,8 +288,9 @@ movements:
|
|||||||
- condition: Issues detected during final review
|
- condition: Issues detected during final review
|
||||||
next: fix_supervisor
|
next: fix_supervisor
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 08-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 08-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
- name: fix_supervisor
|
- name: fix_supervisor
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
|
|||||||
@ -46,8 +46,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: reviewers
|
- name: reviewers
|
||||||
parallel:
|
parallel:
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
@ -67,8 +68,9 @@ movements:
|
|||||||
- condition: No AI-specific issues
|
- condition: No AI-specific issues
|
||||||
- condition: AI-specific issues found
|
- condition: AI-specific issues found
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: supervise
|
- name: supervise
|
||||||
edit: false
|
edit: false
|
||||||
persona: supervisor
|
persona: supervisor
|
||||||
@ -85,8 +87,9 @@ movements:
|
|||||||
- condition: All checks passed
|
- condition: All checks passed
|
||||||
- condition: Requirements unmet, tests failing
|
- condition: Requirements unmet, tests failing
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 05-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 05-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
rules:
|
rules:
|
||||||
- condition: all("No AI-specific issues", "All checks passed")
|
- condition: all("No AI-specific issues", "All checks passed")
|
||||||
next: COMPLETE
|
next: COMPLETE
|
||||||
|
|||||||
@ -45,8 +45,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: reviewers
|
- name: reviewers
|
||||||
parallel:
|
parallel:
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
@ -66,8 +67,9 @@ movements:
|
|||||||
- condition: No AI-specific issues
|
- condition: No AI-specific issues
|
||||||
- condition: AI-specific issues found
|
- condition: AI-specific issues found
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: supervise
|
- name: supervise
|
||||||
edit: false
|
edit: false
|
||||||
persona: supervisor
|
persona: supervisor
|
||||||
@ -84,8 +86,9 @@ movements:
|
|||||||
- condition: All checks passed
|
- condition: All checks passed
|
||||||
- condition: Requirements unmet, tests failing
|
- condition: Requirements unmet, tests failing
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 05-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 05-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
rules:
|
rules:
|
||||||
- condition: all("No AI-specific issues", "All checks passed")
|
- condition: all("No AI-specific issues", "All checks passed")
|
||||||
next: COMPLETE
|
next: COMPLETE
|
||||||
|
|||||||
@ -37,7 +37,8 @@ movements:
|
|||||||
instruction_template: |
|
instruction_template: |
|
||||||
Do the task.
|
Do the task.
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Summary: summary.md
|
report:
|
||||||
|
- Summary: summary.md
|
||||||
policies:
|
policies:
|
||||||
coding: ../policies/coding.md
|
coding: ../policies/coding.md
|
||||||
testing: ../policies/testing.md
|
testing: ../policies/testing.md
|
||||||
|
|||||||
@ -36,4 +36,5 @@ movements:
|
|||||||
instruction_template: |
|
instruction_template: |
|
||||||
Do the task.
|
Do the task.
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Summary: summary.md
|
report:
|
||||||
|
- Summary: summary.md
|
||||||
|
|||||||
@ -46,8 +46,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: reviewers
|
- name: reviewers
|
||||||
parallel:
|
parallel:
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
@ -67,8 +68,9 @@ movements:
|
|||||||
- condition: No AI-specific issues
|
- condition: No AI-specific issues
|
||||||
- condition: AI-specific issues found
|
- condition: AI-specific issues found
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: supervise
|
- name: supervise
|
||||||
edit: false
|
edit: false
|
||||||
persona: supervisor
|
persona: supervisor
|
||||||
@ -85,8 +87,9 @@ movements:
|
|||||||
- condition: All checks passed
|
- condition: All checks passed
|
||||||
- condition: Requirements unmet, tests failing
|
- condition: Requirements unmet, tests failing
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 05-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 05-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
rules:
|
rules:
|
||||||
- condition: all("No AI-specific issues", "All checks passed")
|
- condition: all("No AI-specific issues", "All checks passed")
|
||||||
next: COMPLETE
|
next: COMPLETE
|
||||||
|
|||||||
@ -45,8 +45,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: reviewers
|
- name: reviewers
|
||||||
parallel:
|
parallel:
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
@ -66,8 +67,9 @@ movements:
|
|||||||
- condition: No AI-specific issues
|
- condition: No AI-specific issues
|
||||||
- condition: AI-specific issues found
|
- condition: AI-specific issues found
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: supervise
|
- name: supervise
|
||||||
edit: false
|
edit: false
|
||||||
persona: supervisor
|
persona: supervisor
|
||||||
@ -84,8 +86,9 @@ movements:
|
|||||||
- condition: All checks passed
|
- condition: All checks passed
|
||||||
- condition: Requirements unmet, tests failing
|
- condition: Requirements unmet, tests failing
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 05-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 05-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
rules:
|
rules:
|
||||||
- condition: all("No AI-specific issues", "All checks passed")
|
- condition: all("No AI-specific issues", "All checks passed")
|
||||||
next: COMPLETE
|
next: COMPLETE
|
||||||
|
|||||||
@ -72,8 +72,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-arch
|
instruction: review-arch
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 01-architect-review.md
|
report:
|
||||||
format: architecture-review
|
- name: 01-architect-review.md
|
||||||
|
format: architecture-review
|
||||||
- name: security-review
|
- name: security-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
@ -90,8 +91,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-security
|
instruction: review-security
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 02-security-review.md
|
report:
|
||||||
format: security-review
|
- name: 02-security-review.md
|
||||||
|
format: security-review
|
||||||
- name: ai-review
|
- name: ai-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: ai-antipattern-reviewer
|
persona: ai-antipattern-reviewer
|
||||||
@ -109,8 +111,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-ai
|
instruction: review-ai
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("approved")
|
- condition: all("approved")
|
||||||
next: supervise
|
next: supervise
|
||||||
@ -175,7 +178,8 @@ movements:
|
|||||||
- {Consolidated suggestions from all reviews}
|
- {Consolidated suggestions from all reviews}
|
||||||
```
|
```
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Review Summary: 04-review-summary.md
|
report:
|
||||||
|
- Review Summary: 04-review-summary.md
|
||||||
- name: pr-comment
|
- name: pr-comment
|
||||||
edit: false
|
edit: false
|
||||||
persona: pr-commenter
|
persona: pr-commenter
|
||||||
|
|||||||
@ -156,7 +156,6 @@ AI tends to generate unnecessary code for "future extensibility", "symmetry", or
|
|||||||
| REJECT | Interfaces or options prepared for future extension |
|
| REJECT | Interfaces or options prepared for future extension |
|
||||||
| REJECT | Exported but no usage found via grep |
|
| REJECT | Exported but no usage found via grep |
|
||||||
| OK | Implicitly called by framework (lifecycle hooks, etc.) |
|
| OK | Implicitly called by framework (lifecycle hooks, etc.) |
|
||||||
| OK | Intentionally exposed as public package API |
|
|
||||||
|
|
||||||
Verification approach:
|
Verification approach:
|
||||||
1. Grep to confirm no references to changed/deleted code remain
|
1. Grep to confirm no references to changed/deleted code remain
|
||||||
|
|||||||
@ -42,8 +42,9 @@ movements:
|
|||||||
next: ABORT
|
next: ABORT
|
||||||
instruction: plan
|
instruction: plan
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -76,8 +77,9 @@ movements:
|
|||||||
interactive_only: true
|
interactive_only: true
|
||||||
instruction: implement
|
instruction: implement
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 02-coder-scope.md
|
report:
|
||||||
- Decisions: 03-coder-decisions.md
|
- Scope: 02-coder-scope.md
|
||||||
|
- Decisions: 03-coder-decisions.md
|
||||||
- name: reviewers
|
- name: reviewers
|
||||||
parallel:
|
parallel:
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
@ -97,8 +99,9 @@ movements:
|
|||||||
- condition: AI特有の問題あり
|
- condition: AI特有の問題あり
|
||||||
instruction: ai-review
|
instruction: ai-review
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 04-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: arch-review
|
- name: arch-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: architecture-reviewer
|
persona: architecture-reviewer
|
||||||
@ -115,8 +118,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-arch
|
instruction: review-arch
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-architect-review.md
|
report:
|
||||||
format: architecture-review
|
- name: 05-architect-review.md
|
||||||
|
format: architecture-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("AI特有の問題なし", "approved")
|
- condition: all("AI特有の問題なし", "approved")
|
||||||
next: COMPLETE
|
next: COMPLETE
|
||||||
|
|||||||
@ -40,8 +40,9 @@ movements:
|
|||||||
next: ABORT
|
next: ABORT
|
||||||
instruction: plan
|
instruction: plan
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -73,8 +74,9 @@ movements:
|
|||||||
interactive_only: true
|
interactive_only: true
|
||||||
instruction: implement
|
instruction: implement
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 02-coder-scope.md
|
report:
|
||||||
- Decisions: 03-coder-decisions.md
|
- Scope: 02-coder-scope.md
|
||||||
|
- Decisions: 03-coder-decisions.md
|
||||||
- name: reviewers
|
- name: reviewers
|
||||||
parallel:
|
parallel:
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
@ -94,8 +96,9 @@ movements:
|
|||||||
- condition: AI特有の問題あり
|
- condition: AI特有の問題あり
|
||||||
instruction: ai-review
|
instruction: ai-review
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 04-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: arch-review
|
- name: arch-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: architecture-reviewer
|
persona: architecture-reviewer
|
||||||
@ -112,8 +115,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-arch
|
instruction: review-arch
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-architect-review.md
|
report:
|
||||||
format: architecture-review
|
- name: 05-architect-review.md
|
||||||
|
format: architecture-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("AI特有の問題なし", "approved")
|
- condition: all("AI特有の問題なし", "approved")
|
||||||
next: COMPLETE
|
next: COMPLETE
|
||||||
|
|||||||
@ -84,8 +84,9 @@ movements:
|
|||||||
- {質問2}
|
- {質問2}
|
||||||
instruction: plan
|
instruction: plan
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: architect
|
- name: architect
|
||||||
edit: false
|
edit: false
|
||||||
persona: architect-planner
|
persona: architect-planner
|
||||||
@ -104,8 +105,9 @@ movements:
|
|||||||
next: ABORT
|
next: ABORT
|
||||||
instruction: architect
|
instruction: architect
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 01-architecture.md
|
report:
|
||||||
format: architecture-design
|
- name: 01-architecture.md
|
||||||
|
format: architecture-design
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -140,8 +142,9 @@ movements:
|
|||||||
interactive_only: true
|
interactive_only: true
|
||||||
instruction: implement
|
instruction: implement
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 02-coder-scope.md
|
report:
|
||||||
- Decisions: 03-coder-decisions.md
|
- Scope: 02-coder-scope.md
|
||||||
|
- Decisions: 03-coder-decisions.md
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
edit: false
|
edit: false
|
||||||
persona: ai-antipattern-reviewer
|
persona: ai-antipattern-reviewer
|
||||||
@ -161,8 +164,9 @@ movements:
|
|||||||
next: ai_fix
|
next: ai_fix
|
||||||
instruction: ai-review
|
instruction: ai-review
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 04-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: ai_fix
|
- name: ai_fix
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -226,8 +230,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-arch
|
instruction: review-arch
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-architect-review.md
|
report:
|
||||||
format: architecture-review
|
- name: 05-architect-review.md
|
||||||
|
format: architecture-review
|
||||||
- name: qa-review
|
- name: qa-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: qa-reviewer
|
persona: qa-reviewer
|
||||||
@ -245,8 +250,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-qa
|
instruction: review-qa
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 06-qa-review.md
|
report:
|
||||||
format: qa-review
|
- name: 06-qa-review.md
|
||||||
|
format: qa-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("approved")
|
- condition: all("approved")
|
||||||
next: supervise
|
next: supervise
|
||||||
@ -296,8 +302,9 @@ movements:
|
|||||||
next: plan
|
next: plan
|
||||||
instruction: supervise
|
instruction: supervise
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 07-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 07-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
policies:
|
policies:
|
||||||
coding: ../policies/coding.md
|
coding: ../policies/coding.md
|
||||||
review: ../policies/review.md
|
review: ../policies/review.md
|
||||||
|
|||||||
@ -79,8 +79,9 @@ movements:
|
|||||||
- {質問2}
|
- {質問2}
|
||||||
instruction: plan
|
instruction: plan
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: architect
|
- name: architect
|
||||||
edit: false
|
edit: false
|
||||||
persona: architect-planner
|
persona: architect-planner
|
||||||
@ -99,8 +100,9 @@ movements:
|
|||||||
next: ABORT
|
next: ABORT
|
||||||
instruction: architect
|
instruction: architect
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 01-architecture.md
|
report:
|
||||||
format: architecture-design
|
- name: 01-architecture.md
|
||||||
|
format: architecture-design
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -134,8 +136,9 @@ movements:
|
|||||||
interactive_only: true
|
interactive_only: true
|
||||||
instruction: implement
|
instruction: implement
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 02-coder-scope.md
|
report:
|
||||||
- Decisions: 03-coder-decisions.md
|
- Scope: 02-coder-scope.md
|
||||||
|
- Decisions: 03-coder-decisions.md
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
edit: false
|
edit: false
|
||||||
persona: ai-antipattern-reviewer
|
persona: ai-antipattern-reviewer
|
||||||
@ -155,8 +158,9 @@ movements:
|
|||||||
next: ai_fix
|
next: ai_fix
|
||||||
instruction: ai-review
|
instruction: ai-review
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 04-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: ai_fix
|
- name: ai_fix
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -219,8 +223,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-arch
|
instruction: review-arch
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-architect-review.md
|
report:
|
||||||
format: architecture-review
|
- name: 05-architect-review.md
|
||||||
|
format: architecture-review
|
||||||
- name: qa-review
|
- name: qa-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: qa-reviewer
|
persona: qa-reviewer
|
||||||
@ -238,8 +243,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-qa
|
instruction: review-qa
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 06-qa-review.md
|
report:
|
||||||
format: qa-review
|
- name: 06-qa-review.md
|
||||||
|
format: qa-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("approved")
|
- condition: all("approved")
|
||||||
next: supervise
|
next: supervise
|
||||||
@ -288,8 +294,9 @@ movements:
|
|||||||
next: plan
|
next: plan
|
||||||
instruction: supervise
|
instruction: supervise
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 07-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 07-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
report_formats:
|
report_formats:
|
||||||
plan: ../output-contracts/plan.md
|
plan: ../output-contracts/plan.md
|
||||||
architecture-design: ../output-contracts/architecture-design.md
|
architecture-design: ../output-contracts/architecture-design.md
|
||||||
|
|||||||
@ -61,8 +61,9 @@ movements:
|
|||||||
- condition: 要件が不明確で計画を立てられない
|
- condition: 要件が不明確で計画を立てられない
|
||||||
next: ABORT
|
next: ABORT
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -99,8 +100,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
edit: false
|
edit: false
|
||||||
persona: ai-antipattern-reviewer
|
persona: ai-antipattern-reviewer
|
||||||
@ -120,8 +122,9 @@ movements:
|
|||||||
- condition: AI特有の問題が検出された
|
- condition: AI特有の問題が検出された
|
||||||
next: ai_fix
|
next: ai_fix
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: ai_fix
|
- name: ai_fix
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -187,8 +190,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-cqrs-es
|
instruction: review-cqrs-es
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-cqrs-es-review.md
|
report:
|
||||||
format: cqrs-es-review
|
- name: 04-cqrs-es-review.md
|
||||||
|
format: cqrs-es-review
|
||||||
- name: frontend-review
|
- name: frontend-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: frontend-reviewer
|
persona: frontend-reviewer
|
||||||
@ -205,8 +209,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-frontend
|
instruction: review-frontend
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-frontend-review.md
|
report:
|
||||||
format: frontend-review
|
- name: 05-frontend-review.md
|
||||||
|
format: frontend-review
|
||||||
- name: security-review
|
- name: security-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
@ -223,8 +228,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-security
|
instruction: review-security
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 06-security-review.md
|
report:
|
||||||
format: security-review
|
- name: 06-security-review.md
|
||||||
|
format: security-review
|
||||||
- name: qa-review
|
- name: qa-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: qa-reviewer
|
persona: qa-reviewer
|
||||||
@ -242,8 +248,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-qa
|
instruction: review-qa
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 07-qa-review.md
|
report:
|
||||||
format: qa-review
|
- name: 07-qa-review.md
|
||||||
|
format: qa-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("approved")
|
- condition: all("approved")
|
||||||
next: supervise
|
next: supervise
|
||||||
@ -295,8 +302,9 @@ movements:
|
|||||||
- condition: 問題が検出された
|
- condition: 問題が検出された
|
||||||
next: fix_supervisor
|
next: fix_supervisor
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 08-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 08-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
- name: fix_supervisor
|
- name: fix_supervisor
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
|
|||||||
@ -55,8 +55,9 @@ movements:
|
|||||||
- condition: 要件が不明確で計画を立てられない
|
- condition: 要件が不明確で計画を立てられない
|
||||||
next: ABORT
|
next: ABORT
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -92,8 +93,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
edit: false
|
edit: false
|
||||||
persona: ai-antipattern-reviewer
|
persona: ai-antipattern-reviewer
|
||||||
@ -113,8 +115,9 @@ movements:
|
|||||||
- condition: AI特有の問題が検出された
|
- condition: AI特有の問題が検出された
|
||||||
next: ai_fix
|
next: ai_fix
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: ai_fix
|
- name: ai_fix
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -179,8 +182,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-cqrs-es
|
instruction: review-cqrs-es
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-cqrs-es-review.md
|
report:
|
||||||
format: cqrs-es-review
|
- name: 04-cqrs-es-review.md
|
||||||
|
format: cqrs-es-review
|
||||||
- name: frontend-review
|
- name: frontend-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: frontend-reviewer
|
persona: frontend-reviewer
|
||||||
@ -197,8 +201,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-frontend
|
instruction: review-frontend
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-frontend-review.md
|
report:
|
||||||
format: frontend-review
|
- name: 05-frontend-review.md
|
||||||
|
format: frontend-review
|
||||||
- name: security-review
|
- name: security-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
@ -215,8 +220,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-security
|
instruction: review-security
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 06-security-review.md
|
report:
|
||||||
format: security-review
|
- name: 06-security-review.md
|
||||||
|
format: security-review
|
||||||
- name: qa-review
|
- name: qa-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: qa-reviewer
|
persona: qa-reviewer
|
||||||
@ -234,8 +240,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-qa
|
instruction: review-qa
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 07-qa-review.md
|
report:
|
||||||
format: qa-review
|
- name: 07-qa-review.md
|
||||||
|
format: qa-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("approved")
|
- condition: all("approved")
|
||||||
next: supervise
|
next: supervise
|
||||||
@ -286,8 +293,9 @@ movements:
|
|||||||
- condition: 問題が検出された
|
- condition: 問題が検出された
|
||||||
next: fix_supervisor
|
next: fix_supervisor
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 08-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 08-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
- name: fix_supervisor
|
- name: fix_supervisor
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
|
|||||||
@ -59,8 +59,9 @@ movements:
|
|||||||
- condition: 要件が不明確で計画を立てられない
|
- condition: 要件が不明確で計画を立てられない
|
||||||
next: ABORT
|
next: ABORT
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -96,8 +97,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
edit: false
|
edit: false
|
||||||
persona: ai-antipattern-reviewer
|
persona: ai-antipattern-reviewer
|
||||||
@ -117,8 +119,9 @@ movements:
|
|||||||
- condition: AI特有の問題が検出された
|
- condition: AI特有の問題が検出された
|
||||||
next: ai_fix
|
next: ai_fix
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: ai_fix
|
- name: ai_fix
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -183,8 +186,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-arch
|
instruction: review-arch
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-architect-review.md
|
report:
|
||||||
format: architecture-review
|
- name: 04-architect-review.md
|
||||||
|
format: architecture-review
|
||||||
- name: frontend-review
|
- name: frontend-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: frontend-reviewer
|
persona: frontend-reviewer
|
||||||
@ -201,8 +205,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-frontend
|
instruction: review-frontend
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-frontend-review.md
|
report:
|
||||||
format: frontend-review
|
- name: 05-frontend-review.md
|
||||||
|
format: frontend-review
|
||||||
- name: security-review
|
- name: security-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
@ -219,8 +224,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-security
|
instruction: review-security
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 06-security-review.md
|
report:
|
||||||
format: security-review
|
- name: 06-security-review.md
|
||||||
|
format: security-review
|
||||||
- name: qa-review
|
- name: qa-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: qa-reviewer
|
persona: qa-reviewer
|
||||||
@ -238,8 +244,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-qa
|
instruction: review-qa
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 07-qa-review.md
|
report:
|
||||||
format: qa-review
|
- name: 07-qa-review.md
|
||||||
|
format: qa-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("approved")
|
- condition: all("approved")
|
||||||
next: supervise
|
next: supervise
|
||||||
@ -290,8 +297,9 @@ movements:
|
|||||||
- condition: 問題が検出された
|
- condition: 問題が検出された
|
||||||
next: fix_supervisor
|
next: fix_supervisor
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 08-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 08-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
- name: fix_supervisor
|
- name: fix_supervisor
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
|
|||||||
@ -53,8 +53,9 @@ movements:
|
|||||||
- condition: 要件が不明確で計画を立てられない
|
- condition: 要件が不明確で計画を立てられない
|
||||||
next: ABORT
|
next: ABORT
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 00-plan.md
|
report:
|
||||||
format: plan
|
- name: 00-plan.md
|
||||||
|
format: plan
|
||||||
- name: implement
|
- name: implement
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -89,8 +90,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
edit: false
|
edit: false
|
||||||
persona: ai-antipattern-reviewer
|
persona: ai-antipattern-reviewer
|
||||||
@ -110,8 +112,9 @@ movements:
|
|||||||
- condition: AI特有の問題が検出された
|
- condition: AI特有の問題が検出された
|
||||||
next: ai_fix
|
next: ai_fix
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: ai_fix
|
- name: ai_fix
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
@ -175,8 +178,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-arch
|
instruction: review-arch
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 04-architect-review.md
|
report:
|
||||||
format: architecture-review
|
- name: 04-architect-review.md
|
||||||
|
format: architecture-review
|
||||||
- name: frontend-review
|
- name: frontend-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: frontend-reviewer
|
persona: frontend-reviewer
|
||||||
@ -193,8 +197,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-frontend
|
instruction: review-frontend
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-frontend-review.md
|
report:
|
||||||
format: frontend-review
|
- name: 05-frontend-review.md
|
||||||
|
format: frontend-review
|
||||||
- name: security-review
|
- name: security-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
@ -211,8 +216,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-security
|
instruction: review-security
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 06-security-review.md
|
report:
|
||||||
format: security-review
|
- name: 06-security-review.md
|
||||||
|
format: security-review
|
||||||
- name: qa-review
|
- name: qa-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: qa-reviewer
|
persona: qa-reviewer
|
||||||
@ -230,8 +236,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-qa
|
instruction: review-qa
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 07-qa-review.md
|
report:
|
||||||
format: qa-review
|
- name: 07-qa-review.md
|
||||||
|
format: qa-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("approved")
|
- condition: all("approved")
|
||||||
next: supervise
|
next: supervise
|
||||||
@ -281,8 +288,9 @@ movements:
|
|||||||
- condition: 問題が検出された
|
- condition: 問題が検出された
|
||||||
next: fix_supervisor
|
next: fix_supervisor
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 08-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 08-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
- name: fix_supervisor
|
- name: fix_supervisor
|
||||||
edit: true
|
edit: true
|
||||||
persona: coder
|
persona: coder
|
||||||
|
|||||||
@ -46,8 +46,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: reviewers
|
- name: reviewers
|
||||||
parallel:
|
parallel:
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
@ -67,8 +68,9 @@ movements:
|
|||||||
- condition: AI特有の問題なし
|
- condition: AI特有の問題なし
|
||||||
- condition: AI特有の問題あり
|
- condition: AI特有の問題あり
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: supervise
|
- name: supervise
|
||||||
edit: false
|
edit: false
|
||||||
persona: supervisor
|
persona: supervisor
|
||||||
@ -85,8 +87,9 @@ movements:
|
|||||||
- condition: すべて問題なし
|
- condition: すべて問題なし
|
||||||
- condition: 要求未達成、テスト失敗、ビルドエラー
|
- condition: 要求未達成、テスト失敗、ビルドエラー
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 05-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 05-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
rules:
|
rules:
|
||||||
- condition: all("AI特有の問題なし", "すべて問題なし")
|
- condition: all("AI特有の問題なし", "すべて問題なし")
|
||||||
next: COMPLETE
|
next: COMPLETE
|
||||||
|
|||||||
@ -45,8 +45,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: reviewers
|
- name: reviewers
|
||||||
parallel:
|
parallel:
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
@ -66,8 +67,9 @@ movements:
|
|||||||
- condition: AI特有の問題なし
|
- condition: AI特有の問題なし
|
||||||
- condition: AI特有の問題あり
|
- condition: AI特有の問題あり
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: supervise
|
- name: supervise
|
||||||
edit: false
|
edit: false
|
||||||
persona: supervisor
|
persona: supervisor
|
||||||
@ -84,8 +86,9 @@ movements:
|
|||||||
- condition: すべて問題なし
|
- condition: すべて問題なし
|
||||||
- condition: 要求未達成、テスト失敗、ビルドエラー
|
- condition: 要求未達成、テスト失敗、ビルドエラー
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 05-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 05-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
rules:
|
rules:
|
||||||
- condition: all("AI特有の問題なし", "すべて問題なし")
|
- condition: all("AI特有の問題なし", "すべて問題なし")
|
||||||
next: COMPLETE
|
next: COMPLETE
|
||||||
|
|||||||
@ -37,7 +37,8 @@ movements:
|
|||||||
instruction_template: |
|
instruction_template: |
|
||||||
タスクをこなしてください。
|
タスクをこなしてください。
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Summary: summary.md
|
report:
|
||||||
|
- Summary: summary.md
|
||||||
policies:
|
policies:
|
||||||
coding: ../policies/coding.md
|
coding: ../policies/coding.md
|
||||||
testing: ../policies/testing.md
|
testing: ../policies/testing.md
|
||||||
|
|||||||
@ -36,4 +36,5 @@ movements:
|
|||||||
instruction_template: |
|
instruction_template: |
|
||||||
タスクをこなしてください。
|
タスクをこなしてください。
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Summary: summary.md
|
report:
|
||||||
|
- Summary: summary.md
|
||||||
|
|||||||
@ -46,8 +46,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: reviewers
|
- name: reviewers
|
||||||
parallel:
|
parallel:
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
@ -67,8 +68,9 @@ movements:
|
|||||||
- condition: AI特有の問題なし
|
- condition: AI特有の問題なし
|
||||||
- condition: AI特有の問題あり
|
- condition: AI特有の問題あり
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: supervise
|
- name: supervise
|
||||||
edit: false
|
edit: false
|
||||||
persona: supervisor
|
persona: supervisor
|
||||||
@ -85,8 +87,9 @@ movements:
|
|||||||
- condition: すべて問題なし
|
- condition: すべて問題なし
|
||||||
- condition: 要求未達成、テスト失敗、ビルドエラー
|
- condition: 要求未達成、テスト失敗、ビルドエラー
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 05-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 05-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
rules:
|
rules:
|
||||||
- condition: all("AI特有の問題なし", "すべて問題なし")
|
- condition: all("AI特有の問題なし", "すべて問題なし")
|
||||||
next: COMPLETE
|
next: COMPLETE
|
||||||
|
|||||||
@ -45,8 +45,9 @@ movements:
|
|||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Scope: 01-coder-scope.md
|
report:
|
||||||
- Decisions: 02-coder-decisions.md
|
- Scope: 01-coder-scope.md
|
||||||
|
- Decisions: 02-coder-decisions.md
|
||||||
- name: reviewers
|
- name: reviewers
|
||||||
parallel:
|
parallel:
|
||||||
- name: ai_review
|
- name: ai_review
|
||||||
@ -66,8 +67,9 @@ movements:
|
|||||||
- condition: AI特有の問題なし
|
- condition: AI特有の問題なし
|
||||||
- condition: AI特有の問題あり
|
- condition: AI特有の問題あり
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
- name: supervise
|
- name: supervise
|
||||||
edit: false
|
edit: false
|
||||||
persona: supervisor
|
persona: supervisor
|
||||||
@ -84,8 +86,9 @@ movements:
|
|||||||
- condition: すべて問題なし
|
- condition: すべて問題なし
|
||||||
- condition: 要求未達成、テスト失敗、ビルドエラー
|
- condition: 要求未達成、テスト失敗、ビルドエラー
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Validation: 05-supervisor-validation.md
|
report:
|
||||||
- Summary: summary.md
|
- Validation: 05-supervisor-validation.md
|
||||||
|
- Summary: summary.md
|
||||||
rules:
|
rules:
|
||||||
- condition: all("AI特有の問題なし", "すべて問題なし")
|
- condition: all("AI特有の問題なし", "すべて問題なし")
|
||||||
next: COMPLETE
|
next: COMPLETE
|
||||||
|
|||||||
@ -72,8 +72,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-arch
|
instruction: review-arch
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 01-architect-review.md
|
report:
|
||||||
format: architecture-review
|
- name: 01-architect-review.md
|
||||||
|
format: architecture-review
|
||||||
- name: security-review
|
- name: security-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
@ -90,8 +91,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-security
|
instruction: review-security
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 02-security-review.md
|
report:
|
||||||
format: security-review
|
- name: 02-security-review.md
|
||||||
|
format: security-review
|
||||||
- name: ai-review
|
- name: ai-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: ai-antipattern-reviewer
|
persona: ai-antipattern-reviewer
|
||||||
@ -109,8 +111,9 @@ movements:
|
|||||||
- condition: needs_fix
|
- condition: needs_fix
|
||||||
instruction: review-ai
|
instruction: review-ai
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 03-ai-review.md
|
report:
|
||||||
format: ai-review
|
- name: 03-ai-review.md
|
||||||
|
format: ai-review
|
||||||
rules:
|
rules:
|
||||||
- condition: all("approved")
|
- condition: all("approved")
|
||||||
next: supervise
|
next: supervise
|
||||||
@ -176,7 +179,8 @@ movements:
|
|||||||
- {全レビューからの統合提案}
|
- {全レビューからの統合提案}
|
||||||
```
|
```
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Review Summary: 04-review-summary.md
|
report:
|
||||||
|
- Review Summary: 04-review-summary.md
|
||||||
- name: pr-comment
|
- name: pr-comment
|
||||||
edit: false
|
edit: false
|
||||||
persona: pr-commenter
|
persona: pr-commenter
|
||||||
|
|||||||
@ -156,7 +156,6 @@ AIは「将来の拡張性」「対称性」「念のため」で不要なコー
|
|||||||
| REJECT | 将来の拡張のために用意されたインターフェースやオプション |
|
| REJECT | 将来の拡張のために用意されたインターフェースやオプション |
|
||||||
| REJECT | exportされているが、grep で使用箇所が見つからない |
|
| REJECT | exportされているが、grep で使用箇所が見つからない |
|
||||||
| OK | フレームワークが暗黙的に呼び出す(ライフサイクルフック等) |
|
| OK | フレームワークが暗黙的に呼び出す(ライフサイクルフック等) |
|
||||||
| OK | 公開パッケージのAPIとして意図的に公開している |
|
|
||||||
|
|
||||||
検証アプローチ:
|
検証アプローチ:
|
||||||
1. 変更・削除されたコードを参照している箇所がないか grep で確認
|
1. 変更・削除されたコードを参照している箇所がないか grep で確認
|
||||||
|
|||||||
@ -76,8 +76,9 @@ movement 内では**キー名**で参照する(パスを直接書かない)
|
|||||||
edit: false
|
edit: false
|
||||||
instruction: review-arch
|
instruction: review-arch
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 05-architect-review.md
|
report:
|
||||||
format: architecture-review
|
- name: 05-architect-review.md
|
||||||
|
format: architecture-review
|
||||||
rules:
|
rules:
|
||||||
- condition: "approved"
|
- condition: "approved"
|
||||||
- condition: "needs_fix"
|
- condition: "needs_fix"
|
||||||
@ -132,14 +133,15 @@ rules:
|
|||||||
|
|
||||||
## Output Contracts 定義
|
## Output Contracts 定義
|
||||||
|
|
||||||
Movement の出力契約(レポート定義)。配列形式で指定する。
|
Movement の出力契約(レポート定義)。`output_contracts.report` 配列形式で指定する。
|
||||||
|
|
||||||
### 形式1: name + format(フォーマット参照)
|
### 形式1: name + format(フォーマット参照)
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 01-plan.md
|
report:
|
||||||
format: plan # report_formats マップのキーを参照
|
- name: 01-plan.md
|
||||||
|
format: plan # report_formats マップのキーを参照
|
||||||
```
|
```
|
||||||
|
|
||||||
`format` がキー文字列の場合、トップレベル `report_formats:` セクションから対応する .md ファイルを読み込み、出力契約指示として使用する。
|
`format` がキー文字列の場合、トップレベル `report_formats:` セクションから対応する .md ファイルを読み込み、出力契約指示として使用する。
|
||||||
@ -148,20 +150,22 @@ output_contracts:
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: 01-plan.md
|
report:
|
||||||
format: | # インラインでフォーマットを記述
|
- name: 01-plan.md
|
||||||
# レポートタイトル
|
format: | # インラインでフォーマットを記述
|
||||||
## セクション
|
# レポートタイトル
|
||||||
{内容}
|
## セクション
|
||||||
|
{内容}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 形式2: label + path(ラベル付きパス)
|
### 形式2: label + path(ラベル付きパス)
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- Summary: summary.md
|
report:
|
||||||
- Scope: 01-scope.md
|
- Summary: summary.md
|
||||||
- Decisions: 02-decisions.md
|
- Scope: 01-scope.md
|
||||||
|
- Decisions: 02-decisions.md
|
||||||
```
|
```
|
||||||
|
|
||||||
各要素のキーがレポート種別名(ラベル)、値がファイル名。
|
各要素のキーがレポート種別名(ラベル)、値がファイル名。
|
||||||
|
|||||||
@ -370,8 +370,9 @@ movements:
|
|||||||
instruction: review # 異なる WHAT(共有も可能)
|
instruction: review # 異なる WHAT(共有も可能)
|
||||||
knowledge: architecture # 同じ CONTEXT — 再利用
|
knowledge: architecture # 同じ CONTEXT — 再利用
|
||||||
output_contracts:
|
output_contracts:
|
||||||
- name: review.md
|
report:
|
||||||
format: review # OUTPUT — report_formats.review を参照
|
- name: review.md
|
||||||
|
format: review # OUTPUT — report_formats.review を参照
|
||||||
edit: false
|
edit: false
|
||||||
rules:
|
rules:
|
||||||
- condition: Approved
|
- condition: Approved
|
||||||
|
|||||||
@ -369,9 +369,10 @@ movements:
|
|||||||
policy: review # Different RULES
|
policy: review # Different RULES
|
||||||
instruction: review # Different WHAT (but could share)
|
instruction: review # Different WHAT (but could share)
|
||||||
knowledge: architecture # Same CONTEXT — reused
|
knowledge: architecture # Same CONTEXT — reused
|
||||||
report:
|
output_contracts:
|
||||||
name: review.md
|
report:
|
||||||
format: review # OUTPUT — references output_contracts.review
|
- name: review.md
|
||||||
|
format: review # OUTPUT — references report_formats.review
|
||||||
edit: false
|
edit: false
|
||||||
rules:
|
rules:
|
||||||
- condition: Approved
|
- condition: Approved
|
||||||
|
|||||||
@ -556,10 +556,12 @@ describe('section reference resolution', () => {
|
|||||||
name: 'plan',
|
name: 'plan',
|
||||||
persona: 'planner',
|
persona: 'planner',
|
||||||
instruction: '{task}',
|
instruction: '{task}',
|
||||||
output_contracts: [{
|
output_contracts: {
|
||||||
name: '00-plan.md',
|
report: [{
|
||||||
format: 'plan',
|
name: '00-plan.md',
|
||||||
}],
|
format: 'plan',
|
||||||
|
}],
|
||||||
|
},
|
||||||
}],
|
}],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -78,26 +78,35 @@ export const OutputContractItemSchema = z.object({
|
|||||||
format: z.string().optional(),
|
format: z.string().optional(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Raw output contract entry — array item in output_contracts.report
|
||||||
|
*
|
||||||
|
* Supports:
|
||||||
|
* - Label:path format: { Scope: "01-scope.md" }
|
||||||
|
* - Item format: { name, order?, format? }
|
||||||
|
*/
|
||||||
|
export const OutputContractEntrySchema = z.union([
|
||||||
|
z.record(z.string(), z.string()), // {Scope: "01-scope.md"} format
|
||||||
|
OutputContractItemSchema, // {name, order?, format?} format
|
||||||
|
]);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Output contracts field schema for movement-level definition.
|
* Output contracts field schema for movement-level definition.
|
||||||
*
|
*
|
||||||
* YAML formats:
|
* YAML format:
|
||||||
* output_contracts: # array of label:path entries
|
* output_contracts:
|
||||||
* - Scope: 01-scope.md
|
* report: # report array (required if output_contracts is specified)
|
||||||
* - Decisions: 02-decisions.md
|
* - Scope: 01-scope.md # label:path format
|
||||||
* output_contracts: # array of objects (name + order + format)
|
* - Decisions: 02-decisions.md
|
||||||
* - name: 00-plan.md
|
* output_contracts:
|
||||||
* order: ...
|
* report:
|
||||||
* format: plan
|
* - name: 00-plan.md # name + order + format format
|
||||||
*
|
* order: ...
|
||||||
* Array items can be single-key objects or full item objects.
|
* format: plan
|
||||||
*/
|
*/
|
||||||
export const OutputContractsFieldSchema = z.array(
|
export const OutputContractsFieldSchema = z.object({
|
||||||
z.union([
|
report: z.array(OutputContractEntrySchema).optional(),
|
||||||
z.record(z.string(), z.string()), // {Scope: "01-scope.md"} format
|
}).optional();
|
||||||
OutputContractItemSchema, // {name, order?, format?} format
|
|
||||||
])
|
|
||||||
).optional();
|
|
||||||
|
|
||||||
/** Quality gates schema - AI directives for movement completion (string array) */
|
/** Quality gates schema - AI directives for movement completion (string array) */
|
||||||
export const QualityGatesSchema = z.array(z.string()).optional();
|
export const QualityGatesSchema = z.array(z.string()).optional();
|
||||||
|
|||||||
@ -53,7 +53,7 @@ export { handleBlocked, type BlockedHandlerResult } from './engine/blocked-handl
|
|||||||
export { ParallelLogger } from './engine/parallel-logger.js';
|
export { ParallelLogger } from './engine/parallel-logger.js';
|
||||||
|
|
||||||
// Instruction building
|
// Instruction building
|
||||||
export { InstructionBuilder, isOutputContractItem, isOutputContractLabelPath } from './instruction/InstructionBuilder.js';
|
export { InstructionBuilder, isOutputContractItem } from './instruction/InstructionBuilder.js';
|
||||||
export { ReportInstructionBuilder, type ReportInstructionContext } from './instruction/ReportInstructionBuilder.js';
|
export { ReportInstructionBuilder, type ReportInstructionContext } from './instruction/ReportInstructionBuilder.js';
|
||||||
export { StatusJudgmentBuilder, type StatusJudgmentContext } from './instruction/StatusJudgmentBuilder.js';
|
export { StatusJudgmentBuilder, type StatusJudgmentContext } from './instruction/StatusJudgmentBuilder.js';
|
||||||
export { buildEditRule, type InstructionContext } from './instruction/instruction-context.js';
|
export { buildEditRule, type InstructionContext } from './instruction/instruction-context.js';
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
* Assembles template variables and renders a single complete template.
|
* Assembles template variables and renders a single complete template.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import type { PieceMovement, Language, OutputContractLabelPath, OutputContractItem, OutputContractEntry } from '../../models/types.js';
|
import type { PieceMovement, Language, OutputContractItem, OutputContractEntry } from '../../models/types.js';
|
||||||
import type { InstructionContext } from './instruction-context.js';
|
import type { InstructionContext } from './instruction-context.js';
|
||||||
import { buildEditRule } from './instruction-context.js';
|
import { buildEditRule } from './instruction-context.js';
|
||||||
import { escapeTemplateChars, replaceTemplatePlaceholders } from './escape.js';
|
import { escapeTemplateChars, replaceTemplatePlaceholders } from './escape.js';
|
||||||
@ -18,13 +18,6 @@ export function isOutputContractItem(entry: OutputContractEntry): entry is Outpu
|
|||||||
return 'name' in entry;
|
return 'name' in entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if an output contract entry is the label-path form (OutputContractLabelPath).
|
|
||||||
*/
|
|
||||||
export function isOutputContractLabelPath(entry: OutputContractEntry): entry is OutputContractLabelPath {
|
|
||||||
return 'label' in entry && 'path' in entry;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds Phase 1 instructions for agent execution.
|
* Builds Phase 1 instructions for agent execution.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
* Instruction builders - barrel exports
|
* Instruction builders - barrel exports
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export { InstructionBuilder, isOutputContractItem, isOutputContractLabelPath, renderReportContext, renderReportOutputInstruction } from './InstructionBuilder.js';
|
export { InstructionBuilder, isOutputContractItem, renderReportContext, renderReportOutputInstruction } from './InstructionBuilder.js';
|
||||||
export { ReportInstructionBuilder, type ReportInstructionContext } from './ReportInstructionBuilder.js';
|
export { ReportInstructionBuilder, type ReportInstructionContext } from './ReportInstructionBuilder.js';
|
||||||
export { StatusJudgmentBuilder, type StatusJudgmentContext } from './StatusJudgmentBuilder.js';
|
export { StatusJudgmentBuilder, type StatusJudgmentContext } from './StatusJudgmentBuilder.js';
|
||||||
export { escapeTemplateChars, replaceTemplatePlaceholders } from './escape.js';
|
export { escapeTemplateChars, replaceTemplatePlaceholders } from './escape.js';
|
||||||
|
|||||||
@ -114,7 +114,6 @@ export {
|
|||||||
ParallelLogger,
|
ParallelLogger,
|
||||||
InstructionBuilder,
|
InstructionBuilder,
|
||||||
isOutputContractItem,
|
isOutputContractItem,
|
||||||
isOutputContractLabelPath,
|
|
||||||
ReportInstructionBuilder,
|
ReportInstructionBuilder,
|
||||||
StatusJudgmentBuilder,
|
StatusJudgmentBuilder,
|
||||||
buildEditRule,
|
buildEditRule,
|
||||||
|
|||||||
@ -122,24 +122,25 @@ function isOutputContractItem(raw: unknown): raw is { name: string; order?: stri
|
|||||||
/**
|
/**
|
||||||
* Normalize the raw output_contracts field from YAML into internal format.
|
* Normalize the raw output_contracts field from YAML into internal format.
|
||||||
*
|
*
|
||||||
* Input formats (YAML):
|
* Input format (YAML):
|
||||||
* output_contracts:
|
* output_contracts:
|
||||||
* - Scope: 01-scope.md # label:path format
|
* report:
|
||||||
* - name: 00-plan.md # item format
|
* - Scope: 01-scope.md # label:path format
|
||||||
* format: plan
|
* - name: 00-plan.md # item format
|
||||||
|
* format: plan
|
||||||
*
|
*
|
||||||
* Output: OutputContractEntry[]
|
* Output: OutputContractEntry[]
|
||||||
*/
|
*/
|
||||||
function normalizeOutputContracts(
|
function normalizeOutputContracts(
|
||||||
raw: Array<Record<string, string> | { name: string; order?: string; format?: string }> | undefined,
|
raw: { report?: Array<Record<string, string> | { name: string; order?: string; format?: string }> } | undefined,
|
||||||
pieceDir: string,
|
pieceDir: string,
|
||||||
resolvedReportFormats?: Record<string, string>,
|
resolvedReportFormats?: Record<string, string>,
|
||||||
): OutputContractEntry[] | undefined {
|
): OutputContractEntry[] | undefined {
|
||||||
if (raw == null || raw.length === 0) return undefined;
|
if (raw?.report == null || raw.report.length === 0) return undefined;
|
||||||
|
|
||||||
const result: OutputContractEntry[] = [];
|
const result: OutputContractEntry[] = [];
|
||||||
|
|
||||||
for (const entry of raw) {
|
for (const entry of raw.report) {
|
||||||
if (isOutputContractItem(entry)) {
|
if (isOutputContractItem(entry)) {
|
||||||
// Item format: {name, order?, format?}
|
// Item format: {name, order?, format?}
|
||||||
const item: OutputContractItem = {
|
const item: OutputContractItem = {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user