planning-and-task-breakdown

Chia công việc thành các tác vụ có thứ tự. Sử dụng khi bạn có đặc tả hoặc yêu cầu rõ ràng và cần chia công việc thành các tác vụ có thể thực hiện được. Sử dụng khi một tác vụ có vẻ quá lớn để bắt đầu, khi bạn cần ước lượng phạm vi, hoặc khi có thể thực hiện song song.

npx skills add https://github.com/addyosmani/agent-skills --skill planning-and-task-breakdown

Planning and Task Breakdown

Overview

Decompose work into small, verifiable tasks with explicit acceptance criteria. Good task breakdown is the difference between an agent that completes work reliably and one that produces a tangled mess. Every task should be small enough to implement, test, and verify in a single focused session.

When to Use

  • You have a spec and need to break it into implementable units
  • A task feels too large or vague to start
  • Work needs to be parallelized across multiple agents or sessions
  • You need to communicate scope to a human
  • The implementation order isn't obvious

When NOT to use: Single-file changes with obvious scope, or when the spec already contains well-defined tasks.

The Planning Process

Step 1: Enter Plan Mode

Before writing any code, operate in read-only mode:

  • Read the spec and relevant codebase sections
  • Identify existing patterns and conventions
  • Map dependencies between components
  • Note risks and unknowns

Do NOT write code during planning. The output is a plan document saved to tasks/plan.md and a task list saved to tasks/todo.md, not implementation.

Step 2: Identify the Dependency Graph

Map what depends on what:

Database schema
    │
    ├── API models/types
    │       │
    │       ├── API endpoints
    │       │       │
    │       │       └── Frontend API client
    │       │               │
    │       │               └── UI components
    │       │
    │       └── Validation logic
    │
    └── Seed data / migrations

Implementation order follows the dependency graph bottom-up: build foundations first.

Step 3: Slice Vertically

Instead of building all the database, then all the API, then all the UI — build one complete feature path at a time:

Bad (horizontal slicing):

Task 1: Build entire database schema
Task 2: Build all API endpoints
Task 3: Build all UI components
Task 4: Connect everything

Good (vertical slicing):

Task 1: User can create an account (schema + API + UI for registration)
Task 2: User can log in (auth schema + API + UI for login)
Task 3: User can create a task (task schema + API + UI for creation)
Task 4: User can view task list (query + API + UI for list view)

Each vertical slice delivers working, testable functionality.

Step 4: Write Tasks

Each task follows this structure:

## Task [N]: [Short descriptive title]

**Description:** One paragraph explaining what this task accomplishes.

**Acceptance criteria:**
- [ ] [Specific, testable condition]
- [ ] [Specific, testable condition]

**Verification:**
- [ ] Tests pass: [the repository's focused-test command]
- [ ] Build succeeds: [the repository's build command]
- [ ] Manual check: [description of what to verify]

**Dependencies:** [Task numbers this depends on, or "None"]

**Files likely touched:**
- `src/path/to/file.ts`
- `tests/path/to/test.ts`

**Estimated scope:** [Small: 1-2 files | Medium: 3-5 files | Large: 5+ files]

Step 5: Order and Checkpoint

Arrange tasks so that:

  1. Dependencies are satisfied (build foundation first)
  2. Each task leaves the system in a working state
  3. Verification checkpoints occur after every 2-3 tasks
  4. High-risk tasks are early (fail fast)

Add explicit checkpoints:

## Checkpoint: After Tasks 1-3
- [ ] All tests pass
- [ ] Application builds without errors
- [ ] Core user flow works end-to-end
- [ ] Review with human before proceeding

Task Sizing Guidelines

SizeFilesScopeExample
XS1Single function or config changeAdd a validation rule
S1-2One component or endpointAdd a new API endpoint
M3-5One feature sliceUser registration flow
L5-8Multi-component featureSearch with filtering and pagination
XL8+Too large — break it down further

If a task is L or larger, it should be broken into smaller tasks. An agent performs best on S and M tasks.

When to break a task down further:

  • It would take more than one focused session (roughly 2+ hours of agent work)
  • You cannot describe the acceptance criteria in 3 or fewer bullet points
  • It touches two or more independent subsystems (e.g., auth and billing)
  • You find yourself writing "and" in the task title (a sign it is two tasks)

Output Files

  • Plan document: Save the implementation plan to tasks/plan.md.
  • Task list: Save the checklist-style task list to tasks/todo.md.

Create the tasks/ directory if it does not exist. These paths are the convention expected by the /build command and other downstream tooling.

Plan Document Template

# Implementation Plan: [Feature/Project Name]

## Overview
[One paragraph summary of what we're building]

## Architecture Decisions
- [Key decision 1 and rationale]
- [Key decision 2 and rationale]

## Task List

### Phase 1: Foundation
- [ ] Task 1: ...
- [ ] Task 2: ...

### Checkpoint: Foundation
- [ ] Tests pass, builds clean

### Phase 2: Core Features
- [ ] Task 3: ...
- [ ] Task 4: ...

### Checkpoint: Core Features
- [ ] End-to-end flow works

### Phase 3: Polish
- [ ] Task 5: ...
- [ ] Task 6: ...

### Checkpoint: Complete
- [ ] All acceptance criteria met
- [ ] Ready for review

## Risks and Mitigations
| Risk | Impact | Mitigation |
|------|--------|------------|
| [Risk] | [High/Med/Low] | [Strategy] |

## Open Questions
- [Question needing human input]

Parallelization Opportunities

When multiple agents or sessions are available:

  • Safe to parallelize: Independent feature slices, tests for already-implemented features, documentation
  • Must be sequential: Database migrations, shared state changes, dependency chains
  • Needs coordination: Features that share an API contract (define the contract first, then parallelize)

Common Rationalizations

RationalizationReality
"I'll figure it out as I go"That's how you end up with a tangled mess and rework. 10 minutes of planning saves hours.
"The tasks are obvious"Write them down anyway. Explicit tasks surface hidden dependencies and forgotten edge cases.
"Planning is overhead"Planning is the task. Implementation without a plan is just typing.
"I can hold it all in my head"Context windows are finite. Written plans survive session boundaries and compaction.

Red Flags

  • Starting implementation without a written task list
  • Tasks that say "implement the feature" without acceptance criteria
  • No verification steps in the plan
  • All tasks are XL-sized
  • No checkpoints between tasks
  • Dependency order isn't considered

Verification

Before starting implementation, confirm:

  • Every task has acceptance criteria
  • Every task has a verification step
  • Task dependencies are identified and ordered correctly
  • No task touches more than ~5 files
  • Checkpoints exist between major phases
  • The human has reviewed and approved the plan

See Also

Acceptance criteria are per-task and answer "did we build the right thing?". They sit on top of the project-wide Definition of Done, the standing bar every task clears before it counts as done. See references/definition-of-done.md.

Thêm skills từ addyosmani

accessibility
addyosmani
Kiểm tra và cải thiện khả năng truy cập web theo hướng dẫn WCAG 2.2. Sử dụng khi được yêu cầu "cải thiện khả năng truy cập", "kiểm tra a11y", "tuân thủ WCAG", "hỗ trợ trình đọc màn hình", "điều hướng bàn phím" hoặc "làm cho có thể truy cập".
developmenttestingcode-review
web-quality-audit
addyosmani
Kiểm tra chất lượng web toàn diện bao gồm hiệu suất, khả năng tiếp cận, SEO và các phương pháp tốt nhất. Sử dụng khi được yêu cầu "kiểm tra trang web của tôi", "đánh giá chất lượng web", "chạy kiểm tra lighthouse", "kiểm tra chất lượng trang" hoặc "tối ưu hóa trang web của tôi".
developmenttestingresearch
seo
addyosmani
Tối ưu hóa khả năng hiển thị và thứ hạng trên công cụ tìm kiếm. Sử dụng khi được yêu cầu "cải thiện SEO", "tối ưu hóa cho tìm kiếm", "sửa thẻ meta", "thêm dữ liệu có cấu trúc", "tối ưu hóa sơ đồ trang web" hoặc "tối ưu hóa công cụ tìm kiếm".
marketingresearchdevelopment
performance
addyosmani
Tối ưu hiệu suất web để tải nhanh hơn và cải thiện trải nghiệm người dùng. Sử dụng khi được yêu cầu "tăng tốc trang web của tôi", "tối ưu hiệu suất", "giảm thời gian tải", "sửa tải chậm", "cải thiện tốc độ trang" hoặc "kiểm tra hiệu suất".
developmenttesting
code-review-and-quality
addyosmani
Thực hiện đánh giá mã nguồn đa chiều. Sử dụng trước khi hợp nhất bất kỳ thay đổi nào. Sử dụng khi xem xét mã do chính bạn, một tác nhân khác hoặc con người viết. Sử dụng khi bạn cần đánh giá chất lượng mã trên nhiều khía cạnh trước khi nó được đưa vào nhánh chính.
developmentcode-review
frontend-ui-engineering
addyosmani
Xây dựng giao diện người dùng chất lượng sản xuất, có khả năng truy cập và phản hồi. Sử dụng khi xây dựng hoặc sửa đổi giao diện và trang, tạo thành phần, triển khai bố cục, đáp ứng yêu cầu truy cập WCAG, quản lý trạng thái, hoặc khi đầu ra cần trông và cảm nhận chất lượng sản xuất thay vì do AI tạo ra.
developmentdesign
security-and-hardening
addyosmani
Tăng cường bảo mật mã nguồn chống lại các lỗ hổng. Sử dụng khi xử lý đầu vào người dùng, xác thực, lưu trữ dữ liệu hoặc tích hợp bên ngoài. Sử dụng khi xây dựng bất kỳ tính năng nào chấp nhận dữ liệu không đáng tin cậy, quản lý phiên người dùng hoặc tương tác với dịch vụ bên thứ ba.
spec-driven-development
addyosmani
Tạo đặc tả trước khi viết mã. Sử dụng khi bắt đầu một dự án mới, tính năng mới hoặc thay đổi quan trọng và chưa có đặc tả nào tồn tại. Sử dụng khi yêu cầu chưa rõ ràng, mơ hồ hoặc chỉ tồn tại dưới dạng ý tưởng mơ hồ.
developmentdocumentproject-management