/pm — Project Management
Smart router for all ProjectMan operations. Users only need to remember /pm.
Routing
Parse the user's intent and route to the appropriate action:
No args → Smart status
Call pm_status, then pm_active. Based on project state, suggest the most useful next action:
- •If undecomposed stories exist → "Consider running
/pm scope <id>" - •If tasks are available on the board → "Run
/pm boardto see available work" - •If audit hasn't run recently → "Run
/pm auditto check for drift" - •If no stories exist → "Create your first story with
/pm create story"
Status & Queries
- •
status→pm_status+pm_activedashboard - •
get <id>→pm_get(id)— works for epics, stories, and tasks - •
search <query>→pm_search(query) - •
board→pm_board— show task board with available/in-progress/blocked work - •
context [project]→pm_context(project)— full hub + project context for starting work - •
burndown→pm_burndown
Create & Update
- •
create epic "<title>" "<description>"→pm_create_epic - •
create story "<title>" "<description>"→pm_create_story(optionally withepic <epic-id>) - •
create task <story-id> "<title>" "<description>"→pm_create_task(single) orpm_create_tasks(batch, when creating multiple tasks for a story) - •
update <id> <field>=<value>→pm_update - •
archive <id>→pm_archive
Workflows (absorbed from former standalone skills)
- •
scope <story-id>→ Callpm_scope(id), propose task breakdown, create approved tasks, estimate each - •
autoscope [full|incremental]→ Callpm_auto_scope(mode), bulk-create epics/stories/tasks. Redirect to/pm-autoscope - •
audit→ Callpm_audit, review DRIFT.md findings, suggest and execute approved fixes - •
init [project]→ Set up project documentation (wizard mode for new, import mode for existing) - •
fix→ Callpm_malformed, fix quarantined files one at a time viapm_fix_malformed - •
grab <task-id> [assignee]→ Callpm_grab(task_id, assignee)to claim a task with readiness validation
Web Dashboard
- •
web/web start→pm_web_start(host, port)— launch the web dashboard (default 127.0.0.1:8000) - •
web start 0.0.0.0 9000→pm_web_start(host="0.0.0.0", port=9000)— bind to a specific host/port - •
web stop→pm_web_stop— stop the running web server - •
web status→pm_web_status— check if the web server is running
If pm_web_start returns a port-in-use error, automatically retry with the next port (e.g. 8001, 8002).
Hub Operations
- •
repair→pm_repair— scan, discover, init, rebuild - •
sync→ pull latest across all hub submodules - •
docs [vision|architecture|decisions|project|infrastructure|security]→pm_docs
Natural Language
Also accept natural language and route intelligently:
- •"what should I work on?" →
pm_board→ suggest top available task - •"plan the sprint" → redirect to
/pm-plan - •"how are we doing?" →
pm_status+pm_burndown - •"scope this story" → ask which story, then
pm_scope - •"scope everything" / "autoscope" / "bulk scope" → redirect to
/pm-autoscope - •"show me the dashboard" / "open the web UI" →
pm_web_start - •"stop the server" →
pm_web_stop
Post-Action Chaining
After every action, suggest the logical next step:
- •After creating a story → "Scope it with
/pm scope <id>?" - •After scoping → "Estimate with
/pm update <id> points=N?" - •After grabbing a task → "Start implementing with
/pm-do <id>" - •After completing a task → "Check the board for more work:
/pm board" - •After starting the web server → share the URL so the user can open it in their browser
ID Conventions
- •Epics:
EPIC-PREFIX-N(e.g.EPIC-CEO-1) - •User Stories:
US-PREFIX-N(e.g.US-CEO-1) - •Tasks:
US-PREFIX-N-N(e.g.US-CEO-1-1)
Hub Mode
When in hub mode, many tools accept an optional project parameter to target a specific subproject.