orchestrated-discussions/templates/feature.yaml

98 lines
2.9 KiB
YAML

# Feature Discussion Template
# Referenced by: <!-- Template: feature --> in discussion files
name: feature
description: Feature proposal and review workflow
# Turn pipeline - defines what SmartTools run during each turn
# Uses variable-based schema: $input -> tool -> $output
turn_pipeline:
steps:
# Step 1: Parse discussion to get metadata
- tool: discussion-parser
input: $discussion
output: $parsed
# Step 2: Route mentions (only if participants not specified)
- tool: discussion-mention-router
input: $parsed
output: $routing
when: not $participants_specified
args:
--default-participants: $participants_csv
# Step 3: Call each participant
- tool: discussion-{participant}
for_each: $participants_to_call
parallel: true
input: $discussion
output: $responses[]
args:
--callout: $callout
--templates-dir: $templates_dir
# Step 4: Append responses to discussion
- tool: discussion-turn-appender
input: $discussion
output: $discussion
args:
--responses-json: $responses_json
# Step 5: Count votes (only in voting phases)
- tool: discussion-vote-counter
input: $parsed
output: $votes
when: $phase_voting
# Step 6: Check status promotion
- tool: discussion-status-promoter
input: $votes
output: $promotion
when: $phase_voting
args:
--current-status: $status
--current-phase: $phase
phases:
initial_feedback:
goal: Gather diverse perspectives on the proposal
instructions: |
- Focus on feasibility, risks, and high-level concerns
- Raise blocking issues early
- Ask clarifying questions about requirements
- Suggest alternatives if you see better approaches
- Don't dive deep into implementation details yet
voting: false
next_phase: detailed_review
detailed_review:
goal: Deep dive into implementation approach
instructions: |
- Address concerns raised in initial feedback
- Discuss specific implementation trade-offs
- Review proposed architecture and design
- Identify edge cases and error handling needs
- Ensure security and performance are considered
voting: false
next_phase: consensus_vote
consensus_vote:
goal: Reach agreement on the approach
instructions: |
- All major concerns must be addressed before voting READY
- Vote CHANGES if you have unresolved concerns
- Vote REJECT only for fundamental issues
- Summarize your position clearly with your vote
- If voting CHANGES, specify what needs to change
voting: true
threshold_ready: 0.67
human_required: true
next_phase: null
# Status transitions triggered by consensus
status_transitions:
OPEN:
on_consensus: READY_FOR_DESIGN
READY_FOR_DESIGN:
on_consensus: READY_FOR_IMPLEMENTATION