Packages

A library for validating Markdown task lists with structured format specifications. Features: checkbox subtasks, dependencies, code quality KPIs, task categories, multi-project prefixes, and comprehensive error handling documentation.

Current section

Files

Jump to
task_validator lib mix tasks task_validator.ex
Raw

lib/mix/tasks/task_validator.ex

defmodule Mix.Tasks.TaskValidator do
@shortdoc "Task validation utilities (run 'mix help task_validator' for commands)"
@moduledoc """
Task validation utilities for managing and validating structured task lists.
TaskValidator provides tools for validating Markdown task lists against a structured
format specification, with enhanced support for Elixir/Phoenix projects.
## Available Commands
### Validation
mix validate_tasklist [--path FILE]
Validates a TaskList.md file against the format specification.
See `mix help validate_tasklist` for details.
### Template Generation
mix task_validator.create_template [OPTIONS]
Creates a new TaskList.md file with example tasks for different project categories.
See `mix help task_validator.create_template` for details.
## Quick Start
# Validate existing task list
mix validate_tasklist
# Create a new task list template
mix task_validator.create_template
# Create OTP-specific template with custom prefix
mix task_validator.create_template --category otp_genserver --prefix GEN
# Validate one of the example templates
mix validate_tasklist --path docs/examples/phoenix_web_example.md
## Task List Format
Task lists must include:
- Current Tasks table
- Completed Tasks table
- Detailed task sections with required fields
- Proper subtask organization (numbered or checkbox format)
- Error handling documentation
- Code quality metrics
## Categories
TaskValidator supports these project categories:
- **otp_genserver** - OTP/GenServer development
- **phoenix_web** - Phoenix web development
- **business_logic** - Phoenix contexts and domain logic
- **data_layer** - Ecto schemas and database design
- **infrastructure** - Deployment and DevOps
- **testing** - Test implementation strategies
## Examples
Complete working examples are available in `docs/examples/`:
- `otp_genserver_example.md`
- `phoenix_web_example.md`
- `business_logic_example.md`
- `data_layer_example.md`
- `infrastructure_example.md`
- `testing_example.md`
## Learn More
- Run `mix help validate_tasklist` for validation details
- Run `mix help task_validator.create_template` for template options
- See `README.md` for comprehensive documentation
- Check `docs/examples/README.md` for example explanations
"""
use Mix.Task
@impl Mix.Task
def run(_args) do
Mix.shell().info(@moduledoc)
end
end