claude-mpm 4.14.6__py3-none-any.whl → 4.14.7__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.

Potentially problematic release.


This version of claude-mpm might be problematic. Click here for more details.

claude_mpm/VERSION CHANGED
@@ -1 +1 @@
1
- 4.14.6
1
+ 4.14.7
@@ -160,203 +160,23 @@ class OutputStyleManager:
160
160
 
161
161
  def extract_output_style_content(self, framework_loader=None) -> str:
162
162
  """
163
- Extract output style content from framework instructions.
164
-
165
- This extracts PM delegation behavior, tone, communication standards,
166
- response formats, TodoWrite requirements, and workflow rules from:
167
- - INSTRUCTIONS.md
168
- - BASE_PM.md
163
+ Read output style content from OUTPUT_STYLE.md.
169
164
 
170
165
  Args:
171
- framework_loader: Optional FrameworkLoader instance to reuse loaded content
166
+ framework_loader: Optional framework loader (kept for compatibility, not used)
172
167
 
173
168
  Returns:
174
- Formatted output style content in YAML frontmatter + markdown format
169
+ Complete output style content from file
175
170
  """
176
- # Build the content sections
177
- sections = []
178
-
179
- # Add YAML frontmatter
180
- sections.append("---")
181
- sections.append("name: Claude MPM")
182
- sections.append(
183
- "description: Multi-Agent Project Manager orchestration mode for delegation and coordination"
184
- )
185
- sections.append("---")
186
- sections.append("")
187
-
188
- # Header
189
- sections.append(
190
- "You are Claude Multi-Agent PM, a PROJECT MANAGER whose SOLE PURPOSE is to delegate work to specialized agents."
191
- )
192
- sections.append("")
193
-
194
- # Extract from INSTRUCTIONS.md
195
- if framework_loader and framework_loader.framework_content.get(
196
- "framework_instructions"
197
- ):
198
- instructions = framework_loader.framework_content["framework_instructions"]
199
- sections.extend(self._extract_instructions_sections(instructions))
200
- else:
201
- # Load from file if no framework_loader provided
202
- instructions_path = (
203
- Path(__file__).parent.parent / "agents" / "INSTRUCTIONS.md"
204
- )
205
- if instructions_path.exists():
206
- instructions = instructions_path.read_text()
207
- sections.extend(self._extract_instructions_sections(instructions))
208
-
209
- # Extract from BASE_PM.md
210
- if framework_loader and framework_loader.framework_content.get(
211
- "base_pm_instructions"
212
- ):
213
- base_pm = framework_loader.framework_content["base_pm_instructions"]
214
- sections.extend(self._extract_base_pm_sections(base_pm))
215
- else:
216
- # Load from file if no framework_loader provided
217
- base_pm_path = Path(__file__).parent.parent / "agents" / "BASE_PM.md"
218
- if base_pm_path.exists():
219
- base_pm = base_pm_path.read_text()
220
- sections.extend(self._extract_base_pm_sections(base_pm))
221
-
222
- return "\n".join(sections)
223
-
224
- def _extract_instructions_sections(self, content: str) -> list:
225
- """Extract relevant sections from INSTRUCTIONS.md."""
226
- sections = []
227
-
228
- # Extract Primary Directive
229
- if "## 🔴 PRIMARY DIRECTIVE" in content:
230
- sections.append("## 🔴 PRIMARY DIRECTIVE - MANDATORY DELEGATION 🔴")
231
- sections.append("")
232
- sections.append(
233
- "**YOU ARE STRICTLY FORBIDDEN FROM DOING ANY WORK DIRECTLY.**"
234
- )
235
- sections.append("")
236
- sections.append(
237
- "Direct implementation is ABSOLUTELY PROHIBITED unless the user EXPLICITLY overrides with phrases like:"
238
- )
239
- sections.append('- "do this yourself"')
240
- sections.append('- "don\'t delegate"')
241
- sections.append('- "implement directly"')
242
- sections.append('- "you do it"')
243
- sections.append('- "no delegation"')
244
- sections.append("")
245
-
246
- # Extract Core Identity and Rules
247
- if "## Core Identity" in content:
248
- sections.append("## Core Operating Rules")
249
- sections.append("")
250
- sections.append("**DEFAULT BEHAVIOR - ALWAYS DELEGATE**:")
251
- sections.append(
252
- "- 🔴 You MUST delegate 100% of ALL work to specialized agents by default"
253
- )
254
- sections.append(
255
- "- 🔴 Direct action is STRICTLY FORBIDDEN without explicit user override"
256
- )
257
- sections.append(
258
- "- 🔴 Even the simplest tasks MUST be delegated - NO EXCEPTIONS"
259
- )
260
- sections.append("- 🔴 When in doubt, ALWAYS DELEGATE - never act directly")
261
- sections.append("")
262
- sections.append("**Allowed Tools**:")
263
- sections.append("- **Task** for delegation (YOUR PRIMARY FUNCTION)")
264
- sections.append("- **TodoWrite** for tracking delegation progress ONLY")
265
- sections.append(
266
- "- **WebSearch/WebFetch** for gathering context BEFORE delegation"
267
- )
268
- sections.append(
269
- "- **Direct answers** ONLY for questions about PM capabilities"
270
- )
271
- sections.append("")
272
-
273
- # Extract Communication Standards
274
- if "## Communication Standards" in content:
275
- sections.append("## Communication Standards")
276
- sections.append("")
277
- sections.append("- **Tone**: Professional, neutral by default")
278
- sections.append('- **Use**: "Understood", "Confirmed", "Noted"')
279
- sections.append("- **No simplification** without explicit user request")
280
- sections.append("- **No mocks** outside test environments")
281
- sections.append("- **Complete implementations** only - no placeholders")
282
- sections.append(
283
- '- **FORBIDDEN**: Overeager enthusiasm ("Excellent!", "Perfect!", "Amazing!")'
284
- )
285
- sections.append("")
286
-
287
- # Extract Error Handling
288
- if "## Error Handling Protocol" in content:
289
- sections.append("## Error Handling Protocol")
290
- sections.append("")
291
- sections.append("**3-Attempt Process**:")
292
- sections.append("1. **First Failure**: Re-delegate with enhanced context")
293
- sections.append(
294
- '2. **Second Failure**: Mark "ERROR - Attempt 2/3", escalate if needed'
295
- )
296
- sections.append(
297
- "3. **Third Failure**: TodoWrite escalation with user decision required"
298
- )
299
- sections.append("")
300
-
301
- # Extract Standard Operating Procedure
302
- if "## Standard Operating Procedure" in content:
303
- sections.append("## Standard Operating Procedure")
304
- sections.append("")
305
- sections.append("1. **Analysis**: Parse request, assess context (NO TOOLS)")
306
- sections.append(
307
- "2. **Planning**: Agent selection, task breakdown, priority assignment"
308
- )
309
- sections.append("3. **Delegation**: Task Tool with enhanced format")
310
- sections.append("4. **Monitoring**: Track progress via TodoWrite")
311
- sections.append("5. **Integration**: Synthesize results, validate, report")
312
- sections.append("")
313
-
314
- return sections
315
-
316
- def _extract_base_pm_sections(self, content: str) -> list:
317
- """Extract relevant sections from BASE_PM.md."""
318
- sections = []
319
-
320
- # Extract TodoWrite Requirements
321
- if "## TodoWrite Framework Requirements" in content:
322
- sections.append("## TodoWrite Requirements")
323
- sections.append("")
324
- sections.append("### Mandatory [Agent] Prefix Rules")
325
- sections.append("")
326
- sections.append("**ALWAYS use [Agent] prefix for delegated tasks**:")
327
- sections.append("- ✅ `[Research] Analyze authentication patterns`")
328
- sections.append("- ✅ `[Engineer] Implement user registration`")
329
- sections.append("- ✅ `[QA] Test payment flow`")
330
- sections.append("- ✅ `[Documentation] Update API docs`")
331
- sections.append("")
332
- sections.append("**NEVER use [PM] prefix for implementation tasks**")
333
- sections.append("")
334
- sections.append("### Task Status Management")
335
- sections.append("")
336
- sections.append("- `pending` - Task not yet started")
337
- sections.append(
338
- "- `in_progress` - Currently being worked on (ONE at a time)"
339
- )
340
- sections.append("- `completed` - Task finished successfully")
341
- sections.append("")
342
-
343
- # Extract PM Response Format
344
- if "## PM Response Format" in content:
345
- sections.append("## Response Format")
346
- sections.append("")
347
- sections.append(
348
- "When completing delegations, provide structured summaries including:"
349
- )
350
- sections.append("- Request summary")
351
- sections.append("- Agents used and task counts")
352
- sections.append("- Tasks completed with [Agent] prefixes")
353
- sections.append("- Files affected across all agents")
354
- sections.append("- Blockers encountered and resolutions")
355
- sections.append("- Next steps for user")
356
- sections.append("- Key information to remember")
357
- sections.append("")
358
-
359
- return sections
171
+ # Always read from the complete OUTPUT_STYLE.md file
172
+ if self.mpm_output_style_path.exists():
173
+ content = self.mpm_output_style_path.read_text()
174
+ self.logger.info(f"Read OUTPUT_STYLE.md directly ({len(content)} chars)")
175
+ return content
176
+ # Fallback error
177
+ error_msg = f"OUTPUT_STYLE.md not found at {self.mpm_output_style_path}"
178
+ self.logger.error(error_msg)
179
+ raise FileNotFoundError(error_msg)
360
180
 
361
181
  def save_output_style(self, content: str) -> Path:
362
182
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-mpm
3
- Version: 4.14.6
3
+ Version: 4.14.7
4
4
  Summary: Claude Multi-Agent Project Manager - Orchestrate Claude with agent delegation and ticket tracking
5
5
  Author-email: Bob Matsuoka <bob@matsuoka.com>
6
6
  Maintainer: Claude MPM Team
@@ -1,5 +1,5 @@
1
1
  claude_mpm/BUILD_NUMBER,sha256=9JfxhnDtr-8l3kCP2U5TVXSErptHoga8m7XA8zqgGOc,4
2
- claude_mpm/VERSION,sha256=oj33eayp8DKbWUQ2L2l5WzLv-mKU2j-d2bgKc72Rzwo,7
2
+ claude_mpm/VERSION,sha256=Dhy0KzLAIl8JiKL3uZ10QqWUidil24LjdoE05jrwCnk,7
3
3
  claude_mpm/__init__.py,sha256=UCw6j9e_tZQ3kJtTqmdfNv7MHyw9nD1jkj80WurwM2g,2064
4
4
  claude_mpm/__main__.py,sha256=Ro5UBWBoQaSAIoSqWAr7zkbLyvi4sSy28WShqAhKJG0,723
5
5
  claude_mpm/constants.py,sha256=sLjJF6Kw7H4V9WWeaEYltM-77TgXqzEMX5vx4ukM5-0,5977
@@ -204,7 +204,7 @@ claude_mpm/core/mixins.py,sha256=vmZ7Nu2ZOnKjbhN07Ixk4noIej9nsJiknrp-Sclfu0A,534
204
204
  claude_mpm/core/oneshot_session.py,sha256=Dm-KJ4QQkBkRuPLgAje6b9FxftmfALQMF27-OYPpnxg,17697
205
205
  claude_mpm/core/optimized_agent_loader.py,sha256=7TIwIF4fhGEEc60pbiI3FlhgZCmEXkWJjqzhJJxXS1o,15854
206
206
  claude_mpm/core/optimized_startup.py,sha256=3Gpdc5qrDp803wxZesG696RqGdyFRVEq2hf4xZAssSs,15479
207
- claude_mpm/core/output_style_manager.py,sha256=LjEADIvCZr8iGL1RGwh15EDDVdkOCgTepIN2TDY50ho,20729
207
+ claude_mpm/core/output_style_manager.py,sha256=PbxteVoy9n8e3vI9H5ApB5_B639j2tDbPlS913dDAU0,12592
208
208
  claude_mpm/core/pm_hook_interceptor.py,sha256=92C8TrpK-XVQD8BiXbqs8lSCX72PU0KZG5oAjhf8GOQ,11197
209
209
  claude_mpm/core/service_registry.py,sha256=e8DWAXoVLT09vWN5J0av1py7aHT7tDZzmskcaUgsh3s,11602
210
210
  claude_mpm/core/session_manager.py,sha256=iEDZWKBYHSu001nFX8vFvH33RvQOW0eIgomWhFM53sw,12078
@@ -854,9 +854,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
854
854
  claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
855
855
  claude_mpm/validation/agent_validator.py,sha256=GprtAvu80VyMXcKGsK_VhYiXWA6BjKHv7O6HKx0AB9w,20917
856
856
  claude_mpm/validation/frontmatter_validator.py,sha256=YpJlYNNYcV8u6hIOi3_jaRsDnzhbcQpjCBE6eyBKaFY,7076
857
- claude_mpm-4.14.6.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
858
- claude_mpm-4.14.6.dist-info/METADATA,sha256=XW6JRKb6BREE3VK2qxnAbOi-R-x-FZEGr8L2JQMJO4w,17967
859
- claude_mpm-4.14.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
860
- claude_mpm-4.14.6.dist-info/entry_points.txt,sha256=Vlw3GNi-OtTpKSrez04iNrPmxNxYDpIWxmJCxiZ5Tx8,526
861
- claude_mpm-4.14.6.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
862
- claude_mpm-4.14.6.dist-info/RECORD,,
857
+ claude_mpm-4.14.7.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
858
+ claude_mpm-4.14.7.dist-info/METADATA,sha256=_MsgmAbfUpWk8_bvvMMx-djUu5iYcWMqgOiljcSv2ac,17967
859
+ claude_mpm-4.14.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
860
+ claude_mpm-4.14.7.dist-info/entry_points.txt,sha256=Vlw3GNi-OtTpKSrez04iNrPmxNxYDpIWxmJCxiZ5Tx8,526
861
+ claude_mpm-4.14.7.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
862
+ claude_mpm-4.14.7.dist-info/RECORD,,