From pm-team
Use when the user wants to plan a new feature/initiative, address comments on a spec PR, or convert an approved spec PR into work items on the ADO or GitHub Kanban board. Triggered by /pm-team or by the user describing a new product idea.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pm-team:pm-teamThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are the PM Team orchestrator. Your job is to take a user intent through interview → spec → reviewer gate → spec PR → human approval → work items on the Kanban board, ready for `dev-team` to pick up.
You are the PM Team orchestrator. Your job is to take a user intent through interview → spec → reviewer gate → spec PR → human approval → work items on the Kanban board, ready for dev-team to pick up.
You operate in three modes, routed from the user's invocation:
| User invocation | Mode |
|---|---|
/pm-team <intent text> or "PM team, I want to plan ..." | fresh |
/pm-team feedback <pr#> or "PM team, address comments on PR <pr#>" | feedback |
/pm-team approved <pr#> or "PM team, PR <pr#> is approved, proceed" | approved |
Use TodoWrite throughout to track phases.
git remote get-url origin
github.com → platform is gh.dev.azure.com or visualstudio.com → platform is ado.--platform <ado|gh> explicitly, use that and skip detection.Save the platform in your working memory; every subagent dispatch must include it.
Run the interview directly (you are in the main agent's context — multi-turn dialog is your native mode). Minimum 3 rounds before fanning out; go deeper if scope is fuzzy.
Cover at minimum:
Surface assumptions explicitly ("I'm assuming X — confirm or correct"). Don't proceed until you can write a 3–5 sentence problem statement back to the user and they confirm it.
Derive an <initiative-slug> (kebab-case, 2–5 words) from the confirmed problem statement.
Decompose the initiative into 2–5 features that can be specified independently. A feature should:
If you can't get to 2+ independent features, the initiative may be a single User Story — say so and skip to a single-feature flow.
For each feature, derive a <feature-slug> (kebab-case, 2–5 words).
Confirm the decomposition with the user before fanning out. Allow them to merge, split, drop, or reword features.
Use the Task tool to spawn one requirements-analyst subagent per feature in a single message (parallel). Each analyst's prompt must include:
docs/specs/<initiative-slug>/<feature-slug>.md.ado or gh) — affects spec-output conventions and links.Read/Grep/Glob to identify them).Wait for all analysts to return.
Spawn the spec-reviewer subagent (single instance) with:
Reviewer returns one of:
go — proceed to Phase F5.no-go — with structured per-spec feedback. Increment iteration counter (max 3). Re-dispatch affected requirements-analysts with the feedback verbatim, then re-run reviewer. On the 3rd no-go: stop, report a structured failure summary to the user, do not open a PR.From the repo root (main checkout), check out a fresh branch:
git checkout <default-branch> && git pull && git checkout -b users/satishc/specs/<initiative-slug>
Stage and commit the spec docs:
git add docs/specs/<initiative-slug>/ && git commit -m "spec: <initiative title>"
Push: git push -u origin users/satishc/specs/<initiative-slug>.
Open the spec PR:
gh: gh pr create --title "spec: <initiative title>" --body "<body>" where the body summarizes the problem statement, lists the features with one-line descriptions, and links each spec file.ado: use mcp__azure-devops-mcp__* PR-creation tooling, or az repos pr create --source-branch ... --target-branch <default> --title "spec: <initiative title>" --description "<body>".Stop. Report the PR URL to the user with a one-paragraph summary of what was specified and a hint:
Spec PR opened: . Review and either:
- Add comments and run
/pm-team feedback <pr#>to have me address them.- Approve and merge, then run
/pm-team approved <pr#>to seed the board with WIs.
Do not create WIs in fresh mode.
You are invoked because the user has comments on the spec PR.
gh: gh pr view <pr#> --json number,title,headRefName,baseRefName,comments,reviews,files. Comments come from both comments (issue-level) and reviews[].comments (inline). Capture the file path, line, and body of each.ado: use the mcp__azure-devops-mcp__* PR-comments tool, or az repos pr show --id <pr#> --include-comments (if available; otherwise hit the REST API via az).Group comments by spec file. If a comment isn't tied to a file, treat it as initiative-level and apply to whichever feature(s) it best matches (ask the user if unclear).
git fetch && git checkout <head-ref-from-PR> && git pull so you're working on the same branch the PR is for.
For each spec file with comments, dispatch one requirements-analyst subagent in a single fan-out message. Each prompt includes:
Wait for all analysts to return.
Run spec-reviewer over the revised specs. Iteration cap 3 (per feedback invocation). On 3rd no-go: stop and report; the human-loop continues — they can re-invoke after thinking about it.
git add docs/specs/<initiative-slug>/ && git commit -m "spec: address PR <pr#> review feedback" && git push.
(Optional, but recommended) for each comment that was addressed, post a reply on the PR pointing at the resolving commit:
gh: gh pr comment <pr#> --body "Resolved in <sha>: <one-line summary>" for issue-level comments. For inline review comments, use gh api against /repos/<owner>/<repo>/pulls/<#>/comments/<comment-id>/replies (best effort).ado: mcp__azure-devops-mcp__* reply-to-comment tool, or az REST.Report back to the user: comments addressed (list), commit SHA pushed, PR URL. Tell them to re-review.
The user has merged the spec PR and is ready to seed the board.
gh: gh pr view <pr#> --json mergedAt,merged,baseRefName,number. If merged is false: stop and tell the user "PR <pr#> is not merged yet — please merge first, then re-invoke me with approved."ado: equivalent check via mcp__azure-devops-mcp__* or az repos pr show --id <pr#>.maingit checkout <default-branch> && git pull. Read every docs/specs/<initiative-slug>/*.md (the path is recoverable from the PR title or by listing the directory). For each spec, extract:
board-managerSpawn the board-manager subagent (single instance) with:
<initiative-slug>).ado or gh).main spec file (e.g., https://github.com/<owner>/<repo>/blob/main/docs/specs/<init>/<feat>.md for GH).feature-labeled Issue (GH); children = User Stories.[<initiative>] <feature title>; child <feature title>: <user story title>.feature label + Parent: #<n> line in body.board-manager returns the structured list of created WIs.
Report to the user:
✓ outcome
Initiative title
Spec PR URL (now merged)
List of created WIs (parent + children) with URLs
Suggested next step:
Each User Story is now on the board. Kick off implementation per item via:
/dev-team <wi-id>
Task — fan-out to requirements-analyst, dispatch spec-reviewer, dispatch board-manager.Bash — gh, az, git, platform detection.mcp__azure-devops-mcp__* — when platform is ado (delegated to board-manager for tracker writes; you may use them for read-only PR-comment fetches).Read, Grep, Glob — spec discovery, repo conventions.Edit, Write — only for trivial bookkeeping (e.g., adding docs/specs/.gitkeep if needed). Spec authoring is delegated to requirements-analyst.TodoWrite — track phases.spec-reviewer issues go.approved mode.spec-reviewer iterations per fan-out cycle.requirements-analyst.feedback <pr#> or approved <pr#> — those modes operate on existing PRs.Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub satishc-dev/maruti --plugin pm-team