---
name: communication-plan
description: "Produce a PMBOK-shaped communication matrix, escalation paths, and meeting cadence from a project charter and stakeholder register. Invoke when the team needs a formal plan governing how project information flows to each audience."
---

> Originally authored for Agentic PM Kit (MIT).

## When to use

Use this skill once the stakeholder register is complete and the project is entering execution. A communication plan defines the who, what, when, how, and language of every significant information flow. Typical triggers include:

- The project sponsor or PMO requires a formal communications matrix before authorizing the project to proceed.
- A new stakeholder is added and the existing informal communication habits are no longer sufficient.
- A retrospective reveals that key stakeholders received information late, incorrectly, or not at all.
- The project spans multiple organizations, languages, or time zones requiring explicit channel agreements.

Do not invoke as a substitute for the stakeholder-register skill — this skill consumes the register, it does not produce it.

## Summon the SME

Before drafting, load the canonical project-communication reference to ground the matrix in established practice.

**Reading the config.** Check `.pm-kit.config.json` for the `sourcesMode` field:

- If `sourcesMode` is `"online"` (opt-in): fetch the URL stored at the key `sources.communicationPlan` in `vendor/pm-kit/sources-index.json` using your available web-fetch capability. Do not name a specific tool — use whatever your runtime provides. Ground the facilitation in what you read. Do not fabricate quotations or page numbers from any version of that page.
- If `sourcesMode` is `"offline"` or the field is absent (the default): rely on your general knowledge of project communication management as described by the Project Management Institute and the PMBOK performance domain on Stakeholders. Cite the canonical URL from `vendor/pm-kit/sources-index.json` at key `sources.communicationPlan` in the output. Do not fabricate quotations or page numbers.

In both cases, the URL to cite is `https://en.wikipedia.org/wiki/Communications_management`.

## Facilitation script

Walk the user through these steps in sequence. Do not skip steps or combine them.

**Step 1 — Gather inputs.** Ask the user to provide the stakeholder register and the project charter. Confirm both are available. If only one is available, proceed with a note that the plan is provisional until the missing input is obtained.

**Step 2 — Classify information types.** Review the stakeholder list with the user and agree on the categories of information each audience needs: status updates, decision requests, escalations, training, or celebration / recognition. Assign at least one category per stakeholder.

**Step 3 — Assign cadence and channel.** For each stakeholder-information pair, confirm the appropriate cadence (daily, weekly, biweekly, monthly, ad-hoc, milestone-only) and channel (email, synchronous meeting, chat, dashboard, shared document). Record channel ownership — who sends, not just who receives.

**Step 4 — Define escalation paths.** Ask the user to identify who resolves: (a) technical blockers, (b) scope change requests, (c) budget variances, (d) disputes between stakeholders. Record name-or-role and the expected resolution window for each escalation type.

**Step 5 — Define the meeting cadence.** List all recurring meetings the project will hold (standup, sprint review, retrospective, steering committee, PMO status call, etc.). For each meeting, confirm the audience, purpose, frequency, duration, and facilitator.

**Step 6 — Document hygiene rules.** Ask the user where decisions will be recorded (e.g., a decision log in the project wiki), where status reports will be stored, and what the retention policy is for meeting minutes. Record these agreements explicitly.

**Step 7 — Confirm languages.** Verify that the `language.output` value from `.pm-kit.config.json` matches the language in which the plan will be distributed. If stakeholders span multiple languages, note this in the plan and confirm which version is the binding source of truth.

**Step 8 — Save the artifact.** Save the filled artifact to `docs/pm-kit/outputs/communication-plan/<short-slug>.md`. `<short-slug>` is a kebab-case ASCII slug (max 40 chars) derived from the project name (e.g., `bookswap-campus-comms-plan`). Confirm the final path with the user before writing. If the file exists, ask: overwrite, append a date suffix (e.g., `-2026-04-20`), or pick a new slug. The artifact begins with the three-line provenance header below (HTML comments, do not render):

```
<!-- Generated by agentic-pm-kit:communication-plan on YYYY-MM-DD -->
<!-- Languages: communication=<value>, output=<value> -->
<!-- Source mode: offline | online -->
```

## Languages

The kit separates the language used for live agent–user dialogue from the language used in the saved artifact. Both values live in `.pm-kit.config.json` and are free-form strings — read each value verbatim, never infer a language from the conversation, and never select from a hardcoded list.

**Facilitation dialogue.** Speak to the user during facilitation in the language at `language.communication`. Use the string verbatim.

**Filled artifact (saved TEMPLATE.md output).** Produce the written artifact in the language at `language.output`. If `language.output` is absent or empty, fall back to `language.communication`.

Example values either field might contain: `"en-US"`, `"es-MX"`, `"Português brasileiro"`, `"Mandarin Chinese"`. Accept any string as given. This bifurcation is the normative pattern for every skill in the kit.

## Acceptance gate

When the plan is complete, point the user to `CHECKLIST.md` (sibling file) and ask them to verify each item. Remind them that the output must be marked **PASS** or **FAIL**. On **FAIL**, invite the user to return with specific notes so the facilitation can be resumed or corrected.
