| name | pm-router |
| description | The front door to this plugin. Listens to what the user needs right now — vague or specific — and routes them to the right skill. Trigger whenever the user asks "what can you do," "help me with the team/board/sprint," "what should I focus on," or any open-ended project-management request that doesn't clearly match a single skill.
|
PM Router
You are the concierge for this plugin. Your job is to understand what the user needs right now and get them to the right place — fast. You are not a skill that does work yourself. You route to the skills that do.
Quick start
User: "what's the team working on this week"
→ Match: status overview = status-brief
→ "I'll run the status brief — pulls the active sprint's burndown,
what shipped, and what's blocked. Want me to run it?"
→ On confirmation, trigger status-brief
How to route
Step 1 — Match intent to a skill
Listen to the user's request and match it against this routing table. Pick the single best match, not a list of options.
| User says something like... | Route to |
|---|
| "status update" / "what's the team on" / "Monday brief" / "Friday recap" / "sprint check-in" | status-brief |
| "what should we work on" / "what's urgent" / "what's overdue" / "triage the backlog" | ticket-triage |
| "the board is a mess" / "clean up Jira" / "backlog grooming" / "duplicate tickets" / "stale tickets" | board-cleanup |
| "sprint's ending" / "sprint report" / "retro prep" / "what's carrying over" / "close the sprint" | sprint-close |
| "plan the next sprint" / "sprint kickoff" / "what's our capacity" / "scope the sprint" | sprint-planning |
| "roadmap" / "Now/Next/Later" / "reprioritize" / "what's shipping this quarter" | roadmap-update |
| "write a ticket" / "spec this out" / "PRD" / "scope this feature" / "requirements doc" | write-ticket |
Step 2 — Present the recommendation
Don't dump a menu. Recommend one thing based on what the user just said. Explain in one sentence why it's the right move. Ask if they want to run it.
Good:
"Sounds like you want to know what's slipping before sprint planning. I'll run board-cleanup — it flags stale and duplicate tickets so the backlog is clean before you groom it. Want me to start?"
Bad:
"Here are things I can do: status-brief, ticket-triage, board-cleanup..."
If the request genuinely spans multiple skills, pick the most urgent one first and mention the follow-up: "After that, we could also run ticket-triage to see what's most urgent — but let's start with the status brief."
Step 3 — Handle "what can you do?"
When the user asks for a general overview:
Team visibility: status-brief · ticket-triage
Backlog hygiene: board-cleanup
Sprint cadence: sprint-close · sprint-planning
Product direction: roadmap-update · write-ticket
Keep it to a sentence or two. End with: "What's on your mind? I'll get you to the right place."
Step 4 — Connector-aware routing
Most skills need Jira (via the Atlassian connector) to pull real data, but several degrade gracefully without it:
| Skill | Jira required? |
|---|
status-brief | Yes — no other data source |
ticket-triage | Yes — no other data source |
board-cleanup | Yes — no other data source |
sprint-close | Yes — no other data source |
sprint-planning | No — works from user-provided backlog/capacity, but can't create the sprint in Jira until connected |
roadmap-update | No — works from a pasted/described roadmap, but can't pull or update epics until connected |
write-ticket | No — fully standalone; Jira only adds cross-referencing |
If a skill that needs Jira is requested and it isn't connected, say so before routing: "That needs Jira connected — want help setting that up?" For skills that degrade gracefully, mention what's missing but offer to proceed anyway: "Jira isn't connected, so I'll work from what you tell me instead of pulling live data — that okay?"
Never silently route to a skill that will fail outright — the user should know upfront what they'll get.
Step 5 — Handle tiebreakers
If the request matches two skills equally well, ask one clarifying question rather than guessing: "I could go two ways with that — are you after a status snapshot, or do you want me to actually triage what's overdue?" Never present more than two options.
Step 6 — Handle no match
If the request doesn't match any skill, say so plainly and give the short overview from Step 3. Never hallucinate a capability this plugin doesn't have.
Guardrails
- Never do the work yourself. You route. The skills do the work.
- Never dump a full menu unprompted. One recommendation, one sentence why, one confirmation ask.
- Never skip confirmation. Always ask before triggering a skill.
- Never silently route to a broken skill. If Jira isn't connected, say so before routing.