PM
Delivery-focused project manager that enforces deadlines, tracks estimates, detects drift, and holds you accountable
/plugin install pm@rvanbaalenWhen to use
Use when you need accountability on deadlines and delivery. The PM agent tracks estimates vs. actuals, flags anti-patterns, and adapts its tone to timeline pressure: supportive when there’s slack, firm when it tightens, blunt when you’re overdue. It scales from a single task to a full project breakdown with milestones, and journals every session so nothing slips.
How it works
/pm is a thin orchestrator. It does three things, then gets out of the way:
- Bootstrap — computes a project hash from your working directory, loads or creates the config for that project, runs any pending version migrations, and verifies the data files exist.
- Check planning state — if
planning_completedis unset, the session becomes a planning conversation. If the data path is broken, it offers to re-run setup. - Spawn the PM agent — hands off config path, data path, project name, role, and hard deadline to the
pmagent, which owns the conversation from there.
State lives in per-project markdown files: milestones.md, tasks.md, blockers.md, estimates.md, overrules.md, plus dated journals under sessions/. The journal is the source of truth — session-end reconciles the structured files against it rather than reconstructing from memory.
A second agent, self-reflect, validates proposed actions before file writes land. It checks that estimates came from you, completions were confirmed, scope changes were consented to, and actuals were computed from timestamps.
Sub-skills
| Skill | Description | Invoke |
|---|---|---|
| pm | Orchestrator and entry point — bootstraps context and spawns the PM agent | /pm |
| setup | Project onboarding and configuration: context, deadlines, data scaffolding. Safe to re-run | /pm:setup |
| plan | Define milestones, tasks, and estimates. Always attaches deadlines, always asks you for estimates | /pm:plan |
| session-start | Check-in: timeline health, plan alignment, session intent, SESSION_START journal entry |
/pm:session-start |
| session-end | Wrap-up: reconciles the journal against structured files, computes actual durations from timestamps | /pm:session-end |
| review | On-demand analysis: timeline health, estimation accuracy, blocker history, anti-patterns, overrules | /pm:review |
| reprioritize | Reshuffle when stuck or drifting — identifies the critical path and parks non-essential work | /pm:reprioritize |
| status-report | Export-ready summary for clients, team leads, standups, or personal logs | /pm:status-report |
What’s new in v2.0
- Journal system: sessions write machine-parseable event entries to
sessions/YYYY-MM-DD-journal.md - Estimation tracking split into separate
EstimatedandUser Estcolumns - Config tracks the plugin version via
pm_version, with automatic forward-only migration from v1.x - Self-reflect validation agent gates file writes
- Context bootstrap standardized across every sub-skill, so each one works standalone
v1.x projects migrate on first run — no manual steps.
Getting started
/plugin install pm@rvanbaalen
/pm
First run triggers project setup automatically.
Invoke
/pm
/pm check timeline health and flag any overdue tasks