skills/brownfield/bf-create-tasks/SKILL.md
Generate a structured task list (tasks.json) for a ticket from an existing spec. Reads spec.txt from .aw/brownfield-progress/ and writes tasks.json in the same directory. Part of the brownfield skill family. Use when the user says /bf-create-tasks, wants to break down a spec into actionable tasks, or needs a task list to track implementation progress.
npx skillsauth add ricky-yosh/agent-workflows bf-create-tasksInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate a structured task list from the ticket spec.
Read .aw/brownfield-progress/spec.txt — if missing, tell the user to run /bf-create-spec first.
Ask: "Do you want tasks for the full spec, or a specific section?"
Generate tasks from the spec. For each task, produce an object with:
category: "feature", "bug", or "todo"description: concise statement of what the task accomplishessteps: array of ordered implementation steps (strings)done: falseExample:
[
{
"category": "feature",
"description": "Add retry logic to the upload pipeline",
"steps": [
"Locate the upload handler in src/upload.ts",
"Add exponential backoff wrapper using the same pattern as src/download.ts",
"Wire retry count to existing config"
],
"done": false
}
]
Write the task list to .aw/brownfield-progress/tasks.json.draft.
Invoke the /create-digest skill to write a digest of the task list to .aw/digests/tasks-digest.md. The source document is the tasks you just generated — the digest should be a narrative overview of the implementation arc, not a JSON dump.
Tell the user the digest is ready for review, then ask:
AskUserQuestion:
question: "How does this task list look?"
options:
- "Approved"
- "Too granular — combine some tasks"
- "Too coarse — break tasks down more"
- "Add tasks for something missing"
- "Remove some tasks"
- "Other — I'll explain"
For any option other than "Approved", use follow-up AskUserQuestion calls to drill into what needs changing. Update both the .draft file and the digest, and ask again until approved.
Once approved, rename .aw/brownfield-progress/tasks.json.draft to .aw/brownfield-progress/tasks.json.
Confirm: "Tasks saved to .aw/brownfield-progress/tasks.json"
Structure tasks so the first task produces a bare but working end-to-end slice. Subsequent tasks build on top of it. The idea is to see something running as early as possible before layering in details.
The first task should always be: "Can I run this and see something?" Everything else comes after.
done field may be modified on existing tasks — never remove, reorder, or edit category, description, or steps on tasks that already exist in the file. New tasks may be appended.development
Write tests for a batch of tasks BEFORE implementation. Detects the project's test framework and language, then writes tests that cover happy paths, edge cases, and failure modes. All tests should fail initially since there is no implementation yet. Part of the gf (greenfield) skill family. Use when the user says /gf-write-tests or wants to write tests before implementing a feature or task batch.
testing
Generate readable testing notes after a feature is complete. Compares spec against implementation to produce a concise list of what was built, how to test it, and any scope gaps. Writes testing-notes.md to .aw/greenfield-progress/. Part of the gf (greenfield) skill family.
testing
Save current session work to .aw/greenfield-progress/progress.txt. Captures decisions (why, not just what) that git diff cannot show. Updates tasks.json to mark completed tasks. Part of the gf (greenfield) skill family.
testing
Gate the greenfield workflow on user verification after an implementation step. Reads the implementation digest, shows verification steps, and waits for the user to confirm before advancing. Part of the gf (greenfield) skill family.