Adds basic task management tools.

This commit is contained in:
2026-10-08 19:15:08 -07:00
parent 5725de2dac
commit 0c7c20b6e6
34 changed files with 676 additions and 868 deletions

View File

@@ -6,9 +6,9 @@ Validates a task's status for active development, displays its requirements,
and optionally transitions it to 'in_progress'.
Usage:
./scripts/work-on-task OT-001
./scripts/work-on-task OT-001 --start
./scripts/work-on-task OT-001 --force
./scripts/work-on-task EX-001
./scripts/work-on-task EX-001 --start
./scripts/work-on-task EX-001 --force
"""
import argparse
@@ -24,7 +24,7 @@ def main():
parser = argparse.ArgumentParser(description="Validate and begin work on a task.")
parser.add_argument("task_id", help="Task number or prefixed ID (e.g., 1 or PREFIX-001)")
parser.add_argument("--start", action="store_true", help="Transition status to 'in_progress'")
parser.add_argument("--force", action="store_true", help="Proceed even if status is not pending/in_progress")
parser.add_argument("--force", action="store_true", help="Proceed even if status is not ready/pending/in_progress")
parser.add_argument("-f", "--file", dest="file", default=None, help="Path to tasks.md")
args = parser.parse_args()
@@ -35,9 +35,7 @@ def main():
sys.exit(1)
status = task.get("status", "").strip().lower()
valid_work_statuses = ["pending", "in_progress"]
invalid_statuses = ["planning", "triage", "research", "done", "cancelled", "blocked"]
valid_work_statuses = ["ready", "pending", "in_progress", "in-progress"]
if status not in valid_work_statuses and not args.force:
sys.stderr.write(
f"WARNING: Task {task['id']} is currently in '{task['status']}' status.\n"
@@ -56,7 +54,7 @@ def main():
print("\nRequirements & Description:")
print(task["description"])
if args.start and status != "in_progress":
if args.start and status not in ("in_progress", "in-progress"):
mod = load_get_task_module()
update_mod = mod.load_update_tasks_module()
script_dir = Path(__file__).resolve().parent