# {{COMPONENTNAME}} Workflow
#
# {{DESCRIPTION}}
#
# Created: {{CREATEDAT}}
# Story: {{STORYID}}

name: {{COMPONENTNAME}}
version: 1.0.0
description: {{DESCRIPTION}}
squad: {{SQUADNAME}}

# Metadata
metadata:
  created: {{CREATEDAT}}
  author: squad-creator
  tags:
    - workflow
    - {{SQUADNAME}}

# Trigger conditions
triggers:
  - type: manual
    command: "*{{COMPONENTNAME}}"
  # - type: event
  #   event: some-event-name
  # - type: schedule
  #   cron: "0 0 * * *"

# Input parameters
inputs:
  - name: param1
    type: string
    required: true
    description: "Description of parameter 1"
  - name: param2
    type: string
    required: false
    default: "default-value"
    description: "Description of parameter 2"

# Workflow steps
steps:
  - id: step-1
    name: "Step 1: Initialize"
    description: "Initialize the workflow"
    action: task
    task: task-name-1
    inputs:
      param: "{{inputs.param1}}"
    on_error: abort

  - id: step-2
    name: "Step 2: Process"
    description: "Main processing step"
    action: task
    task: task-name-2
    depends_on:
      - step-1
    inputs:
      data: "{{steps.step-1.output}}"
    on_error: retry
    retry:
      max_attempts: 3
      delay: 1000

  - id: step-3
    name: "Step 3: Finalize"
    description: "Finalize the workflow"
    action: task
    task: task-name-3
    depends_on:
      - step-2
    condition: "{{steps.step-2.success}}"

# Conditional branches (optional)
# branches:
#   - condition: "{{steps.step-2.output.type == 'a'}}"
#     steps:
#       - id: branch-a-step
#         name: "Branch A Step"
#         action: task
#         task: branch-a-task

# Output definition
outputs:
  - name: result
    from: "{{steps.step-3.output}}"
    description: "Final workflow result"

# Completion handlers
completion:
  on_success:
    message: "Workflow '{{COMPONENTNAME}}' completed successfully"
    notify: false
  on_failure:
    message: "Workflow '{{COMPONENTNAME}}' failed"
    notify: true
    rollback: true

# Validation
validation:
  pre_run:
    - "Check all required inputs are provided"
    - "Validate input formats"
  post_run:
    - "Verify output is valid"
    - "Log completion metrics"
