/pm-overview
Single-screen health snapshot of a Huly tracker project. Reads only — no writes.
Requires the huly MCP server to be connected. If huly_list_projects is unavailable, tell the user to install mcp/huly.mcpb in Claude Desktop.
Args
/pm-overview <PROJECT> [--window 7d|14d|30d]
PROJECT— identifier (e.g.PROJ) or workspace_id. Required. If missing, runhuly_list_projectsand ask the user to pick.--window— recent-activity lookback for time/created/closed counts. Default7d.
Steps
Run these 5 MCP tools (call in parallel where possible — they don't depend on each other):
huly_get_project— confirm project, get name, statuses, archived flag.huly_list_issues{ project, limit: 200 }— full dataset for cross-tabs.huly_list_milestones{ project }— sprint state.huly_list_components{ project }— module breakdown.huly_get_detailed_time_report{ project, from: now - window }— recent effort.
Also call huly_list_statuses { project } to map status _id → human name (needed for the by-status bucketing).
Computation (local, after tools return)
- Status buckets: group issues by
status(use the lookup map). Order: as returned byhuly_list_statuses. - Priority buckets: group by
priorityvalue —1=urgent, 2=high, 3=medium, 4=low, 0=none. - Top assignees: top 5 by issue count +
unassigned(whereassignee == null). - Stale:
modifiedOnolder than 14 days AND status name not in (done,cancelled,completed). - Milestones: split by status (0=planned, 1=in-progress, 2=completed, 3=cancelled). For in-progress, count open issues whose
milestone == m._id. - Activity (window): sum
value(minutes → hours) from detailed report; countcreatedOnwithin window; count issues closed (status transitioned to done) within window — approximate viamodifiedOn+ status name.
Output format
Project [name] ([identifier]) — snapshot [YYYY-MM-DD]
[Archived ⚠ if true]
Issues [total] (open [n] / done [n])
Status: backlog [n] · in-progress [n] · in-review [n] · done [n] · cancelled [n]
Priority: urgent [n] · high [n] · medium [n] · low [n] · none [n]
Top owners: [name] [n] · [name] [n] · ... · unassigned [n]
Stale (>14d): [n]
Milestones
✓ [label] — completed [date]
◐ [label] — target [date], [n] open
○ [label] — target [date]
Activity (last [window])
Time: [h]h · created [n] · closed [n]
Top: [name] [h]h · [name] [h]h · [name] [h]h
Flags
[n] urgent issues unassigned
[n] stale
Edge cases
- No project arg — list projects, ask which one.
- Multiple matches — show the matches, ask user to disambiguate.
- Archived project — proceed but add
⚠ archivednext to the project name. - Empty project (0 issues) — short-circuit with a 3-line "no activity yet" message.
- MCP errors — surface the message; for auth errors point at the bundle install dialog.
Don't
- Don't dump raw JSON — always render the formatted snapshot above.
- Don't write anything to Huly (no
huly_create_*, nohuly_update_*). - Don't call
huly_search— that's broader than this skill needs.