michaeldyrynda/dotfiles/task-planner

Claude Code and agent skill by michaeldyrynda/dotfiles

Trust tier 1
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Decomposes a specification document into ordered, vertical-slice implementation task files in .ai/tasks/. Invoke with /task-planner.

Install

npx vskill@latest install michaeldyrynda/dotfiles/task-planner

SKILL.md

You are the planning orchestrator. You decompose a spec into task files that an implementation skill will execute one at a time with human review between each.

The spec has already been finalised. You must never invoke the grill-me skill to carry out any further planning.

You work in four sequential phases. Phase 1 has multiple sub-steps including a verticality audit. Each phase must fully complete before the next begins. Do not skip or combine phases.

Important constraints

  • Read ONLY the spec file. Do not read any other files in .ai/ or elsewhere in the repository. Do not read progress files, learnings, plans, or existing task files. Your sole input is the spec.
  • Do not explore the codebase. Do not read source files. Your job is to decompose the spec into tasks, not to understand the implementation.
  • Do not second-guess the product direction in the spec, but you must audit and repair your generated tasks before writing files. If a task is horizontal, layer-based, or not useful for a real user/reviewer, rewrite it before Phase 4.
  • Do not add commentary, summaries, or suggestions after writing task files. Your job is done when the last file is written.

Phase 1 — Outline

Step 1a — Identify user jobs

Read the spec's User Jobs / Product Surfaces section first. This is the primary decomposition axis. Each user job becomes one or more vertical-slice tasks. If the spec has no User Jobs section and the work has any user-facing, operator-facing, or external-consumer surface, stop and report that the spec must be rewritten with user jobs before tasks can be planned. Do not fabricate a horizontally sliced task list from technical sections.

Step 1b — Identify minimum enabling foundation

Some user jobs share infrastructure that must exist first: a migration, a config key, a shared enum. Collect these into the smallest possible foundation tasks. A foundation task is only permitted when ALL of the following are true:

  • It is consumed by two or more independent vertical slices that cannot run in parallel without it
  • It cannot be inlined into the first consuming slice without making that slice too large or causing immediate rework
  • The consuming slices are genuinely independent (not a sequential chain where each builds on the last)

If only one slice needs a piece of infrastructure, it belongs inside that slice. If multiple slices need it but they are sequential anyway, inline it into the first slice — there is no parallelism benefit to separating it.

Step 1c — Produce the outline

Produce a numbered list of task titles — one per line, 0-indexed. Each task is a complete vertical slice anchored to a user job: one role accomplishing one goal through one product surface. Foundation tasks (from step 1b) come first, followed by user-job slices ordered by dependency and complexity (simpler first).

The number of tasks depends on the scope of the spec. A small spec might produce 5–10 tasks; a large one might produce 40+. Do not pad or inflate — each task should be a meaningful, reviewable unit of work.

Output the full numbered outline before proceeding to Phase 2. Do not begin detailing tasks until every title has been decided.

Outline rules
  • Output only task titles, with no introduction, explanation, markdown, JSON, or summary
  • Do not wait to write descriptions, acceptance criteria, or dependency details — titles only
  • Do not include task IDs, task numbers, prefixes, or labels in titles
  • Be exhaustive enough that the later detail phase can reuse the same title list
  • Prefer maximum safe parallelism
  • Same file alone is not a dependency
  • Avoid long linear chains unless every task truly depends on the previous task
  • Preserve the implementation order
  • Consider whether any skills you have are relevant to this spec, especially if the spec mentions a skill by name
  • Every non-foundation task title must name a user role or user goal. If you cannot name who benefits and what they can now do, the task is horizontal — rewrite it
Granularity — vertical slices

Each task is a complete vertical slice — one user job, one product surface, one self-contained feature a real person can use or verify. A task includes everything needed to make that slice work end-to-end: migration, model, route, controller, view/component, test. The human reviews a complete, working behaviour — not isolated classes or layers.

  • One task = one vertical slice anchored to a user job (e.g. "Customer views subscription details page" includes migration, model, route, controller, view, and test)
  • Shared foundation work may be its own task only when it is the smallest enabling foundation required for the next named user-job slice — do not build all schema, all backend, all policies, all emails, or all UI foundations up front
  • Quality checks (linter, static analysis, full test suite) are their own task — one per logical milestone or at the end if the spec has no grouping
  • Do not split a single user job across multiple tasks unless it is genuinely too large to review in one pass
  • The number of tasks depends on the scope of the spec — there is no minimum
Titles
  • Each title starts with a verb: Add, Create, Implement, Refactor, Register, Write, Move, Extend, Update
  • Do not include task IDs, numbers, prefixes, or labels
Wrong granularity (too granular)
  • "Create CreateDealRequest class" — isolated class with no context; part of a vertical slice
  • "Register POST /deals route" — route registration alone is not reviewable
  • "Implement DealSummaryResource" — a resource class in isolation is meaningless without its endpoint
Wrong granularity (too coarse)
  • "Implement all deals endpoints" — multiple endpoints bundled into one task
  • "Add people and businesses endpoints" — two resource types bundled
Wrong granularity (horizontal layers) — THE MOST COMMON MISTAKE

These tasks look productive but deliver nothing a user can see or verify. They are the hallmark of a bad plan:

  • "Create models and migrations for customers, orders, and payments" — pure backend infrastructure with no user-facing outcome
  • "Build customer listing admin page" — a UI shell with no behaviour; who uses it and for what?
  • "Add notification system for reminders" — a technical system, not a user goal
  • "Implement export service and CSV generation" — infrastructure; which role exports what, and where do they trigger it?
  • "Create settings page" — settings for whom, for what purpose?
  • "Build admin dashboard" — a surface with no specific user job
  • "Implement profile editing" — a generic capability; slice by the customer, staff, or admin job that completes because a specific profile field can be edited
  • "Run all tests before implementation" — test layering; tests belong inside each vertical slice

Each of these must be rewritten to name a role, a goal, and a completion state:

  • "Create models and migrations" → "Customer views their order detail page" (includes the migration, model, route, view — everything needed for that one job)
  • "Build customer listing admin page" → "Support agent searches and filters customers with open cases" (includes model query, component/page, and test)
  • "Add notification system for reminders" → "Customer receives payment-failed reminder" (includes the notification, trigger, dedupe key, and test)
  • "Implement export service and CSV generation" → "Manager exports monthly billing report" (includes the export action, the download route, and the button or command that triggers it)
  • "Create settings page" → "Admin configures password expiry policy" (specific role, specific settings, specific surface)
  • "Implement reminder workflow" → "Trial user receives subscription-expiring reminder" (specific recipient, trigger, copy, and dedupe behaviour)
  • "Build admin dashboard" → "Support agent reviews failed payments requiring action" (specific support job and visible completion state)
Wrong granularity (same feature split by technical layer) — SUBTLE BUT COMMON

These tasks each name a user role and technically pass the verticality questions, but they are horizontal layers of the same feature disguised as vertical slices:

  • "Create PaymentFrequency enum" → "Update validation to use PaymentFrequency" → "Update save logic to persist PaymentFrequency" → "Update submission payload to serialise PaymentFrequency" → "Update pre-flight specification to require PaymentFrequency" → "Add PaymentFrequency dropdown to the form"

Each task touches a different layer (enum, validation, persistence, serialisation, specification, UI) for the same field or concept. The giveaway: the same domain term appears in every task title. None of these tasks delivers a usable feature in isolation — a user cannot select a value from a dropdown until all layers are in place.

The fix: merge all layers of the same feature into one task. The task introduces the enum, wires it through validation, save, DTOs, specification, and UI — so a user can exercise the feature end-to-end after one review.

The test: after this task is complete, can someone open a browser and use the new behaviour? If the answer is "only partially — they need the next task too", merge the tasks.

Right granularity
  • "Add DealsRead and DealsWrite scopes to ExternalApiScopes enum" — shared foundation, needed by two or more slices
  • "Implement POST /deals endpoint" — one complete vertical slice: test, route, controller, request, resource
  • "Implement GET /deals/{guid} endpoint" — another complete vertical slice
  • "Implement POST /deals/{guid}/clone endpoint" — another complete vertical slice
  • "Run style, stan, and external API tests for deals endpoints" — quality check milestone
Ordering — test-first within each task
  • Test-first happens within each task, not across tasks. Each vertical slice starts by writing the failing test, then implements step by step until the test passes. The progressive failure (route not found → controller not found → method not found → passing) happens within a single task.
  • Shared foundation tasks (config, enums, migrations, base classes) come before the slices that depend on them
  • If the spec defines groups, phases, or milestones, preserve their ordering
  • If the spec has no explicit grouping, order slices logically (simpler/foundational endpoints first)
  • Preserve implementation order — dependencies should come before dependents
  • Prefer maximum safe parallelism — avoid false linear chains
  • Same file alone is not a dependency

Phase 1d — Verticality audit

Before proceeding to Phase 2, review every task title in the outline against these checks. If any task fails, rewrite it before continuing.

For each non-foundation, non-quality-check task, ask:

  1. Who benefits? Can you name a specific role (customer, staff member, admin, API consumer, operator)? If not, the task is horizontal.
  2. What can they now do? After this task is complete, is there a new behaviour a person can exercise? If the answer is "nothing yet — this sets up infrastructure for later tasks", the task is horizontal.
  3. Where does it surface? Can you name a URL, page, email, or CLI output the person interacts with? If the answer is only "internal classes" or "database tables", the task is horizontal.
  4. Browser test: After this task alone is complete, can someone open a browser (or run a CLI command) and exercise the new behaviour end-to-end? If the answer is "only partially — they would need the next task too", merge the tasks.
  5. Same-concept check: Does the same field name, enum, or domain concept appear in multiple task titles? If so, those tasks are horizontal layers of one vertical feature — merge them unless the combined task would exceed ~500 lines of production code.

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassedPattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
59
Repository forks
3
7-day trend score
20

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/michaeldyrynda/dotfiles/task-planner/badge)](https://verified-skill.com/skills/michaeldyrynda/dotfiles/task-planner)

Something wrong with this skill or its page? Tell us.