generate-charter
Triggers
Russian: «сформируй устав», «подготовь устав проекта», «создай charter», «нужен устав проекта»
English: "generate charter", "create project charter", "build charter", "draft project charter"
Language Detection
Determine the language of the user's request:
- If the request is in Russian → use templates with
-ru suffix
- Otherwise → use templates with
-en suffix
All output (headings, labels, comments, instructions) must match the detected language.
1. Inputs
| Data |
Required |
Source |
Notes |
| Project data |
yes |
chat or knowledge |
Brief, free-form description, answers to questions, or unstructured notes. Agent extracts and structures independently |
| Stakeholder answers |
no |
chat or knowledge |
Completed questionnaire or free-form answers. If absent — agent extracts from general project description |
| Project constraints |
no |
chat or knowledge |
Budget, timeline, technical, organizational. If not provided separately — agent extracts from general description |
| Team composition |
no |
chat or knowledge |
If provided — fill Section 5. If absent — keep only Sponsor and PM rows |
| Market context |
no |
chat or knowledge |
Used to refine goal statement and risks |
If required data is missing — request it (system-prompt-draft.md §3 p.2):
To generate a charter, I need project information in any format:
a ready brief, answers to questions, a free-form description, or a set of key points.
Minimum to start: project goal and at least one of: timeline, budget, scope.
Available data: [list what is present].
Missing for the charter: [specify].
2. Execution Steps
- Check inputs. Verify that project data (in any form) is present. If missing → request using the template in §1. Do NOT generate a placeholder charter, template, or example — respond ONLY with the data request. If present → step 2.
- Structure inputs. If data is free-form — extract and categorize: goal, scope, timeline, budget, team, constraints, risks. Note ambiguities and gaps; clarify with the user selectively. Do not ask for everything at once — request only what is strictly required for the charter. When computing dates from relative timelines ("12 weeks from April 7") — calculate exactly: start + N×7 days = end. Do not round.
- Check for contradictions. If one parameter (budget, timeline, scope) appears with conflicting values across sources — do NOT choose a value independently. List the contradictions and ask the user which data is current. Exception: if the user explicitly clarifies outdated brief data in chat — treat the clarification as authoritative.
- Read the template
project-charter.md from project knowledge.
- Extract data from sources. For each placeholder (Section 4) — find the value in inputs. Priority: explicit user data > brief > agent assumption.
- Fill template sections following the rules in Section 3.
- Validate the result using the checklist (Section 5).
- Show the result in chat. Format (system-prompt-draft.md §3 p.4):
- What was done: "Charter generated for project [name] based on: [list sources]."
- Assumptions: list all (if any).
- What is required: "Approve, provide comments, or reject."
- Do not include system file paths. Use filename only: "Charter saved as project-charter.md".
- Wait for user response (system-prompt-draft.md §3 p.5).
- Approval → produce the final document.
- Comments → revise and show updated version. After the 3rd iteration — ask: "Continue revising or finalize the current version?" (this is not a hard limit — user may request more iterations).
- After approval:
- Offer the user text to paste into log.md and project-state.md (system-prompt-draft.md §11).
- Notify: "Charter approved. Next available task: generate-risk-register (initial risk register). Start?" (system-prompt-draft.md §7).
3. Section Fill Rules
Section 1. Project Goal
- Extract from stakeholder answers or free-form description (block "Goals and Expectations").
- Format: 1–3 sentences. What is being done, why, and what the outcome is.
- If the user specified success metrics — include them.
Section 2. Project Result (Scope)
- Included: specific deliverables from inputs. Each item is a measurable result.
- Excluded: explicit out-of-scope items from stakeholder answers ("we are NOT doing..."). If not specified — formulate based on context and record as an assumption.
Section 3. Timeline and Milestones
- Dates from inputs.
- Milestones: tie to key deliverables from Section 2. Minimum: start, intermediate checkpoints, launch.
- If no exact dates — use relative timelines (week N) and record the assumption.
Section 4. Budget
- Fill from stakeholder data on budget and resources.
- Add rows per number of budget line items in inputs. Last row is the total.
- If breakdown is absent — state the total as a single row and record the assumption: "Budget breakdown by line item was not provided."
- "Notes" column — for explanations and sources of figures.
Section 5. Team and Roles
- Fill from team composition (if provided).
- Required roles: Sponsor, PM.
- If composition is not provided — keep Sponsor and PM rows only; do not add others.
Section 6. Constraints and Assumptions
- Constraints: from constraint data + identified from project description.
- Assumptions: all assumptions made by the agent during filling (e.g., "budget breakdown not provided", "out-of-scope items determined by agent").
Section 7. Key Risks (Top 3)
- Identify exactly 3 most probable/impactful risks based on project context. The charter is a strategic document for approval, not a risk register. Full detail will be in risk-register.md (next skill). If more than 3 risks are identified — mention in assumptions: "3 key risks selected from N identified. Remaining risks — in the risk register."
- Rating: H (High) / M (Medium) / L (Low) — for both probability and impact.
- For each — briefly describe mitigation.
- Note: "Details — in risk-register.md" (to be created by the next skill).
Section 8. Approval
- Fill names from Section 5 (Sponsor, PM). Date — leave blank (filled upon approval).
Header Metadata
Version: 1.0
Date: current generation date.
File: project-charter.md
Document Status: draft (at generation). After user approval — approved.
Project Manager: from inputs.
4. Placeholder Table
Placeholders {{}} in the template are fill targets, not auto-substitution variables. Replace each with the corresponding value from inputs.
| Placeholder |
Required |
Source |
Allowed Values |
{{project_name}} |
yes |
project data |
text |
{{date}} |
yes |
system |
YYYY-MM-DD |
{{pm_name}} |
yes |
project data / team |
name |
{{project_goal}} |
yes |
project data |
text, 1–3 sentences |
{{deliverable_N}} |
yes (≥1) |
project data |
specific result |
{{out_of_scope_N}} |
yes (≥1) |
project data / assumption |
what is NOT included |
{{start_date}} |
yes |
project data |
YYYY-MM-DD |
{{end_date}} |
yes |
project data |
YYYY-MM-DD |
{{milestone_N}} |
yes (≥1) |
project data / section 2 |
milestone name |
{{date_N}} |
yes |
project data |
YYYY-MM-DD or "week N" |
{{launch_date}} |
yes |
project data |
YYYY-MM-DD |
{{cost_item_N}} |
no |
project data |
budget line item |
{{amount_N}} |
no |
project data |
number + currency |
{{note_N}} |
no |
agent |
line item explanation |
{{total_budget}} |
yes |
project data |
number + currency |
{{sponsor_name}} |
yes |
project data |
name |
{{role_N}} |
no |
team |
role name |
{{name_N}} |
no |
team |
name |
{{responsibility_N}} |
no |
team |
area of responsibility |
{{constraint_N}} |
yes (≥1) |
project data |
text |
{{assumption_N}} |
no |
agent |
text (formulated by agent) |
{{risk_N}} |
yes (≥3) |
agent |
risk description |
{{mitigation_N}} |
yes (≥3) |
agent |
mitigation description |
5. Validation Checklist
Before showing the result to the user — verify:
6. Dependencies
Consumes (input): project data from the user — via chat or knowledge.
Produces (output): project charter → consumed by skills (system-prompt-draft.md §7):
generate-risk-register (mode: initial) — phase 1, Initiation
generate-project-plan — phase 2, Planning
generate-estimate — phase 1 (Product 1, non-MVP)
After charter approval, the user must upload project-charter.md to project knowledge to make it available to dependent skills.
7. Example
User command:
Generate a project charter. Brief, stakeholder answers, and constraints are in project knowledge.
Agent response (after generation):
Charter generated for project "[name]" based on: brief, stakeholder answers, constraints.
Assumptions:
- Out-of-scope items determined by agent based on context (not explicitly stated by stakeholder).
- Budget breakdown by line item was not provided — total amount stated.
Required: approve, provide comments, or reject.
[charter text]
Changelog
| Date |
Version |
Change |
| 2026-03-25 |
1.0 |
Skill created. Reference SKILL.md for remaining MVP skills |
| 2026-03-25 |
1.1 |
Based on benchmark results (3 tests, 6 runs). Added: step 3 — contradiction check; strengthened guard rail for missing data (step 1); explanation of "exactly 3 risks" constraint (§3 section 7); prohibition of file paths in response (step 8); exact date calculation (step 2) |
1---2name: generate-charter3description: Generates a project charter from brief, stakeholder answers, and constraints. The charter is the first artifact of the Initiation phase. Once approved, it unlocks dependent tasks: generate-risk-register, generate-project-plan, generate-estimate. Accepts both structured briefs and free-form notes.4---56# generate-charter78## Triggers910**Russian:** «сформируй устав», «подготовь устав проекта», «создай charter», «нужен устав проекта»11**English:** "generate charter", "create project charter", "build charter", "draft project charter"1213## Language Detection1415Determine the language of the user's request:16- If the request is in Russian → use templates with `-ru` suffix17- Otherwise → use templates with `-en` suffix1819All output (headings, labels, comments, instructions) must match the detected language.2021---2223## 1. Inputs2425| Data | Required | Source | Notes |26|------|:--------:|--------|-------|27| Project data | yes | chat or knowledge | Brief, free-form description, answers to questions, or unstructured notes. Agent extracts and structures independently |28| Stakeholder answers | no | chat or knowledge | Completed questionnaire or free-form answers. If absent — agent extracts from general project description |29| Project constraints | no | chat or knowledge | Budget, timeline, technical, organizational. If not provided separately — agent extracts from general description |30| Team composition | no | chat or knowledge | If provided — fill Section 5. If absent — keep only Sponsor and PM rows |31| Market context | no | chat or knowledge | Used to refine goal statement and risks |3233If required data is missing — request it (system-prompt-draft.md §3 p.2):3435```36To generate a charter, I need project information in any format:37a ready brief, answers to questions, a free-form description, or a set of key points.38Minimum to start: project goal and at least one of: timeline, budget, scope.39Available data: [list what is present].40Missing for the charter: [specify].41```4243---4445## 2. Execution Steps46471. **Check inputs.** Verify that project data (in any form) is present. If missing → request using the template in §1. Do NOT generate a placeholder charter, template, or example — respond ONLY with the data request. If present → step 2.482. **Structure inputs.** If data is free-form — extract and categorize: goal, scope, timeline, budget, team, constraints, risks. Note ambiguities and gaps; clarify with the user selectively. Do not ask for everything at once — request only what is strictly required for the charter. When computing dates from relative timelines ("12 weeks from April 7") — calculate exactly: start + N×7 days = end. Do not round.493. **Check for contradictions.** If one parameter (budget, timeline, scope) appears with conflicting values across sources — do NOT choose a value independently. List the contradictions and ask the user which data is current. Exception: if the user explicitly clarifies outdated brief data in chat — treat the clarification as authoritative.504. **Read the template** `project-charter.md` from project knowledge.515. **Extract data from sources.** For each placeholder (Section 4) — find the value in inputs. Priority: explicit user data > brief > agent assumption.526. **Fill template sections** following the rules in Section 3.537. **Validate the result** using the checklist (Section 5).548. **Show the result in chat.** Format (system-prompt-draft.md §3 p.4):55 - What was done: "Charter generated for project [name] based on: [list sources]."56 - Assumptions: list all (if any).57 - What is required: "Approve, provide comments, or reject."58 - Do not include system file paths. Use filename only: "Charter saved as project-charter.md".599. **Wait for user response** (system-prompt-draft.md §3 p.5).60 - Approval → produce the final document.61 - Comments → revise and show updated version. After the 3rd iteration — ask: "Continue revising or finalize the current version?" (this is not a hard limit — user may request more iterations).6210. **After approval:**63 - Offer the user text to paste into log.md and project-state.md (system-prompt-draft.md §11).64 - Notify: "Charter approved. Next available task: generate-risk-register (initial risk register). Start?" (system-prompt-draft.md §7).6566---6768## 3. Section Fill Rules6970### Section 1. Project Goal71- Extract from stakeholder answers or free-form description (block "Goals and Expectations").72- Format: 1–3 sentences. What is being done, why, and what the outcome is.73- If the user specified success metrics — include them.7475### Section 2. Project Result (Scope)76- **Included:** specific deliverables from inputs. Each item is a measurable result.77- **Excluded:** explicit out-of-scope items from stakeholder answers ("we are NOT doing..."). If not specified — formulate based on context and record as an assumption.7879### Section 3. Timeline and Milestones80- Dates from inputs.81- Milestones: tie to key deliverables from Section 2. Minimum: start, intermediate checkpoints, launch.82- If no exact dates — use relative timelines (week N) and record the assumption.8384### Section 4. Budget85- Fill from stakeholder data on budget and resources.86- Add rows per number of budget line items in inputs. Last row is the total.87- If breakdown is absent — state the total as a single row and record the assumption: "Budget breakdown by line item was not provided."88- "Notes" column — for explanations and sources of figures.8990### Section 5. Team and Roles91- Fill from team composition (if provided).92- Required roles: Sponsor, PM.93- If composition is not provided — keep Sponsor and PM rows only; do not add others.9495### Section 6. Constraints and Assumptions96- **Constraints:** from constraint data + identified from project description.97- **Assumptions:** all assumptions made by the agent during filling (e.g., "budget breakdown not provided", "out-of-scope items determined by agent").9899### Section 7. Key Risks (Top 3)100- Identify exactly 3 most probable/impactful risks based on project context. The charter is a strategic document for approval, not a risk register. Full detail will be in risk-register.md (next skill). If more than 3 risks are identified — mention in assumptions: "3 key risks selected from N identified. Remaining risks — in the risk register."101- Rating: H (High) / M (Medium) / L (Low) — for both probability and impact.102- For each — briefly describe mitigation.103- Note: "Details — in risk-register.md" (to be created by the next skill).104105### Section 8. Approval106- Fill names from Section 5 (Sponsor, PM). Date — leave blank (filled upon approval).107108### Header Metadata109- `Version`: 1.0110- `Date`: current generation date.111- `File`: `project-charter.md`112- `Document Status`: `draft` (at generation). After user approval — `approved`.113- `Project Manager`: from inputs.114115---116117## 4. Placeholder Table118119> Placeholders `{{}}` in the template are fill targets, not auto-substitution variables. Replace each with the corresponding value from inputs.120121| Placeholder | Required | Source | Allowed Values |122|-------------|:--------:|--------|----------------|123| `{{project_name}}` | yes | project data | text |124| `{{date}}` | yes | system | YYYY-MM-DD |125| `{{pm_name}}` | yes | project data / team | name |126| `{{project_goal}}` | yes | project data | text, 1–3 sentences |127| `{{deliverable_N}}` | yes (≥1) | project data | specific result |128| `{{out_of_scope_N}}` | yes (≥1) | project data / assumption | what is NOT included |129| `{{start_date}}` | yes | project data | YYYY-MM-DD |130| `{{end_date}}` | yes | project data | YYYY-MM-DD |131| `{{milestone_N}}` | yes (≥1) | project data / section 2 | milestone name |132| `{{date_N}}` | yes | project data | YYYY-MM-DD or "week N" |133| `{{launch_date}}` | yes | project data | YYYY-MM-DD |134| `{{cost_item_N}}` | no | project data | budget line item |135| `{{amount_N}}` | no | project data | number + currency |136| `{{note_N}}` | no | agent | line item explanation |137| `{{total_budget}}` | yes | project data | number + currency |138| `{{sponsor_name}}` | yes | project data | name |139| `{{role_N}}` | no | team | role name |140| `{{name_N}}` | no | team | name |141| `{{responsibility_N}}` | no | team | area of responsibility |142| `{{constraint_N}}` | yes (≥1) | project data | text |143| `{{assumption_N}}` | no | agent | text (formulated by agent) |144| `{{risk_N}}` | yes (≥3) | agent | risk description |145| `{{mitigation_N}}` | yes (≥3) | agent | mitigation description |146147---148149## 5. Validation Checklist150151Before showing the result to the user — verify:152153- [ ] All required placeholders replaced with values154- [ ] No `{{}}` placeholders remain in the text (except removed optional rows)155- [ ] Project goal is specific and measurable156- [ ] Scope contains both "Included" (≥1) and "Excluded" (≥1)157- [ ] Dates are consistent: start_date < milestone_dates < end_date158- [ ] Budget: total = sum of rows (or single row with total amount)159- [ ] Risks: exactly 3, with probability and impact ratings, with mitigation160- [ ] All agent assumptions listed in Section 6161- [ ] Document status = `draft`162- [ ] File: `project-charter.md` stated in header163164---165166## 6. Dependencies167168**Consumes (input):** project data from the user — via chat or knowledge.169170**Produces (output):** project charter → consumed by skills (system-prompt-draft.md §7):171- `generate-risk-register` (mode: initial) — phase 1, Initiation172- `generate-project-plan` — phase 2, Planning173- `generate-estimate` — phase 1 (Product 1, non-MVP)174175After charter approval, the user must upload `project-charter.md` to project knowledge to make it available to dependent skills.176177---178179## 7. Example180181**User command:**182183> Generate a project charter. Brief, stakeholder answers, and constraints are in project knowledge.184185**Agent response (after generation):**186187> Charter generated for project "[name]" based on: brief, stakeholder answers, constraints.188>189> Assumptions:190> - Out-of-scope items determined by agent based on context (not explicitly stated by stakeholder).191> - Budget breakdown by line item was not provided — total amount stated.192>193> Required: approve, provide comments, or reject.194>195> [charter text]196197---198199## Changelog200201| Date | Version | Change |202|------|---------|--------|203| 2026-03-25 | 1.0 | Skill created. Reference SKILL.md for remaining MVP skills |204| 2026-03-25 | 1.1 | Based on benchmark results (3 tests, 6 runs). Added: step 3 — contradiction check; strengthened guard rail for missing data (step 1); explanation of "exactly 3 risks" constraint (§3 section 7); prohibition of file paths in response (step 8); exact date calculation (step 2) |