vt-c-pd-route-decision¶
Execute the design iteration routing decision. Updates workflow state and launches the target phase based on impact analysis recommendations.
Plugin: core-standards
Category: Product Design Workflow
Command: /vt-c-pd-route-decision
Product Design: Route Decision¶
Execute the routing decision from impact analysis and transition to the appropriate phase.
Workflow Position¶
ITERATIVE DESIGN LOOP:
New Input → /vt-c-pd-inbox-scan → /vt-c-pd-analyze-changes → [ /vt-c-pd-route-decision ]
▲ YOU ARE HERE
│
┌─────────────────────────────┘
│
▼
┌───────────────────┐
│ Target Phase │
│ (pd-1, pd-2, etc) │
└───────────────────┘
Invocation¶
/vt-c-pd-route-decision # Interactive decision
/vt-c-pd-route-decision --option 1 # Execute specific option from analysis
/vt-c-pd-route-decision --continue # Continue current phase, defer items
What This Skill Does¶
- Loads impact analysis recommendations from state
- Presents decision options to user
- Captures user's selection
- Updates design state with decision
- Logs decision in iteration history
- Launches the target phase skill
Execution Instructions¶
Step 0: Prerequisites¶
Ensure /vt-c-pd-analyze-changes has been run:
Read: .design-state.yaml
# Check that pending_items have analyzed: true
# Check for analysis.recommended_phase
If not analyzed:
Step 1: Load Current State and Recommendations¶
From .design-state.yaml:
- current_state.phase - Current phase
- current_state.iteration - Current iteration number
- inbox.pending_items[].analysis - Analysis results
Step 2: Present Decision Options¶
Based on impact analysis aggregation:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Product Design: Routing Decision
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Current: {phase} (Iteration {n})
Pending Items: {count} analyzed
Impact Summary:
• PRD: {aggregated impact}
• Prototype: {aggregated impact}
• specs: {aggregated impact}
─────────────────────────────────────────────────────────────────
ROUTING OPTIONS
─────────────────────────────────────────────────────────────────
1. [RECOMMENDED] Return to {recommended_phase}
Reason: {primary reason from analysis}
Scope: {Full iteration cycle | Targeted rework}
Artifacts to update:
- {artifact 1}
- {artifact 2}
2. Return to {alternative_phase} (if different)
Reason: Address {subset} issues only
Trade-off: {what gets deferred}
3. Split into parallel tracks
Track A: {quick fixes} (→ pd-6-handoff)
Track B: {larger changes} (separate iteration)
Trade-off: Complexity of managing two tracks
4. Continue current phase
Action: Defer all items to backlog
Document as known limitations
Proceed to next phase
5. Cancel / Manual override
Provide custom routing
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Select option [1-5]:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Step 3: Capture User Selection¶
Use AskUserQuestion or accept from command line argument.
Step 4: Execute Decision¶
Option 1/2: Return to Earlier Phase¶
Update State File:
current_state:
phase: "{target_phase}" # e.g., "pd-2-prd"
status: "in_progress"
iteration: {n+1} # Increment iteration
started_at: "{timestamp}"
# Invalidate subsequent phases
quality_gates:
{target_phase}:
passed: false # Reset gate
{subsequent_phases}:
passed: false # Reset all after target
# Version bump artifacts that need updating
artifacts:
prd:
version: "{increment if affected}"
status: "revision_needed"
prototype:
version: "{increment if affected}"
status: "revision_needed"
# Log iteration
iterations:
- number: {n+1}
started: "{timestamp}"
ended: null
trigger: "design_iteration"
trigger_details:
source: "{inbox items}"
issue: "{summary}"
decision: "Return to {target_phase}"
previous_phase: "{current_phase}"
# Log decision
decisions:
- timestamp: "{now}"
phase: "{current_phase}"
type: "iteration_triggered"
reason: "{from analysis}"
action: "Return to {target_phase}"
items_processed:
- "{item 1}"
- "{item 2}"
Clear Processed Items:
Option 3: Split into Parallel Tracks¶
# Create track marker
parallel_tracks:
active: true
tracks:
- name: "Track A - Quick Fixes"
phase: "pd-3-prototype"
scope: ["usability fixes"]
target: "v1.0"
- name: "Track B - New Features"
phase: "pd-2-prd"
scope: ["scope additions"]
target: "v1.1"
Note: Parallel tracks add complexity. Consider carefully.
Option 4: Continue / Defer¶
# Don't change phase
current_state:
phase: "{unchanged}"
# Move items to deferred
inbox:
pending_items: [] # Clear
deferred_items:
- file: "{item}"
deferred_at: "{timestamp}"
reason: "Deferred to backlog"
# Log decision
decisions:
- timestamp: "{now}"
type: "continue_with_deferral"
items_deferred: ["{items}"]
reason: "Proceeding to maintain timeline"
Step 5: Display Confirmation¶
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Product Design: Routing Complete
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ Decision logged
✓ State updated to {target_phase} (Iteration {n})
✓ Quality gates reset for phases: {list}
✓ Artifacts marked for revision: {list}
Trigger: {trigger summary}
Action: {action taken}
Previous Phase: {old_phase}
New Phase: {new_phase}
Iteration: {old_n} → {new_n}
TIP: After the target phase completes, capture this iteration's
decisions for the audit trail:
/vt-c-pd-capture-decisions
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Step 6: Launch Target Phase¶
Automatically invoke the target phase skill:
Phase Launch Messages:
For pd-1-research:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LAUNCHING: /vt-c-pd-1-research
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Context: Returning due to user research invalidation
Previous research version: {version}
Issues to address:
• {issue 1}
• {issue 2}
Guidance:
- Review previous personas against new findings
- Update interview scripts if needed
- Focus on areas identified in impact analysis
For pd-2-prd:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LAUNCHING: /vt-c-pd-2-prd
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Context: Returning due to scope/requirements change
Previous PRD version: {version}
Issues to address:
• {issue 1}
• {issue 2}
Guidance:
- Update PRD Section 4 (Features) with changes
- Review acceptance criteria
- Consider impact on timeline
- Will cascade to prototype and specs updates
For pd-3-prototype:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LAUNCHING: /vt-c-pd-3-prototype
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Context: Returning due to UI/UX issues
Previous prototype version: {version}
Issues to address:
• {issue 1}
• {issue 2}
Guidance:
- Focus on usability findings
- Update affected components
- Re-deploy for validation
- Will need re-testing in pd-4-validate
Decision History Tracking¶
All routing decisions are logged for learning:
# In .design-state.yaml
decisions:
- timestamp: "2026-01-28T14:30:00"
phase: "pd-4-validate"
type: "iteration_triggered"
reason: "Usability test failure - task completion below threshold"
action: "Return to pd-3-prototype"
items_processed:
- "usability-test-results-2026-01-28.pdf"
outcome: null # Filled in after iteration completes
After iteration completes, update outcome:
outcome:
completed_at: "2026-01-28T16:00:00"
phases_revisited: ["pd-3-prototype", "pd-4-validate"]
artifacts_updated: ["prototype v1.2 → v1.3"]
success: true
Metrics Integration¶
Track iteration patterns for process improvement:
// metrics/design-iterations.json
{
"iterations": [
{
"project": "VisiMatch Camera",
"total_iterations": 4,
"triggers": {
"usability_test": 2,
"stakeholder_feedback": 1,
"tech_constraint": 1
},
"phases_returned_to": {
"pd-1": 0,
"pd-2": 1,
"pd-3": 2
},
"avg_iteration_duration_hours": 3.5
}
]
}
Related Skills¶
/vt-c-pd-inbox-scan- Detect new items/vt-c-pd-analyze-changes- Analyze impact (run before this)- All
/pd-*phase skills - Launched by routing decision