slack-mpm 0.1.1__tar.gz
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.
- slack_mpm-0.1.1/.claude/agents/.dependency_cache +13 -0
- slack_mpm-0.1.1/.claude/agents/.mpm_deployment_state +11 -0
- slack_mpm-0.1.1/.claude/settings.local.json +128 -0
- slack_mpm-0.1.1/.claude/skills/mpm/SKILL.md +147 -0
- slack_mpm-0.1.1/.claude/skills/mpm-agent-update-workflow/SKILL.md +75 -0
- slack_mpm-0.1.1/.claude/skills/mpm-bug-reporting/SKILL.md +269 -0
- slack_mpm-0.1.1/.claude/skills/mpm-circuit-breaker-enforcement/SKILL.md +476 -0
- slack_mpm-0.1.1/.claude/skills/mpm-config/SKILL.md +29 -0
- slack_mpm-0.1.1/.claude/skills/mpm-delegation-patterns/SKILL.md +167 -0
- slack_mpm-0.1.1/.claude/skills/mpm-doctor/SKILL.md +53 -0
- slack_mpm-0.1.1/.claude/skills/mpm-git-file-tracking/SKILL.md +113 -0
- slack_mpm-0.1.1/.claude/skills/mpm-help/SKILL.md +35 -0
- slack_mpm-0.1.1/.claude/skills/mpm-init/SKILL.md +125 -0
- slack_mpm-0.1.1/.claude/skills/mpm-message/SKILL.md +181 -0
- slack_mpm-0.1.1/.claude/skills/mpm-postmortem/SKILL.md +22 -0
- slack_mpm-0.1.1/.claude/skills/mpm-pr-workflow/SKILL.md +124 -0
- slack_mpm-0.1.1/.claude/skills/mpm-session-management/SKILL.md +312 -0
- slack_mpm-0.1.1/.claude/skills/mpm-session-pause/SKILL.md +171 -0
- slack_mpm-0.1.1/.claude/skills/mpm-session-resume/SKILL.md +32 -0
- slack_mpm-0.1.1/.claude/skills/mpm-status/SKILL.md +37 -0
- slack_mpm-0.1.1/.claude/skills/mpm-teaching-mode/SKILL.md +657 -0
- slack_mpm-0.1.1/.claude/skills/mpm-ticket-view/SKILL.md +110 -0
- slack_mpm-0.1.1/.claude/skills/mpm-ticketing-integration/SKILL.md +154 -0
- slack_mpm-0.1.1/.claude/skills/mpm-tool-usage-guide/SKILL.md +386 -0
- slack_mpm-0.1.1/.claude/skills/mpm-verification-protocols/SKILL.md +198 -0
- slack_mpm-0.1.1/.claude-mpm/.gitignore +4 -0
- slack_mpm-0.1.1/.claude-mpm/config/project.json +11 -0
- slack_mpm-0.1.1/.claude-mpm/logs/prompts/system_prompt_20260304_162333_807.md +1442 -0
- slack_mpm-0.1.1/.claude-mpm/logs/prompts/system_prompt_20260305_142723_663.md +1442 -0
- slack_mpm-0.1.1/.claude-mpm/logs/prompts/system_prompt_20260306_055240_916.md +1442 -0
- slack_mpm-0.1.1/.claude-mpm/logs/prompts/system_prompt_20260306_055336_206.md +1442 -0
- slack_mpm-0.1.1/.claude-mpm/logs/prompts/system_prompt_20260306_070939_719.md +1442 -0
- slack_mpm-0.1.1/.claude-mpm/logs/prompts/system_prompt_20260306_132519_517.md +1442 -0
- slack_mpm-0.1.1/.claude-mpm/message_check_state.json +5 -0
- slack_mpm-0.1.1/.claude-mpm/pm_skills_registry.yaml +91 -0
- slack_mpm-0.1.1/.env.local.example +15 -0
- slack_mpm-0.1.1/.gitignore +19 -0
- slack_mpm-0.1.1/.pre-commit-config.yaml +118 -0
- slack_mpm-0.1.1/.secrets.baseline +345 -0
- slack_mpm-0.1.1/CLAUDE.md +85 -0
- slack_mpm-0.1.1/Makefile +447 -0
- slack_mpm-0.1.1/PKG-INFO +11 -0
- slack_mpm-0.1.1/README.md +279 -0
- slack_mpm-0.1.1/VERSION +1 -0
- slack_mpm-0.1.1/agents/slack_archiver.py +330 -0
- slack_mpm-0.1.1/agents/slack_digest.py +205 -0
- slack_mpm-0.1.1/agents/slack_listener.py +160 -0
- slack_mpm-0.1.1/agents/slack_notifier.py +146 -0
- slack_mpm-0.1.1/agents/slack_responder.py +228 -0
- slack_mpm-0.1.1/docs/research/credential-loading-analysis-2026-03-06.md +180 -0
- slack_mpm-0.1.1/mypy.ini +3 -0
- slack_mpm-0.1.1/pyproject.toml +48 -0
- slack_mpm-0.1.1/src/slack_mpm/VERSION +1 -0
- slack_mpm-0.1.1/src/slack_mpm/__init__.py +5 -0
- slack_mpm-0.1.1/src/slack_mpm/__version__.py +6 -0
- slack_mpm-0.1.1/src/slack_mpm/api/__init__.py +5 -0
- slack_mpm-0.1.1/src/slack_mpm/api/_client.py +106 -0
- slack_mpm-0.1.1/src/slack_mpm/api/bookmarks.py +69 -0
- slack_mpm-0.1.1/src/slack_mpm/api/channels.py +146 -0
- slack_mpm-0.1.1/src/slack_mpm/api/files.py +150 -0
- slack_mpm-0.1.1/src/slack_mpm/api/messages.py +264 -0
- slack_mpm-0.1.1/src/slack_mpm/api/reminders.py +60 -0
- slack_mpm-0.1.1/src/slack_mpm/api/scheduled.py +73 -0
- slack_mpm-0.1.1/src/slack_mpm/api/users.py +104 -0
- slack_mpm-0.1.1/src/slack_mpm/api/workspace.py +55 -0
- slack_mpm-0.1.1/src/slack_mpm/auth/__init__.py +6 -0
- slack_mpm-0.1.1/src/slack_mpm/auth/models.py +58 -0
- slack_mpm-0.1.1/src/slack_mpm/auth/token_manager.py +205 -0
- slack_mpm-0.1.1/src/slack_mpm/cli/__init__.py +1 -0
- slack_mpm-0.1.1/src/slack_mpm/cli/main.py +211 -0
- slack_mpm-0.1.1/src/slack_mpm/server/__init__.py +5 -0
- slack_mpm-0.1.1/src/slack_mpm/server/slack_mcp_server.py +1025 -0
- slack_mpm-0.1.1/tests/__init__.py +0 -0
- slack_mpm-0.1.1/tests/test_auth.py +175 -0
- slack_mpm-0.1.1/tests/test_server.py +181 -0
- slack_mpm-0.1.1/uv.lock +1594 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"08a4fa62924b8abea138e19e96516bc7": {
|
|
3
|
+
"timestamp": 1772776360.875742,
|
|
4
|
+
"results": {
|
|
5
|
+
"agents": {},
|
|
6
|
+
"summary": {
|
|
7
|
+
"total_agents": 0
|
|
8
|
+
}
|
|
9
|
+
},
|
|
10
|
+
"deployment_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
11
|
+
"context": {}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": []
|
|
4
|
+
},
|
|
5
|
+
"enableAllProjectMcpServers": true,
|
|
6
|
+
"hooks": {
|
|
7
|
+
"PreToolUse": [
|
|
8
|
+
{
|
|
9
|
+
"matcher": "*",
|
|
10
|
+
"hooks": [
|
|
11
|
+
{
|
|
12
|
+
"type": "command",
|
|
13
|
+
"command": "/Users/masa/.local/share/uv/tools/claude-mpm/lib/python3.12/site-packages/claude_mpm/scripts/claude-hook-fast.sh"
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"PostToolUse": [
|
|
19
|
+
{
|
|
20
|
+
"matcher": "*",
|
|
21
|
+
"hooks": [
|
|
22
|
+
{
|
|
23
|
+
"type": "command",
|
|
24
|
+
"command": "/Users/masa/.local/share/uv/tools/claude-mpm/lib/python3.12/site-packages/claude_mpm/scripts/claude-hook-fast.sh"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"Stop": [
|
|
30
|
+
{
|
|
31
|
+
"hooks": [
|
|
32
|
+
{
|
|
33
|
+
"type": "command",
|
|
34
|
+
"command": "/Users/masa/.local/share/uv/tools/claude-mpm/lib/python3.12/site-packages/claude_mpm/scripts/claude-hook-fast.sh"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"SubagentStop": [
|
|
40
|
+
{
|
|
41
|
+
"hooks": [
|
|
42
|
+
{
|
|
43
|
+
"type": "command",
|
|
44
|
+
"command": "/Users/masa/.local/share/uv/tools/claude-mpm/lib/python3.12/site-packages/claude_mpm/scripts/claude-hook-fast.sh"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"WorktreeCreate": [
|
|
50
|
+
{
|
|
51
|
+
"hooks": [
|
|
52
|
+
{
|
|
53
|
+
"type": "command",
|
|
54
|
+
"command": "/Users/masa/.local/share/uv/tools/claude-mpm/lib/python3.12/site-packages/claude_mpm/scripts/claude-hook-fast.sh"
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"WorktreeRemove": [
|
|
60
|
+
{
|
|
61
|
+
"hooks": [
|
|
62
|
+
{
|
|
63
|
+
"type": "command",
|
|
64
|
+
"command": "/Users/masa/.local/share/uv/tools/claude-mpm/lib/python3.12/site-packages/claude_mpm/scripts/claude-hook-fast.sh"
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"TeammateIdle": [
|
|
70
|
+
{
|
|
71
|
+
"hooks": [
|
|
72
|
+
{
|
|
73
|
+
"type": "command",
|
|
74
|
+
"command": "/Users/masa/.local/share/uv/tools/claude-mpm/lib/python3.12/site-packages/claude_mpm/scripts/claude-hook-fast.sh"
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"TaskCompleted": [
|
|
80
|
+
{
|
|
81
|
+
"hooks": [
|
|
82
|
+
{
|
|
83
|
+
"type": "command",
|
|
84
|
+
"command": "/Users/masa/.local/share/uv/tools/claude-mpm/lib/python3.12/site-packages/claude_mpm/scripts/claude-hook-fast.sh"
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"SessionStart": [
|
|
90
|
+
{
|
|
91
|
+
"matcher": "*",
|
|
92
|
+
"hooks": [
|
|
93
|
+
{
|
|
94
|
+
"type": "command",
|
|
95
|
+
"command": "/Users/masa/.local/share/uv/tools/claude-mpm/lib/python3.12/site-packages/claude_mpm/scripts/claude-hook-fast.sh"
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"UserPromptSubmit": [
|
|
101
|
+
{
|
|
102
|
+
"matcher": "*",
|
|
103
|
+
"hooks": [
|
|
104
|
+
{
|
|
105
|
+
"type": "command",
|
|
106
|
+
"command": "/Users/masa/.local/share/uv/tools/claude-mpm/lib/python3.12/site-packages/claude_mpm/scripts/claude-hook-fast.sh"
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
],
|
|
111
|
+
"ConfigChange": [
|
|
112
|
+
{
|
|
113
|
+
"matcher": "*",
|
|
114
|
+
"hooks": [
|
|
115
|
+
{
|
|
116
|
+
"type": "command",
|
|
117
|
+
"command": "/Users/masa/.local/share/uv/tools/claude-mpm/lib/python3.12/site-packages/claude_mpm/scripts/claude-hook-fast.sh"
|
|
118
|
+
}
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
"enabledMcpjsonServers": [
|
|
124
|
+
"mcp-skillset",
|
|
125
|
+
"github",
|
|
126
|
+
"filesystem"
|
|
127
|
+
]
|
|
128
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mpm
|
|
3
|
+
description: Access Claude MPM functionality and manage multi-agent orchestration
|
|
4
|
+
user-invocable: true
|
|
5
|
+
version: "2.0.0"
|
|
6
|
+
category: mpm-command
|
|
7
|
+
tags: [mpm-command, system, pm-required, framework]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# /mpm - Claude MPM Framework Guide
|
|
11
|
+
|
|
12
|
+
## What is Claude MPM?
|
|
13
|
+
|
|
14
|
+
Claude MPM (Multi-Agent Project Manager) extends Claude Code with multi-agent orchestration, project-specific PM instructions, persistent agent memory, real-time monitoring via a WebSocket dashboard, and automation hooks. A **PM agent** coordinates specialized agents to complete work through structured delegation using the Task tool. MPM manages skills deployment, agent selection, session continuity, and cross-project messaging.
|
|
15
|
+
|
|
16
|
+
## How Delegation Works
|
|
17
|
+
|
|
18
|
+
The PM receives user requests and delegates to specialized agents via the **Task tool**:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
Task(description="[what to do]", subagent_type="[agent-type]")
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
- PM analyzes the request, breaks it into subtasks, and selects the right agent for each
|
|
25
|
+
- Each agent focuses on its specialty and returns results to PM
|
|
26
|
+
- **Parallel execution** when tasks are independent (e.g., frontend + backend simultaneously)
|
|
27
|
+
- **Sequential execution** when tasks depend on each other (e.g., implement, then test, then deploy)
|
|
28
|
+
- Agents should focus on their delegated task and return clear results -- PM handles orchestration
|
|
29
|
+
- If an agent needs help from another specialty, it reports back to PM rather than self-delegating
|
|
30
|
+
|
|
31
|
+
**Typical workflow**: Research -> Engineer -> Ops (deploy) -> Ops (verify) -> QA -> Documentation
|
|
32
|
+
|
|
33
|
+
## Available Agents
|
|
34
|
+
|
|
35
|
+
### Core Agents (always deployed)
|
|
36
|
+
|
|
37
|
+
| Agent | subagent_type | Role |
|
|
38
|
+
|-------|---------------|------|
|
|
39
|
+
| Engineer | `engineer` | Code implementation, refactoring, debugging |
|
|
40
|
+
| Research | `Research` | Investigation, analysis, codebase exploration |
|
|
41
|
+
| QA | `qa` | Testing, validation, quality assurance |
|
|
42
|
+
| Documentation | `documentation` | Docs generation, API specs, guides |
|
|
43
|
+
| Ops | `ops` | Deployment, infrastructure, operations |
|
|
44
|
+
| Security | `security` | Vulnerability assessment, security review |
|
|
45
|
+
| Ticketing | `ticketing` | Ticket tracking and workflow management |
|
|
46
|
+
|
|
47
|
+
### Extended Agents (deployed per project)
|
|
48
|
+
|
|
49
|
+
| Agent | subagent_type | Role |
|
|
50
|
+
|-------|---------------|------|
|
|
51
|
+
| Version Control | `version-control` | Git operations, PR management, tagging |
|
|
52
|
+
| Code Analyzer | `code-analyzer` | Codebase analysis, architecture review |
|
|
53
|
+
| Code Review | `code-review` | PR review, semantic analysis |
|
|
54
|
+
| Data Engineer | `data-engineer` | Database management, API integrations |
|
|
55
|
+
| Product Owner | `product-owner` | Requirements, user stories, prioritization |
|
|
56
|
+
|
|
57
|
+
### Language-Specific Engineers
|
|
58
|
+
|
|
59
|
+
Deployed automatically based on project toolchain detection:
|
|
60
|
+
|
|
61
|
+
`python-engineer`, `typescript-engineer`, `javascript-engineer`, `golang-engineer`, `rust-engineer`, `java-engineer`, `ruby-engineer`, `php-engineer`, `dart-engineer`
|
|
62
|
+
|
|
63
|
+
**Framework specialists**: `nextjs-engineer`, `react-engineer`, `svelte-engineer`, `tauri-engineer`, `phoenix-engineer`
|
|
64
|
+
|
|
65
|
+
### Platform Ops
|
|
66
|
+
|
|
67
|
+
`local-ops` (local dev, PM2, Docker), `vercel-ops`, `gcp-ops`, `digitalocean-ops`, `clerk-ops`, `railway-ops`
|
|
68
|
+
|
|
69
|
+
### Specialized Agents
|
|
70
|
+
|
|
71
|
+
`api-qa`, `web-qa`, `code-review`, `code-analyzer`, `refactoring-engineer`, `prompt-engineer`, `content-agent`, `imagemagick`, `memory-manager`
|
|
72
|
+
|
|
73
|
+
## Skills System
|
|
74
|
+
|
|
75
|
+
**Skills** are markdown files deployed to `.claude/skills/{name}/SKILL.md` that provide agents with specialized knowledge and procedures.
|
|
76
|
+
|
|
77
|
+
- **User-invocable skills** respond to `/skill-name` slash commands (e.g., `/mpm`, `/mpm-help`)
|
|
78
|
+
- **Non-invocable skills** activate automatically based on context triggers
|
|
79
|
+
- Skills have **frontmatter** with: `name`, `description`, `user-invocable`, `version`, `category`, `tags`
|
|
80
|
+
- **Categories**: `mpm-command`, `pm-workflow`, `pm-reference`, `toolchains-*`, `universal-*`
|
|
81
|
+
- **Progressive disclosure**: Metadata loads first; full content loads on trigger
|
|
82
|
+
- Skills can include `references/` subdirectories for detailed supplementary content
|
|
83
|
+
|
|
84
|
+
## Memory System
|
|
85
|
+
|
|
86
|
+
Agent memories provide persistent context across sessions.
|
|
87
|
+
|
|
88
|
+
- **Storage**: `.claude-mpm/memories/{agent_id}_memories.md`
|
|
89
|
+
- PM manages memory files directly (read, consolidate, save)
|
|
90
|
+
- Each agent has domain-specific memory categories
|
|
91
|
+
- **Trigger phrases**: "remember", "don't forget", "always", "never", "going forward"
|
|
92
|
+
- **Size limit**: 80KB per file (~20k tokens)
|
|
93
|
+
- **Routing**: Keyword-based routing sends memories to the appropriate agent
|
|
94
|
+
- Memories are automatically loaded when an agent is delegated work
|
|
95
|
+
|
|
96
|
+
## Hooks and Dashboard
|
|
97
|
+
|
|
98
|
+
Claude Code hooks capture tool usage, responses, and agent activity in real-time.
|
|
99
|
+
|
|
100
|
+
**Event flow**: Hook -> Connection Manager -> Monitor Server -> Dashboard
|
|
101
|
+
|
|
102
|
+
**Dashboard** at `http://localhost:8765/` shows:
|
|
103
|
+
- Tools being used and files being read/written
|
|
104
|
+
- Agent delegations and completions
|
|
105
|
+
- Session timeline and activity feed
|
|
106
|
+
|
|
107
|
+
**Monitor commands**: `/mpm-monitor start`, `/mpm-monitor stop`, `/mpm-monitor status`
|
|
108
|
+
|
|
109
|
+
## Available Commands
|
|
110
|
+
|
|
111
|
+
| Command | Description |
|
|
112
|
+
|---------|-------------|
|
|
113
|
+
| `/mpm` | This guide -- MPM overview and framework reference |
|
|
114
|
+
| `/mpm-help` | Detailed help for MPM commands |
|
|
115
|
+
| `/mpm-init` | Initialize or update a project for MPM |
|
|
116
|
+
| `/mpm-status` | System health and status |
|
|
117
|
+
| `/mpm-doctor` | Run diagnostic checks |
|
|
118
|
+
| `/mpm-config` | Manage configuration |
|
|
119
|
+
| `/mpm-monitor` | Control monitoring server and dashboard |
|
|
120
|
+
| `/mpm-version` | Version information |
|
|
121
|
+
| `/mpm-message` | Cross-project messaging |
|
|
122
|
+
| `/mpm-organize` | Intelligent file consolidation |
|
|
123
|
+
| `/mpm-ticket-view` | Ticketing workflow management |
|
|
124
|
+
| `/mpm-session-pause` | Save session state for later |
|
|
125
|
+
| `/mpm-session-resume` | Resume from paused session |
|
|
126
|
+
| `/mpm-postmortem` | Analyze session errors |
|
|
127
|
+
|
|
128
|
+
## Cross-Project Messaging
|
|
129
|
+
|
|
130
|
+
`/mpm-message` sends asynchronous messages between Claude MPM instances running in different projects on the same machine.
|
|
131
|
+
|
|
132
|
+
- Messages stored in a shared SQLite database at `~/.claude-mpm/messaging.db`
|
|
133
|
+
- Checked periodically: on session start, every 10 commands, every 30 minutes
|
|
134
|
+
- Message types: `task`, `request`, `notification`, `reply`
|
|
135
|
+
- Always use the `MessageService` API or `claude-mpm message` CLI -- never query the database directly
|
|
136
|
+
|
|
137
|
+
## For Agents: How to Work Within MPM
|
|
138
|
+
|
|
139
|
+
When you receive a delegated task from PM:
|
|
140
|
+
|
|
141
|
+
1. **Focus on your delegated task** -- PM handles orchestration and coordination
|
|
142
|
+
2. **Return clear results with evidence**: file paths created/modified, test counts and pass rates, URLs, error details
|
|
143
|
+
3. **Your agent memory is loaded automatically** -- reference it for project-specific conventions and past decisions
|
|
144
|
+
4. **If you need another specialty**, report back to PM with what you need rather than self-delegating
|
|
145
|
+
5. **Track files you create or modify** -- PM will handle git operations and file tracking
|
|
146
|
+
6. **Follow project patterns** -- check your memory and existing code conventions before implementing
|
|
147
|
+
7. **Escalate blockers immediately** -- do not silently fail or produce partial results without explanation
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# PM Skill: Agent Update Workflow
|
|
2
|
+
|
|
3
|
+
## Trigger Patterns
|
|
4
|
+
- "update agent", "fix agent", "improve agent", "modify agent"
|
|
5
|
+
- "change {agent-name} agent", "edit agent instructions"
|
|
6
|
+
- Any request to modify agent behavior
|
|
7
|
+
|
|
8
|
+
## FUNDAMENTAL RULE: Official vs Custom Agents
|
|
9
|
+
|
|
10
|
+
### Official MPM Agents (NEVER edit deployed copies)
|
|
11
|
+
**Source**: `~/.claude-mpm/cache/agents/` (from bobmatnyc/claude-mpm-agents repo)
|
|
12
|
+
**Deployed**: `.claude/agents/` - READ-ONLY for official agents
|
|
13
|
+
|
|
14
|
+
**Detection**: Check if agent exists in `~/.claude-mpm/cache/agents/`
|
|
15
|
+
- If YES → Official agent → Follow Official Agent Workflow
|
|
16
|
+
- If NO → Custom agent → Can edit `.claude/agents/` directly
|
|
17
|
+
|
|
18
|
+
### Custom/Localized Agents
|
|
19
|
+
- Created specifically for project
|
|
20
|
+
- Can be edited directly in `.claude/agents/`
|
|
21
|
+
- Not part of official MPM agent set
|
|
22
|
+
|
|
23
|
+
## Official Agent Update Workflow
|
|
24
|
+
|
|
25
|
+
### Step 1: Identify Agent Source
|
|
26
|
+
```bash
|
|
27
|
+
ls ~/.claude-mpm/cache/agents/ # Find the source file
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Step 2: Update Source
|
|
31
|
+
Edit the agent source in `~/.claude-mpm/cache/agents/{agent-name}.md`
|
|
32
|
+
(or appropriate path based on agent structure)
|
|
33
|
+
|
|
34
|
+
### Step 3: Rebuild and Redeploy
|
|
35
|
+
Use MPM deployment tools:
|
|
36
|
+
```bash
|
|
37
|
+
# Redeploy specific agent
|
|
38
|
+
mpm agents deploy {agent-name}
|
|
39
|
+
|
|
40
|
+
# Or redeploy all agents
|
|
41
|
+
mpm agents deploy --all
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Step 4: Validate (claude-mpm project only)
|
|
45
|
+
When working in the claude-mpm project itself:
|
|
46
|
+
```bash
|
|
47
|
+
# Run deepeval against deployed agent instructions
|
|
48
|
+
deepeval test --agent {agent-name}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Circuit Breaker
|
|
52
|
+
|
|
53
|
+
**BLOCK** if attempting to edit `.claude/agents/{official-agent}.md` directly:
|
|
54
|
+
- Official agents in deployed location are BUILD OUTPUTS
|
|
55
|
+
- Must update source → rebuild → redeploy
|
|
56
|
+
- Violation = architectural breach
|
|
57
|
+
|
|
58
|
+
## Examples
|
|
59
|
+
|
|
60
|
+
### ❌ WRONG (Editing deployed official agent)
|
|
61
|
+
```
|
|
62
|
+
Edit: .claude/agents/web-qa.md # VIOLATION - this is a built output
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### ✅ CORRECT (Updating source and redeploying)
|
|
66
|
+
```
|
|
67
|
+
1. Edit: ~/.claude-mpm/cache/agents/web-qa.md # Update source
|
|
68
|
+
2. Run: mpm agents deploy web-qa # Rebuild/redeploy
|
|
69
|
+
3. Validate: deepeval test --agent web-qa # (in claude-mpm project)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### ✅ CORRECT (Custom agent - can edit directly)
|
|
73
|
+
```
|
|
74
|
+
Edit: .claude/agents/my-custom-agent.md # OK - not an official agent
|
|
75
|
+
```
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pm-bug-reporting
|
|
3
|
+
version: "1.0.0"
|
|
4
|
+
description: Bug reporting protocol for PM and agents to file GitHub issues
|
|
5
|
+
when_to_use: Framework bugs, agent errors, skill content errors detected
|
|
6
|
+
category: pm-workflow
|
|
7
|
+
tags: [bug-reporting, github, issues, pm-required]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PM Bug Reporting Protocol
|
|
11
|
+
|
|
12
|
+
## When to Report Bugs
|
|
13
|
+
|
|
14
|
+
Report bugs when you encounter:
|
|
15
|
+
- **PM instruction errors** or missing guidance
|
|
16
|
+
- **Agent malfunction** or incorrect behavior
|
|
17
|
+
- **Skill content errors** or outdated information
|
|
18
|
+
- **Framework crashes** or unexpected behavior
|
|
19
|
+
- **Missing or incorrect documentation**
|
|
20
|
+
- **Configuration errors** or invalid defaults
|
|
21
|
+
|
|
22
|
+
## GitHub Repositories
|
|
23
|
+
|
|
24
|
+
Route bugs to the correct repository:
|
|
25
|
+
|
|
26
|
+
| Bug Type | Repository | Owner/Repo |
|
|
27
|
+
|----------|------------|------------|
|
|
28
|
+
| Core MPM (CLI, startup, config, orchestration) | claude-mpm | bobmatnyc/claude-mpm |
|
|
29
|
+
| Agent bugs (wrong behavior, errors, missing capabilities) | claude-mpm-agents | bobmatnyc/claude-mpm-agents |
|
|
30
|
+
| Skill bugs (wrong info, outdated, missing content) | claude-mpm-skills | bobmatnyc/claude-mpm-skills |
|
|
31
|
+
|
|
32
|
+
### External System Bug Routing
|
|
33
|
+
|
|
34
|
+
**Decision tree:**
|
|
35
|
+
- Bug in MPM startup/config/delegation → `bobmatnyc/claude-mpm`
|
|
36
|
+
- Bug in agent behavior → `bobmatnyc/claude-mpm-agents`
|
|
37
|
+
- Bug in skill content → `bobmatnyc/claude-mpm-skills`
|
|
38
|
+
- Bug in external system (installed via setup) → That system's GitHub repo
|
|
39
|
+
|
|
40
|
+
**External systems installed via `claude-mpm setup`:**
|
|
41
|
+
- `kuzu-memory` → File issue at kuzu-memory's GitHub
|
|
42
|
+
- `mcp-vector-search` → File issue at mcp-vector-search's GitHub
|
|
43
|
+
- `slack-user-proxy` → File issue at slack-user-proxy's GitHub
|
|
44
|
+
- `google-workspace-mpm` → File issue at google-workspace-mpm's GitHub
|
|
45
|
+
- Other MCP servers → Check their GitHub repos
|
|
46
|
+
|
|
47
|
+
**Examples:**
|
|
48
|
+
- "Vector search returns no results" → mcp-vector-search repo
|
|
49
|
+
- "Kuzu memory fails to persist" → kuzu-memory repo
|
|
50
|
+
- "PM fails to delegate" → claude-mpm repo
|
|
51
|
+
- "Research agent crashes" → claude-mpm-agents repo
|
|
52
|
+
|
|
53
|
+
## Bug Report Template
|
|
54
|
+
|
|
55
|
+
When creating an issue, include:
|
|
56
|
+
|
|
57
|
+
### Title
|
|
58
|
+
Brief, descriptive title (50 chars max)
|
|
59
|
+
- ✅ "PM delegates to non-existent agent"
|
|
60
|
+
- ✅ "Research skill missing web search examples"
|
|
61
|
+
- ❌ "Bug in system"
|
|
62
|
+
- ❌ "Fix this"
|
|
63
|
+
|
|
64
|
+
### Labels
|
|
65
|
+
Always include:
|
|
66
|
+
- `bug` (required)
|
|
67
|
+
- `agent-reported` (required)
|
|
68
|
+
- Additional context labels:
|
|
69
|
+
- `high-priority` - Critical functionality broken
|
|
70
|
+
- `documentation` - Documentation error
|
|
71
|
+
- `agent-error` - Agent-specific issue
|
|
72
|
+
- `skill-error` - Skill content issue
|
|
73
|
+
|
|
74
|
+
### Body Structure
|
|
75
|
+
```markdown
|
|
76
|
+
## What Happened
|
|
77
|
+
[Clear description of the bug]
|
|
78
|
+
|
|
79
|
+
## Expected Behavior
|
|
80
|
+
[What should have happened]
|
|
81
|
+
|
|
82
|
+
## Steps to Reproduce
|
|
83
|
+
1. [First step]
|
|
84
|
+
2. [Second step]
|
|
85
|
+
3. [Third step]
|
|
86
|
+
|
|
87
|
+
## Context
|
|
88
|
+
- Agent: [agent name if applicable]
|
|
89
|
+
- Skill: [skill name if applicable]
|
|
90
|
+
- Error Message: [full error if available]
|
|
91
|
+
- Version: [MPM version if known]
|
|
92
|
+
|
|
93
|
+
## Impact
|
|
94
|
+
[How this affects users/workflow]
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Using gh CLI
|
|
98
|
+
|
|
99
|
+
### Prerequisites Check
|
|
100
|
+
```bash
|
|
101
|
+
gh auth status
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
If not authenticated:
|
|
105
|
+
```bash
|
|
106
|
+
gh auth login
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Creating Issues
|
|
110
|
+
|
|
111
|
+
**Delegate to ticketing agent** with:
|
|
112
|
+
```
|
|
113
|
+
Task:
|
|
114
|
+
agent: ticketing
|
|
115
|
+
task: Create GitHub issue for [bug type]
|
|
116
|
+
context: |
|
|
117
|
+
Repository: bobmatnyc/claude-mpm[-agents|-skills]
|
|
118
|
+
Title: [brief title]
|
|
119
|
+
Labels: bug, agent-reported
|
|
120
|
+
Body: |
|
|
121
|
+
## What Happened
|
|
122
|
+
[description]
|
|
123
|
+
|
|
124
|
+
## Expected Behavior
|
|
125
|
+
[expected]
|
|
126
|
+
|
|
127
|
+
## Steps to Reproduce
|
|
128
|
+
1. [step 1]
|
|
129
|
+
2. [step 2]
|
|
130
|
+
|
|
131
|
+
## Context
|
|
132
|
+
- Agent: [agent name]
|
|
133
|
+
- Error: [error message]
|
|
134
|
+
|
|
135
|
+
## Impact
|
|
136
|
+
[impact description]
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Examples
|
|
140
|
+
|
|
141
|
+
### Core MPM Bug
|
|
142
|
+
```
|
|
143
|
+
Task:
|
|
144
|
+
agent: ticketing
|
|
145
|
+
task: Create GitHub issue for core MPM bug
|
|
146
|
+
context: |
|
|
147
|
+
Repository: bobmatnyc/claude-mpm
|
|
148
|
+
Title: PM fails to load configuration on startup
|
|
149
|
+
Labels: bug, agent-reported, high-priority
|
|
150
|
+
Body: |
|
|
151
|
+
## What Happened
|
|
152
|
+
PM fails to initialize when configuration.yaml contains invalid syntax.
|
|
153
|
+
No clear error message shown to user.
|
|
154
|
+
|
|
155
|
+
## Expected Behavior
|
|
156
|
+
PM should display clear YAML syntax error with line number and fix suggestion.
|
|
157
|
+
|
|
158
|
+
## Steps to Reproduce
|
|
159
|
+
1. Add invalid YAML to .claude-mpm/configuration.yaml
|
|
160
|
+
2. Run `mpm`
|
|
161
|
+
3. Observe generic error without details
|
|
162
|
+
|
|
163
|
+
## Context
|
|
164
|
+
- Component: Configuration loader
|
|
165
|
+
- Error: "Failed to load configuration"
|
|
166
|
+
- Version: 5.4.x
|
|
167
|
+
|
|
168
|
+
## Impact
|
|
169
|
+
Users cannot diagnose configuration errors, requiring manual YAML validation.
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Agent Bug
|
|
173
|
+
```
|
|
174
|
+
Task:
|
|
175
|
+
agent: ticketing
|
|
176
|
+
task: Create GitHub issue for agent bug
|
|
177
|
+
context: |
|
|
178
|
+
Repository: bobmatnyc/claude-mpm-agents
|
|
179
|
+
Title: Research agent fails to search with special characters
|
|
180
|
+
Labels: bug, agent-reported, agent-error
|
|
181
|
+
Body: |
|
|
182
|
+
## What Happened
|
|
183
|
+
Research agent throws error when search query contains quotes or special chars.
|
|
184
|
+
|
|
185
|
+
## Expected Behavior
|
|
186
|
+
Search queries should be properly escaped and executed.
|
|
187
|
+
|
|
188
|
+
## Steps to Reproduce
|
|
189
|
+
1. Delegate to research: "Search for 'React hooks'"
|
|
190
|
+
2. Research agent attempts search
|
|
191
|
+
3. Error: "Invalid search query"
|
|
192
|
+
|
|
193
|
+
## Context
|
|
194
|
+
- Agent: research
|
|
195
|
+
- Error: grep command fails with unescaped quotes
|
|
196
|
+
|
|
197
|
+
## Impact
|
|
198
|
+
Cannot search for quoted phrases or technical terms with special characters.
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Skill Bug
|
|
202
|
+
```
|
|
203
|
+
Task:
|
|
204
|
+
agent: ticketing
|
|
205
|
+
task: Create GitHub issue for skill content error
|
|
206
|
+
context: |
|
|
207
|
+
Repository: bobmatnyc/claude-mpm-skills
|
|
208
|
+
Title: Git workflow skill contains outdated branch strategy
|
|
209
|
+
Labels: bug, agent-reported, documentation, skill-error
|
|
210
|
+
Body: |
|
|
211
|
+
## What Happened
|
|
212
|
+
Skill recommends `git flow` branching model, which project no longer uses.
|
|
213
|
+
Current standard is trunk-based development.
|
|
214
|
+
|
|
215
|
+
## Expected Behavior
|
|
216
|
+
Skill should document current trunk-based workflow.
|
|
217
|
+
|
|
218
|
+
## Context
|
|
219
|
+
- Skill: git-workflow.md
|
|
220
|
+
- Section: "Branching Strategy"
|
|
221
|
+
- Line: 45-60
|
|
222
|
+
|
|
223
|
+
## Impact
|
|
224
|
+
Agents follow outdated branching model, creating workflow friction.
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## Escalation Path
|
|
228
|
+
|
|
229
|
+
When ticketing agent is unavailable or gh CLI fails:
|
|
230
|
+
|
|
231
|
+
1. **Log locally** for manual reporting:
|
|
232
|
+
```
|
|
233
|
+
echo "[BUG] $(date): [description]" >> .claude-mpm/logs/bugs.log
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
2. **Report to PM** for alternative action:
|
|
237
|
+
```
|
|
238
|
+
PM should create ticket in primary ticketing system (Linear/JIRA)
|
|
239
|
+
with note to create GitHub issue once available
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
3. **User notification**:
|
|
243
|
+
```
|
|
244
|
+
"Bug detected: [description]. Logged for manual GitHub issue creation."
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## Success Criteria
|
|
248
|
+
|
|
249
|
+
Bug reporting successful when:
|
|
250
|
+
- ✅ Issue created in correct repository
|
|
251
|
+
- ✅ All required labels applied (`bug`, `agent-reported`)
|
|
252
|
+
- ✅ Body follows template structure
|
|
253
|
+
- ✅ Title is clear and concise
|
|
254
|
+
- ✅ Context includes agent/skill name if applicable
|
|
255
|
+
- ✅ Issue URL returned for tracking
|
|
256
|
+
|
|
257
|
+
## PM Enforcement
|
|
258
|
+
|
|
259
|
+
PM MUST:
|
|
260
|
+
- Detect bugs during agent interactions
|
|
261
|
+
- Delegate bug reporting to ticketing agent
|
|
262
|
+
- NOT attempt to create GitHub issues directly
|
|
263
|
+
- Follow escalation path if ticketing unavailable
|
|
264
|
+
- Log all bug reports for audit trail
|
|
265
|
+
|
|
266
|
+
## Related Skills
|
|
267
|
+
- [pm-ticketing-integration.md](pm-ticketing-integration.md) - Ticket delegation patterns
|
|
268
|
+
- [pm-delegation-patterns.md](pm-delegation-patterns.md) - General delegation guidance
|
|
269
|
+
- [ticketing-examples.md](ticketing-examples.md) - Ticketing delegation examples
|