Claude Skills
CollectionsCompareWorkflowsNominate
Sign inSign up
© 2026 Curated Agent Skills·Learn more about Agent Skills
Back to repository

taskfile-dev

verified

Use when creating, modifying, reviewing, or improving Taskfiles (task runner YAML files), or when translating Makefiles to Taskfiles. Provides primitives, patterns, style conventions, and best practices for writing idiomatic Taskfiles.

View on GitHub

Marketplace

dnlopes

dnlopes/claude-code-plugins

Plugin

dev-toolkit

Repository

dnlopes/claude-code-plugins

dev-toolkit/skills/taskfile-dev/SKILL.md

Last Verified

February 3, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/dnlopes/claude-code-plugins/blob/main/dev-toolkit/skills/taskfile-dev/SKILL.md -a claude-code --skill taskfile-dev

Installation paths:

Claude
.claude/skills/taskfile-dev/
Powered by add-skill CLI

Instructions

# Taskfile Development

## Overview

Taskfile is a YAML-based task runner similar to Make. It defines tasks with commands, dependencies, variables, and conditional execution. Tasks are defined in `Taskfile.yml` (or `.yaml`, `.dist.yml` variants).

## When to Use

- **Creating Taskfiles**: New project needs build/dev automation
- **Adding tasks**: Extend existing Taskfile with new commands
- **Reviewing/improving**: Analyze and optimize existing Taskfiles
- **Translating**: Convert Makefiles to Taskfiles

## Style Conventions

| Convention | Example |
|------------|---------|
| 2-space indentation | Standard YAML |
| Uppercase variable names | `BUILD_DIR`, `VERSION` |
| Kebab-case task names | `build-docker`, `run-tests` |
| Colon for namespacing | `docker:build`, `test:unit` |
| No whitespace in templates | `{{.VAR}}` not `{{ .VAR }}` |

**Section order**: version, includes, output/silent/method/run, vars, env, tasks

## Core Primitives Quick Reference

| Primitive | Purpose | Example |
|-----------|---------|---------|
| `cmds` | Commands to run | `cmds: [go build, go test]` |
| `deps` | Run tasks first (parallel) | `deps: [clean, lint]` |
| `vars` | Task variables | `vars: {VERSION: v1.0}` |
| `env` | Environment variables | `env: {GO111MODULE: on}` |
| `dir` | Working directory | `dir: ./src` |
| `sources` | Input files (fingerprinting) | `sources: ['**/*.go']` |
| `generates` | Output files | `generates: [bin/app]` |
| `status` | Skip if commands succeed | `status: [test -f bin/app]` |
| `preconditions` | Fail if conditions unmet | `preconditions: [{sh: which go}]` |
| `internal` | Hide from `task --list` | `internal: true` |
| `desc` | Description for `--list` | `desc: Build the application` |
| `aliases` | Alternative names | `aliases: [b]` |
| `platforms` | OS/arch restrictions | `platforms: [linux, darwin]` |

## Task Patterns

### Simple Task
```yaml
tasks:
  build:
    desc: Build the application
    cmds:
      - go build -o bin/app ./cmd/app
```

### Tas

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
5937 chars