name: todo-json-manager description: Manage project task lists stored in to-do.json and to-do.schema.json, including bootstrapping a backlog, selecting the highest priority task with jq, and updating task statuses. Use when Codex needs to read or update a JSON task list.
Todo JSON Manager
Overview
Maintain the project task list in to-do.json using the schema in to-do.schema.json.
Top-level Fields
Required: schema_version, source_files, tasks.
source_files: array of relative paths to ground-truth docs (PROJECT.md, SPECS.md, etc.).
Task Fields
Required: id, title, priority (1-5), status (todo|doing|blocked|done).
Optional: details, steps, blockers, tags, files, depends_on, created_at, updated_at.
Workflow
- Read
to-do.schema.jsonif present and follow it strictly. - Read all files listed in
source_filesand treat them as ground truth. - Use
jqto inspect tasks and identify the next task.- Choose the lowest priority number among tasks with status "todo".
- Break ties by lexicographic
id. - If no "todo" tasks exist, select the highest priority "blocked" task to attempt unblocking.
- Set the chosen task status to "doing" before starting work.
- On completion, set status to "done", update
updated_at, and add relevantfilesordetails. - If blocked, set status to "blocked" and add clear
blockersentries. - Keep
to-do.jsonformatted with 2-space indentation.
jq Tips
jq '.tasks |= map(if .id=="T001" then .status="doing" else . end)' to-do.json > /tmp/to-do.json && mv /tmp/to-do.json to-do.json