# How to Generate Tasks from Implementation Plans Using the /speckit.tasks Command

> Learn how to generate tasks from implementation plans using the /speckit.tasks command. This command uses AI to create ordered, dependency-aware work items in tasks.md for your GitHub projects.

- Repository: [GitHub/spec-kit](https://github.com/github/spec-kit)
- Tags: how-to-guide
- Published: 2026-03-05

---

**The /speckit.tasks command reads a previously created implementation plan, delegates the breakdown to a configured AI assistant, and writes a deterministic tasks.md file containing ordered, dependency-aware work items.**

The `github/spec-kit` repository provides a structured workflow for AI-assisted software development. The **/speckit.tasks** slash command serves as the critical bridge between high-level architectural planning and executable development work, transforming abstract plans into concrete, trackable tasks.

## Prerequisites for Task Generation

Before invoking the command, you must have a valid implementation plan in place.

### Creating the Implementation Plan First

Task generation depends entirely on the output of the **/speckit.plan** command. According to the source code in [`src/specify_cli/__init__.py`](https://github.com/github/spec-kit/blob/main/src/specify_cli/__init__.py) (lines 1062–1064), the planning phase produces a structured **plan.md** (or **plan.toml**) file that outlines the overall solution, its components, and required implementation steps. Without this plan file present in the project root, the tasks command cannot execute.

## How the /speckit.tasks Command Works

The command operates as a deterministic pipeline that converts planning documents into actionable work items.

### Command Invocation

You can trigger task generation via the CLI using the following syntax:

```bash

# Equivalent to the /speckit.tasks slash command

specify tasks

```

As noted in [`src/specify_cli/__init__.py`](https://github.com/github/spec-kit/blob/main/src/specify_cli/__init__.py) (lines 1609–1610), this command appears in the "Next Steps" panel automatically displayed after project initialization, guiding developers toward the natural workflow progression.

### Processing Pipeline

When executed, the command performs three core operations:

1. **Reads the plan** – It loads the most recent **plan.md** (or **plan.toml**) from the project directory.
2. **Calls the selected AI assistant** – The system passes the plan content to the configured AI model with a specific system prompt instructing it to *"break the implementation plan into an ordered, dependency-aware list of tasks."*
3. **Produces tasks.md** – The AI returns a markdown file where each task receives a unique number, description, and optional dependency annotation using the `depends_on: <task-id>` format.

### Output Files

The command generates **tasks.md** as its primary output. For projects configured to use TOML-based command files, it additionally creates a matching **tasks.toml** containing the same structured data in a machine-parseable format.

A typical generated **tasks.md** follows this structure:

```markdown

# Tasks generated from the implementation plan

1. Set up the project scaffolding
   - Description: Initialize repo, create virtual environment, install dependencies.
2. Implement the data model
   - Description: Define ORM entities and migrations.
   - Depends on: 1
3. Create REST endpoints
   - Description: Add FastAPI routes for CRUD operations.
   - Depends on: 2

```

## The AI Skill Integration

Upon project initialization, Spec-Kit automatically registers a Claude skill called **speckit-tasks**. The test suite in [`tests/test_ai_skills.py`](https://github.com/github/spec-kit/blob/main/tests/test_ai_skills.py) (lines 210–284) validates that this skill file is correctly created and contains the expected metadata. This integration enables the AI assistant to answer queries like "What are the next tasks?" directly within the chat interface without requiring re-execution of the slash command.

## Workflow Integration and Next Steps

The **/speckit.tasks** command fits into a larger validation and implementation pipeline. After generating your task list, you can optionally run **/speckit.analyze** to verify consistency between **spec.md**, **plan.md**, and **tasks.md** before proceeding to **/speckit.implement**, which executes the tasks sequentially. The extension test in [`tests/test_extensions.py`](https://github.com/github/spec-kit/blob/main/tests/test_extensions.py) (line 57) confirms that **/speckit.tasks** is properly registered as a supported extension within the Spec-Kit ecosystem.

## Summary

- **Prerequisite requirement**: The **/speckit.tasks** command requires an existing **plan.md** file generated by the **/speckit.plan** command.
- **AI delegation**: The command delegates task breakdown to the configured AI assistant using a specific system prompt requesting ordered, dependency-aware task lists.
- **Deterministic output**: Execution produces **tasks.md** and optionally **tasks.toml** with numbered tasks and dependency annotations.
- **Skill registration**: The command automatically creates the **speckit-tasks** Claude skill, enabling on-demand task queries without re-running the command.
- **Workflow position**: Tasks generation precedes the optional **/speckit.analyze** verification step and the final **/speckit.implement** execution phase.

## Frequently Asked Questions

### What file does the /speckit.tasks command require as input?

The command requires a **plan.md** or **plan.toml** file created by the preceding **/speckit.plan** command. According to [`src/specify_cli/__init__.py`](https://github.com/github/spec-kit/blob/main/src/specify_cli/__init__.py), the command loads the most recent plan file from the project root to use as the source material for task generation.

### How does the AI know how to break down the plan into tasks?

Spec-Kit sends the plan content to the configured AI assistant with a system prompt that explicitly instructs the model to *"break the implementation plan into an ordered, dependency-aware list of tasks."* This prompt engineering ensures consistent, structured output across different AI models.

### Can I query the task list without re-running the command?

Yes. The **speckit-tasks** skill, validated in [`tests/test_ai_skills.py`](https://github.com/github/spec-kit/blob/main/tests/test_ai_skills.py), persists after initial generation. This Claude skill allows the AI assistant to reference and answer questions about the task list on demand, eliminating the need to repeatedly execute the **/speckit.tasks** slash command for status checks.

### What is the relationship between /speckit.tasks and /speckit.implement?

The **/speckit.tasks** command produces the structured work list that **/speckit.implement** subsequently executes. Between these steps, you can optionally run **/speckit.analyze** to verify alignment between your specification, plan, and generated tasks before implementation begins.