← Back to AAI for MerusCase

Show Tasks

The per-case task list at a glance. Every real task on a case — auto-generated noise filtered out — sorted overdue-first, then HIGH priority, then due date. Read-only: it shows you the state, it doesn’t change anything. When you want to act on tasks one at a time, that’s the interactive walker.

The task descriptions, dates, and assignees in this page are fictitious demonstration data. Your install runs against the real tasks on the case.

On this page

What it is

At the prompt:

aaicase> show tasks on Doe
aaicase> tasks on case [CASE-ID]
aaicase> what's on the Roe task list

About twenty seconds later you have the case’s task list as a formatted table: status, priority, due date, assignee, description, task ID. Sorted so the things that need attention — overdue and HIGH priority — are at the top. A summary line at the bottom gives the counts.

It’s the read-only glance. You run it to see where a case stands on tasks. To actually work through them — complete, reassign, update — you run the interactive walker.

Vs. process my tasks

show tasks on [case]process my tasks
ScopeOne caseWhole queue (yours, everyone’s, or a specific person)
ModeRead-only displayInteractive walker — one task per screen
WritesNoYes — complete, reassign, update (with confirmation)
OutputWhole-case table, sortedOne card at a time, with action menu
Use case“What’s on this case?” — pre-call, pre-hearing reference“Let me work through my backlog” — the daily task discipline

Both filter out the same auto-generated noise and both refuse to offer delete. The difference is shape and intent: show-tasks is the static reference; process-my-tasks is the working session.

How it runs (under the hood)

If you give a name, the skill resolves to a case ID via merus-search first. Then one fetch:

node bin/merus-fetch.mjs /tasks/index

The endpoint returns all tasks firm-wide; the skill filters client-side to case_file_id == [CASE-ID], applies the noise filter, decodes HTML entities in descriptions, sorts, and prints. No temp directory, no second call, no AI.

Names are resolved by looking up user_id against the firm’s staff roster so the assignee column shows a name, not an integer.

The sort order

Tasks are sorted by three keys in priority order:

  1. Overdue first. Any open task with a due date before the start of today sorts to the top, regardless of priority. A missed deadline outranks an upcoming HIGH-priority task.
  2. Then by priority. Among non-overdue (or among overdue), HIGH (1) before MED (2) before NORM (3).
  3. Then by due date. Within the same priority bucket, earliest due date first.

The logic: the attorney’s eye lands on the top of the list, and the top of the list is what’s most urgent. Overdue is most urgent, so it’s first. The sort is designed so the order of the rows is the order to act in.

The noise filter

Merus auto-generates “REVIEW (auto…),” “VERIFY (auto…),” and “Review filed orphan” tasks as side effects of various operations. The skill filters these out so the task list reflects real work, not auto-generated chatter.

The filter is the same narrowed regex shared across status, morning brief, health check, and process my tasks — documented in skills/status.md. It matches only explicit auto-generation markers, not every task starting with “Verify” (an earlier over-broad version hid real attorney tasks like “Verify date of injury”).

The hidden count is shown at the bottom: “Also: 12 auto-generated review tasks (hidden).” So the attorney sees both the real list and how much noise sat behind it.

The three flags

Each task line and the summary surface three conditions:

FlagTrigger
OVERDUEOpen task with due date before start of today. Marked inline on the task and counted in the summary.
(stale >7d)Overdue by more than 7 days. A task that’s been overdue for a week is a different kind of problem than one overdue since yesterday.
unassignedOpen task with no user_id. Nobody owns it — which usually means nobody’s doing it.

The summary line tallies all three: total / open / done / overdue / HIGH / unassigned. The unassigned count only appears when it’s non-zero (no point showing “unassigned=0” on a well-managed case).

Names, not user IDs

The assignee column shows a staff name, never a bare user_id. The skill resolves each task’s user_id against the firm’s staff roster. An attorney shouldn’t have to mentally translate “assigned to user 1749447” into “assigned to the paralegal” — the table does it.

If a user ID doesn’t resolve (a former employee, a deleted account), the skill shows the raw ID with a note rather than failing — better to surface “assigned to [unknown user 12345]” than to hide the task or crash.

No delete option

Show-tasks never offers to delete a task. When it suggests follow-up actions, the choices are complete or skip — never delete. And the merus-fetch task-delete guard refuses /tasks/del/ regardless.

Tasks have audit-trail value: what was being tracked, when, by whom. A completed task is a record. A deleted task is a hole in the record. To close a stale task, the right move is to complete it:

node bin/merus-fetch.mjs /tasks/edit/[TASK-ID] completed=1

This preserves the record while marking it done. The same no-delete rule runs through process my tasks and every other task-touching skill in AAI — integrity is restored by completing records, not erasing them.

Example output

TASKS — Doe, Jane v. Sample County Agency (#[FILE-#])
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

STATUS  PRI   DUE                     ASSIGNED        DESCRIPTION
OPEN    HIGH  2026-05-20 OVERDUE      Sample Attorney  File QME objection (8 CCR 31.5(a))
OPEN    HIGH  2026-05-12 OVERDUE (stale >7d)  Sample Paralegal  Request benefits log from carrier
OPEN    HIGH  2026-06-03              Sample Attorney  Send TD demand to Sample Insurance
OPEN    MED   2026-06-04              Sample Paralegal  Confirm interpreter for MSC
OPEN    NORM  2026-06-15              (unassigned)     Follow up on subpoenaed records
OPEN    NORM  no date                Sample Paralegal  Update case comments after audit
DONE    HIGH  2026-04-22              Sample Attorney  Send NOR to carrier + defense

SUMMARY: total=7 open=6 done=1 overdue=2 HIGH=3 unassigned=1
Also: 12 auto-generated review tasks (hidden)

And the empty case:

No tasks on this case.

Want me to create one?

When to run it

Troubleshooting

“No tasks on this case” but I created some

Either the tasks are all auto-generated noise (filtered out — check the hidden count), or they were created on a different case. Confirm the case ID. If the tasks are genuinely auto-noise, that’s expected — the skill shows real work, not auto-chatter.

A task shows OVERDUE but I think it’s done

The task’s completed field isn’t set to 1. Mark it complete (via process my tasks or the Merus UI). Show-tasks reads the field; it doesn’t change it.

Assignee shows a raw user ID

The user_id didn’t resolve against the staff roster — usually a former employee whose account was deactivated. The task is still valid; it’s just assigned to someone no longer at the firm. Reassign it via process my tasks.

Too many stale tasks

Stale (overdue >7d) tasks accumulate when nobody’s walking the queue. Run process my tasks filtered to this case’s assignees to clear them — complete what’s done, keep what’s genuinely pending, reassign what belongs elsewhere.

I want to delete a task

You can’t. Complete it. The record stays in the audit trail. If the task was created in error, completing it with a note is the right cleanup — the same rule as everywhere in AAI.

The hidden noise count is huge

Merus generates a lot of auto-tasks, especially after mail-processing runs. The high noise count is informational — it tells you how much auto-chatter is on the case. The real task list (shown) is what matters.

Part of AAI for MerusCase — code-guarded AI case intelligence for California Workers’ Comp attorneys.