Install
$ agentstack add skill-kirkruglov-claude-project-manager-monitor-progress ✓ 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: monitor-progress
Monitors project execution across 6 modes — from sprint progress tracking to stream synchronization and final data collection. Reads Jira, project-plan, and project-budget. Generates structured reports; triggers email notifications for deviations and weekly status. Falls back gracefully when Jira is unavailable.
Triggers
Russian: «проверь прогресс», «статус проекта», «отчёт по прогрессу», «еженедельный отчёт», «проверь отклонения», «отклонения по срокам/бюджету», «синхронизация потоков», «собери фактические данные», «данные для закрытия» English: "check progress", "project status", "progress report", "weekly status", "check deviations", "deviation report", "sync streams", "collect actual data", "closing data"
Language Detection
- Request in Russian → templates
*-ru.md, all outputs in Russian - Otherwise → templates
*-en.md, all outputs in English
Modes
| Mode | Task | Phase | Trigger type | Output | |------|------|-------|-------------|--------| | progress-report | #18 | 4 | command | progress-report-{date}.md | | deviation-check | #19 | 4 | command / schedule (daily) | deviation-report-{date}.md + email E4 | | sync-streams | #25 | 5 | command / schedule (weekly Mon, phase 5 only) | sync-report-{date}.md + email E5 | | actual-data | #28 | 6 | command | actual-data-report.xlsx (schema) | | weekly-status | Р1 | 3–5 | scheduled (Mon 9:00) | weekly-status-{date}.md + email E7 | | daily-deviation | Р2 | 3–5 | scheduled (Mon–Fri 9:00) | daily-deviation-{date}.md |
Input
| Data | Required | Source | |------|:--------:|--------| | Mode (explicit or inferred) | yes | PM in chat or scheduled task prompt | | project-state.md | yes | project root | | project-plan.md | yes (most modes) | 02-planning/ | | project-budget.xlsx | for deviation/closure | 02-planning/ | | Jira sprint data | preferred | Jira MCP (fallback: PM provides manually) | | Stream reports (sync-streams) | yes | reports/ — latest progress-report-*.md | | All Jira data (actual-data) | yes | Jira MCP (fallback: PM provides) |
Output
| File | Path | Mode | |------|------|------| | progress-report-{date}.md | reports/ | progress-report | | deviation-report-{date}.md | reports/ | deviation-check, daily-deviation | | sync-report-{date}.md | reports/ | sync-streams | | actual-data-report.xlsx | 06-closure/ | actual-data | | weekly-status-{date}.md | reports/ | weekly-status | | Email E4 (deviation deadline) | via send-email | deviation-check (level 2) | | Email E5 (stream sync) | via send-email | sync-streams (level 2) | | Email E7 (weekly status) | via send-email | weekly-status (level 1) |
Instructions
Step 1 — Determine Mode
Determine the mode from the PM's request or the scheduled task prompt.
| Cues | Mode | |------|------| | "progress", "sprint tasks", "what's done", "task status" | progress-report | | "deviations", "overdue", "behind schedule", "over budget" | deviation-check | | "stream sync", "launch streams", "dev/marketing/ops status" | sync-streams | | "actual data", "closing data", "final figures", "project closure" | actual-data | | "weekly status", "weekly report", "статус недели", "еженедельный отчёт" — or scheduled prompt contains "weekly-status" | weekly-status | | "daily check", "daily deviation", "ежедневная проверка" — or scheduled prompt contains "daily-deviation" | daily-deviation |
If mode is ambiguous and the request came from PM in chat → ask: "Which report do you need?
- Sprint progress — task completion status (Phase 4)
- Deviation check — schedule and budget deviations (Phase 4)
- Stream sync — dev/marketing/ops synchronization (Phase 5)
- Actual data — final figures for project closure (Phase 6)"
Phase validation:
sync-streams: only available in Phase 5. If current phase ≠ 5 → inform PM and stop.
Message: "sync-streams is only available in Phase 5 (Launch). Current phase: {PHASE}. If you need current sprint progress data, use progress-report mode instead."
actual-data: only available in Phase 6. If current phase ≠ 6 → inform PM and stop.
Message: "actual-data collection is only available in Phase 6 (Closure). Current phase: {PHASE}."
Step 2 — Read Project Context
Always read:
project-state.md→ project name, current phase, sprint number, last update date
Read per mode:
| Mode | Files to read | |------|---------------| | progress-report | 02-planning/project-plan.md | | deviation-check, daily-deviation | 02-planning/project-plan.md, 02-planning/project-budget.xlsx | | sync-streams | latest reports/progress-report-*.md (last 1–2), 03-execution/launch-checklist.md | | actual-data | 02-planning/project-plan.md, 02-planning/project-budget.xlsx | | weekly-status | 02-planning/project-plan.md, latest reports/progress-report-*.md (if exists) |
If files are not found → continue with available data, note missing files in the report with placeholder [DATA NOT AVAILABLE — fill manually].
Step 3 — Query Jira (if available)
Attempt to retrieve data via Jira MCP:
| Mode | What to query | |------|--------------| | progress-report | Current sprint tasks — status, assignee, completion % | | deviation-check, daily-deviation | Overdue tasks, tasks at risk (due within 3 days) | | sync-streams | Open tasks by epic/label per stream (dev, marketing, ops) | | actual-data | All closed tasks: actual hours, completion dates, story points | | weekly-status | Sprint velocity, completed vs planned, overdue count |
Fallback if Jira MCP unavailable:
- Continue without Jira data
- Mark all Jira-dependent fields with the language-matched placeholder:
- EN:
[JIRA DATA UNAVAILABLE — fill manually] - RU:
[JIRA НЕДОСТУПЕН — заполнить вручную] - Notify in chat (match detected language):
- EN: "Jira MCP unavailable — report generated with placeholders. Fill in Jira sections manually."
- RU: "Jira MCP недоступен — отчёт сгенерирован с плейсхолдерами. Заполни разделы Jira вручную."
Step 4 — Generate Report
Load the template matching mode and language:
| Mode | Template (EN) | Template (RU) | |------|--------------|---------------| | progress-report | templates/progress-report-template-en.md | templates/progress-report-template-ru.md | | deviation-check, daily-deviation | templates/deviation-report-template-en.md | templates/deviation-report-template-ru.md | | sync-streams | templates/sync-report-template-en.md | templates/sync-report-template-ru.md | | actual-data | templates/actual-data-report-schema.md | (same, bilingual schema) | | weekly-status | templates/weekly-status-template-en.md | templates/weekly-status-template-ru.md |
Populate all template sections with data from Step 2 + Step 3.
Deviation assessment rules:
- Schedule deviation: task overdue by >0 days → flag as deviation
- Budget deviation: actual spend > planned by >5% → flag as deviation
- Critical threshold: >10% schedule delay or >10% budget overrun → mark as
CRITICAL - No deviations found → for
deviation-checkanddaily-deviation: write tologs/log.md"no deviations" and STOP (do not generate report file)
For actual-data mode:
- Output is an xlsx schema — generate the schema structure per
templates/actual-data-report-schema.md - Save as
06-closure/actual-data-report.xlsx(structure only; PM fills actual values from populated template or Jira export)
Step 5 — Handle Email (where applicable)
| Mode | Email template | Autonomy level | Condition | |------|---------------|---------------|-----------| | deviation-check | email-tpl-deviation-deadline-{lang}.md | 2 (draft for PM) | Deviations found | | sync-streams | email-tpl-deviation-sync-{lang}.md | 2 (draft for PM) | Desync detected | | weekly-status | email-tpl-weekly-status-{lang}.md | 1 (autonomous) | Always | | daily-deviation | — | — | None (no email) |
Level 1 (autonomous): Generate email draft → pass to send-email for immediate dispatch. Level 2 (draft): Generate email draft in reports/email-draft-{mode}-{date}.md → notify PM: "Email draft ready — review and confirm before sending via send-email."
Load the matching email template, populate with report key findings, recipients from 01-initiation/stakeholder-map.md (or comm-plan.md).
Step 6 — Save Files and Update State
- Save the report file to the correct path (see Output table).
- For
actual-datamode: save06-closure/actual-data-report.xlsxschema. - Update
project-state.md:
- Add artifact record with status
completedand date. - For
weekly-status: update fieldlast_weekly_report. - For
deviation-check/daily-deviation: update fieldlast_deviation_check.
- Write to
logs/log.md:
{DATE}: monitor-progress [{MODE}] — {RESULT}. Saved: reports/{FILENAME}
- RESULT examples: "3 deviations found", "no deviations", "report generated", "Jira unavailable — manual fill needed"
- Output to chat:
- File saved path
- Key findings summary (2–5 bullet points)
- Email action (if applicable): "Email draft ready at reports/email-draft-{mode}-{date}.md"
- If deviations are critical: "⚠️ CRITICAL deviation detected — immediate PM attention required."
Templates
| File | Purpose | |------|---------| | templates/progress-report-template-en.md | Sprint progress report (EN) — Task #18 | | templates/progress-report-template-ru.md | Sprint progress report (RU) — Task #18 | | templates/deviation-report-template-en.md | Deviation report (EN) — Task #19, Р2 | | templates/deviation-report-template-ru.md | Deviation report (RU) — Task #19, Р2 | | templates/weekly-status-template-en.md | Weekly status report (EN) — Р1 | | templates/weekly-status-template-ru.md | Weekly status report (RU) — Р1 | | templates/sync-report-template-en.md | Stream sync report (EN) — Task #25 | | templates/sync-report-template-ru.md | Stream sync report (RU) — Task #25 | | templates/actual-data-report-schema.md | xlsx schema for actual data collection — Task #28 | | templates/email-tpl-deviation-deadline-en.md | Email E4 — deviation notification (EN) | | templates/email-tpl-deviation-deadline-ru.md | Email E4 — deviation notification (RU) | | templates/email-tpl-deviation-sync-en.md | Email E5 — stream desync notification (EN) | | templates/email-tpl-deviation-sync-ru.md | Email E5 — stream desync notification (RU) | | templates/email-tpl-weekly-status-en.md | Email E7 — weekly status distribution (EN) | | templates/email-tpl-weekly-status-ru.md | Email E7 — weekly status distribution (RU) |
Dependencies
Reads (required):
project-state.md— project name, phase, sprint number02-planning/project-plan.md— planned milestones, tasks, deadlines02-planning/project-budget.xlsx— budget plan (deviation modes)
Reads (optional):
01-initiation/stakeholder-map.md— email recipients02-planning/comm-plan.md— communication preferencesreports/progress-report-*.md— previous reports for trend comparison03-execution/launch-checklist.md— launch readiness (sync-streams)
External actions:
- Jira MCP — sprint and task data (fallback: PM provides manually)
send-emailskill — email dispatch (E4 level 2, E5 level 2, E7 level 1)
Writes:
reports/progress-report-{date}.mdreports/deviation-report-{date}.mdreports/sync-report-{date}.mdreports/weekly-status-{date}.mdreports/daily-deviation-{date}.md06-closure/actual-data-report.xlsxproject-state.md(status update)logs/log.md(action record)
Constraints
sync-streamsmode is only available in Phase 5actual-datamode is only available in Phase 6- Does NOT make decisions about deviations — generates report and notifies PM
- Does NOT update project-plan.md — PM decides how to respond to deviations
- For
deviation-checkanddaily-deviation: if no deviations found, logs the check and stops — no report file created - Fallback mode does not block report generation — produces report with placeholders
- One invocation = one mode; do not combine modes in a single run
- Email for
weekly-status(E7, level 1) is sent autonomously — no PM confirmation required - Email for
deviation-check(E4) andsync-streams(E5) are level 2 — PM must confirm before sending
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.