TaskValidator.Validators.KpiValidator (TaskValidator v0.9.3)

View Source

Validates code quality KPIs (Key Performance Indicators) for tasks.

This validator ensures that tasks have appropriate code quality metrics defined and that these metrics meet the configured standards. It supports both explicit KPI definitions and reference-based KPI specifications.

Validation Rules

  1. Required KPIs: Tasks must have code quality KPIs section or reference

    • Code Quality KPIs section with specific metrics
    • Can use {{standard-kpis}} reference instead
  2. Standard KPI Metrics:

    • Functions per module: Maximum number of functions in a module
    • Lines per function: Maximum lines of code per function
    • Call depth: Maximum nested function call depth
    • Additional metrics can be configured
  3. KPI Value Validation:

    • All KPI values must be numeric and within configured limits
    • Values should reflect realistic coding standards
    • Metrics must be measurable and enforceable
  4. Reference Support:

    • Supports standard KPI references like {{standard-kpis}}
    • Validates reference existence in reference map
    • Allows flexible KPI specification via references

Error Types

  • :missing_kpi_section - No Code Quality KPIs section or reference found
  • :missing_kpi_metrics - Required KPI metrics not specified
  • :invalid_kpi_value - KPI value exceeds configured limits
  • :invalid_kpi_format - KPI not properly formatted
  • :missing_kpi_reference - Referenced KPI definition not found

Examples

# Valid explicit KPIs
**Code Quality KPIs**
- Functions per module: 8
- Lines per function: 15
- Call depth: 3

# Valid with reference
{{standard-kpis}}

# Valid custom KPIs
**Code Quality KPIs**
- Functions per module: 10
- Lines per function: 20
- Call depth: 4
- Cyclomatic complexity: 8

# Invalid - exceeds limits
**Code Quality KPIs**  
- Functions per module: 25  # Too high
- Lines per function: 100   # Too high
- Call depth: 10           # Too deep

Summary

Functions

Returns low priority (30) since KPI validation is important for code quality but not critical for basic task structure.

Validates code quality KPIs according to configured standards.

Functions

priority()

Returns low priority (30) since KPI validation is important for code quality but not critical for basic task structure.

validate(task, context)

Validates code quality KPIs according to configured standards.

Context Requirements

  • :config - TaskValidator configuration (optional, uses defaults)
  • :references - Available references for validation (optional)

Returns

  • Success if all KPI validations pass
  • Failure with specific error details for each validation issue