// Expert guidance for using Task (taskfile.dev) automation tool to discover and execute project development commands
| name | taskfile-automation |
| description | Expert guidance for using Task (taskfile.dev) automation tool to discover and execute project development commands |
Use this skill when working with projects that use Task to provide easy-to-discover automation commands for development workflows.
IMPORTANT: Always prefer task commands over direct shell/language commands when a Taskfile is present.
Task provides:
task --list shows all available taskstask dev combines testing and docs)# List all available tasks with descriptions
task --list
# Show common workflows and usage patterns
task help
# Get detailed help for specific task
task <taskname> --help
Always start with discovery when entering a new project with a Taskfile.
Projects typically provide these standard tasks:
# Fast development cycle (common iteration loop)
task dev # Usually runs fast tests + fast docs
# Pre-commit workflow
task precommit # Runs pre-commit hooks + fast tests
# Full CI simulation locally
task ci # Complete CI pipeline locally
# Full test suite including quality checks
task test
# Fast tests (skip quality checks for rapid development)
task test-fast
task test:fast # Alternative naming
# Quality checks only (Aqua, formatting, linting)
task test-quality
task test:quality
# Quick docs build (recommended for development)
task docs-fast
task docs:fast
# Full documentation including slow components (notebooks, etc.)
task docs
# Interactive documentation server
task docs-pluto # For Julia projects with Pluto notebooks
task docs:serve # For live-reload documentation server
# Set up development environment from scratch
task setup
# Show package/dependency status
task pkg:status
task status
# Project overview and environment information
task info
# Linting
task lint
# Formatting
task format
# Combined quality checks
task quality
Use task commands when:
Tasks are typically thin wrappers around language-specific commands:
Example - Julia:
# Task command
task test
# Underlying command it runs
julia --project=. -e 'using Pkg; Pkg.test()'
Example - R:
# Task command
task docs
# Underlying command it runs
Rscript -e "devtools::document()"
Use direct language commands when:
# 1. Discover what's available
task --list
# 2. Run fast iteration cycle
task dev # Fast tests + fast docs
# 3. Before committing
task precommit # Pre-commit checks + tests
# 4. Before pushing (optional)
task ci # Full CI simulation
# 1. See what setup tasks exist
task --list | grep setup
# 2. Run setup
task setup # Install dependencies, configure environment
# 3. Verify setup
task info # Show project and environment status
# 4. Test everything works
task test
Common patterns in task names:
Prefixes:
test:* - Testing-related tasksdocs:* - Documentation taskspkg:* - Package management tasksci:* - CI/CD related tasksSuffixes:
*-fast - Quick version of the task*-full - Complete version including optional stepsSpecial names:
dev - Fast development iteration cycleprecommit - Pre-commit validationci - Full CI pipelinesetup - Initial project setupclean - Clean build artifactshelp - Show usage information# Instead of: julia --project=. -e 'using Pkg; Pkg.test()'
task test
# Instead of: julia --project=docs docs/make.jl --skip-notebooks
task docs-fast
# Instead of: julia --project=. -e 'using Pkg; Pkg.update()'
task pkg:update
# Instead of: Rscript -e "devtools::test()"
task test
# Instead of: Rscript -e "devtools::document()"
task docs
# Instead of: Rscript -e "devtools::check()"
task check
# Instead of: pytest
task test
# Instead of: sphinx-build docs docs/_build
task docs
# Instead of: pip install -e .
task install
Look for:
Taskfile.yml in project rootTaskfile.yaml in project rootWhen reading a Taskfile:
cmds: - Commands executed by the taskdeps: - Dependencies run before this taskdesc: - Description shown in task --listsummary: - Extended description for task <name> --helptask --list when entering a projecttask help for project-specific guidanceActivate this skill when:
task instead of direct commandsThis skill helps you leverage Task automation rather than manually running underlying commands. Project-specific task definitions and workflows remain in project documentation.