Skill detail
pm-skills
Broad project-management orchestrator covering delivery, health, Agile, Jira, and reporting.
Inspect before use
Automated review checks relevance, not safety or endorsement. Read the source instructions before using this skill.
SKILL.md
The saved excerpt is a snapshot from review. The external source remains the complete and most current version.
--- name: "pm-skills" description: "Use when coordinating project-delivery work across the 8 project-management sub-skills — sprint/velocity analytics, portfolio health, Jira/JQL, Confluence, Atlassian admin, templates, meeting analysis, team comms. Triggers on 'our sprints feel off', 'project health report', 'audit our Jira permissions', 'when will it be done', 'run the delivery loop'. Forks context to route to one sub-skill via a deterministic signal router and returns a digest; can also drive a full goal→plan→execute→verify→close delivery loop through the repo-wide agent-harness with Jira MCP data bridged into the domain's analytics tools. Distinct from product-team (what to build vs how to deliver it), business-operations (internal ops), and engineering/agent-harness (the generic loop engine this orchestrator plugs into)." context: fork version: 2.11.1 author: Alireza Rezvani license: MIT tags: [project-management, orchestrator, jira, confluence, atlassian, scrum, agile, flow-metrics, agent-harness] compatible_tools: [claude-code, codex-cli, cursor, antigravity, opencode, gemini-cli] --- # Project Management — Domain Orchestrator & Delivery Loop This orchestrator does two jobs. **Routing:** fork context, classify a PM inquiry with `scripts/pm_goal_router.py`, run exactly one of the 8 sub-skills, return a digest. **Looping:** turn a delivery goal into a bounded agentic loop — pull live Jira data via the bundled Atlassian MCP, bridge it into the domain's deterministic analytics tools, verify every step with machine-run gates, and refuse to close until everything is verified or a human waives it. The bundled `.mcp.json` wires the Atlassian Remote MCP (`https://mcp.atlassian.com/v1/sse`, OAuth handled by Claude Code). ## When to invoke | Symptom | Sub-skill | |---|---| | "Project/portfolio health, risk EMV, capacity" | `senior-pm` | | "Sprint velocity, retro follow-through, ceremony health, when-will-it-be-done" | `scrum-master` | | "JQL, Jira workflows, boards, automation" | `jira-expert` | | "Confluence spaces, page trees, content audits" | `confluence-expert` | | "Users, groups, permissions, SSO" | `atlassian-admin` | | "Reusable Jira/Confluence templates" | `atlassian-templates` | | "Meeting transcripts, talk time, action items" | `meeting-analyzer` | | "Status updates, 3P updates, stakeholder comms" | `team-communications` | ## Routing logic (deterministic) Run the router — do not eyeball the table when a script can decide: ```bash python3 scripts/pm_goal_router.py --text "<the goal>" --output json ``` Exit 0 → `route_to` names the sub-skill: load its SKILL.md and follow its workflow. Exit 2 → ask ONE clarifying question naming the listed candidates, with a recommended answer. Exit 3 → no signal: ask the user to restate the goal with the deliverable named. Never guess silently; never silently chain a second sub-skill — digest first, confirm, then chain. ## The delivery loop (agentic) For goals (not questions) — "get sprint 14 to a verified close", "produce a portfolio health report from live Jira", "make our flow metrics visible weekly" — run the loop-library contract (Observe → Choose → Act → Verify → Record → Repeat-or-stop): 1. **Observe** — pull fresh state: `mcp__atlassian__searchJiraIssuesUsingJql` (get `cloudId` via `getAccessibleAtlassianResources` first), save the result JSON, then bridge it: ```bash python3 scripts/jira_snapshot_bridge.py --input snapshot.json --to flow # WIP, throughput, cycle time p50/85/95, work-item age, SLE, aging alerts python3 scripts/jira_snapshot_bridge.py --input snapshot.json --to sprint > s.json # scrum-master schema python3 ../scrum-master/scripts/velocity_analyzer.py s.json # velocity + volatility + forecast ``` Add `--forecast N` for a seeded Monte Carlo "when will N items be done" answer (refuses on < 10 completed items — thin history forecasts are lies). 2. **Choose** — route the next task with `pm_goal_routRead the full source on GitHub (opens external page)