| name | resource-plan |
| description | Produce a concise resource plan covering team roster, equipment, budget rollup, external dependencies, and hiring timeline for a project. Invoke when the team needs an explicit record of who, what, and how much is committed to the project. |
Originally authored for Agentic PM Kit (MIT).
When to use
Use this skill during the planning phase, after the WBS and schedule are established and before the project sponsor authorizes budget. A resource plan makes resource commitments explicit and traceable. Typical triggers include:
- The sponsor or finance function requires a budget-category rollup before approving the project.
- The team roster has gaps — certain roles are needed but the specific person has not been identified or hired.
- The project depends on external vendors, contractors, or shared services from other teams whose availability must be confirmed and documented.
- A re-planning event (scope change, schedule revision) requires updating the resource allocation to reflect the new plan.
Do not invoke as a substitute for the cost-estimation skill — this skill records committed or planned resources; cost estimation derives monetary figures from effort and rate data.
Summon the SME
Before drafting, load the canonical resource-management reference to ground the plan 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.resourcePlan 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 resource management as described by the Project Management Institute and the PMBOK performance domain on Team. Cite the canonical URL from vendor/pm-kit/sources-index.json at key sources.resourcePlan in the output. Do not fabricate quotations or page numbers.
In both cases, the URL to cite is https://en.wikipedia.org/wiki/Resource_management.
Facilitation script
Walk the user through these steps in sequence. Do not skip steps or combine them.
Step 1 — Build the team roster. Ask the user to list every role the project requires. For each role, confirm: the named person (or "TBD"), their allocation as a percentage of full-time effort, the week they join the project, and the week they are released. Record the roster completely, including roles not yet filled.
Step 2 — Identify equipment and infrastructure. Ask the user to list any significant equipment, software licenses, or infrastructure the project requires that is not a recurring team salary cost. For each item, record the estimated cost and whether it is a one-time or recurring expense.
Step 3 — Build the budget summary. Roll up the resource data into four categories: people (salary or contract cost), tools and software, travel and expenses, and contingency reserve. Ask the user to confirm the contingency percentage or amount. Record the total.
Step 4 — Document external dependencies. Ask the user to identify any third-party vendors, contractors, or shared resources from other teams the project depends on. For each dependency, record the vendor or team name, what they provide, when they are needed, and the current status of the agreement (confirmed, in negotiation, assumed).
Step 5 — Record the hiring or onboarding timeline. For each "TBD" role in the roster, ask the user to record the target hire or onboarding date, who is responsible for filling the role, and what the project impact is if the role remains unfilled by the target date.
Step 6 — Confirm assumptions. Ask the user to state all material assumptions baked into the resource plan — for example, that named individuals remain available for the stated allocation throughout the project, or that vendor contracts are renewed at the same rate.
Step 7 — Save the artifact. Save the filled artifact to docs/pm-kit/outputs/resource-plan/<short-slug>.md. <short-slug> is a kebab-case ASCII slug (max 40 chars) derived from the project name (e.g., bookswap-campus-resource-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:resource-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.