Install
$ agentstack add skill-kirkruglov-claude-project-manager-generate-budget ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Skill: generate-budget
Generates a detailed IT project budget during the planning phase (Phase 2). Reads the preliminary estimate (preliminary-estimate.xlsx) and resource plan (resource-plan.md), builds a line-item budget by phase and cost category. Output: project-budget.xlsx — one baseline scenario with a contingency reserve. Mode B: agent prepares draft, PM reviews.
Triggers
Russian: «сформируй бюджет проекта», «подготовь детальный бюджет», «сделай бюджет по фазам», «бюджет проекта», «детализируй бюджет» English: "generate project budget", "create budget", "project budget", "detailed budget", "budget by phase", "budget breakdown"
Language Detection
Determine the language of the user's request:
- If the request is in Russian → use templates with the
-rusuffix, respond in Russian - Otherwise → use templates with the
-ensuffix, respond in English
Input
| Data | Required | Source | |------|:--------:|--------| | Preliminary estimate | yes | 01-initiation/preliminary-estimate.xlsx | | Resource plan | yes | 02-planning/resource-plan.md | | Project charter | no | 01-initiation/project-charter.md | | Hard constraints | no | input/constraints.md | | Risk register | no | 01-initiation/risk-register.md — for reserve calibration |
Output
| File | Project path | Format | |------|-------------|--------| | project-budget.xlsx | 02-planning/ | .xlsx |
File structure — 3 sheets (Summary, Budget Detail, Resource Detail) — defined in templates/project-budget-{lang}.md.
Instructions
Step 1 — Check Dependencies
Guard-rail — check request type. If the request contains: WBS, task decomposition, man-hours per task, work breakdown by assignee — respond: "generate-budget produces a line-item budget by phase and cost category, not a detailed WBS. For task decomposition use generate-project-plan — it builds a plan with tasks, timelines, and assignees. Once the plan is approved, generate-budget will calculate the financial side based on the resource plan." Do not start the workflow. Do not check for files.
Check for required files:
01-initiation/preliminary-estimate.xlsx02-planning/resource-plan.md
If preliminary-estimate.xlsx is not found: Stop. Respond: "A preliminary estimate is required to generate the budget. Run the generate-estimate skill (task #4) — it will create preliminary-estimate.xlsx with baseline timeline and cost data."
If resource-plan.md is not found: Stop. Respond: "A resource plan is required to generate the budget. Run the generate-resource-plan skill (task #8) — it will create resource-plan.md with team composition, roles, and rates by phase."
If both files are found: proceed to Step 2.
Step 2 — Extract Data from Sources
From preliminary-estimate.xlsx (realistic scenario):
- Duration of each phase (weeks or months)
- Total costs by category (team, infrastructure, GTM)
- Assumptions recorded in the estimate
- Risk flags (if budget exceeds constraints)
From resource-plan.md:
- Team composition: roles, FTE allocation per phase
- Rates per role (if specified)
- Total person-months per phase
From project-charter.md (if available):
- Project name, PM, objectives
- Whether GTM is in scope — determines whether Section C is populated
From risk-register.md (if available):
- Number of HIGH-level risks → reserve calibration:
- 0–2 HIGH risks: 10% reserve
- 3–5 HIGH risks: 15% reserve
- 6+ HIGH risks: 20% reserve, add PM warning
From constraints.md (if available):
- Hard budget ceiling — record in assumptions.
Step 3 — Calculate Costs by Phase
Section A: Team (for each phase 1–6)
For each role:
Cost = FTE × Phase duration (months) × Rate ($/month)
- FTE and duration: from resource-plan.md
- Rates: from resource-plan.md → if not available, from preliminary-estimate.xlsx
- If rates are unavailable at role level in both resource-plan.md and preliminary-estimate.xlsx,
and the estimate contains only aggregated team costs by phase: use the aggregate as Section A total for that phase without role breakdown. Record in assumptions: "Role-level rates unavailable — aggregated data from estimate used. Update rates in resource-plan.md for improved accuracy." In Sheet 3, column "Rate" — mark as "from estimate (aggregated)".
Phase total (team) = Σ costs of all roles in the phase.
Section B: Infrastructure (for each phase)
Take data from preliminary-estimate.xlsx (realistic scenario, infrastructure row by phase). If data is unavailable — use default ranges from templates/project-budget-{lang}.md (§ Default Infrastructure).
Section C: Marketing/GTM (for each phase)
- If GTM is in scope: take from preliminary-estimate.xlsx → Section C by phase.
- If GTM is not in scope: set to zero, add note "GTM is not in scope".
Step 4 — Calculate Reserve and Totals
- Baseline budget = Σ (Team + Infrastructure + GTM) across all phases.
- Contingency Reserve:
- Percentage: determined in Step 2 from the risk register (10%, 15%, or 20%).
- If risk-register.md is unavailable: 10% default, add note "Risk register unavailable —
standard 10% reserve applied".
- Reserve = Baseline budget × %
- Grand Total = Baseline budget + Reserve.
- Constraint check: if Grand Total > Ceiling (from constraints.md):
- Add risk flag to Summary: "Grand Total [$X] exceeds stated budget ceiling [$Y].
Recommended: revise scope, reduce team, or phase the project funding."
- Do not adjust numbers to fit the ceiling.
Step 5 — Populate xlsx Sheets
Follow the schema in templates/project-budget-{lang}.md:
Sheet 1 — Summary:
- Header: project, PM, date, version
- Assumptions (minimum 3): calculation method, data sources, rates, GTM status, reserve %
- Phase summary table: A (Team) + B (Infra) + C (GTM) = Total per phase
- "Contingency Reserve" row: % and amount
- Grand Total
- Risk flag (if budget > ceiling)
Sheet 2 — Budget Detail:
- Rows: phase → category → cost line item
- Columns: Unit | Qty | Rate | Total
- Example row: "Phase 2 | Team | Product Manager | person-month | 2 | $5,000 | $10,000"
Sheet 3 — Resource Detail:
- Rows: role
- Columns: Phase 1 | Phase 2 | ... | Phase 6 | Total (p-m) | Rate | Total ($)
- Source: resource-plan.md
Step 6 — Create xlsx and Save
- Use the xlsx skill to create
project-budget.xlsxfollowing the template schema. - Save to
{project}/02-planning/project-budget.xlsx. - Show in chat:
- Confirmation: "Budget saved as project-budget.xlsx in 02-planning/."
- Sheet 1 Summary as a markdown table.
- List of assumptions.
- Risk flags (if any).
- Next step: "Budget is ready. Review rates and team composition. Once approved by PM,
use generate-approval-letter to send it for stakeholder approval."
- Write to
logs/log.md: date, skill, file created, grand total, reserve %. - Update
project-state.md: artifactproject-budget.xlsxstatus → "draft".
Templates
| File | Purpose | |------|---------| | templates/project-budget-ru.md | xlsx artifact schema (RU) | | templates/project-budget-en.md | xlsx artifact schema (EN) |
Dependencies
Reads:
01-initiation/preliminary-estimate.xlsx— realistic scenario (team, infra, GTM by phase)02-planning/resource-plan.md— roles, FTE, rates by phase01-initiation/project-charter.md— project name, PM, GTM scope statusinput/constraints.md— budget ceiling (if any)01-initiation/risk-register.md— for reserve calibration
Passes data to:
monitor-progress(#19) — budget deviation trackinggenerate-change-impact(#21) — scope change impact on budgetgenerate-plan-fact-report(#29) — plan vs. actual budget
Calls:
xlsx skill— to generate the .xlsx file
Constraints
- Mode B: budget is a draft for PM review, not a final document
- Single scenario (baseline) — scenario analysis is done in generate-estimate, not here
- Does not update automatically on scope changes — re-run manually via generate-change-impact
- Does not build a detailed WBS or calculate task-level effort — use generate-project-plan
- Operates on one project per invocation
- If preliminary-estimate.xlsx is unavailable — skill does not run; no fallback
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: KirKruglov
- Source: KirKruglov/claude-project-manager
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.