Manage Thrum pipeline tasks — check status, approve/reject tasks awaiting human review, view diffs, and set up automated approval polling.
Use this skill to interact with a running Thrum orchestration engine via its REST API. Thrum drives autonomous AI development pipelines: tasks move through gated stages (quality, proof, integration) and pause at AwaitingApproval for human review.
This skill lets you list tasks, inspect diffs, approve or reject work, and set up cron-based polling so approvals happen without manual checking.
Two environment variables are required:
| Variable | Purpose | Example |
|---|---|---|
THRUM_API_URL | Base URL of the Thrum API server | http://localhost:3000 |
THRUM_API_TOKEN | Bearer token for authenticated requests | thrum_tok_abc123 |
All helper scripts live in {baseDir}/scripts/ and source these variables automatically.
List all tasks, optionally filtered by status or repository:
# All tasks
{baseDir}/scripts/check-status.sh
# Only tasks awaiting approval
{baseDir}/scripts/check-status.sh --status awaitingapproval
# Tasks for a specific repo
{baseDir}/scripts/check-status.sh --repo loom
Raw curl equivalent:
curl -s -H "Authorization: Bearer $THRUM_API_TOKEN" \
"$THRUM_API_URL/api/v1/tasks?status=awaitingapproval" | jq .
Move a task from AwaitingApproval to Approved so the pipeline continues:
{baseDir}/scripts/approve-task.sh <task-id>
Raw curl equivalent:
curl -s -X POST \
-H "Authorization: Bearer $THRUM_API_TOKEN" \
"$THRUM_API_URL/api/v1/tasks/<task-id>/approve" | jq .
Only tasks in the awaitingapproval state can be approved. The API returns an error
for tasks in any other state.
Send a task back to Implementing with human feedback:
{baseDir}/scripts/reject-task.sh <task-id> "Feedback explaining what needs to change"
Raw curl equivalent:
curl -s -X POST \
-H "Authorization: Bearer $THRUM_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"feedback":"Feedback explaining what needs to change"}' \
"$THRUM_API_URL/api/v1/tasks/<task-id>/reject" | jq .
The feedback string is stored on the task and provided to the implementing agent on the next retry.
Inspect the code changes produced by a task:
{baseDir}/scripts/view-diff.sh <task-id>
Raw curl equivalent:
curl -s -H "Authorization: Bearer $THRUM_API_TOKEN" \
"$THRUM_API_URL/api/v1/tasks/<task-id>/diff" | jq .
Use this before approving or rejecting to review what the agent actually changed.
Set up a cron job that periodically checks for tasks awaiting approval and notifies or auto-processes them:
# Install the cron job (checks every 5 minutes)
{baseDir}/scripts/poll-approvals.sh --install
# Run a single poll cycle manually
{baseDir}/scripts/poll-approvals.sh
# Uninstall the cron job
{baseDir}/scripts/poll-approvals.sh --uninstall
The polling script lists tasks with status=awaitingapproval and prints a summary.
It does not auto-approve by default — it only reports. Pass --auto-approve to
automatically approve all pending tasks (use with caution).
Pending -> Implementing -> Gate1(Quality) -> Reviewing -> Gate2(Proof)
-> AwaitingApproval -> Approved -> Integrating -> Gate3(Integration) -> Merged
approve and reject actions apply.check-status.sh --status awaitingapproval to see what needs review.view-diff.sh <id> to inspect the changes.approve-task.sh <id> or reject-task.sh <id> "reason" based on review.poll-approvals.sh --install for hands-free monitoring.