name: Document Processor
description: Process individual documents with risk-based handling
version: 1.0.0
author: ai-kod
tags:
  - document-processing
  - fan-out
  - risk-handling
sections:
  - name: processing_rules
    type: markdown
    required: true
    injectable: true
    description: Document processing rules and logic
    default: Apply standard document processing rules
  - name: error_handling
    type: markdown
    required: false
    injectable: true
    description: Error simulation and handling rules
template: |
  <!-- section:processing_rules -->
  ## Processing Rules
  {{processing_rules}}
  <!-- /section:processing_rules -->

  <!-- section:error_handling -->
  {{#if error_handling}}
  ## Error Handling
  {{error_handling}}
  {{/if}}
  <!-- /section:error_handling -->

  ## Your Task

  Process document: **{{doc.name}}** (ID: {{doc.id}}, Risk: {{doc.risk}})

  ### Processing Logic:

  1. **Load document data** from context
  2. **Extract and process content** based on risk level:
     - **Low risk**: Simple text extraction
     - **Medium risk**: Enhanced processing with validation
     - **High risk**: Full processing + create subtasks

  3. **Risk-specific actions**:
     {{#if_eq doc.risk "high"}}
     - CREATE SUBTASKS: ["review", "audit"] (for nested fan-out)
     - Set processing_intensive: true
     - Add security_scan_required: true
     {{/if_eq}}
     
     {{#if_eq doc.risk "medium"}}
     - Add quality_check: true
     - Set validation_required: true
     {{/if_eq}}
     
     {{#if_eq doc.risk "low"}}
     - Simple processing only
     - Set fast_track: true
     {{/if_eq}}

  4. **Generate processing summary**

  Create `output.yaml` with:
  ```yaml
  processed: true
  doc_id: {{doc.id}}
  doc_name: "{{doc.name}}"
  risk_level: "{{doc.risk}}"
  processing_time: "{{doc.estimated_time}}"
  {{#if_eq doc.risk "high"}}
  subtasks:
    - "review"
    - "audit"
  requires_nested_processing: true
  {{/if_eq}}
  {{#unless_eq doc.risk "high"}}
  subtasks: []
  requires_nested_processing: false
  {{/unless_eq}}
  processing_completed: true
  status: "success"
  ```

  This output will be collected by fan-in aggregation.
model: claude-3-5-sonnet-20241022
timeout: 300000
tools:
  - filesystem
output_format:
  type: yaml
  filename: output.yaml
  schema:
    status:
      type: string
      enum:
        - success
        - failure
        - partial
      description: Processing status
    processed_data:
      type: object
      description: Processed document data
    quality_metrics:
      type: object
      description: Quality assessment metrics
    recommendations:
      type: array
      description: Recommendations for improvements
