Taskctl
Overview
Use taskctl from PATH.
Required toolchain for this skill:
- •
taskctl(required) - •
gh(optional): Issue-driven state updates/comments - •
bddc(optional): behavior verification beforecompleted
Core constraints:
- •status flow:
pending -> in_progress -> completed - •
deletedremoves task permanently - •no self-dependency
- •no missing dependency target
- •no dependency cycle
- •blocked tasks cannot move to
in_progressorcompleted
Workflow
- •Choose a store file path.
- •Create tasks with complete fields.
- •Update owner, metadata, and dependencies.
- •Run
readyto identify executable tasks. - •Run
dagordag-asciifor graph review. - •Run
validatebefore accepting task plan changes. - •If issue-driven, sync concise status to Issue via
gh issue comment.
Command Patterns
bash
# help
taskctl --help
# create task
taskctl --store <STORE_JSON> create \
--subject "Run tests" \
--description "Execute backend tests and collect logs" \
--active-form "Running tests" \
--metadata '{"priority":"P1","module":"quality"}'
# update task content, owner, dependencies, status
taskctl --store <STORE_JSON> update \
--task-id <TASK_ID> \
--owner qa@team \
--metadata '{"priority":"P0","obsolete":null}' \
--add-blocked-by <DEP_1>,<DEP_2> \
--status in-progress
# inspect graph
taskctl --store <STORE_JSON> ready
taskctl --store <STORE_JSON> dag
taskctl --store <STORE_JSON> dag-ascii
# validate graph invariants
taskctl --store <STORE_JSON> validate
Field Semantics
- •
subject: imperative task title. - •
description: context + acceptance criteria. - •
active_form: progressive action text. - •
owner: responsible human or agent. - •
metadata: object payload; null value deletes key on update. - •
add_blocked_by: dependency task IDs required before start. - •
add_blocks: task IDs blocked by current task.
Acceptance Checklist
- •Ensure
validatereturns{ "ok": true }. - •Ensure
dagreflects intended module sequencing. - •Ensure
readyincludes only tasks with resolved dependencies. - •Include both JSON DAG and ASCII DAG when a human review is requested.