claude-mpm 5.4.85__py3-none-any.whl → 5.6.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/CLAUDE_MPM_OUTPUT_STYLE.md +8 -5
- claude_mpm/agents/{CLAUDE_MPM_FOUNDERS_OUTPUT_STYLE.md → CLAUDE_MPM_RESEARCH_OUTPUT_STYLE.md} +14 -6
- claude_mpm/agents/PM_INSTRUCTIONS.md +101 -703
- claude_mpm/agents/WORKFLOW.md +2 -0
- claude_mpm/agents/templates/circuit-breakers.md +26 -17
- claude_mpm/cli/commands/autotodos.py +566 -0
- claude_mpm/cli/commands/commander.py +46 -0
- claude_mpm/cli/commands/hook_errors.py +60 -60
- claude_mpm/cli/commands/monitor.py +2 -2
- claude_mpm/cli/commands/mpm_init/core.py +2 -2
- claude_mpm/cli/commands/run.py +35 -3
- claude_mpm/cli/executor.py +119 -16
- claude_mpm/cli/parsers/base_parser.py +71 -1
- claude_mpm/cli/parsers/commander_parser.py +83 -0
- claude_mpm/cli/parsers/run_parser.py +10 -0
- claude_mpm/cli/startup.py +54 -16
- claude_mpm/cli/startup_display.py +72 -5
- claude_mpm/cli/startup_logging.py +2 -2
- claude_mpm/cli/utils.py +7 -3
- claude_mpm/commander/__init__.py +72 -0
- claude_mpm/commander/adapters/__init__.py +31 -0
- claude_mpm/commander/adapters/base.py +191 -0
- claude_mpm/commander/adapters/claude_code.py +361 -0
- claude_mpm/commander/adapters/communication.py +366 -0
- claude_mpm/commander/api/__init__.py +16 -0
- claude_mpm/commander/api/app.py +105 -0
- claude_mpm/commander/api/errors.py +112 -0
- claude_mpm/commander/api/routes/__init__.py +8 -0
- claude_mpm/commander/api/routes/events.py +184 -0
- claude_mpm/commander/api/routes/inbox.py +171 -0
- claude_mpm/commander/api/routes/messages.py +148 -0
- claude_mpm/commander/api/routes/projects.py +271 -0
- claude_mpm/commander/api/routes/sessions.py +215 -0
- claude_mpm/commander/api/routes/work.py +260 -0
- claude_mpm/commander/api/schemas.py +182 -0
- claude_mpm/commander/chat/__init__.py +7 -0
- claude_mpm/commander/chat/cli.py +107 -0
- claude_mpm/commander/chat/commands.py +96 -0
- claude_mpm/commander/chat/repl.py +310 -0
- claude_mpm/commander/config.py +49 -0
- claude_mpm/commander/config_loader.py +115 -0
- claude_mpm/commander/daemon.py +398 -0
- claude_mpm/commander/events/__init__.py +26 -0
- claude_mpm/commander/events/manager.py +332 -0
- claude_mpm/commander/frameworks/__init__.py +12 -0
- claude_mpm/commander/frameworks/base.py +143 -0
- claude_mpm/commander/frameworks/claude_code.py +58 -0
- claude_mpm/commander/frameworks/mpm.py +62 -0
- claude_mpm/commander/inbox/__init__.py +16 -0
- claude_mpm/commander/inbox/dedup.py +128 -0
- claude_mpm/commander/inbox/inbox.py +224 -0
- claude_mpm/commander/inbox/models.py +70 -0
- claude_mpm/commander/instance_manager.py +337 -0
- claude_mpm/commander/llm/__init__.py +6 -0
- claude_mpm/commander/llm/openrouter_client.py +167 -0
- claude_mpm/commander/llm/summarizer.py +70 -0
- claude_mpm/commander/models/__init__.py +18 -0
- claude_mpm/commander/models/events.py +121 -0
- claude_mpm/commander/models/project.py +162 -0
- claude_mpm/commander/models/work.py +214 -0
- claude_mpm/commander/parsing/__init__.py +20 -0
- claude_mpm/commander/parsing/extractor.py +132 -0
- claude_mpm/commander/parsing/output_parser.py +270 -0
- claude_mpm/commander/parsing/patterns.py +100 -0
- claude_mpm/commander/persistence/__init__.py +11 -0
- claude_mpm/commander/persistence/event_store.py +274 -0
- claude_mpm/commander/persistence/state_store.py +309 -0
- claude_mpm/commander/persistence/work_store.py +164 -0
- claude_mpm/commander/polling/__init__.py +13 -0
- claude_mpm/commander/polling/event_detector.py +104 -0
- claude_mpm/commander/polling/output_buffer.py +49 -0
- claude_mpm/commander/polling/output_poller.py +153 -0
- claude_mpm/commander/project_session.py +268 -0
- claude_mpm/commander/proxy/__init__.py +12 -0
- claude_mpm/commander/proxy/formatter.py +89 -0
- claude_mpm/commander/proxy/output_handler.py +191 -0
- claude_mpm/commander/proxy/relay.py +155 -0
- claude_mpm/commander/registry.py +404 -0
- claude_mpm/commander/runtime/__init__.py +10 -0
- claude_mpm/commander/runtime/executor.py +191 -0
- claude_mpm/commander/runtime/monitor.py +316 -0
- claude_mpm/commander/session/__init__.py +6 -0
- claude_mpm/commander/session/context.py +81 -0
- claude_mpm/commander/session/manager.py +59 -0
- claude_mpm/commander/tmux_orchestrator.py +361 -0
- claude_mpm/commander/web/__init__.py +1 -0
- claude_mpm/commander/work/__init__.py +30 -0
- claude_mpm/commander/work/executor.py +189 -0
- claude_mpm/commander/work/queue.py +405 -0
- claude_mpm/commander/workflow/__init__.py +27 -0
- claude_mpm/commander/workflow/event_handler.py +219 -0
- claude_mpm/commander/workflow/notifier.py +146 -0
- claude_mpm/commands/mpm-config.md +8 -0
- claude_mpm/commands/mpm-doctor.md +8 -0
- claude_mpm/commands/mpm-help.md +8 -0
- claude_mpm/commands/mpm-init.md +8 -0
- claude_mpm/commands/mpm-monitor.md +8 -0
- claude_mpm/commands/mpm-organize.md +8 -0
- claude_mpm/commands/mpm-postmortem.md +8 -0
- claude_mpm/commands/mpm-session-resume.md +9 -1
- claude_mpm/commands/mpm-status.md +8 -0
- claude_mpm/commands/mpm-ticket-view.md +8 -0
- claude_mpm/commands/mpm-version.md +8 -0
- claude_mpm/commands/mpm.md +8 -0
- claude_mpm/config/agent_presets.py +8 -7
- claude_mpm/core/config.py +5 -0
- claude_mpm/core/hook_manager.py +51 -3
- claude_mpm/core/logger.py +10 -7
- claude_mpm/core/logging_utils.py +4 -2
- claude_mpm/core/output_style_manager.py +15 -5
- claude_mpm/core/unified_config.py +10 -6
- claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/0.C33zOoyM.css +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/2.CW1J-YuA.css +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{Cs_tUR18.js → 1WZnGYqX.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{CDuw-vjf.js → 67pF3qNn.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{bTOqqlTd.js → 6RxdMKe4.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{DwBR2MJi.js → 8cZrfX0h.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{ZGh7QtNv.js → 9a6T2nm-.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{D9lljYKQ.js → B443AUzu.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{RJiighC3.js → B8AwtY2H.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{uuIeMWc-.js → BF15LAsF.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{D3k0OPJN.js → BRcwIQNr.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{CyWMqx4W.js → BV6nKitt.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{CiIAseT4.js → BViJ8lZt.js} +5 -5
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{CBBdVcY8.js → BcQ-Q0FE.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{BovzEFCE.js → Bpyvgze_.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BzTRqg-z.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/C0Fr8dve.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{eNVUfhuA.js → C3rbW_a-.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{GYwsonyD.js → C8WYN38h.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{BIF9m_hv.js → C9I8FlXH.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{B0uc0UOD.js → CIQcWgO2.js} +3 -3
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{Be7GpZd6.js → CIctN7YN.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{Bh0LDWpI.js → CKrS_JZW.js} +2 -2
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{DUrLdbGD.js → CR6P9C4A.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{B7xVLGWV.js → CRRR9MD_.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CRcR2DqT.js +334 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{Dhb8PKl3.js → CSXtMOf0.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{BPYeabCQ.js → CT-sbxSk.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{sQeU3Y1z.js → CWm6DJsp.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{CnA0NrzZ.js → CpqQ1Kzn.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{C4B-KCzX.js → D2nGpDRe.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{DGkLK5U1.js → D9iCMida.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{BofRWZRR.js → D9ykgMoY.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{DmxopI1J.js → DL2Ldur1.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{C30mlcqg.js → DPfltzjH.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{Vzk33B_K.js → DR8nis88.js} +2 -2
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{DI7hHRFL.js → DUliQN2b.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{C4JcI4KD.js → DXlhR01x.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{bT1r9zLR.js → D_lyTybS.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{DZX00Y4g.js → DngoTTgh.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{CzZX-COe.js → DqkmHtDC.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{B7RN905-.js → DsDh8EYs.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{DLVjFsZ3.js → DypDmXgd.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{iEWssX7S.js → IPYC-LnN.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/JTLiF7dt.js +24 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{DaimHw_p.js → JpevfAFt.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{DY1XQ8fi.js → R8CEIRAd.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{Dle-35c7.js → Zxy7qc-l.js} +2 -2
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/q9Hm6zAU.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{C_Usid8X.js → qtd3IeO4.js} +2 -2
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{CzeYkLYB.js → ulBFON_C.js} +2 -2
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/{Cfqx1Qun.js → wQVh1CoA.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/{app.D6-I5TpK.js → app.Dr7t0z2J.js} +2 -2
- claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/start.BGhZHUS3.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/{0.m1gL8KXf.js → 0.RgBboRvH.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/{1.CgNOuw-d.js → 1.DG-KkbDf.js} +1 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/2.D_jnf-x6.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/version.json +1 -1
- claude_mpm/dashboard/static/svelte-build/index.html +9 -9
- claude_mpm/experimental/cli_enhancements.py +2 -1
- claude_mpm/hooks/claude_hooks/INTEGRATION_EXAMPLE.md +243 -0
- claude_mpm/hooks/claude_hooks/README_AUTO_PAUSE.md +403 -0
- claude_mpm/hooks/claude_hooks/auto_pause_handler.py +486 -0
- claude_mpm/hooks/claude_hooks/event_handlers.py +250 -11
- claude_mpm/hooks/claude_hooks/hook_handler.py +106 -89
- claude_mpm/hooks/claude_hooks/hook_wrapper.sh +6 -11
- claude_mpm/hooks/claude_hooks/installer.py +69 -5
- claude_mpm/hooks/claude_hooks/response_tracking.py +3 -1
- claude_mpm/hooks/claude_hooks/services/connection_manager.py +20 -0
- claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +14 -77
- claude_mpm/hooks/claude_hooks/services/subagent_processor.py +30 -6
- claude_mpm/hooks/session_resume_hook.py +85 -1
- claude_mpm/init.py +1 -1
- claude_mpm/scripts/claude-hook-handler.sh +36 -10
- claude_mpm/services/agents/agent_recommendation_service.py +8 -8
- claude_mpm/services/agents/cache_git_manager.py +1 -1
- claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +3 -0
- claude_mpm/services/agents/loading/framework_agent_loader.py +75 -2
- claude_mpm/services/cli/__init__.py +3 -0
- claude_mpm/services/cli/incremental_pause_manager.py +561 -0
- claude_mpm/services/cli/session_resume_helper.py +10 -2
- claude_mpm/services/delegation_detector.py +175 -0
- claude_mpm/services/diagnostics/checks/agent_sources_check.py +30 -0
- claude_mpm/services/diagnostics/checks/configuration_check.py +24 -0
- claude_mpm/services/diagnostics/checks/installation_check.py +22 -0
- claude_mpm/services/diagnostics/checks/mcp_services_check.py +23 -0
- claude_mpm/services/diagnostics/doctor_reporter.py +31 -1
- claude_mpm/services/diagnostics/models.py +14 -1
- claude_mpm/services/event_log.py +325 -0
- claude_mpm/services/infrastructure/__init__.py +4 -0
- claude_mpm/services/infrastructure/context_usage_tracker.py +291 -0
- claude_mpm/services/infrastructure/resume_log_generator.py +24 -5
- claude_mpm/services/monitor/daemon_manager.py +15 -4
- claude_mpm/services/monitor/management/lifecycle.py +8 -2
- claude_mpm/services/monitor/server.py +106 -16
- claude_mpm/services/pm_skills_deployer.py +259 -87
- claude_mpm/services/skills/git_skill_source_manager.py +51 -2
- claude_mpm/services/skills/selective_skill_deployer.py +114 -16
- claude_mpm/services/skills/skill_discovery_service.py +57 -3
- claude_mpm/services/socketio/handlers/hook.py +14 -7
- claude_mpm/services/socketio/server/main.py +12 -4
- claude_mpm/skills/bundled/pm/mpm/SKILL.md +38 -0
- claude_mpm/skills/bundled/pm/mpm-agent-update-workflow/SKILL.md +75 -0
- claude_mpm/skills/bundled/pm/mpm-circuit-breaker-enforcement/SKILL.md +476 -0
- claude_mpm/skills/bundled/pm/mpm-config/SKILL.md +29 -0
- claude_mpm/skills/bundled/pm/mpm-doctor/SKILL.md +53 -0
- claude_mpm/skills/bundled/pm/mpm-help/SKILL.md +35 -0
- claude_mpm/skills/bundled/pm/mpm-init/SKILL.md +125 -0
- claude_mpm/skills/bundled/pm/mpm-monitor/SKILL.md +32 -0
- claude_mpm/skills/bundled/pm/mpm-organize/SKILL.md +121 -0
- claude_mpm/skills/bundled/pm/mpm-postmortem/SKILL.md +22 -0
- claude_mpm/skills/bundled/pm/mpm-session-management/SKILL.md +312 -0
- claude_mpm/skills/bundled/pm/mpm-session-resume/SKILL.md +31 -0
- claude_mpm/skills/bundled/pm/mpm-status/SKILL.md +37 -0
- claude_mpm/skills/bundled/pm/{pm-teaching-mode → mpm-teaching-mode}/SKILL.md +2 -2
- claude_mpm/skills/bundled/pm/mpm-ticket-view/SKILL.md +110 -0
- claude_mpm/skills/bundled/pm/mpm-tool-usage-guide/SKILL.md +386 -0
- claude_mpm/skills/bundled/pm/mpm-version/SKILL.md +21 -0
- claude_mpm/skills/skill_manager.py +4 -4
- claude_mpm-5.6.1.dist-info/METADATA +391 -0
- {claude_mpm-5.4.85.dist-info → claude_mpm-5.6.1.dist-info}/RECORD +244 -145
- claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/0.DWzvg0-y.css +0 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/2.ThTw9_ym.css +0 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/4TdZjIqw.js +0 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/5shd3_w0.js +0 -24
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BKjSRqUr.js +0 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Da0KfYnO.js +0 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Dfy6j1xT.js +0 -323
- claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/start.NWzMBYRp.js +0 -1
- claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/2.C0GcWctS.js +0 -1
- claude_mpm-5.4.85.dist-info/METADATA +0 -1023
- /claude_mpm/skills/bundled/pm/{pm-bug-reporting/pm-bug-reporting.md → mpm-bug-reporting/SKILL.md} +0 -0
- /claude_mpm/skills/bundled/pm/{pm-delegation-patterns → mpm-delegation-patterns}/SKILL.md +0 -0
- /claude_mpm/skills/bundled/pm/{pm-git-file-tracking → mpm-git-file-tracking}/SKILL.md +0 -0
- /claude_mpm/skills/bundled/pm/{pm-pr-workflow → mpm-pr-workflow}/SKILL.md +0 -0
- /claude_mpm/skills/bundled/pm/{pm-ticketing-integration → mpm-ticketing-integration}/SKILL.md +0 -0
- /claude_mpm/skills/bundled/pm/{pm-verification-protocols → mpm-verification-protocols}/SKILL.md +0 -0
- {claude_mpm-5.4.85.dist-info → claude_mpm-5.6.1.dist-info}/WHEEL +0 -0
- {claude_mpm-5.4.85.dist-info → claude_mpm-5.6.1.dist-info}/entry_points.txt +0 -0
- {claude_mpm-5.4.85.dist-info → claude_mpm-5.6.1.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-5.4.85.dist-info → claude_mpm-5.6.1.dist-info}/licenses/LICENSE-FAQ.md +0 -0
- {claude_mpm-5.4.85.dist-info → claude_mpm-5.6.1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mpm-ticket-view
|
|
3
|
+
description: Orchestrate ticketing agent for project management workflows
|
|
4
|
+
user-invocable: true
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
category: mpm-command
|
|
7
|
+
tags: [mpm-command, tickets, pm-recommended]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# /mpm-ticket
|
|
11
|
+
|
|
12
|
+
High-level ticketing workflows delegating to ticketing agent.
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
```
|
|
16
|
+
/mpm-ticket <subcommand> [options]
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**CRITICAL:** PM delegates ALL ticketing operations to ticketing agent. PM NEVER uses MCP tools directly.
|
|
20
|
+
|
|
21
|
+
## Subcommands
|
|
22
|
+
|
|
23
|
+
### /mpm-ticket organize
|
|
24
|
+
Review, transition states, update priorities, identify stale tickets.
|
|
25
|
+
|
|
26
|
+
**MCP Tools (ticketing agent uses):**
|
|
27
|
+
- ticket_list, ticket_read, ticket_comment
|
|
28
|
+
- ticket_transition, ticket_update
|
|
29
|
+
- ticket_find_stale
|
|
30
|
+
|
|
31
|
+
**Output:** Tickets transitioned, priorities updated, stale tickets identified, next actions.
|
|
32
|
+
|
|
33
|
+
### /mpm-ticket proceed
|
|
34
|
+
Analyze project board and recommend next actionable steps.
|
|
35
|
+
|
|
36
|
+
**MCP Tools (ticketing agent uses):**
|
|
37
|
+
- project_status, ticket_list, ticket_search
|
|
38
|
+
- epic_issues, get_available_transitions
|
|
39
|
+
|
|
40
|
+
**Output:** Project health, recommended next actions (top 3), blockers requiring attention.
|
|
41
|
+
|
|
42
|
+
### /mpm-ticket status
|
|
43
|
+
Generate comprehensive status report covering work, tickets, project health.
|
|
44
|
+
|
|
45
|
+
**MCP Tools (ticketing agent uses):**
|
|
46
|
+
- project_status, ticket_list, ticket_search
|
|
47
|
+
- ticket_find_stale, get_my_tickets
|
|
48
|
+
|
|
49
|
+
**Output:** Health metrics, ticket counts, high-priority work, blockers, recent activity, risk assessment.
|
|
50
|
+
|
|
51
|
+
### /mpm-ticket update
|
|
52
|
+
Create project status update (Linear ProjectUpdate).
|
|
53
|
+
|
|
54
|
+
**MCP Tools (ticketing agent uses):**
|
|
55
|
+
- project_status, project_update_create
|
|
56
|
+
- project_update_list, ticket_list
|
|
57
|
+
|
|
58
|
+
**Output:** Update ID, health status, accomplishments, metrics, risks, next sprint focus, published link.
|
|
59
|
+
|
|
60
|
+
### /mpm-ticket project <url>
|
|
61
|
+
Set project URL for context (Linear/GitHub/JIRA).
|
|
62
|
+
|
|
63
|
+
**MCP Tools (ticketing agent uses):**
|
|
64
|
+
- config_set_default_project, epic_get, config_get
|
|
65
|
+
|
|
66
|
+
**Output:** Project context configured, platform/ID/name, access verified, summary.
|
|
67
|
+
|
|
68
|
+
## Delegation Pattern
|
|
69
|
+
|
|
70
|
+
**WRONG ❌:**
|
|
71
|
+
```
|
|
72
|
+
# PM directly using MCP tools
|
|
73
|
+
result = mcp__mcp-ticketer__ticket_list()
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**CORRECT ✅:**
|
|
77
|
+
```
|
|
78
|
+
# PM delegates to ticketing agent
|
|
79
|
+
PM: "I'll have ticketing organize tickets..."
|
|
80
|
+
[PM constructs delegation prompt]
|
|
81
|
+
[Ticketing agent uses MCP tools]
|
|
82
|
+
PM: [Presents results]
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Fallback Strategy
|
|
86
|
+
|
|
87
|
+
If mcp-ticketer unavailable, ticketing agent falls back to aitrackdown CLI:
|
|
88
|
+
```bash
|
|
89
|
+
aitrackdown status tasks
|
|
90
|
+
aitrackdown show TICKET-123
|
|
91
|
+
aitrackdown transition TICKET-123 done
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**PM still delegates** - ticketing agent handles CLI fallback internally.
|
|
95
|
+
|
|
96
|
+
## Example Workflows
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# Organize and analyze
|
|
100
|
+
/mpm-ticket organize # Clean up board
|
|
101
|
+
/mpm-ticket proceed # Get next steps
|
|
102
|
+
|
|
103
|
+
# Weekly update
|
|
104
|
+
/mpm-ticket update # Create status update
|
|
105
|
+
|
|
106
|
+
# Project setup
|
|
107
|
+
/mpm-ticket project https://linear.app/team/project/abc-123
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
See docs/commands/ticket.md for comprehensive documentation.
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
# MPM Tool Usage Guide
|
|
2
|
+
|
|
3
|
+
Detailed tool usage patterns and examples for PM agents.
|
|
4
|
+
|
|
5
|
+
## Task Tool - Detailed Examples
|
|
6
|
+
|
|
7
|
+
### Example 1: Delegating Implementation
|
|
8
|
+
```
|
|
9
|
+
Task:
|
|
10
|
+
agent: "engineer"
|
|
11
|
+
task: "Implement user authentication with OAuth2"
|
|
12
|
+
context: |
|
|
13
|
+
User requested secure login feature.
|
|
14
|
+
Research agent identified Auth0 as recommended approach.
|
|
15
|
+
Existing codebase uses Express.js for backend.
|
|
16
|
+
acceptance_criteria:
|
|
17
|
+
- User can log in with email/password
|
|
18
|
+
- OAuth2 tokens stored securely
|
|
19
|
+
- Session management implemented
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Example 2: Delegating Verification
|
|
23
|
+
```
|
|
24
|
+
Task:
|
|
25
|
+
agent: "qa"
|
|
26
|
+
task: "Verify deployment at https://app.example.com"
|
|
27
|
+
acceptance_criteria:
|
|
28
|
+
- Homepage loads successfully
|
|
29
|
+
- Login form is accessible
|
|
30
|
+
- No console errors in browser
|
|
31
|
+
- API health endpoint returns 200
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Example 3: Delegating Investigation
|
|
35
|
+
```
|
|
36
|
+
Task:
|
|
37
|
+
agent: "research"
|
|
38
|
+
task: "Investigate authentication options for Express.js application"
|
|
39
|
+
context: |
|
|
40
|
+
User wants secure authentication.
|
|
41
|
+
Codebase is Express.js + PostgreSQL.
|
|
42
|
+
requirements:
|
|
43
|
+
- Compare OAuth2 vs JWT approaches
|
|
44
|
+
- Recommend specific libraries
|
|
45
|
+
- Identify security best practices
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Common Mistakes to Avoid
|
|
49
|
+
- Not providing context (agent lacks background)
|
|
50
|
+
- Vague task description ("fix the thing")
|
|
51
|
+
- No acceptance criteria (agent doesn't know completion criteria)
|
|
52
|
+
|
|
53
|
+
## TodoWrite Tool - Progress Tracking
|
|
54
|
+
|
|
55
|
+
**Purpose**: Track delegated tasks during the current session
|
|
56
|
+
|
|
57
|
+
**When to Use**: After delegating work to maintain visibility of progress
|
|
58
|
+
|
|
59
|
+
**States**:
|
|
60
|
+
- `pending`: Task not yet started
|
|
61
|
+
- `in_progress`: Currently being worked on (max 1 at a time)
|
|
62
|
+
- `completed`: Finished successfully
|
|
63
|
+
- `ERROR - Attempt X/3`: Failed, attempting retry
|
|
64
|
+
- `BLOCKED`: Cannot proceed without user input
|
|
65
|
+
|
|
66
|
+
**Example**:
|
|
67
|
+
```
|
|
68
|
+
TodoWrite:
|
|
69
|
+
todos:
|
|
70
|
+
- content: "Research authentication approaches"
|
|
71
|
+
status: "completed"
|
|
72
|
+
activeForm: "Researching authentication approaches"
|
|
73
|
+
- content: "Implement OAuth2 with Auth0"
|
|
74
|
+
status: "in_progress"
|
|
75
|
+
activeForm: "Implementing OAuth2 with Auth0"
|
|
76
|
+
- content: "Verify authentication flow"
|
|
77
|
+
status: "pending"
|
|
78
|
+
activeForm: "Verifying authentication flow"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Read Tool Usage - Strict Hierarchy
|
|
82
|
+
|
|
83
|
+
**ABSOLUTE PROHIBITION**: PM must NEVER read source code files directly.
|
|
84
|
+
|
|
85
|
+
**Source code extensions** (ALWAYS delegate to Research):
|
|
86
|
+
`.py`, `.js`, `.ts`, `.tsx`, `.jsx`, `.go`, `.rs`, `.java`, `.rb`, `.php`, `.swift`, `.kt`, `.c`, `.cpp`, `.h`
|
|
87
|
+
|
|
88
|
+
**SINGLE EXCEPTION**: ONE config/settings file for delegation context only.
|
|
89
|
+
- Allowed: `package.json`, `pyproject.toml`, `settings.json`, `.env.example`
|
|
90
|
+
- NOT allowed: Any file with source code extensions above
|
|
91
|
+
|
|
92
|
+
**Pre-Flight Check (MANDATORY before ANY Read call)**:
|
|
93
|
+
1. Is this a source code file? → STOP, delegate to Research
|
|
94
|
+
2. Have I already used Read once this session? → STOP, delegate to Research
|
|
95
|
+
3. Does my task contain investigation keywords? → STOP, delegate to Research
|
|
96
|
+
|
|
97
|
+
**Investigation Keywords** (trigger delegation, not Read):
|
|
98
|
+
- check, look, see, find, search, analyze, investigate, debug
|
|
99
|
+
- understand, explore, examine, review, inspect, trace
|
|
100
|
+
- "what does", "how does", "why does", "where is"
|
|
101
|
+
|
|
102
|
+
**Rules**:
|
|
103
|
+
- ✅ Allowed: ONE file (`package.json`, `pyproject.toml`, `settings.json`, `.env.example`)
|
|
104
|
+
- ❌ NEVER: Source code (`.py`, `.js`, `.ts`, `.tsx`, `.go`, `.rs`)
|
|
105
|
+
- ❌ NEVER: Multiple files OR investigation keywords ("check", "analyze", "debug", "investigate")
|
|
106
|
+
- **Rationale**: Reading leads to investigating. PM must delegate, not do.
|
|
107
|
+
|
|
108
|
+
## Bash Tool Usage
|
|
109
|
+
|
|
110
|
+
**Purpose**: Navigation and git file tracking ONLY
|
|
111
|
+
|
|
112
|
+
**Allowed Uses**:
|
|
113
|
+
- Navigation: `ls`, `pwd`, `cd` (understanding project structure)
|
|
114
|
+
- Git tracking: `git status`, `git add`, `git commit` (file management)
|
|
115
|
+
|
|
116
|
+
**FORBIDDEN Uses** (MUST delegate instead):
|
|
117
|
+
- ❌ **Verification commands** (`curl`, `lsof`, `ps`, `wget`, `nc`) → Delegate to local-ops or QA
|
|
118
|
+
- ❌ **Browser testing tools** → Delegate to web-qa (use Playwright via web-qa agent)
|
|
119
|
+
- ❌ **Implementation commands** (`npm start`, `docker run`, `pm2 start`) → Delegate to ops agent
|
|
120
|
+
- ❌ **File modification** (`sed`, `awk`, `echo >`, `>>`, `tee`) → Delegate to engineer
|
|
121
|
+
- ❌ **Investigation** (`grep`, `find`, `cat`, `head`, `tail`) → Delegate to research (or use vector search)
|
|
122
|
+
|
|
123
|
+
**Why File Modification is Forbidden:**
|
|
124
|
+
- `sed -i 's/old/new/' file` = Edit operation → Delegate to Engineer
|
|
125
|
+
- `echo "content" > file` = Write operation → Delegate to Engineer
|
|
126
|
+
- `awk '{print $1}' file > output` = File creation → Delegate to Engineer
|
|
127
|
+
- PM uses Edit/Write tools OR delegates, NEVER uses Bash for file changes
|
|
128
|
+
|
|
129
|
+
**Example Violation:**
|
|
130
|
+
```
|
|
131
|
+
❌ WRONG: PM uses Bash for version bump
|
|
132
|
+
PM: Bash(sed -i 's/version = "1.0"/version = "1.1"/' pyproject.toml)
|
|
133
|
+
PM: Bash(echo '1.1' > VERSION)
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Correct Pattern:**
|
|
137
|
+
```
|
|
138
|
+
✅ CORRECT: PM delegates to local-ops
|
|
139
|
+
Task:
|
|
140
|
+
agent: "local-ops"
|
|
141
|
+
task: "Bump version from 1.0 to 1.1"
|
|
142
|
+
acceptance_criteria:
|
|
143
|
+
- Update pyproject.toml version field
|
|
144
|
+
- Update VERSION file
|
|
145
|
+
- Commit version bump with standard message
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Enforcement:** Circuit Breaker #12 detects:
|
|
149
|
+
- PM using sed/awk/echo for file modification
|
|
150
|
+
- PM using Bash with redirect operators (>, >>)
|
|
151
|
+
- PM implementing changes via Bash instead of delegation
|
|
152
|
+
|
|
153
|
+
**Violation Levels:**
|
|
154
|
+
- Violation #1: ⚠️ WARNING - Must delegate implementation
|
|
155
|
+
- Violation #2: 🚨 ESCALATION - Session flagged for review
|
|
156
|
+
- Violation #3: ❌ FAILURE - Session non-compliant
|
|
157
|
+
|
|
158
|
+
**Example - Verification Delegation (CORRECT)**:
|
|
159
|
+
```
|
|
160
|
+
❌ WRONG: PM runs curl/lsof directly
|
|
161
|
+
PM: curl http://localhost:3000 # VIOLATION
|
|
162
|
+
|
|
163
|
+
✅ CORRECT: PM delegates to local-ops
|
|
164
|
+
Task:
|
|
165
|
+
agent: "local-ops"
|
|
166
|
+
task: "Verify app is running on localhost:3000"
|
|
167
|
+
acceptance_criteria:
|
|
168
|
+
- Check port is listening (lsof -i :3000)
|
|
169
|
+
- Test HTTP endpoint (curl http://localhost:3000)
|
|
170
|
+
- Check for errors in logs
|
|
171
|
+
- Confirm expected response
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Example - Git File Tracking (After Engineer Creates Files)**:
|
|
175
|
+
```bash
|
|
176
|
+
# Check what files were created
|
|
177
|
+
git status
|
|
178
|
+
|
|
179
|
+
# Track the files
|
|
180
|
+
git add src/auth/oauth2.js src/routes/auth.js
|
|
181
|
+
|
|
182
|
+
# Commit with context
|
|
183
|
+
git commit -m "feat: add OAuth2 authentication
|
|
184
|
+
|
|
185
|
+
- Created OAuth2 authentication module
|
|
186
|
+
- Added authentication routes
|
|
187
|
+
- Part of user login feature
|
|
188
|
+
|
|
189
|
+
🤖 Generated with [Claude MPM](https://github.com/bobmatnyc/claude-mpm)
|
|
190
|
+
|
|
191
|
+
Co-Authored-By: Claude <noreply@anthropic.com>"
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Implementation commands require delegation**:
|
|
195
|
+
- `npm start`, `docker run`, `pm2 start` → Delegate to ops agent
|
|
196
|
+
- `npm install`, `yarn add` → Delegate to engineer
|
|
197
|
+
- Investigation commands (`grep`, `find`, `cat`) → Delegate to research
|
|
198
|
+
|
|
199
|
+
## Vector Search Tools
|
|
200
|
+
|
|
201
|
+
**Purpose**: Quick semantic code search BEFORE delegation (helps provide better context)
|
|
202
|
+
|
|
203
|
+
**When to Use**: Need to identify relevant code areas before delegating to Engineer
|
|
204
|
+
|
|
205
|
+
**MANDATORY**: Before using Read or delegating to Research, PM MUST attempt mcp-vector-search if available.
|
|
206
|
+
|
|
207
|
+
**Detection Priority:**
|
|
208
|
+
1. Check if mcp-vector-search tools available (look for mcp__mcp-vector-search__*)
|
|
209
|
+
2. If available: Use semantic search FIRST
|
|
210
|
+
3. If unavailable OR insufficient results: THEN delegate to Research
|
|
211
|
+
4. Read tool limited to ONE config file only (existing rule)
|
|
212
|
+
|
|
213
|
+
**Why This Matters:**
|
|
214
|
+
- Vector search provides instant semantic context without file loading
|
|
215
|
+
- Reduces need for Research delegation in simple cases
|
|
216
|
+
- PM gets quick context for better delegation instructions
|
|
217
|
+
- Prevents premature Read/Grep usage
|
|
218
|
+
|
|
219
|
+
**Correct Workflow:**
|
|
220
|
+
|
|
221
|
+
✅ STEP 1: Check vector search availability
|
|
222
|
+
```
|
|
223
|
+
available_tools = [check for mcp__mcp-vector-search__* tools]
|
|
224
|
+
if vector_search_available:
|
|
225
|
+
# Attempt vector search first
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
✅ STEP 2: Use vector search for quick context
|
|
229
|
+
```
|
|
230
|
+
mcp__mcp-vector-search__search_code:
|
|
231
|
+
query: "authentication login user session"
|
|
232
|
+
file_extensions: [".js", ".ts"]
|
|
233
|
+
limit: 5
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
✅ STEP 3: Evaluate results
|
|
237
|
+
- If sufficient context found: Use for delegation instructions
|
|
238
|
+
- If insufficient: Delegate to Research for deep investigation
|
|
239
|
+
|
|
240
|
+
✅ STEP 4: Delegate with enhanced context
|
|
241
|
+
```
|
|
242
|
+
Task:
|
|
243
|
+
agent: "engineer"
|
|
244
|
+
task: "Add OAuth2 authentication"
|
|
245
|
+
context: |
|
|
246
|
+
Vector search found existing auth in src/auth/local.js.
|
|
247
|
+
Session management in src/middleware/session.js.
|
|
248
|
+
Add OAuth2 as alternative method.
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
**Anti-Pattern (FORBIDDEN):**
|
|
252
|
+
|
|
253
|
+
❌ WRONG: PM uses Grep/Read without checking vector search
|
|
254
|
+
```
|
|
255
|
+
PM: *Uses Grep to find auth files* # VIOLATION! No vector search attempt
|
|
256
|
+
PM: *Reads 5 files to understand auth* # VIOLATION! Skipped vector search
|
|
257
|
+
PM: *Delegates to Engineer with manual findings* # VIOLATION! Manual investigation
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
**Enforcement:** Circuit Breaker #10 detects:
|
|
261
|
+
- Grep/Read usage without prior mcp-vector-search attempt (if tools available)
|
|
262
|
+
- Multiple Read calls suggesting investigation (should use vector search OR delegate)
|
|
263
|
+
- Investigation keywords ("check", "find", "analyze") without vector search
|
|
264
|
+
|
|
265
|
+
**Violation Levels:**
|
|
266
|
+
- Violation #1: ⚠️ WARNING - Must use vector search first
|
|
267
|
+
- Violation #2: 🚨 ESCALATION - Session flagged for review
|
|
268
|
+
- Violation #3: ❌ FAILURE - Session non-compliant
|
|
269
|
+
|
|
270
|
+
**Example - Using Vector Search Before Delegation**:
|
|
271
|
+
```
|
|
272
|
+
# Before delegating OAuth2 implementation, find existing auth code:
|
|
273
|
+
mcp__mcp-vector-search__search_code:
|
|
274
|
+
query: "authentication login user session"
|
|
275
|
+
file_extensions: [".js", ".ts"]
|
|
276
|
+
limit: 5
|
|
277
|
+
|
|
278
|
+
# Results show existing auth files, then delegate with better context:
|
|
279
|
+
Task:
|
|
280
|
+
agent: "engineer"
|
|
281
|
+
task: "Add OAuth2 authentication alongside existing local auth"
|
|
282
|
+
context: |
|
|
283
|
+
Existing authentication in src/auth/local.js (email/password).
|
|
284
|
+
Session management in src/middleware/session.js.
|
|
285
|
+
Add OAuth2 as alternative auth method, integrate with existing session.
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**When NOT to Use**: Deep investigation requires Research agent delegation.
|
|
289
|
+
|
|
290
|
+
## FORBIDDEN MCP Tools for PM (CRITICAL)
|
|
291
|
+
|
|
292
|
+
**PM MUST NEVER use these tools directly - ALWAYS delegate instead:**
|
|
293
|
+
|
|
294
|
+
| Tool Category | Forbidden Tools | Delegate To | Reason |
|
|
295
|
+
|---------------|----------------|-------------|---------|
|
|
296
|
+
| **Code Modification** | Edit, Write | engineer | Implementation is specialist domain |
|
|
297
|
+
| **Investigation** | Grep (>1 use), Glob (investigation) | research | Deep investigation requires specialist |
|
|
298
|
+
| **Ticketing** | `mcp__mcp-ticketer__*`, WebFetch on ticket URLs | ticketing | MCP-first routing, error handling |
|
|
299
|
+
| **Browser** | `mcp__chrome-devtools__*` (ALL browser tools) | web-qa | Playwright expertise, test patterns |
|
|
300
|
+
|
|
301
|
+
**Code Modification Enforcement:**
|
|
302
|
+
- Edit: PM NEVER modifies existing files → Delegate to Engineer
|
|
303
|
+
- Write: PM NEVER creates new files → Delegate to Engineer
|
|
304
|
+
- Exception: Git commit messages (allowed for file tracking)
|
|
305
|
+
|
|
306
|
+
See Circuit Breaker #1 for enforcement.
|
|
307
|
+
|
|
308
|
+
## Browser State Verification (MANDATORY)
|
|
309
|
+
|
|
310
|
+
**CRITICAL RULE**: PM MUST NOT assert browser/UI state without Chrome DevTools MCP evidence.
|
|
311
|
+
|
|
312
|
+
When verifying local server UI or browser state, PM MUST:
|
|
313
|
+
1. Delegate to web-qa agent
|
|
314
|
+
2. web-qa MUST use Chrome DevTools MCP tools (NOT assumptions)
|
|
315
|
+
3. Collect actual evidence (snapshots, screenshots, console logs)
|
|
316
|
+
|
|
317
|
+
**Chrome DevTools MCP Tools Available** (via web-qa agent only):
|
|
318
|
+
- `mcp__chrome-devtools__navigate_page` - Navigate to URL
|
|
319
|
+
- `mcp__chrome-devtools__take_snapshot` - Get page content/DOM state
|
|
320
|
+
- `mcp__chrome-devtools__take_screenshot` - Visual verification
|
|
321
|
+
- `mcp__chrome-devtools__list_console_messages` - Check for errors
|
|
322
|
+
- `mcp__chrome-devtools__list_network_requests` - Verify API calls
|
|
323
|
+
|
|
324
|
+
**Required Evidence for UI Verification**:
|
|
325
|
+
```
|
|
326
|
+
✅ CORRECT: web-qa verified with Chrome DevTools:
|
|
327
|
+
- navigate_page: http://localhost:3000 → HTTP 200
|
|
328
|
+
- take_snapshot: Page shows login form with email/password fields
|
|
329
|
+
- take_screenshot: [screenshot shows rendered UI]
|
|
330
|
+
- list_console_messages: No errors found
|
|
331
|
+
- list_network_requests: GET /api/config → 200 OK
|
|
332
|
+
|
|
333
|
+
❌ WRONG: "The page loads correctly at localhost:3000"
|
|
334
|
+
(No Chrome DevTools evidence - CIRCUIT BREAKER VIOLATION)
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Local Server UI Verification Template**:
|
|
338
|
+
```
|
|
339
|
+
Task:
|
|
340
|
+
agent: "web-qa"
|
|
341
|
+
task: "Verify local server UI at http://localhost:3000"
|
|
342
|
+
acceptance_criteria:
|
|
343
|
+
- Navigate to page (mcp__chrome-devtools__navigate_page)
|
|
344
|
+
- Take page snapshot (mcp__chrome-devtools__take_snapshot)
|
|
345
|
+
- Take screenshot (mcp__chrome-devtools__take_screenshot)
|
|
346
|
+
- Check console for errors (mcp__chrome-devtools__list_console_messages)
|
|
347
|
+
- Verify network requests (mcp__chrome-devtools__list_network_requests)
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
See Circuit Breaker #6 for enforcement on browser state claims without evidence.
|
|
351
|
+
|
|
352
|
+
## Localhost Deployment Verification (CRITICAL)
|
|
353
|
+
|
|
354
|
+
**ABSOLUTE RULE**: PM NEVER tells user to "go to", "open", "check", or "navigate to" a localhost URL.
|
|
355
|
+
|
|
356
|
+
**Anti-Pattern Examples (CIRCUIT BREAKER VIOLATION)**:
|
|
357
|
+
```
|
|
358
|
+
❌ "Go to http://localhost:3000/dashboard"
|
|
359
|
+
❌ "Open http://localhost:3300 in your browser"
|
|
360
|
+
❌ "Make sure you're accessing via http://localhost:3300"
|
|
361
|
+
❌ "Navigate to the dashboard at localhost:8080"
|
|
362
|
+
❌ "Check the page at http://localhost:5000"
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
**Correct Pattern - Always Delegate to web-qa**:
|
|
366
|
+
```
|
|
367
|
+
Task:
|
|
368
|
+
agent: "web-qa"
|
|
369
|
+
task: "Verify localhost deployment at http://localhost:3300/dashboard"
|
|
370
|
+
acceptance_criteria:
|
|
371
|
+
- Navigate to URL (mcp__chrome-devtools__navigate_page)
|
|
372
|
+
- Take snapshot to verify content loads (mcp__chrome-devtools__take_snapshot)
|
|
373
|
+
- Take screenshot as evidence (mcp__chrome-devtools__take_screenshot)
|
|
374
|
+
- Check console for JavaScript errors (mcp__chrome-devtools__list_console_messages)
|
|
375
|
+
- Report actual page content, not assumptions
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
**Evidence Required Before Claiming Deployment Success**:
|
|
379
|
+
- Actual page snapshot content (not "it should work")
|
|
380
|
+
- Screenshot showing rendered UI
|
|
381
|
+
- Console error check results
|
|
382
|
+
- HTTP response status codes
|
|
383
|
+
|
|
384
|
+
**Violation Consequences**:
|
|
385
|
+
- Telling user to check localhost = Circuit Breaker #9 violation
|
|
386
|
+
- Claiming deployment works without web-qa evidence = Circuit Breaker #3 violation (Unverified Assertions)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mpm-version
|
|
3
|
+
description: Show version information
|
|
4
|
+
user-invocable: true
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
category: mpm-command
|
|
7
|
+
tags: [mpm-command, system, pm-optional]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# /mpm-version
|
|
11
|
+
|
|
12
|
+
Display version information for MPM, agents, and skills.
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
```
|
|
16
|
+
/mpm-version
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Shows project version, build number, all agents (by tier), all skills (by source).
|
|
20
|
+
|
|
21
|
+
See docs/commands/version.md for details.
|
|
@@ -61,10 +61,10 @@ class SkillManager:
|
|
|
61
61
|
def _get_pm_skills(
|
|
62
62
|
self, project_dir: Optional[Path] = None
|
|
63
63
|
) -> List[Dict[str, Any]]:
|
|
64
|
-
"""Load PM skills from project's .claude
|
|
64
|
+
"""Load PM skills from project's .claude/skills/ directory.
|
|
65
65
|
|
|
66
|
-
PM skills are special
|
|
67
|
-
NOT fetched from the skills repository.
|
|
66
|
+
PM skills are special framework management skills (mpm-*) deployed
|
|
67
|
+
per-project to .claude/skills/, NOT fetched from the skills repository.
|
|
68
68
|
|
|
69
69
|
Args:
|
|
70
70
|
project_dir: Project directory. Defaults to current working directory.
|
|
@@ -75,7 +75,7 @@ class SkillManager:
|
|
|
75
75
|
if project_dir is None:
|
|
76
76
|
project_dir = Path.cwd()
|
|
77
77
|
|
|
78
|
-
pm_skills_dir = project_dir / ".claude
|
|
78
|
+
pm_skills_dir = project_dir / ".claude" / "skills"
|
|
79
79
|
|
|
80
80
|
if not pm_skills_dir.exists():
|
|
81
81
|
logger.debug("PM skills directory not found")
|