Files
Brian Borghei 505cb8e28f feat(pm): tier 1 — worked examples (54), data adapters (3), MCP tools (15)
Deepens the 54 PM skills from "documentation" to "tools you can actually
use today." Three coordinated additions:

1. WORKED EXAMPLES (~13,000 lines across 54 files)
   Every PM skill now has examples/<scenario>.md with a realistic
   company, the workflow applied, and the FULL generated artifact PMs
   can copy. Recurring fictional cast (Acme Analytics, Wayfinder,
   Northwind, Helix Platform, Pylon) makes scenarios cross-reference
   naturally. Highlights: full 8-section PRD for "Shared Dashboards",
   AI PRD with eval/guardrails/model-fallback, blameless RCA for a
   47-min payment outage, weekly Yellow-status exec update, 8-interview
   synthesis to opportunity tree, full Stripe CIRCLES answer.

2. LIVE DATA ADAPTERS (tools/adapters/)
   Three stdlib-only scripts that pull from real APIs and emit JSON
   in the shape PM Python tools expect. Removes the "first get the
   data" friction.
   - jira_to_json.py    -> raw / status-update / cycle-time / dependency-map
   - linear_to_json.py  -> raw / status-update / cycle-time / dependency-map
   - notion_to_json.py  -> raw / prds / okrs / roadmap / feedback
   Auth via env vars (JIRA_TOKEN, LINEAR_API_KEY, NOTION_TOKEN).
   Pipe directly into the consuming PM tool:
     jira_to_json.py --format cycle-time | flow_metrics.py --input -

3. MCP TOOLS (scripts/mcp_server.py)
   15 PM skills wrapped as Claude Code MCP tools, callable from inside
   any AI conversation without manually running Python. Each accepts
   `format` and `input`. Names: pm_create_prd, pm_status_update,
   pm_funnel_analyze, pm_flow_metrics, pm_dependency_map,
   pm_feedback_triage, pm_nsm_tree, pm_refinement_score,
   pm_interview_synthesize, pm_prioritize, pm_okr_validate,
   pm_roadmap_transform, pm_pre_mortem, pm_release_notes,
   pm_stakeholder_map. Smoke-tested end-to-end through JSON-RPC.

PM README updated with new sections for adapters and MCP. CHANGELOG
[4.5.0] entry added.
2026-05-22 11:30:48 +02:00
..

PM Live Data Adapters

Thin Python scripts that pull data from Jira / Linear / Notion APIs and emit JSON in the shape PM Python tools expect.

Why: PM skills' Python tools (status_generator.py, flow_metrics.py, dependency_graph.py, feedback_triage.py) all need JSON input. Without these adapters, you'd have to extract the data manually. Now you can pipe:

python tools/adapters/jira_to_json.py --jql "project = PROJ AND sprint in openSprints()" --format status-update \
  | python project-management/execution/status-update-generator/scripts/status_generator.py --input /dev/stdin

Stdlib only. No pip install required.

Adapters

Adapter Source Auth env vars
jira_to_json.py Atlassian Jira Cloud REST API v3 JIRA_URL, JIRA_USER, JIRA_TOKEN
linear_to_json.py Linear GraphQL API LINEAR_API_KEY
notion_to_json.py Notion REST API NOTION_TOKEN, optional NOTION_VERSION

Output formats

Every adapter supports --format:

Format Output shape Consumes which PM tool?
raw Pass-through of the source API response (debugging)
status-update {period, project, highlights, blockers, risks, asks, next} status_generator.py
cycle-time {issues: [{key, created, started, completed, transitions}]} flow_metrics.py
dependency-map {teams, dependencies} dependency_graph.py
feedback {items: [{channel, customer, raw, segment, area}]} feedback_triage.py

Not every adapter emits every format — see each adapter's --help.

Auth setup

Jira

export JIRA_URL=https://acme.atlassian.net
export JIRA_USER=you@acme.com
export JIRA_TOKEN=$(cat ~/.jira-token)   # generated at id.atlassian.com/manage-profile/security/api-tokens

Linear

export LINEAR_API_KEY=lin_api_...          # generated at linear.app/settings/api

Notion

export NOTION_TOKEN=secret_...             # integration token from notion.so/my-integrations
# Optional:
export NOTION_VERSION=2022-06-28

Conventions

  • Adapters never write secrets to stdout — only API responses
  • --dry-run prints the request shape without making the call
  • --verbose logs to stderr so stdout stays pipe-clean
  • All adapters honor --output <path> (defaults to stdout)

Pipelines

See pipelines/ for runnable end-to-end flows that chain adapters with the PM Python tools.