98 lines
2.9 KiB
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
|