---
name: check-priorities
description: At the start of every new session, fetch the top priority task from Priority Forge and surface it to the user before acting on their request. Also log a context switch if the user's request diverges from the current top priority.
---

# Check Priorities

Always start a session by asking Priority Forge what the user should be working on.

## When to use

At the beginning of every new Cursor session, before responding to the user's first substantive message.

## How to use

1. Call `mcp_priority-forge_get_top_priority`. If it returns no task, the queue is empty — proceed normally.
2. If the user's first message is clearly about the returned top-priority task, start work on it and call `mcp_priority-forge_update_task(status: "in_progress")` before making any edits. This captures the `startedAt` timestamp the ML pipeline uses to distinguish queue time from work time.
3. If the user's first message is about something else, acknowledge the top-priority task briefly ("heads-up: the top priority is still X — want to switch to that or continue with Y?") and call `mcp_priority-forge_log_context_switch` so the ML pipeline sees the divergence.

## Fallback

If the MCP tool call fails (server not reachable), hit the REST API directly:

```bash
curl -fsS http://127.0.0.1:3456/tasks/top
```

If that also fails, tell the user Priority Forge appears to be down, and suggest `./setup.sh status` or `./setup.sh start` from the priority-forge repo.

## What NOT to do

- Do not skip this step because "the user clearly knows what they want" — surfacing the top priority is cheap and prevents silent drift.
- Do not call competing PM MCPs to answer "what should I work on" — route through priority-forge only.
