Install
openclaw skills install tpm-copilotAI-powered operating system for Technical Program Managers and Project Managers. Pulls data from Jira, Linear, GitHub, and calendars to auto-generate status...
openclaw skills install tpm-copilotYour AI program management operator. Pulls from Jira, Linear, GitHub, and calendars — synthesizes everything into status reports, risk alerts, meeting prep, and stakeholder dashboards.
pip3 install requests
For GitHub: install gh CLI and authenticate (gh auth login).
config.json)JIRA_BASE_URL, JIRA_EMAIL, JIRA_API_TOKEN (Atlassian API token)LINEAR_API_KEYgh CLI (already authenticated) or GITHUB_TOKENSLACK_WEBHOOK_URL (for report delivery)Not all required — skill adapts to what's configured.
tpm/
├── config.json # API keys, project settings, team config
├── programs/ # Per-program data
│ └── program-name/
│ ├── config.json # Program-specific settings (board IDs, repos, teams)
│ ├── reports/ # Generated status reports
│ ├── risks/ # Risk register snapshots
│ └── dependencies/ # Dependency maps
├── templates/ # Report templates
├── meetings/ # Meeting notes and action items
└── state.json # Persistent state (last check timestamps, etc.)
Run scripts/init-workspace.sh to create this structure.
The flagship workflow. Pulls from all connected tools, generates audience-specific reports.
scripts/status-report.sh --program "my-program" --audience exec
scripts/status-report.sh --program "my-program" --audience eng
scripts/status-report.sh --program "my-program" --audience full
scripts/status-report.sh --program "my-program" --audience exec --deliver slack
Data pulled:
Audience formats:
Delivery options:
programs/<name>/reports/Proactive scanning for problems before they become crises.
scripts/risk-radar.sh --program "my-program"
scripts/risk-radar.sh --program "my-program" --alert # Send alerts for new risks
scripts/risk-radar.sh --program "my-program" --history # Show risk trends
Auto-detected risks:
Risk register maintained as JSON in programs/<name>/risks/:
{
"id": "RISK-001",
"severity": "high",
"category": "delivery",
"title": "Auth service migration blocked on Team B API",
"detected_at": "2026-02-24",
"source": "jira_blocked_ticket",
"ticket": "PROJ-1234",
"status": "open",
"mitigation": "",
"owner": ""
}
Automate meeting prep, notes processing, and follow-up tracking.
scripts/meeting-prep.sh --program "my-program" --type standup
scripts/meeting-prep.sh --program "my-program" --type sprint-review
scripts/meeting-prep.sh --program "my-program" --type exec-sync
scripts/meeting-prep.sh --program "my-program" --type program-review
scripts/process-notes.sh --file meeting-notes.md # Extract action items
scripts/action-tracker.sh --program "my-program" # Show overdue actions
scripts/action-tracker.sh --program "my-program" --create-tickets # Create Jira tickets for actions
Meeting types and auto-generated agendas:
Notes processing:
AI:, TODO:, ACTION:, or [ ])Map and monitor cross-team dependencies.
scripts/dependency-map.sh --program "my-program" # Generate dependency map
scripts/dependency-map.sh --program "my-program" --check # Check for slips
scripts/dependency-map.sh --program "my-program" --alert # Alert on at-risk dependencies
Sources:
depends-on:team-b)programs/<name>/dependencies/deps.jsonOutput:
Quick terminal dashboard for program health.
scripts/dashboard.sh --program "my-program"
Shows:
programs/<name>/config.json){
"name": "Project Phoenix",
"workstreams": [
{
"name": "Backend",
"jira_project": "PHX",
"jira_board_id": "123",
"github_repos": ["org/backend-api"],
"team_lead": "Alice"
},
{
"name": "Frontend",
"jira_project": "PHX",
"jira_board_id": "124",
"github_repos": ["org/web-app"],
"team_lead": "Bob"
}
],
"milestones": [
{"name": "Alpha Release", "date": "2026-03-15", "status": "on-track"},
{"name": "Beta Release", "date": "2026-04-30", "status": "on-track"}
],
"stakeholders": {
"exec": ["vp-eng@company.com"],
"eng": ["#eng-phoenix-slack-channel"],
"full": ["phoenix-team@company.com"]
},
"settings": {
"stale_ticket_days": 5,
"pr_review_threshold_hours": 48,
"sprint_length_weeks": 2,
"tracker": "jira"
}
}
Set settings.tracker to "jira" or "linear". Scripts auto-adapt API calls accordingly.
references/jira-setup.md — Jira API authentication and project configurationreferences/linear-setup.md — Linear API setup and GraphQL queriesreferences/report-templates.md — Customizing report formats and sectionsreferences/risk-categories.md — Risk taxonomy and severity definitions