Project charter
15 Claude Code skills for technical project managers — generates production-ready .docx, .xlsx, and .pptx artifacts from natural language input.
npx -y skills add kenmulford/PMSkills --skill project-charterAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generate a sponsor-ready project charter and preliminary scope statement as a .docx. Use whenever a user is starting a new project and needs to formally frame it — triggers include "project charter", "charter doc", "scope statement", "preliminary scope", "initiating a project", "PID", "authorize the project", or any context where a PM needs to capture vision, scope, deliverables, success criteria, and sponsor approval in one document. Enforces Project+ conventions and prevents fabrication of numbers, dates, or constraints the user never stated.
SKILL.md
3.1 KB, as published. Nobody here has run it
Project Charter
Generate a Project+ charter + preliminary scope statement .docx. Draft-first: parse what the user gave, fill schema with facts + TBDs, run the script. Only interview if the user explicitly asks.
Hard rules
- Never invent. No made-up numbers, dates, names, metrics, constraints, or stakeholders. Anything unknown →
[TBD — <reason>]. Fabricated charter content becomes fabricated requirements downstream. - Preserve exact time/date wording. "October" stays "October" — never "October 31" or "end of October". "Q2" stays "Q2" — never "June 30". "$150k" stays "$150k" — never "$150,000". If you find yourself converting an imprecise phrase into a specific date to complete a SMART objective, stop and mark that date portion
[TBD]. - Out-of-scope must not be empty. If the user didn't state exclusions, use
[TBD — ask sponsor what adjacencies should be excluded]as a single bullet. Empty exclusions = charter bug. - ≤3 sentences per field. Project+ convention.
Run it
Pipe JSON directly to the script (one call, no temp file):
python3 scripts/create_charter.py --output "<dir>/<ProjectName>_Charter_v1.docx" <<'JSON'
{ ...schema... }
JSON
Script handles all formatting, TBD highlighting, Draft Gaps box at top, and open_questions.md when TBDs ≥ 5.
JSON schema
{
"header": {
"project_name": "string",
"project_manager": "string or [TBD]",
"sponsor": "string or [TBD]",
"date": "YYYY-MM-DD",
"version": "v1"
},
"vision": "1–2 sentence problem statement and why this project exists",
"objectives": [
{
"statement": "SMART statement",
"leading_indicator": "early predictive signal",
"lagging_indicator": "realized outcome metric"
}
],
"scope": {
"summary": "2–3 sentence scope description",
"in_scope": ["bullet"],
"out_of_scope": ["bullet"]
},
"preliminary_scope": {
"deliverables": ["bullet"],
"acceptance_criteria": ["bullet"],
"assumptions": ["bullet"],
"constraints": {
"budget": "string or [TBD]",
"timeline": "string or [TBD]",
"resources": "string or [TBD]",
"technical_or_regulatory": "string or [TBD]"
}
},
"stakeholders": [{"name_or_group": "string", "role": "string"}],
"implementation": {
"milestones": [{"name": "string", "target_date": "string or [TBD]"}],
"risks": [{"risk": "string", "impact": "H/M/L", "likelihood": "H/M/L", "response": "string"}],
"dependencies": ["bullet"]
}
}
Arrays may be empty. Any string may be [TBD — reason].