Manage task records inside `project-management-data.json`. Use when Codex needs to add a task, update a task, find tasks by filters or text, or delete a task from this project's mock project-management dataset. Trigger this skill for requests about task CRUD operations, task lookups, status changes, due-date edits, reassignment, or maintaining task-related stats in `project-management-data.json`.
Use this skill to make deterministic task changes in the local project-management-data.json file. Always use the bundled scripts/manage_tasks.py for all task reads and writes so task IDs, references, and stats stay consistent. Never edit tasks[] or task-related stats manually.
Run the helper by resolving it from the skill directory:
python3 .agents/skills/project-task-json-manager/scripts/manage_tasks.py find --status todo
python3 .agents/skills/project-task-json-manager/scripts/manage_tasks.py add \
--set projectId=prj-001 \
--set title="Draft onboarding checklist" \
--set description="Create a concise beta user onboarding checklist." \
--set status=todo \
--set priority=medium \
--set assigneeId=usr-001 \
--set reporterId=usr-001 \
--set dueDate=2026-04-20 \
--set estimateHours=3 \
--set tags='["documentation","onboarding"]'
python3 .agents/skills/project-task-json-manager/scripts/manage_tasks.py update --id tsk-003 --set status=review
python3 .agents/skills/project-task-json-manager/scripts/manage_tasks.py delete --id tsk-018
project-management-data.json, unless the user explicitly points elsewhere..agents/skills/project-task-json-manager/scripts/manage_tasks.py relative to the repo root. If working from another directory, use the absolute path to the same script.find first when the user refers to a task loosely by title, assignee, tag, or status.find, add, update, and delete only through manage_tasks.py.jq empty project-management-data.json.Use find to inspect tasks without mutating the file.
python3 .agents/skills/project-task-json-manager/scripts/manage_tasks.py find --text billing
python3 .agents/skills/project-task-json-manager/scripts/manage_tasks.py find --project-id prj-001 --status in-progress
python3 .agents/skills/project-task-json-manager/scripts/manage_tasks.py find --assignee-id usr-002 --tag frontend
Supported filters:
--id--project-id--milestone-id--assignee-id--reporter-id--status--priority--tag--text--limitUse add with repeated --set field=value. Do not create tasks by editing JSON directly.
Required fields:
projectIdtitledescriptionstatuspriorityassigneeIdreporterIdBehavior:
tsk-### ID automatically.createdAt automatically when not provided.tags='["api","backend"]' and estimateHours=8 work.projects, users, and milestones.stats.totalTasks, stats.tasksByStatus, stats.completedTasks, and stats.overdueTasks.Use update --id ... --set field=value to change one task. Do not modify task objects directly in the JSON file.
python3 .agents/skills/project-task-json-manager/scripts/manage_tasks.py update \
--id tsk-004 \
--set status=done \
--set dueDate=2026-04-09 \
--set tags='["backend","api","billing"]'
Rules:
references/task-schema.md.null.find --id ... if you need to confirm the current shape before updating.Use delete --id ... to remove one task by exact ID. Do not remove task entries manually from JSON.
python3 .agents/skills/project-task-json-manager/scripts/manage_tasks.py delete --id tsk-018
Behavior:
stats fields after deletion.references/task-schema.md when you need the exact task fields or valid reference behavior.stats refresh.