# UAC Generator

## ⚠️ CRITICAL EXECUTION NOTICE ⚠️

**THIS IS AN EXECUTABLE WORKFLOW - NOT REFERENCE MATERIAL**

When this task is invoked:
1. **USER ACCEPTANCE CRITERIA GENERATION** - Create comprehensive acceptance criteria for task groups
2. **TEST CASE CREATION** - Generate detailed test cases serving as user stories/UAC
3. **VALIDATION RULES SETUP** - Establish validation rules for implementation success
4. **CONFIRMATION WORKFLOW** - Present UAC to user for confirmation before implementation

## Overview

This workflow generates comprehensive User Acceptance Criteria (UAC) and test cases for task groups, ensuring clear success criteria and validation rules before implementation begins. It creates testable acceptance criteria that serve as both implementation guidance and validation checkpoints.

## Input Parameters

### Required Parameters
- **task_groups**: Array of task group objects with enhanced task details
- **workflow_context**: Current workflow state and requirements

### Optional Parameters
- **uac_depth**: "basic" | "standard" | "comprehensive" (default: "comprehensive")
- **test_case_types**: Array of test types ["unit", "integration", "e2e", "acceptance"] (default: all)
- **validation_level**: "functional" | "technical" | "business" | "complete" (default: "complete")

## Execution Steps

### Phase 1: UAC Analysis & Planning

```yaml
step: uac_analysis
description: Analyze task groups to determine UAC requirements
actions:
  - analyze_business_requirements: Extract business value and user impact
  - identify_functional_requirements: Determine functional behavior requirements
  - assess_technical_requirements: Identify technical validation needs
  - map_user_journeys: Trace user interactions and workflows
  - determine_success_criteria: Define clear success metrics
analysis_categories:
  business_value:
    - user_impact: "How implementation affects end users"
    - business_benefit: "Business value delivered by implementation"
    - success_metrics: "Measurable outcomes indicating success"
  functional_behavior:
    - core_functionality: "Primary functions being implemented"
    - edge_cases: "Boundary conditions and error scenarios"
    - integration_points: "How implementation integrates with existing systems"
  technical_validation:
    - performance_criteria: "Performance requirements and benchmarks"
    - security_requirements: "Security validation and compliance needs"
    - compatibility_requirements: "Browser, device, and system compatibility"
```

### Phase 2: Test Case Generation

```yaml
step: test_case_generation
description: Generate comprehensive test cases for each task group
actions:
  - create_unit_test_cases: Generate unit test specifications
  - create_integration_test_cases: Generate integration test specifications
  - create_e2e_test_cases: Generate end-to-end test scenarios
  - create_acceptance_test_cases: Generate user acceptance test scenarios
  - validate_test_coverage: Ensure complete coverage of requirements
test_case_structure:
  unit_tests:
    - test_id: "Unique identifier for test case"
    - description: "Clear description of what is being tested"
    - preconditions: "Required setup and initial state"
    - test_steps: "Detailed steps to execute test"
    - expected_results: "Expected outcome of test execution"
    - validation_criteria: "How to determine if test passes"
  integration_tests:
    - test_scenario: "Integration scenario being validated"
    - systems_involved: "All systems participating in integration"
    - data_flow: "Expected data flow between systems"
    - validation_points: "Key points to validate integration success"
  e2e_tests:
    - user_journey: "Complete user workflow being tested"
    - user_persona: "Type of user performing the workflow"
    - workflow_steps: "Step-by-step user actions"
    - success_criteria: "Criteria indicating successful user journey"
  acceptance_tests:
    - business_scenario: "Business scenario being validated"
    - acceptance_criteria: "Criteria for business acceptance"
    - stakeholder_validation: "How stakeholders validate success"
```

### Phase 3: Validation Rules Creation

```yaml
step: validation_rules_creation
description: Create comprehensive validation rules for implementation success
actions:
  - define_functional_validation: Create functional behavior validation rules
  - define_technical_validation: Create technical performance validation rules
  - define_integration_validation: Create integration success validation rules
  - define_quality_validation: Create code quality validation rules
  - define_user_experience_validation: Create UX validation rules
validation_categories:
  functional_validation:
    - core_features: "All primary features working as specified"
    - error_handling: "Proper error handling and user feedback"
    - data_integrity: "Data consistency and accuracy maintained"
    - business_logic: "Business rules correctly implemented"
  technical_validation:
    - performance_benchmarks: "Response times and throughput requirements"
    - security_compliance: "Security standards and vulnerability checks"
    - compatibility_testing: "Cross-browser and device compatibility"
    - scalability_validation: "System performance under load"
  integration_validation:
    - api_contracts: "API contracts maintained and functional"
    - data_flow: "Correct data flow between system components"
    - third_party_integrations: "External system integrations working"
    - environment_consistency: "Consistent behavior across environments"
  quality_validation:
    - code_standards: "Adherence to Hubtel coding standards"
    - test_coverage: "Minimum 85% test coverage achieved"
    - documentation: "Complete and accurate documentation"
    - review_readiness: "Code prepared for review process"
```

### Phase 4: UAC Document Generation

```yaml
step: uac_document_generation
description: Generate comprehensive UAC document for user review and confirmation
actions:
  - compile_acceptance_criteria: Combine all acceptance criteria into structured document
  - organize_test_scenarios: Organize test cases by priority and execution order
  - create_validation_checklist: Create checklist for implementation validation
  - generate_confirmation_format: Create user-friendly format for UAC confirmation
  - prepare_implementation_guidance: Provide clear guidance for implementation teams
document_structure:
  executive_summary:
    - workflow_overview: "High-level description of workflow and objectives"
    - business_value: "Expected business value and user impact"
    - success_metrics: "Key metrics indicating successful implementation"
  acceptance_criteria:
    - functional_requirements: "Detailed functional acceptance criteria"
    - technical_requirements: "Technical validation and performance criteria"
    - user_experience_requirements: "UX and usability acceptance criteria"
    - integration_requirements: "Integration and compatibility requirements"
  test_scenarios:
    - priority_1_tests: "Critical tests that must pass for basic functionality"
    - priority_2_tests: "Important tests for full feature functionality"
    - priority_3_tests: "Additional tests for edge cases and optimization"
  validation_checklist:
    - implementation_checklist: "Checklist for implementation teams"
    - testing_checklist: "Checklist for testing validation"
    - review_checklist: "Checklist for code review process"
    - deployment_checklist: "Checklist for deployment readiness"
```

### Phase 5: User Confirmation Workflow

```yaml
step: user_confirmation
description: Present UAC to user for review and confirmation
actions:
  - present_uac_summary: Show high-level UAC summary for initial review
  - provide_detailed_uac: Present complete UAC document for thorough review
  - facilitate_uac_discussion: Enable user questions and clarifications
  - capture_uac_modifications: Record any requested changes or additions
  - confirm_implementation_approval: Obtain formal approval to proceed with implementation
confirmation_process:
  1. summary_presentation: "Present executive summary and key acceptance criteria"
  2. detailed_review: "Provide access to complete UAC document"
  3. clarification_phase: "Address user questions and concerns"
  4. modification_phase: "Incorporate user-requested changes"
  5. final_approval: "Obtain confirmation to proceed with implementation"
confirmation_criteria:
  - acceptance_criteria_approved: "User confirms acceptance criteria are complete and accurate"
  - test_scenarios_validated: "User validates test scenarios cover all requirements"
  - success_metrics_agreed: "User agrees on success metrics and validation approach"
  - implementation_authorized: "User authorizes proceeding with implementation"
```

## Output Format

### UAC Document
```yaml
uac_document:
  metadata:
    workflow_id: "batch-20241214-143022"
    generation_timestamp: "2024-12-14T15:00:00Z"
    task_groups_covered: 3
    total_test_cases: 24
    validation_rules: 16
  
  executive_summary:
    objective: "Implement user profile management system with API backend and responsive frontend"
    business_value: "Enable users to manage profiles efficiently with 50% reduction in support tickets"
    success_metrics:
      - "Profile updates complete in <2 seconds"
      - "95% user satisfaction score"
      - "Zero data loss incidents"
      - "85%+ test coverage achieved"
  
  acceptance_criteria:
    backend_group:
      functional_requirements:
        - "RESTful API endpoints for profile CRUD operations"
        - "Proper input validation and error handling"
        - "Secure authentication and authorization"
        - "Audit logging for all profile changes"
      technical_requirements:
        - "API response time <500ms for 95% of requests"
        - "Database queries optimized for performance"
        - "Proper error codes and messages returned"
        - "OpenTelemetry logging integrated"
      validation_criteria:
        - "All Karate API tests pass"
        - "Database migrations execute successfully"
        - "API documentation updated and accurate"
        - "Security scan passes with no high-severity issues"
    
    frontend_group:
      functional_requirements:
        - "Responsive profile management interface"
        - "Real-time validation and user feedback"
        - "Seamless API integration"
        - "Accessible design following WCAG guidelines"
      technical_requirements:
        - "Page load time <3 seconds"
        - "Mobile-responsive design (320px+)"
        - "Cross-browser compatibility (Chrome, Firefox, Safari, Edge)"
        - "Proper error handling and user notifications"
      validation_criteria:
        - "All Vitest unit tests pass"
        - "Playwright E2E tests pass"
        - "Accessibility audit passes"
        - "Performance lighthouse score >90"
```

### Test Cases
```yaml
test_cases:
  unit_tests:
    - test_id: "UT-001"
      group: "backend-api-implementation"
      description: "Validate user profile creation with valid data"
      preconditions: "Clean database state, valid authentication token"
      test_steps:
        - "Send POST request to /api/profiles with valid profile data"
        - "Verify response status is 201 Created"
        - "Verify profile data is correctly stored in database"
        - "Verify audit log entry is created"
      expected_results: "Profile created successfully with all data persisted"
      validation_criteria: "Database contains new profile with correct data"
    
    - test_id: "UT-002"
      group: "frontend-ui-implementation" 
      description: "Validate profile form validation with invalid email"
      preconditions: "Profile form loaded, user authenticated"
      test_steps:
        - "Enter invalid email format in email field"
        - "Attempt to submit form"
        - "Verify validation message appears"
        - "Verify form submission is prevented"
      expected_results: "Form shows validation error, prevents submission"
      validation_criteria: "User sees clear error message, form not submitted"
  
  integration_tests:
    - test_id: "IT-001"
      group: "integration-validation"
      description: "Validate end-to-end profile update workflow"
      systems_involved: ["Frontend UI", "Backend API", "Database", "Audit System"]
      workflow_steps:
        - "User loads profile page"
        - "User modifies profile information"
        - "User submits changes"
        - "Frontend sends API request"
        - "Backend validates and persists changes"
        - "Audit log entry created"
        - "Success confirmation shown to user"
      success_criteria: "Profile updated in database, audit logged, user notified"
  
  e2e_tests:
    - test_id: "E2E-001"
      group: "testing-validation"
      description: "Complete user profile management journey"
      user_persona: "Standard authenticated user"
      journey_steps:
        - "User logs into application"
        - "User navigates to profile page"
        - "User views current profile information"
        - "User edits profile details"
        - "User saves changes"
        - "User receives confirmation"
        - "User logs out and logs back in"
        - "User verifies changes persisted"
      success_criteria: "All profile changes saved and persistent across sessions"
```

### Validation Rules
```yaml
validation_rules:
  functional_validation:
    - rule_id: "FV-001"
      description: "All CRUD operations must complete successfully"
      validation_method: "Automated API testing"
      success_criteria: "100% of CRUD operations return success status"
    
    - rule_id: "FV-002"
      description: "Input validation must prevent invalid data submission"
      validation_method: "Boundary value testing"
      success_criteria: "Invalid inputs rejected with appropriate error messages"
  
  technical_validation:
    - rule_id: "TV-001"
      description: "API response times must meet performance requirements"
      validation_method: "Load testing with performance monitoring"
      success_criteria: "95% of requests complete within 500ms"
    
    - rule_id: "TV-002"
      description: "Frontend must be responsive across all device sizes"
      validation_method: "Responsive design testing"
      success_criteria: "UI functions correctly on devices 320px and wider"
  
  quality_validation:
    - rule_id: "QV-001"
      description: "Code coverage must meet minimum threshold"
      validation_method: "Automated coverage reporting"
      success_criteria: "85% or higher test coverage achieved"
    
    - rule_id: "QV-002"
      description: "All code must pass linting and formatting checks"
      validation_method: "Automated linting and formatting validation"
      success_criteria: "Zero linting errors, consistent formatting"
```

### Confirmation Checklist
```yaml
confirmation_checklist:
  uac_review:
    - acceptance_criteria_complete: "☐ All acceptance criteria reviewed and approved"
    - test_scenarios_validated: "☐ Test scenarios cover all requirements adequately"
    - validation_rules_agreed: "☐ Validation rules are comprehensive and appropriate"
    - success_metrics_confirmed: "☐ Success metrics are measurable and achievable"
  
  implementation_approval:
    - scope_confirmed: "☐ Implementation scope is clear and agreed upon"
    - timeline_acceptable: "☐ Estimated timeline is acceptable"
    - resource_allocation_approved: "☐ Resource allocation and agent assignments approved"
    - quality_standards_understood: "☐ Quality standards and gates understood"
  
  coordination_agreement:
    - agent_coordination_plan_approved: "☐ Agent coordination plan is satisfactory"
    - progress_tracking_acceptable: "☐ Progress tracking approach is acceptable"
    - communication_plan_agreed: "☐ Communication and update plan agreed upon"
    - escalation_process_understood: "☐ Issue escalation process understood"
  
  final_authorization:
    - proceed_with_implementation: "☐ Authorized to proceed with implementation"
    - uac_document_accepted: "☐ UAC document accepted as implementation contract"
    - validation_approach_confirmed: "☐ Validation approach confirmed for completion"
```

## Integration Points

### Workflow Integration
- **Input source**: Receives enhanced task groups from `task-grouping-analyzer`
- **Output target**: Provides UAC document to `workflow-orchestrator` for user confirmation
- **Coordination**: Seamless integration with implementation and validation phases

### Agent Integration
- **UAC guidance**: Provides implementation guidance to all specialized agents
- **Validation criteria**: Establishes clear success criteria for agent work
- **Quality gates**: Defines quality checkpoints for agent validation

### User Experience
- **Clear presentation**: UAC presented in user-friendly format for easy review
- **Interactive confirmation**: Facilitates user questions and modifications
- **Implementation contract**: Serves as agreed-upon contract for implementation success