{"id":"ccb474b2-7e29-43b7-bed1-c2a337f27673","shortId":"G2gVmT","kind":"skill","title":"Planning And Task Breakdown","tagline":"Agent Skills skill by Addyosmani","description":"# Planning and Task Breakdown\n\n## Overview\n\nDecompose 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.\n\n## When to Use\n\n- You have a spec and need to break it into implementable units\n- A task feels too large or vague to start\n- Work needs to be parallelized across multiple agents or sessions\n- You need to communicate scope to a human\n- The implementation order isn't obvious\n\n**When NOT to use:** Single-file changes with obvious scope, or when the spec already contains well-defined tasks.\n\n## The Planning Process\n\n### Step 1: Enter Plan Mode\n\nBefore writing any code, operate in read-only mode:\n\n- Read the spec and relevant codebase sections\n- Identify existing patterns and conventions\n- Map dependencies between components\n- Note risks and unknowns\n\n**Do NOT write code during planning.** The output is a plan document, not implementation.\n\n### Step 2: Identify the Dependency Graph\n\nMap what depends on what:\n\n```\nDatabase schema\n    │\n    ├── API models/types\n    │       │\n    │       ├── API endpoints\n    │       │       │\n    │       │       └── Frontend API client\n    │       │               │\n    │       │               └── UI components\n    │       │\n    │       └── Validation logic\n    │\n    └── Seed data / migrations\n```\n\nImplementation order follows the dependency graph bottom-up: build foundations first.\n\n### Step 3: Slice Vertically\n\nInstead of building all the database, then all the API, then all the UI — build one complete feature path at a time:\n\n**Bad (horizontal slicing):**\n```\nTask 1: Build entire database schema\nTask 2: Build all API endpoints\nTask 3: Build all UI components\nTask 4: Connect everything\n```\n\n**Good (vertical slicing):**\n```\nTask 1: User can create an account (schema + API + UI for registration)\nTask 2: User can log in (auth schema + API + UI for login)\nTask 3: User can create a task (task schema + API + UI for creation)\nTask 4: User can view task list (query + API + UI for list view)\n```\n\nEach vertical slice delivers working, testable functionality.\n\n### Step 4: Write Tasks\n\nEach task follows this structure:\n\n```markdown\n## Task [N]: [Short descriptive title]\n\n**Description:** One paragraph explaining what this task accomplishes.\n\n**Acceptance criteria:**\n- [ ] [Specific, testable condition]\n- [ ] [Specific, testable condition]\n\n**Verification:**\n- [ ] Tests pass: `npm test -- --grep \"feature-name\"`\n- [ ] Build succeeds: `npm run build`\n- [ ] Manual check: [description of what to verify]\n\n**Dependencies:** [Task numbers this depends on, or \"None\"]\n\n**Files likely touched:**\n- `src/path/to/file.ts`\n- `tests/path/to/test.ts`\n\n**Estimated scope:** [Small: 1-2 files | Medium: 3-5 files | Large: 5+ files]\n```\n\n### Step 5: Order and Checkpoint\n\nArrange tasks so that:\n\n1. Dependencies are satisfied (build foundation first)\n2. Each task leaves the system in a working state\n3. Verification checkpoints occur after every 2-3 tasks\n4. High-risk tasks are early (fail fast)\n\nAdd explicit checkpoints:\n\n```markdown\n## Checkpoint: After Tasks 1-3\n- [ ] All tests pass\n- [ ] Application builds without errors\n- [ ] Core user flow works end-to-end\n- [ ] Review with human before proceeding\n```\n\n## Task Sizing Guidelines\n\n| Size | Files | Scope | Example |\n|------|-------|-------|---------|\n| **XS** | 1 | Single function or config change | Add a validation rule |\n| **S** | 1-2 | One component or endpoint | Add a new API endpoint |\n| **M** | 3-5 | One feature slice | User registration flow |\n| **L** | 5-8 | Multi-component feature | Search with filtering and pagination |\n| **XL** | 8+ | **Too large — break it down further** | — |\n\nIf a task is L or larger, it should be broken into smaller tasks. An agent performs best on S and M tasks.\n\n**When to break a task down further:**\n- It would take more than one focused session (roughly 2+ hours of agent work)\n- You cannot describe the acceptance criteria in 3 or fewer bullet points\n- It touches two or more independent subsystems (e.g., auth and billing)\n- You find yourself writing \"and\" in the task title (a sign it is two tasks)\n\n## Plan Document Template\n\n```markdown\n# Implementation Plan: [Feature/Project Name]\n\n## Overview\n[One paragraph summary of what we're building]\n\n## Architecture Decisions\n- [Key decision 1 and rationale]\n- [Key decision 2 and rationale]\n\n## Task List\n\n### Phase 1: Foundation\n- [ ] Task 1: ...\n- [ ] Task 2: ...\n\n### Checkpoint: Foundation\n- [ ] Tests pass, builds clean\n\n### Phase 2: Core Features\n- [ ] Task 3: ...\n- [ ] Task 4: ...\n\n### Checkpoint: Core Features\n- [ ] End-to-end flow works\n\n### Phase 3: Polish\n- [ ] Task 5: ...\n- [ ] Task 6: ...\n\n### Checkpoint: Complete\n- [ ] All acceptance criteria met\n- [ ] Ready for review\n\n## Risks and Mitigations\n| Risk | Impact | Mitigation |\n|------|--------|------------|\n| [Risk] | [High/Med/Low] | [Strategy] |\n\n## Open Questions\n- [Question needing human input]\n```\n\n## Parallelization Opportunities\n\nWhen multiple agents or sessions are available:\n\n- **Safe to parallelize:** Independent feature slices, tests for already-implemented features, documentation\n- **Must be sequential:** Database migrations, shared state changes, dependency chains\n- **Needs coordination:** Features that share an API contract (define the contract first, then parallelize)\n\n## Common Rationalizations\n\n| Rationalization | Reality |\n|---|---|\n| \"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. |\n| \"The tasks are obvious\" | Write them down anyway. Explicit tasks surface hidden dependencies and forgotten edge cases. |\n| \"Planning is overhead\" | Planning is the task. Implementation without a plan is just typing. |\n| \"I can hold it all in my head\" | Context windows are finite. Written plans survive session boundaries and compaction. |\n\n## Red Flags\n\n- Starting implementation without a written task list\n- Tasks that say \"implement the feature\" without acceptance criteria\n- No verification steps in the plan\n- All tasks are XL-sized\n- No checkpoints between tasks\n- Dependency order isn't considered\n\n## Verification\n\nBefore starting implementation, confirm:\n\n- [ ] Every task has acceptance criteria\n- [ ] Every task has a verification step\n- [ ] Task dependencies are identified and ordered correctly\n- [ ] No task touches more than ~5 files\n- [ ] Checkpoints exist between major phases\n- [ ] The human has reviewed and approved the plan","tags":["planning","and","task","breakdown","agent","skills","addyosmani"],"capabilities":["skill","source-addyosmani","category-agent-skills"],"categories":["agent-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/addyosmani/agent-skills/planning-and-task-breakdown","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under addyosmani/agent-skills","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T11:40:30.088Z","embedding":null,"createdAt":"2026-04-18T20:31:19.807Z","updatedAt":"2026-04-22T11:40:30.088Z","lastSeenAt":"2026-04-22T11:40:30.088Z","tsv":"'-2':401,503 '-3':443,462 '-5':405,515 '-8':524 '1':134,251,276,400,419,461,491,502,645,656,659 '10':786 '2':183,257,288,426,442,581,650,661,669 '3':222,263,300,404,436,514,593,673,686 '4':269,313,333,445,675 '5':408,411,523,689,909 '6':691 '8':535 'accept':23,355,590,695,858,889 'accomplish':354 'account':281 'across':90 'add':454,497,508 'addyosmani':9 'agent':5,33,92,557,584,720 'alreadi':124,734 'already-impl':733 'anyway':799 'api':195,197,200,234,260,283,295,308,320,511,754 'applic':466 'approv':921 'architectur':641 'arrang':415 'auth':293,606 'avail':724 'bad':247 'best':559 'bill':608 'bottom':216 'bottom-up':215 'boundari':839 'break':71,538,567 'breakdown':4,13,27 'broken':552 'build':218,227,239,252,258,264,372,376,423,467,640,666 'bullet':596 'cannot':587 'case':808 'category-agent-skills' 'chain':747 'chang':116,496,745 'check':378 'checkpoint':414,438,456,458,662,676,692,873,911 'clean':667 'client':201 'code':141,171 'codebas':153 'common':762 'communic':98 'compact':841 'complet':35,241,693 'compon':163,203,267,505,527 'condit':359,362 'config':495 'confirm':885 'connect':270 'consid':880 'contain':125 'context':831 'contract':755,758 'convent':159 'coordin':749 'core':470,670,677 'correct':903 'creat':279,303 'creation':311 'criteria':24,356,591,696,859,890 'data':207 'databas':193,230,254,741 'decis':642,644,649 'decompos':15 'defin':128,756 'deliv':328 'depend':161,186,190,213,384,388,420,746,804,876,898 'describ':588 'descript':345,347,379 'differ':30 'document':179,625,737 'e.g':605 'earli':451 'edg':807 'end':475,477,680,682,778 'end-to-end':474,679 'endpoint':198,261,507,512 'enough':50 'enter':135 'entir':253 'error':469 'estim':397 'everi':45,441,886,891 'everyth':271 'exampl':489 'exist':156,912 'explain':350 'explicit':22,455,800 'fail':452 'fast':453 'featur':242,370,517,528,671,678,729,736,750,856 'feature-nam':369 'feature/project':630 'feel':78 'fewer':595 'figur':768 'file':115,392,402,406,409,487,910 'filter':531 'find':610 'finit':834 'first':220,425,759 'flag':843 'flow':472,521,683 'focus':59,578 'follow':211,338 'forgotten':806 'foundat':219,424,657,663 'frontend':199 'function':331,493 'go':773 'good':25,272 'graph':187,214 'grep':368 'guidelin':485 'head':830 'hidden':803 'high':447 'high-risk':446 'high/med/low':708 'hold':825 'horizont':248 'hour':582,791 'human':102,480,714,917 'identifi':155,184,900 'impact':705 'implement':52,74,104,181,209,628,735,816,845,854,884 'independ':603,728 'input':715 'instead':225 'isn':106,878 'key':643,648 'l':522,546 'larg':80,407,537 'larger':548 'leav':429 'like':393 'list':318,323,654,850 'll':767 'log':291 'logic':205 'login':298 'm':513,563 'major':914 'manual':377 'map':160,188 'markdown':341,457,627 'medium':403 'mess':44,783 'met':697 'migrat':208,742 'minut':787 'mitig':703,706 'mode':137,147 'models/types':196 'multi':526 'multi-compon':525 'multipl':91,719 'must':738 'n':343 'name':371,631 'need':69,86,96,713,748 'new':510 'none':391 'note':164 'npm':366,374 'number':386 'obvious':108,118,795 'occur':439 'one':39,240,348,504,516,577,633 'open':710 'oper':142 'opportun':717 'order':105,210,412,877,902 'output':175 'overhead':811 'overview':14,632 'pagin':533 'paragraph':349,634 'parallel':89,716,727,761 'pass':365,465,665 'path':243 'pattern':157 'perform':558 'phase':655,668,685,915 'plan':1,10,131,136,173,178,624,629,789,809,812,819,836,865,923 'point':597 'polish':687 'proceed':482 'process':132 'produc':41 'queri':319 'question':711,712 'ration':763,764 'rational':647,652 're':639 'read':145,148 'read-on':144 'readi':698 'realiti':765 'red':842 'registr':286,520 'relev':152 'reliabl':37 'review':478,700,919 'rework':785 'risk':165,448,701,704,707 'rough':580 'rule':500 'run':375 'safe':725 'satisfi':422 'save':790 'say':853 'schema':194,255,282,294,307 'scope':99,119,398,488 'search':529 'section':154 'seed':206 'sequenti':740 'session':60,94,579,722,838 'share':743,752 'short':344 'sign':619 'singl':58,114,492 'single-fil':113 'size':484,486,871 'skill':6,7 'slice':223,249,274,327,518,730 'small':18,49,399 'smaller':554 'source-addyosmani' 'spec':67,123,150 'specif':357,360 'src/path/to/file.ts':395 'start':84,844,883 'state':435,744 'step':133,182,221,332,410,862,896 'strategi':709 'structur':340 'subsystem':604 'succeed':373 'summari':635 'surfac':802 'surviv':837 'system':431 'take':574 'tangl':43,782 'task':3,12,20,26,46,77,129,250,256,262,268,275,287,299,305,306,312,317,335,337,342,353,385,416,428,444,449,460,483,544,555,564,569,616,623,653,658,660,672,674,688,690,793,801,815,849,851,867,875,887,892,897,905 'templat':626 'test':53,364,367,464,664,731 'testabl':330,358,361 'tests/path/to/test.ts':396 'time':246 'titl':346,617 'touch':394,599,906 'two':600,622 'type':822 'ui':202,238,266,284,296,309,321 'unit':75 'unknown':167 'use':63,112 'user':277,289,301,314,471,519 'vagu':82 'valid':204,499 'verif':363,437,861,881,895 'verifi':19,55,383 'vertic':224,273,326 'view':316,324 'well':127 'well-defin':126 'window':832 'without':468,817,846,857 'work':16,36,85,329,434,473,585,684 'would':573 'write':139,170,334,612,796 'written':835,848 'xl':534,870 'xl-size':869 'xs':490","prices":[{"id":"42845afa-43d9-4ee1-9ee1-efa9baccbdca","listingId":"ccb474b2-7e29-43b7-bed1-c2a337f27673","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"addyosmani","category":"agent-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T20:31:19.807Z"}],"sources":[{"listingId":"ccb474b2-7e29-43b7-bed1-c2a337f27673","source":"github","sourceId":"addyosmani/agent-skills/planning-and-task-breakdown","sourceUrl":"https://github.com/addyosmani/agent-skills/tree/main/skills/planning-and-task-breakdown","isPrimary":false,"firstSeenAt":"2026-04-18T21:53:03.200Z","lastSeenAt":"2026-04-22T06:52:42.567Z"},{"listingId":"ccb474b2-7e29-43b7-bed1-c2a337f27673","source":"skills_sh","sourceId":"addyosmani/agent-skills/planning-and-task-breakdown","sourceUrl":"https://skills.sh/addyosmani/agent-skills/planning-and-task-breakdown","isPrimary":true,"firstSeenAt":"2026-04-18T20:31:19.807Z","lastSeenAt":"2026-04-22T11:40:30.088Z"}],"details":{"listingId":"ccb474b2-7e29-43b7-bed1-c2a337f27673","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"addyosmani","slug":"planning-and-task-breakdown","source":"skills_sh","category":"agent-skills","skills_sh_url":"https://skills.sh/addyosmani/agent-skills/planning-and-task-breakdown"},"updatedAt":"2026-04-22T11:40:30.088Z"}}