How to Use

Try in Chat

Quick

Paste into any AI chat for instant expertise. Works in one conversation -- no setup needed.

Preview prompt
You are an expert Senior Pm (Project Management domain).

Scores portfolio health, risk exposure and resource capacity from a project JSON and frames board-ready status reports. Use when running a portfolio review, writing an executive RAG report, or rebalancing people across projects.

Portfolio-level project management for enterprise software and SaaS: which projects need attention, where the risk sits, whether the people exist to deliver, and how to tell executives. The tools do the arithmetic deterministically; your job is to check their inputs, read the results against the con

## Your Key Capabilities
- Inputs and how the numbers are derived
- Burying the ask in the executive report
- Averaging the portfolio into one color
- A risk matrix with no mitigations

## How to Help
When the user asks for help in this domain:
1. Ask clarifying questions to understand their context
2. Apply the relevant framework or workflow from your expertise
3. Provide actionable, specific output (not generic advice)
4. Offer concrete templates, checklists, or analysis

For the full skill with Python tools and references, visit:
https://github.com/borghei/Claude-Skills/tree/main/senior-pm

---
Start by asking the user what they need help with.
# Add to your project
cs install project-management/senior-pm ./

# Or copy directly
git clone https://github.com/borghei/Claude-Skills.git
cp -r Claude-Skills/project-management/senior-pm your-project/
# The skill is available in your Codex workspace at:
.codex/skills/senior-pm/

# Reference the SKILL.md in your Codex instructions
# or copy it into your project:
cp -r .codex/skills/senior-pm your-project/
# The skill is available in your Gemini CLI workspace at:
.gemini/skills/senior-pm/

# Reference the SKILL.md in your Gemini instructions
# or copy it into your project:
cp -r .gemini/skills/senior-pm your-project/
# Add to your .cursorrules or workspace settings:
# Reference: project-management/senior-pm/SKILL.md

# Or copy the skill folder into your project:
git clone https://github.com/borghei/Claude-Skills.git
cp -r Claude-Skills/project-management/senior-pm your-project/
# Clone and copy
git clone https://github.com/borghei/Claude-Skills.git
cp -r Claude-Skills/project-management/senior-pm your-project/

# Or download just this skill
curl -sL https://github.com/borghei/Claude-Skills/archive/main.tar.gz | tar xz --strip=1 Claude-Skills-main/project-management/senior-pm

Run Python Tools

python project-management/senior-pm/scripts/tool_name.py --help

Quick Start

Run from the skill folder (`project-management/senior-pm/`). All four tools print text by default and JSON with `--format json`.
# Portfolio health: per-project timeline/budget/scope/quality/risk scores and RAG
python3 scripts/project_health_dashboard.py assets/sample_project_data.json

# Risk register: probability x impact matrix, categories, overdue mitigations
python3 scripts/risk_matrix_analyzer.py assets/sample_project_data.json --format json

# Capacity: utilisation per person, weekly demand vs capacity, gaps per project
python3 scripts/resource_capacity_planner.py assets/sample_project_data.json

# Stakeholders: Mendelow quadrant, communication plan, blocker strategies
python3 scripts/stakeholder_mapper.py assets/sample_stakeholders.json
`assets/expected_output.json` holds the key numbers these commands produce on the sample, so you can confirm a change did not break the maths. ### Inputs and how the numbers are derived `sample_project_data.json` is one portfolio file with `portfolio_metadata`, `projects`, `resources` and `risks`. The first three tools read it directly: | Tool | Reads | Derived values | |------|-------|----------------| | `project_health_dashboard.py` | `projects[]`, `risks[]` | Timeline: planned end plus `days_behind_schedule`. Budget: estimate at completion = spent / progress once 20% done, else spent + remaining. Scope: share of milestones due by the as-of date that are complete, less 0.03 per scope change. Quality: 0.7 x test pass rate + 0.3 x coverage, left out (weights renormalised) when both are 0. Risk: sum of probability x impact over the project's open risks. | | `risk_matrix_analyzer.py` | `risks[]` | Score, level, category concentration, mitigations past `target_resolution` | | `resource_capacity_planner.py` | `resources[]`, `projects[]` | Weekly demand = remaining budget / blended hourly rate of assigned people, spread over the weeks left; allocation = each person's utilisation split across `current_projects` | | `stakeholder_mapper.py` | `stakeholders[]` (see `assets/sample_stakeholders.json`) | Quadrant from power and interest (1-10, threshold 5) | A flat per-project schema (`project_id`, `planned_budget`, `forecasted_total_cost`, ...) is also accepted; see the docstrings. These derivations are heuristics: say so when a number drives a decision, and override with real forecasts when the team has them. **Dates.** Schedule, milestone and overdue checks use `--as-of YYYY-MM-DD`, defaulting to `portfolio_metadata.generated_on` and otherwise the latest date in the file, so a report is reproducible and the sample does not drift with today's date. Pass `--as-of` with today's date for a live review. **Exit codes.** `0` report produced · `2` missing or unreadable file, invalid JSON, or the wrong shape (for example no `projects`, a project without `id`, no `stakeholders`). The tools report; they do not gate, so a red project still exits 0.

Related Skills in Project Management

View on GitHub