Query, list, and report on tasks in the s9 database
I provide comprehensive instructions for finding, listing, and reporting on tasks in the s9 task database using the task_show and task_list tools. Use this skill to discover available work, view task details, and generate reports.
This skill uses:
task_show tool - Get full details for a specific tasktask_list tool - List and filter tasks by various criteriatask_report tool - Generate formatted reportsAll tools return clean JSON results and automatically receive mission context from OpenCode.
task_list(status="TODO")
task_list(status="UNDERWAY")
task_list(status="TODO,UNDERWAY")
task_list(status="COMPLETE")
Available statuses:
TODO - Not startedUNDERWAY - In progressBLOCKED - Can't proceedPAUSED - Temporarily stoppedREVIEW - Awaiting reviewCOMPLETE - FinishedABORTED - Cancelledtask_list(role="Engineer", status="TODO")
task_list(role="Administrator", status="TODO")
task_list(role="Tester")
Available roles:
task_list(priority="CRITICAL,HIGH", status="TODO")
task_list(priority="HIGH")
task_list(priority="MEDIUM,LOW")
Priority levels:
CRITICAL - Immediate action requiredHIGH - Important, do soonMEDIUM - Nice to haveLOW - Do when time permitsShow only TODO and UNDERWAY tasks:
task_list(active_only=True)
This is the most common query for finding work.
See tasks claimed by specific agent:
task_list(agent="Goibniu")
task_list(agent="Ishtar", status="UNDERWAY")
task_list(agent="Ptah", status="COMPLETE")
Filters can be combined:
# High priority Engineer tasks that are TODO
task_list(role="Engineer", priority="HIGH", status="TODO")
# Active tasks assigned to Goibniu
task_list(agent="Goibniu", active_only=True)
# Completed tasks for a specific role
task_list(role="Tester", status="COMPLETE")
Get full details for a specific task:
task_show(task_id="ENG-H-0037")
Shows:
{
"task_id": "ENG-H-0037",
"title": "Implement Rate Limiting Middleware",
"status": "UNDERWAY",
"priority": "HIGH",
"role": "Engineer",
"category": "Security",
"agent": "Goibniu",
"created_at": "2026-02-03T10:00:00+00:00",
"claimed_at": "2026-02-05T14:00:00+00:00",
"actual_hours": 4.0,
"objective": "Add rate limiting to protect API endpoints from abuse",
"description": "Implement token bucket rate limiting with configurable limits per endpoint",
"dependencies": [],
"notes": [
"Implemented token bucket algorithm, added configuration (2.0 hours)",
"Added tests, all passing (4.0 hours)"
],
"file_path": ".opencode/work/tasks/ENG-H-0037.md"
}
task_report(format="markdown")
Generates markdown-formatted report of all tasks, suitable for documentation.
task_report(format="table")
Generates ASCII table suitable for terminal display.
task_report(format="json")
Generates JSON output for programmatic processing.
Reports can be filtered by role:
task_report(role="Engineer", format="markdown")
task_report(role="Administrator", format="table")
# Find TODO tasks for your role
task_list(role="Engineer", status="TODO")
# Find high-priority TODO tasks
task_list(role="Engineer", priority="CRITICAL,HIGH", status="TODO")
# Find any active work
task_list(role="Engineer", active_only=True)
# Critical tasks across all roles
task_list(priority="CRITICAL", status="TODO")
# High priority tasks needing attention
task_list(priority="HIGH", status="TODO,UNDERWAY")
# See what's blocked
task_list(status="BLOCKED")
# Check your blocked tasks
task_list(agent="YourName", status="BLOCKED")
Before claiming a task, check if it has dependencies:
result = task_show(task_id="ENG-H-0038")
# Check result["dependencies"]
# Check if dependency is complete
dep_result = task_show(task_id="ENG-H-0037")
# Check dep_result["status"] == "COMPLETE"
# What am I working on?
task_list(agent="YourName", status="UNDERWAY")
# What's next to work on?
task_list(role="YourRole", priority="HIGH", status="TODO")
# What's blocked?
task_list(status="BLOCKED")
# 1. Check critical tasks first
task_list(priority="CRITICAL", status="TODO")
# 2. Then high priority for your role
task_list(role="YourRole", priority="HIGH", status="TODO")
# 3. Look at medium priority if nothing urgent
task_list(role="YourRole", priority="MEDIUM", status="TODO")
Auto-claim after finding when the user gives an imperative command:
Ask before claiming when the user is inquiring:
The key distinction: imperative commands ("find", "get", "claim") indicate the user wants you to take action. Inquiry commands ("what", "show", "list") indicate the user wants information first.
# How many tasks completed?
task_list(status="COMPLETE")
# How many tasks in progress?
task_list(status="UNDERWAY")
# How much work left?
task_list(status="TODO")
# What is each agent working on?
task_list(status="UNDERWAY")
# What has been completed?
task_list(status="COMPLETE")
# Generate status report
task_report(format="markdown")
active_only=True for quick work discoverytask_show to understand task fully before claimingTask lists return JSON arrays with key information:
[
{
"task_id": "ENG-H-0037",
"title": "Implement Rate Limiting",
"status": "UNDERWAY",
"priority": "HIGH",
"role": "Engineer",
"agent": "Goibniu"
},
{
"task_id": "ENG-H-0038",
"title": "Configure Gateway",
"status": "TODO",
"priority": "HIGH",
"role": "Operator",
"agent": null
}
]
Full task details including:
task_list() without filters to see all taskstask_list() to find available tasksactive_only=True instead of listing all statusestask_show for single task detailsRelated Skills:
task-create - Creating new taskstask-claim - Claiming tasks found through queriestask-update - Updating tasks after claimingtask-close - Closing tasks when completetask-management - Overview of task systemDocumentation:
.opencode/data/README.md - Complete s9 system reference