This commit is contained in:
2026-10-08 18:29:45 -07:00
parent 8eedf03486
commit 5725de2dac
35 changed files with 3360 additions and 0 deletions

63
scripts/triage Executable file
View File

@@ -0,0 +1,63 @@
#!/usr/bin/env python3
"""
triage
Triages a task from Documentation/Tasks.md using an AI CLI agent (Antigravity or Hermes).
Validates that the task is in 'planning' or 'triage' status, prepares full
architectural and task context, and launches the agent interactively.
Usage:
./scripts/triage 094
./scripts/triage OT-120 --hermes
./scripts/triage 094 --agy
./scripts/triage --help
"""
import argparse
import sys
from pathlib import Path
# Ensure scripts/lib is importable
sys.path.insert(0, str(Path(__file__).resolve().parent / "lib"))
from task_context import (
fetch_task,
assert_task_status,
build_workflow_prompt,
add_common_agent_arguments,
resolve_selected_agent,
)
TRIAGE_OBJECTIVES = """- Inspect the codebase to understand the current implementation and scope for this task.
- Clarify ambiguities: ask the user any critical design or scoping questions interactively.
- Formulate a clear, actionable checklist of engineering deliverables (- [ ]).
- Document any open decisions, architectural considerations, or trade-offs in triage notes.
- Once scoped, update the task using `./scripts/update-task {task_id}`.
- If ready for implementation, propose moving status to 'pending', or keep in 'triage'/'planning' if awaiting user decisions."""
def main():
parser = argparse.ArgumentParser(
description="Triage a task in Documentation/Tasks.md using an AI CLI agent. Requires status to be 'planning' or 'triage'."
)
parser.add_argument("task_id", help="Task number or prefixed ID (e.g. 94, PREFIX-094)")
add_common_agent_arguments(parser)
args = parser.parse_args()
agent = resolve_selected_agent(args)
task = fetch_task(args.task_id, tasks_file=args.file)
assert_task_status(task, ["planning", "triage"], command_name="triage")
prompt = build_workflow_prompt(
task=task,
workflow_name="triaging",
workflow_objective=TRIAGE_OBJECTIVES.format(task_id=task["id"]),
)
print(f"Launching {agent.name.capitalize()} ({agent.name}) to triage {task['id']}: {task['title']}...")
agent.launch(prompt)
if __name__ == "__main__":
main()