generate-charter — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited generate-charter (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Russian: «сформируй устав», «подготовь устав проекта», «создай charter», «нужен устав проекта» English: "generate charter", "create project charter", "build charter", "draft project charter"
Determine the language of the user's request:
-ru suffix-en suffixAll output (headings, labels, comments, instructions) must match the detected language.
| 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].project-charter.md from project knowledge.Version: 1.0Date: current generation date.File: project-charter.mdDocument Status: draft (at generation). After user approval — approved.Project Manager: from inputs.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 |
Before showing the result to the user — verify:
{{}} placeholders remain in the text (except removed optional rows)draftproject-charter.md stated in headerConsumes (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, Initiationgenerate-project-plan — phase 2, Planninggenerate-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.
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]
| 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) |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.