TaskValidator.Validators.SubtaskValidator (TaskValidator v0.9.3)

View Source

Validates subtask structure, consistency, and format requirements.

This validator handles validation of subtasks including their format, status consistency, and relationships with parent tasks. It supports both traditional numbered subtasks and checkbox-style subtasks.

Validation Rules

  1. Subtask Format Validation:

    • Traditional numbered format: #### N. Description (TASKID-N)
    • Checkbox format: - [ ] Description [TASKID] or - [x] Description [TASKID]
    • Letter subtasks: TASKID[a-z] format support
  2. Status Consistency:

    • Checkbox checked state must match status field (for traditional format)
    • Completed subtasks must have review ratings (traditional format only)
    • Valid status values according to configuration
  3. Required Sections (Traditional Format):

    • Status - Current subtask status
    • Error handling (explicit or via reference)
    • Review rating for completed subtasks
  4. Prefix Consistency:

    • Subtask IDs must use same prefix as parent task
    • Validates parent-child relationships are maintained

Error Types

  • :missing_subtask_status - Subtask missing status field
  • :invalid_subtask_status - Status not in valid values
  • :missing_review_rating - Completed subtask without rating
  • :invalid_review_rating - Rating format incorrect
  • :inconsistent_subtask_prefix - Prefix doesn't match parent
  • :missing_subtask_sections - Required sections not present

Examples

# Valid traditional numbered subtask
#### 1. Implement basic validation (SSH001-1)

**Status**: In Progress

{{error-handling-subtask}}

# Valid checkbox subtask
- [x] Add input validation [SSH001a]
- [ ] Implement error handling [SSH001b]

# Valid completed subtask (traditional)
#### 2. Add comprehensive tests (SSH001-2)

**Status**: Completed
**Review Rating**: 4.5

{{error-handling-subtask}}

Summary

Functions

Returns medium priority (45) since subtask validation depends on basic structure but should run before complex business rules.

Validates subtask structure, status, and required sections.

Functions

priority()

Returns medium priority (45) since subtask validation depends on basic structure but should run before complex business rules.

validate(task, context)

Validates subtask structure, status, and required sections.

Context Requirements

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

Returns

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