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

Files changed (487) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/BASE_AGENT.md +164 -0
  3. claude_mpm/agents/BASE_ENGINEER.md +658 -0
  4. claude_mpm/agents/CLAUDE_MPM_OUTPUT_STYLE.md +66 -241
  5. claude_mpm/agents/CLAUDE_MPM_RESEARCH_OUTPUT_STYLE.md +413 -0
  6. claude_mpm/agents/CLAUDE_MPM_TEACHER_OUTPUT_STYLE.md +109 -1925
  7. claude_mpm/agents/MEMORY.md +1 -1
  8. claude_mpm/agents/PM_INSTRUCTIONS.md +374 -1257
  9. claude_mpm/agents/WORKFLOW.md +6 -253
  10. claude_mpm/agents/agent_loader.py +1 -1
  11. claude_mpm/agents/base_agent.json +31 -0
  12. claude_mpm/agents/frontmatter_validator.py +2 -2
  13. claude_mpm/agents/templates/circuit-breakers.md +26 -17
  14. claude_mpm/cli/__init__.py +5 -1
  15. claude_mpm/cli/commands/agent_state_manager.py +10 -10
  16. claude_mpm/cli/commands/agents.py +11 -13
  17. claude_mpm/cli/commands/agents_reconcile.py +197 -0
  18. claude_mpm/cli/commands/auto_configure.py +4 -4
  19. claude_mpm/cli/commands/autotodos.py +566 -0
  20. claude_mpm/cli/commands/commander.py +216 -0
  21. claude_mpm/cli/commands/configure.py +621 -22
  22. claude_mpm/cli/commands/configure_agent_display.py +12 -0
  23. claude_mpm/cli/commands/hook_errors.py +60 -60
  24. claude_mpm/cli/commands/monitor.py +2 -2
  25. claude_mpm/cli/commands/mpm_init/core.py +72 -0
  26. claude_mpm/cli/commands/postmortem.py +1 -1
  27. claude_mpm/cli/commands/profile.py +276 -0
  28. claude_mpm/cli/commands/run.py +35 -3
  29. claude_mpm/cli/commands/skill_source.py +51 -2
  30. claude_mpm/cli/commands/skills.py +182 -32
  31. claude_mpm/cli/executor.py +130 -16
  32. claude_mpm/cli/interactive/__init__.py +10 -0
  33. claude_mpm/cli/interactive/agent_wizard.py +32 -52
  34. claude_mpm/cli/interactive/questionary_styles.py +65 -0
  35. claude_mpm/cli/interactive/skill_selector.py +481 -0
  36. claude_mpm/cli/parsers/base_parser.py +83 -1
  37. claude_mpm/cli/parsers/commander_parser.py +116 -0
  38. claude_mpm/cli/parsers/profile_parser.py +147 -0
  39. claude_mpm/cli/parsers/run_parser.py +10 -0
  40. claude_mpm/cli/parsers/skill_source_parser.py +4 -0
  41. claude_mpm/cli/parsers/skills_parser.py +2 -3
  42. claude_mpm/cli/startup.py +690 -386
  43. claude_mpm/cli/startup_display.py +74 -6
  44. claude_mpm/cli/startup_logging.py +2 -2
  45. claude_mpm/cli/utils.py +7 -3
  46. claude_mpm/commander/__init__.py +78 -0
  47. claude_mpm/commander/adapters/__init__.py +60 -0
  48. claude_mpm/commander/adapters/auggie.py +260 -0
  49. claude_mpm/commander/adapters/base.py +288 -0
  50. claude_mpm/commander/adapters/claude_code.py +392 -0
  51. claude_mpm/commander/adapters/codex.py +237 -0
  52. claude_mpm/commander/adapters/communication.py +366 -0
  53. claude_mpm/commander/adapters/example_usage.py +310 -0
  54. claude_mpm/commander/adapters/mpm.py +389 -0
  55. claude_mpm/commander/adapters/registry.py +204 -0
  56. claude_mpm/commander/api/__init__.py +16 -0
  57. claude_mpm/commander/api/app.py +121 -0
  58. claude_mpm/commander/api/errors.py +133 -0
  59. claude_mpm/commander/api/routes/__init__.py +8 -0
  60. claude_mpm/commander/api/routes/events.py +184 -0
  61. claude_mpm/commander/api/routes/inbox.py +171 -0
  62. claude_mpm/commander/api/routes/messages.py +148 -0
  63. claude_mpm/commander/api/routes/projects.py +271 -0
  64. claude_mpm/commander/api/routes/sessions.py +226 -0
  65. claude_mpm/commander/api/routes/work.py +296 -0
  66. claude_mpm/commander/api/schemas.py +186 -0
  67. claude_mpm/commander/chat/__init__.py +7 -0
  68. claude_mpm/commander/chat/cli.py +146 -0
  69. claude_mpm/commander/chat/commands.py +96 -0
  70. claude_mpm/commander/chat/repl.py +310 -0
  71. claude_mpm/commander/config.py +51 -0
  72. claude_mpm/commander/config_loader.py +115 -0
  73. claude_mpm/commander/core/__init__.py +10 -0
  74. claude_mpm/commander/core/block_manager.py +325 -0
  75. claude_mpm/commander/core/response_manager.py +323 -0
  76. claude_mpm/commander/daemon.py +603 -0
  77. claude_mpm/commander/env_loader.py +59 -0
  78. claude_mpm/commander/events/__init__.py +26 -0
  79. claude_mpm/commander/events/manager.py +332 -0
  80. claude_mpm/commander/frameworks/__init__.py +12 -0
  81. claude_mpm/commander/frameworks/base.py +146 -0
  82. claude_mpm/commander/frameworks/claude_code.py +58 -0
  83. claude_mpm/commander/frameworks/mpm.py +62 -0
  84. claude_mpm/commander/inbox/__init__.py +16 -0
  85. claude_mpm/commander/inbox/dedup.py +128 -0
  86. claude_mpm/commander/inbox/inbox.py +224 -0
  87. claude_mpm/commander/inbox/models.py +70 -0
  88. claude_mpm/commander/instance_manager.py +450 -0
  89. claude_mpm/commander/llm/__init__.py +6 -0
  90. claude_mpm/commander/llm/openrouter_client.py +167 -0
  91. claude_mpm/commander/llm/summarizer.py +70 -0
  92. claude_mpm/commander/memory/__init__.py +45 -0
  93. claude_mpm/commander/memory/compression.py +347 -0
  94. claude_mpm/commander/memory/embeddings.py +230 -0
  95. claude_mpm/commander/memory/entities.py +310 -0
  96. claude_mpm/commander/memory/example_usage.py +290 -0
  97. claude_mpm/commander/memory/integration.py +325 -0
  98. claude_mpm/commander/memory/search.py +381 -0
  99. claude_mpm/commander/memory/store.py +657 -0
  100. claude_mpm/commander/models/__init__.py +18 -0
  101. claude_mpm/commander/models/events.py +121 -0
  102. claude_mpm/commander/models/project.py +162 -0
  103. claude_mpm/commander/models/work.py +214 -0
  104. claude_mpm/commander/parsing/__init__.py +20 -0
  105. claude_mpm/commander/parsing/extractor.py +132 -0
  106. claude_mpm/commander/parsing/output_parser.py +270 -0
  107. claude_mpm/commander/parsing/patterns.py +100 -0
  108. claude_mpm/commander/persistence/__init__.py +11 -0
  109. claude_mpm/commander/persistence/event_store.py +274 -0
  110. claude_mpm/commander/persistence/state_store.py +309 -0
  111. claude_mpm/commander/persistence/work_store.py +164 -0
  112. claude_mpm/commander/polling/__init__.py +13 -0
  113. claude_mpm/commander/polling/event_detector.py +104 -0
  114. claude_mpm/commander/polling/output_buffer.py +49 -0
  115. claude_mpm/commander/polling/output_poller.py +153 -0
  116. claude_mpm/commander/project_session.py +268 -0
  117. claude_mpm/commander/proxy/__init__.py +12 -0
  118. claude_mpm/commander/proxy/formatter.py +89 -0
  119. claude_mpm/commander/proxy/output_handler.py +191 -0
  120. claude_mpm/commander/proxy/relay.py +155 -0
  121. claude_mpm/commander/registry.py +410 -0
  122. claude_mpm/commander/runtime/__init__.py +10 -0
  123. claude_mpm/commander/runtime/executor.py +191 -0
  124. claude_mpm/commander/runtime/monitor.py +346 -0
  125. claude_mpm/commander/session/__init__.py +6 -0
  126. claude_mpm/commander/session/context.py +81 -0
  127. claude_mpm/commander/session/manager.py +59 -0
  128. claude_mpm/commander/tmux_orchestrator.py +361 -0
  129. claude_mpm/commander/web/__init__.py +1 -0
  130. claude_mpm/commander/work/__init__.py +30 -0
  131. claude_mpm/commander/work/executor.py +207 -0
  132. claude_mpm/commander/work/queue.py +405 -0
  133. claude_mpm/commander/workflow/__init__.py +27 -0
  134. claude_mpm/commander/workflow/event_handler.py +241 -0
  135. claude_mpm/commander/workflow/notifier.py +146 -0
  136. claude_mpm/commands/mpm-config.md +20 -249
  137. claude_mpm/commands/mpm-doctor.md +16 -21
  138. claude_mpm/commands/mpm-help.md +12 -205
  139. claude_mpm/commands/mpm-init.md +88 -506
  140. claude_mpm/commands/mpm-monitor.md +22 -401
  141. claude_mpm/commands/mpm-organize.md +70 -442
  142. claude_mpm/commands/mpm-postmortem.md +13 -107
  143. claude_mpm/commands/mpm-session-resume.md +20 -363
  144. claude_mpm/commands/mpm-status.md +13 -69
  145. claude_mpm/commands/mpm-ticket-view.md +60 -495
  146. claude_mpm/commands/mpm-version.md +13 -107
  147. claude_mpm/commands/mpm.md +8 -0
  148. claude_mpm/config/agent_presets.py +8 -7
  149. claude_mpm/config/skill_sources.py +16 -0
  150. claude_mpm/constants.py +1 -0
  151. claude_mpm/core/claude_runner.py +154 -2
  152. claude_mpm/core/config.py +37 -26
  153. claude_mpm/core/config_constants.py +74 -9
  154. claude_mpm/core/constants.py +56 -12
  155. claude_mpm/core/framework/loaders/agent_loader.py +1 -1
  156. claude_mpm/core/framework/loaders/instruction_loader.py +52 -11
  157. claude_mpm/core/hook_manager.py +51 -3
  158. claude_mpm/core/interactive_session.py +12 -11
  159. claude_mpm/core/logger.py +26 -9
  160. claude_mpm/core/logging_utils.py +39 -13
  161. claude_mpm/core/network_config.py +148 -0
  162. claude_mpm/core/oneshot_session.py +7 -6
  163. claude_mpm/core/optimized_startup.py +61 -0
  164. claude_mpm/core/output_style_manager.py +66 -18
  165. claude_mpm/core/shared/config_loader.py +3 -1
  166. claude_mpm/core/socketio_pool.py +47 -15
  167. claude_mpm/core/unified_agent_registry.py +1 -1
  168. claude_mpm/core/unified_config.py +54 -8
  169. claude_mpm/core/unified_paths.py +95 -90
  170. claude_mpm/dashboard/static/svelte-build/_app/env.js +1 -0
  171. claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/0.C33zOoyM.css +1 -0
  172. claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/2.CW1J-YuA.css +1 -0
  173. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/1WZnGYqX.js +24 -0
  174. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/67pF3qNn.js +1 -0
  175. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/6RxdMKe4.js +1 -0
  176. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/8cZrfX0h.js +60 -0
  177. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/9a6T2nm-.js +7 -0
  178. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/B443AUzu.js +1 -0
  179. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/B8AwtY2H.js +1 -0
  180. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BF15LAsF.js +1 -0
  181. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BQaXIfA_.js +331 -0
  182. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BRcwIQNr.js +4 -0
  183. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BSNlmTZj.js +1 -0
  184. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BV6nKitt.js +43 -0
  185. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BViJ8lZt.js +128 -0
  186. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BcQ-Q0FE.js +1 -0
  187. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Bpyvgze_.js +30 -0
  188. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BzTRqg-z.js +1 -0
  189. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/C0Fr8dve.js +1 -0
  190. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/C3rbW_a-.js +1 -0
  191. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/C8WYN38h.js +1 -0
  192. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/C9I8FlXH.js +61 -0
  193. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CIQcWgO2.js +36 -0
  194. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CIctN7YN.js +7 -0
  195. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CKrS_JZW.js +145 -0
  196. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CR6P9C4A.js +89 -0
  197. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CRRR9MD_.js +2 -0
  198. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CRcR2DqT.js +334 -0
  199. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CSXtMOf0.js +1 -0
  200. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CT-sbxSk.js +1 -0
  201. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CWm6DJsp.js +1 -0
  202. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CmKTTxBW.js +1 -0
  203. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CpqQ1Kzn.js +1 -0
  204. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Cu_Erd72.js +261 -0
  205. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/D2nGpDRe.js +1 -0
  206. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/D9iCMida.js +267 -0
  207. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/D9ykgMoY.js +10 -0
  208. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DL2Ldur1.js +1 -0
  209. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DPfltzjH.js +165 -0
  210. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DR8nis88.js +2 -0
  211. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DUliQN2b.js +1 -0
  212. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DVp1hx9R.js +1 -0
  213. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DXlhR01x.js +122 -0
  214. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/D_lyTybS.js +1 -0
  215. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DngoTTgh.js +1 -0
  216. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DqkmHtDC.js +220 -0
  217. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DsDh8EYs.js +1 -0
  218. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DypDmXgd.js +139 -0
  219. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Gi6I4Gst.js +1 -0
  220. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/IPYC-LnN.js +162 -0
  221. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/JTLiF7dt.js +24 -0
  222. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/JpevfAFt.js +68 -0
  223. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/NqQ1dWOy.js +1 -0
  224. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/R8CEIRAd.js +2 -0
  225. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/Zxy7qc-l.js +64 -0
  226. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/q9Hm6zAU.js +1 -0
  227. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/qtd3IeO4.js +15 -0
  228. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/ulBFON_C.js +65 -0
  229. claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/wQVh1CoA.js +10 -0
  230. claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/app.Dr7t0z2J.js +2 -0
  231. claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/start.BGhZHUS3.js +1 -0
  232. claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/0.RgBboRvH.js +1 -0
  233. claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/1.DG-KkbDf.js +1 -0
  234. claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/2.D_jnf-x6.js +1 -0
  235. claude_mpm/dashboard/static/svelte-build/_app/version.json +1 -0
  236. claude_mpm/dashboard/static/svelte-build/favicon.svg +7 -0
  237. claude_mpm/dashboard/static/svelte-build/index.html +36 -0
  238. claude_mpm/dashboard-svelte/node_modules/katex/src/fonts/generate_fonts.py +58 -0
  239. claude_mpm/dashboard-svelte/node_modules/katex/src/metrics/extract_tfms.py +114 -0
  240. claude_mpm/dashboard-svelte/node_modules/katex/src/metrics/extract_ttfs.py +122 -0
  241. claude_mpm/dashboard-svelte/node_modules/katex/src/metrics/format_json.py +28 -0
  242. claude_mpm/dashboard-svelte/node_modules/katex/src/metrics/parse_tfm.py +211 -0
  243. claude_mpm/experimental/cli_enhancements.py +2 -1
  244. claude_mpm/hooks/claude_hooks/INTEGRATION_EXAMPLE.md +243 -0
  245. claude_mpm/hooks/claude_hooks/README_AUTO_PAUSE.md +403 -0
  246. claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc +0 -0
  247. claude_mpm/hooks/claude_hooks/__pycache__/auto_pause_handler.cpython-311.pyc +0 -0
  248. claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc +0 -0
  249. claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc +0 -0
  250. claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc +0 -0
  251. claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc +0 -0
  252. claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc +0 -0
  253. claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc +0 -0
  254. claude_mpm/hooks/claude_hooks/auto_pause_handler.py +485 -0
  255. claude_mpm/hooks/claude_hooks/event_handlers.py +527 -136
  256. claude_mpm/hooks/claude_hooks/hook_handler.py +313 -99
  257. claude_mpm/hooks/claude_hooks/hook_wrapper.sh +6 -11
  258. claude_mpm/hooks/claude_hooks/installer.py +206 -36
  259. claude_mpm/hooks/claude_hooks/memory_integration.py +52 -32
  260. claude_mpm/hooks/claude_hooks/response_tracking.py +43 -60
  261. claude_mpm/hooks/claude_hooks/services/__init__.py +21 -0
  262. claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-311.pyc +0 -0
  263. claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc +0 -0
  264. claude_mpm/hooks/claude_hooks/services/__pycache__/container.cpython-311.pyc +0 -0
  265. claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc +0 -0
  266. claude_mpm/hooks/claude_hooks/services/__pycache__/protocols.cpython-311.pyc +0 -0
  267. claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc +0 -0
  268. claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc +0 -0
  269. claude_mpm/hooks/claude_hooks/services/connection_manager.py +67 -32
  270. claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +38 -105
  271. claude_mpm/hooks/claude_hooks/services/container.py +310 -0
  272. claude_mpm/hooks/claude_hooks/services/protocols.py +328 -0
  273. claude_mpm/hooks/claude_hooks/services/state_manager.py +25 -38
  274. claude_mpm/hooks/claude_hooks/services/subagent_processor.py +75 -77
  275. claude_mpm/hooks/kuzu_memory_hook.py +5 -5
  276. claude_mpm/hooks/session_resume_hook.py +89 -1
  277. claude_mpm/hooks/templates/pre_tool_use_simple.py +6 -6
  278. claude_mpm/hooks/templates/pre_tool_use_template.py +16 -8
  279. claude_mpm/init.py +276 -0
  280. claude_mpm/models/git_repository.py +3 -3
  281. claude_mpm/scripts/claude-hook-handler.sh +46 -19
  282. claude_mpm/services/agents/agent_builder.py +3 -3
  283. claude_mpm/services/agents/agent_recommendation_service.py +8 -8
  284. claude_mpm/services/agents/agent_selection_service.py +2 -2
  285. claude_mpm/services/agents/cache_git_manager.py +7 -7
  286. claude_mpm/services/agents/deployment/agent_deployment.py +29 -7
  287. claude_mpm/services/agents/deployment/agent_discovery_service.py +4 -2
  288. claude_mpm/services/agents/deployment/agent_format_converter.py +25 -13
  289. claude_mpm/services/agents/deployment/agent_template_builder.py +39 -19
  290. claude_mpm/services/agents/deployment/agents_directory_resolver.py +2 -2
  291. claude_mpm/services/agents/deployment/async_agent_deployment.py +31 -27
  292. claude_mpm/services/agents/deployment/deployment_reconciler.py +577 -0
  293. claude_mpm/services/agents/deployment/local_template_deployment.py +3 -1
  294. claude_mpm/services/agents/deployment/multi_source_deployment_service.py +169 -26
  295. claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +101 -75
  296. claude_mpm/services/agents/deployment/startup_reconciliation.py +138 -0
  297. claude_mpm/services/agents/git_source_manager.py +23 -4
  298. claude_mpm/services/agents/loading/framework_agent_loader.py +75 -2
  299. claude_mpm/services/agents/recommender.py +5 -3
  300. claude_mpm/services/agents/single_tier_deployment_service.py +6 -6
  301. claude_mpm/services/agents/sources/git_source_sync_service.py +121 -10
  302. claude_mpm/services/agents/startup_sync.py +27 -4
  303. claude_mpm/services/cli/__init__.py +3 -0
  304. claude_mpm/services/cli/incremental_pause_manager.py +561 -0
  305. claude_mpm/services/cli/session_resume_helper.py +10 -2
  306. claude_mpm/services/command_deployment_service.py +44 -26
  307. claude_mpm/services/delegation_detector.py +175 -0
  308. claude_mpm/services/diagnostics/checks/agent_check.py +2 -2
  309. claude_mpm/services/diagnostics/checks/agent_sources_check.py +31 -1
  310. claude_mpm/services/diagnostics/checks/configuration_check.py +24 -0
  311. claude_mpm/services/diagnostics/checks/installation_check.py +22 -0
  312. claude_mpm/services/diagnostics/checks/mcp_services_check.py +23 -0
  313. claude_mpm/services/diagnostics/doctor_reporter.py +31 -1
  314. claude_mpm/services/diagnostics/models.py +14 -1
  315. claude_mpm/services/event_log.py +325 -0
  316. claude_mpm/services/git/git_operations_service.py +8 -8
  317. claude_mpm/services/hook_installer_service.py +77 -8
  318. claude_mpm/services/infrastructure/__init__.py +4 -0
  319. claude_mpm/services/infrastructure/context_usage_tracker.py +291 -0
  320. claude_mpm/services/infrastructure/resume_log_generator.py +24 -5
  321. claude_mpm/services/monitor/daemon_manager.py +15 -4
  322. claude_mpm/services/monitor/management/lifecycle.py +15 -3
  323. claude_mpm/services/monitor/server.py +571 -11
  324. claude_mpm/services/pm_skills_deployer.py +884 -0
  325. claude_mpm/services/profile_manager.py +337 -0
  326. claude_mpm/services/skills/git_skill_source_manager.py +281 -20
  327. claude_mpm/services/skills/selective_skill_deployer.py +211 -46
  328. claude_mpm/services/skills/skill_discovery_service.py +74 -4
  329. claude_mpm/services/skills_deployer.py +192 -70
  330. claude_mpm/services/socketio/dashboard_server.py +1 -0
  331. claude_mpm/services/socketio/event_normalizer.py +37 -6
  332. claude_mpm/services/socketio/handlers/hook.py +14 -7
  333. claude_mpm/services/socketio/server/core.py +262 -123
  334. claude_mpm/services/socketio/server/main.py +12 -4
  335. claude_mpm/skills/__init__.py +2 -1
  336. claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +79 -0
  337. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +178 -0
  338. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +577 -0
  339. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +467 -0
  340. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +537 -0
  341. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +730 -0
  342. claude_mpm/skills/bundled/collaboration/git-worktrees.md +317 -0
  343. claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +112 -0
  344. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +146 -0
  345. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +412 -0
  346. claude_mpm/skills/bundled/collaboration/stacked-prs.md +251 -0
  347. claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +81 -0
  348. claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +362 -0
  349. claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +312 -0
  350. claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +152 -0
  351. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +668 -0
  352. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +587 -0
  353. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +438 -0
  354. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +391 -0
  355. claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +119 -0
  356. claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +148 -0
  357. claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +483 -0
  358. claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +452 -0
  359. claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +449 -0
  360. claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +411 -0
  361. claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +14 -0
  362. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +58 -0
  363. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +68 -0
  364. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +69 -0
  365. claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +131 -0
  366. claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +325 -0
  367. claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +490 -0
  368. claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +425 -0
  369. claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +499 -0
  370. claude_mpm/skills/bundled/infrastructure/env-manager/INTEGRATION.md +611 -0
  371. claude_mpm/skills/bundled/infrastructure/env-manager/README.md +596 -0
  372. claude_mpm/skills/bundled/infrastructure/env-manager/SKILL.md +260 -0
  373. claude_mpm/skills/bundled/infrastructure/env-manager/examples/nextjs-env-structure.md +315 -0
  374. claude_mpm/skills/bundled/infrastructure/env-manager/references/frameworks.md +436 -0
  375. claude_mpm/skills/bundled/infrastructure/env-manager/references/security.md +433 -0
  376. claude_mpm/skills/bundled/infrastructure/env-manager/references/synchronization.md +452 -0
  377. claude_mpm/skills/bundled/infrastructure/env-manager/references/troubleshooting.md +404 -0
  378. claude_mpm/skills/bundled/infrastructure/env-manager/references/validation.md +420 -0
  379. claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +86 -0
  380. claude_mpm/skills/bundled/main/internal-comms/SKILL.md +43 -0
  381. claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +47 -0
  382. claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +65 -0
  383. claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +30 -0
  384. claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +16 -0
  385. claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +160 -0
  386. claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +412 -0
  387. claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +602 -0
  388. claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +915 -0
  389. claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +916 -0
  390. claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +752 -0
  391. claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +1237 -0
  392. claude_mpm/skills/bundled/main/skill-creator/SKILL.md +189 -0
  393. claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +500 -0
  394. claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +464 -0
  395. claude_mpm/skills/bundled/main/skill-creator/references/examples.md +619 -0
  396. claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +437 -0
  397. claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +231 -0
  398. claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +170 -0
  399. claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +602 -0
  400. claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +821 -0
  401. claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +742 -0
  402. claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +726 -0
  403. claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +764 -0
  404. claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +831 -0
  405. claude_mpm/skills/bundled/pm/mpm/SKILL.md +38 -0
  406. claude_mpm/skills/bundled/pm/mpm-agent-update-workflow/SKILL.md +75 -0
  407. claude_mpm/skills/bundled/pm/mpm-bug-reporting/SKILL.md +248 -0
  408. claude_mpm/skills/bundled/pm/mpm-circuit-breaker-enforcement/SKILL.md +476 -0
  409. claude_mpm/skills/bundled/pm/mpm-config/SKILL.md +29 -0
  410. claude_mpm/skills/bundled/pm/mpm-delegation-patterns/SKILL.md +167 -0
  411. claude_mpm/skills/bundled/pm/mpm-doctor/SKILL.md +53 -0
  412. claude_mpm/skills/bundled/pm/mpm-git-file-tracking/SKILL.md +113 -0
  413. claude_mpm/skills/bundled/pm/mpm-help/SKILL.md +35 -0
  414. claude_mpm/skills/bundled/pm/mpm-init/SKILL.md +125 -0
  415. claude_mpm/skills/bundled/pm/mpm-monitor/SKILL.md +32 -0
  416. claude_mpm/skills/bundled/pm/mpm-organize/SKILL.md +121 -0
  417. claude_mpm/skills/bundled/pm/mpm-postmortem/SKILL.md +22 -0
  418. claude_mpm/skills/bundled/pm/mpm-pr-workflow/SKILL.md +124 -0
  419. claude_mpm/skills/bundled/pm/mpm-session-management/SKILL.md +312 -0
  420. claude_mpm/skills/bundled/pm/mpm-session-pause/SKILL.md +170 -0
  421. claude_mpm/skills/bundled/pm/mpm-session-resume/SKILL.md +31 -0
  422. claude_mpm/skills/bundled/pm/mpm-status/SKILL.md +37 -0
  423. claude_mpm/skills/bundled/pm/mpm-teaching-mode/SKILL.md +657 -0
  424. claude_mpm/skills/bundled/pm/mpm-ticket-view/SKILL.md +110 -0
  425. claude_mpm/skills/bundled/pm/mpm-ticketing-integration/SKILL.md +154 -0
  426. claude_mpm/skills/bundled/pm/mpm-tool-usage-guide/SKILL.md +386 -0
  427. claude_mpm/skills/bundled/pm/mpm-verification-protocols/SKILL.md +198 -0
  428. claude_mpm/skills/bundled/pm/mpm-version/SKILL.md +21 -0
  429. claude_mpm/skills/bundled/react/flexlayout-react.md +742 -0
  430. claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +226 -0
  431. claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +901 -0
  432. claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +901 -0
  433. claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +775 -0
  434. claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +937 -0
  435. claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +770 -0
  436. claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +961 -0
  437. claude_mpm/skills/bundled/security-scanning.md +112 -0
  438. claude_mpm/skills/bundled/tauri/tauri-async-patterns.md +495 -0
  439. claude_mpm/skills/bundled/tauri/tauri-build-deploy.md +599 -0
  440. claude_mpm/skills/bundled/tauri/tauri-command-patterns.md +535 -0
  441. claude_mpm/skills/bundled/tauri/tauri-error-handling.md +613 -0
  442. claude_mpm/skills/bundled/tauri/tauri-event-system.md +648 -0
  443. claude_mpm/skills/bundled/tauri/tauri-file-system.md +673 -0
  444. claude_mpm/skills/bundled/tauri/tauri-frontend-integration.md +767 -0
  445. claude_mpm/skills/bundled/tauri/tauri-performance.md +669 -0
  446. claude_mpm/skills/bundled/tauri/tauri-state-management.md +573 -0
  447. claude_mpm/skills/bundled/tauri/tauri-testing.md +384 -0
  448. claude_mpm/skills/bundled/tauri/tauri-window-management.md +628 -0
  449. claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +119 -0
  450. claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +253 -0
  451. claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +145 -0
  452. claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +543 -0
  453. claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +741 -0
  454. claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +470 -0
  455. claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +458 -0
  456. claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +639 -0
  457. claude_mpm/skills/bundled/testing/test-quality-inspector/SKILL.md +458 -0
  458. claude_mpm/skills/bundled/testing/test-quality-inspector/examples/example-inspection-report.md +411 -0
  459. claude_mpm/skills/bundled/testing/test-quality-inspector/references/assertion-quality.md +317 -0
  460. claude_mpm/skills/bundled/testing/test-quality-inspector/references/inspection-checklist.md +270 -0
  461. claude_mpm/skills/bundled/testing/test-quality-inspector/references/red-flags.md +436 -0
  462. claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +140 -0
  463. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +572 -0
  464. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +411 -0
  465. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +569 -0
  466. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +695 -0
  467. claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +184 -0
  468. claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +459 -0
  469. claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +479 -0
  470. claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +687 -0
  471. claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +758 -0
  472. claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +868 -0
  473. claude_mpm/skills/registry.py +295 -90
  474. claude_mpm/skills/skill_manager.py +98 -3
  475. claude_mpm/templates/.pre-commit-config.yaml +112 -0
  476. claude_mpm/utils/agent_dependency_loader.py +115 -4
  477. claude_mpm/utils/agent_filters.py +1 -1
  478. claude_mpm/utils/migration.py +4 -4
  479. claude_mpm/utils/robust_installer.py +86 -21
  480. claude_mpm-5.6.34.dist-info/METADATA +393 -0
  481. {claude_mpm-5.4.22.dist-info → claude_mpm-5.6.34.dist-info}/RECORD +486 -145
  482. claude_mpm-5.4.22.dist-info/METADATA +0 -996
  483. {claude_mpm-5.4.22.dist-info → claude_mpm-5.6.34.dist-info}/WHEEL +0 -0
  484. {claude_mpm-5.4.22.dist-info → claude_mpm-5.6.34.dist-info}/entry_points.txt +0 -0
  485. {claude_mpm-5.4.22.dist-info → claude_mpm-5.6.34.dist-info}/licenses/LICENSE +0 -0
  486. {claude_mpm-5.4.22.dist-info → claude_mpm-5.6.34.dist-info}/licenses/LICENSE-FAQ.md +0 -0
  487. {claude_mpm-5.4.22.dist-info → claude_mpm-5.6.34.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,611 @@
1
+ # Agent Integration Guide for env-manager
2
+
3
+ This guide shows how Claude MPM agents should use the env-manager skill for environment variable validation, security scanning, and deployment preparation.
4
+
5
+ ## Overview
6
+
7
+ The env-manager skill provides agents with systematic environment variable management capabilities. Agents can delegate environment validation tasks to this skill or invoke it directly for automated checks.
8
+
9
+ ## Skill Invocation Pattern
10
+
11
+ ### Basic Invocation
12
+
13
+ Agents can invoke the env-manager skill using the standard Claude MPM skill invocation pattern:
14
+
15
+ ```
16
+ Use env-manager skill for environment variable validation
17
+ ```
18
+
19
+ ### Specific Task Invocation
20
+
21
+ For targeted tasks, agents can be more specific:
22
+
23
+ ```
24
+ Use env-manager skill to validate Next.js environment variables for security issues
25
+ ```
26
+
27
+ ```
28
+ Use env-manager skill to generate .env.example documentation
29
+ ```
30
+
31
+ ```
32
+ Use env-manager skill to compare .env with .env.example before deployment
33
+ ```
34
+
35
+ ## Agent Usage Patterns
36
+
37
+ ### Pattern 1: Pre-Deployment Validation
38
+
39
+ **Scenario:** Agent needs to validate environment before deployment
40
+
41
+ ```python
42
+ # Agent workflow
43
+ 1. Identify deployment target (Vercel, Railway, etc.)
44
+ 2. Invoke env-manager skill: "Validate .env for Next.js deployment to Vercel"
45
+ 3. Parse validation results
46
+ 4. If errors: Report to user, block deployment
47
+ 5. If warnings: Report to user, request confirmation
48
+ 6. If success: Proceed with deployment
49
+ ```
50
+
51
+ **Example skill invocation:**
52
+ ```
53
+ I need to validate the Next.js environment configuration before deploying to Vercel.
54
+ Use env-manager skill to check .env.local for:
55
+ - Next.js specific issues (NEXT_PUBLIC_ prefix usage)
56
+ - Security issues (exposed secrets)
57
+ - Missing required variables
58
+ - Deployment readiness
59
+ ```
60
+
61
+ ### Pattern 2: Security Scanning
62
+
63
+ **Scenario:** Security agent needs to scan for exposed secrets
64
+
65
+ ```python
66
+ # Security agent workflow
67
+ 1. Locate .env files in project
68
+ 2. Invoke env-manager: "Scan for security issues in environment variables"
69
+ 3. Parse security warnings
70
+ 4. Generate security report
71
+ 5. Recommend fixes for found issues
72
+ ```
73
+
74
+ **Example skill invocation:**
75
+ ```
76
+ Use env-manager skill to perform security scan of .env.local:
77
+ - Check for secrets in client-exposed variables (NEXT_PUBLIC_, VITE_, REACT_APP_)
78
+ - Validate secret formats
79
+ - Identify potential credential leaks
80
+ - Report security warnings
81
+ ```
82
+
83
+ ### Pattern 3: Documentation Generation
84
+
85
+ **Scenario:** Agent needs to generate .env.example for repository
86
+
87
+ ```python
88
+ # Documentation agent workflow
89
+ 1. Read current .env file
90
+ 2. Invoke env-manager: "Generate .env.example with sanitized values"
91
+ 3. Review generated file
92
+ 4. Add to git (ensure .env.example, not .env)
93
+ 5. Update README with environment setup instructions
94
+ ```
95
+
96
+ **Example skill invocation:**
97
+ ```
98
+ Use env-manager skill to generate .env.example from .env:
99
+ - Sanitize all secret values
100
+ - Keep structure and variable names
101
+ - Add helpful comments for required variables
102
+ - Ensure safe for git commit
103
+ ```
104
+
105
+ ### Pattern 4: Onboarding Assistance
106
+
107
+ **Scenario:** Agent helps new developer set up environment
108
+
109
+ ```python
110
+ # Onboarding agent workflow
111
+ 1. Guide user to copy .env.example to .env
112
+ 2. Invoke env-manager: "Compare .env with .env.example"
113
+ 3. Report missing variables to user
114
+ 4. Guide user to fill in missing values
115
+ 5. Re-validate until complete
116
+ ```
117
+
118
+ **Example skill invocation:**
119
+ ```
120
+ Use env-manager skill to verify new developer's environment setup:
121
+ - Compare .env with .env.example
122
+ - Report missing required variables
123
+ - Identify extra undocumented variables
124
+ - Validate all values are filled in (no empty values)
125
+ ```
126
+
127
+ ### Pattern 5: CI/CD Integration
128
+
129
+ **Scenario:** CI/CD agent validates environment in pipeline
130
+
131
+ ```python
132
+ # CI/CD agent workflow
133
+ 1. Locate .env.example in repository
134
+ 2. Invoke env-manager: "Validate .env.example with strict mode and JSON output"
135
+ 3. Parse JSON results
136
+ 4. If validation fails: Fail pipeline with details
137
+ 5. If validation passes: Continue pipeline
138
+ ```
139
+
140
+ **Example skill invocation:**
141
+ ```
142
+ Use env-manager skill for CI/CD validation:
143
+ - Validate .env.example structure
144
+ - Use strict mode (warnings as errors)
145
+ - Output JSON for parsing
146
+ - Return exit code for pipeline
147
+ ```
148
+
149
+ ## Expected Outputs
150
+
151
+ ### Success Response
152
+
153
+ When validation passes:
154
+
155
+ ```json
156
+ {
157
+ "status": "success",
158
+ "message": "Validation successful",
159
+ "stats": {
160
+ "total_vars": 15,
161
+ "errors": 0,
162
+ "warnings": 0
163
+ }
164
+ }
165
+ ```
166
+
167
+ **Agent action:** Proceed with next step in workflow
168
+
169
+ ### Error Response
170
+
171
+ When validation fails:
172
+
173
+ ```json
174
+ {
175
+ "status": "error",
176
+ "errors": [
177
+ {
178
+ "line": 12,
179
+ "key": "DATABASE_URL",
180
+ "message": "Empty value not allowed",
181
+ "severity": "error"
182
+ }
183
+ ],
184
+ "stats": {
185
+ "total_vars": 15,
186
+ "errors": 1,
187
+ "warnings": 0
188
+ }
189
+ }
190
+ ```
191
+
192
+ **Agent action:**
193
+ 1. Report errors to user
194
+ 2. Suggest fixes
195
+ 3. Block deployment/pipeline
196
+ 4. Request user to fix errors and retry
197
+
198
+ ### Warning Response
199
+
200
+ When warnings are found:
201
+
202
+ ```json
203
+ {
204
+ "status": "warning",
205
+ "warnings": [
206
+ {
207
+ "line": 5,
208
+ "key": "NEXT_PUBLIC_API_KEY",
209
+ "message": "Potential secret in client-exposed variable",
210
+ "severity": "warning"
211
+ }
212
+ ],
213
+ "stats": {
214
+ "total_vars": 15,
215
+ "errors": 0,
216
+ "warnings": 1
217
+ }
218
+ }
219
+ ```
220
+
221
+ **Agent action:**
222
+ 1. Report warnings to user
223
+ 2. Explain security implications
224
+ 3. Request confirmation to proceed
225
+ 4. In strict mode: Treat as error
226
+
227
+ ## Error Handling
228
+
229
+ ### File Not Found
230
+
231
+ ```python
232
+ if file_not_found:
233
+ agent.report("Environment file not found")
234
+ agent.suggest("Create .env file from .env.example: cp .env.example .env")
235
+ agent.guide_user_to_fill_values()
236
+ ```
237
+
238
+ ### Validation Errors
239
+
240
+ ```python
241
+ if validation_errors:
242
+ agent.report_errors(errors)
243
+ agent.suggest_fixes_for_each_error()
244
+ agent.block_deployment()
245
+ agent.request_retry_after_fixes()
246
+ ```
247
+
248
+ ### Security Warnings
249
+
250
+ ```python
251
+ if security_warnings:
252
+ agent.highlight_security_risks()
253
+ agent.explain_client_exposure()
254
+ agent.suggest_moving_to_server_side()
255
+ agent.request_confirmation_or_fix()
256
+ ```
257
+
258
+ ### Missing Variables
259
+
260
+ ```python
261
+ if missing_vars:
262
+ agent.list_missing_vars()
263
+ agent.guide_where_to_find_values()
264
+ agent.explain_importance_of_each_var()
265
+ agent.validate_after_user_adds_vars()
266
+ ```
267
+
268
+ ## JSON Output Parsing
269
+
270
+ Agents should use `--json` flag for structured output:
271
+
272
+ ```bash
273
+ python3 scripts/validate_env.py .env --framework nextjs --json
274
+ ```
275
+
276
+ **Parsing JSON output:**
277
+
278
+ ```python
279
+ import json
280
+ import subprocess
281
+
282
+ result = subprocess.run(
283
+ ["python3", "scripts/validate_env.py", ".env", "--framework", "nextjs", "--json"],
284
+ capture_output=True,
285
+ text=True
286
+ )
287
+
288
+ data = json.loads(result.stdout)
289
+
290
+ if data["valid"]:
291
+ # Validation passed
292
+ proceed_with_deployment()
293
+ elif data["errors"]:
294
+ # Validation failed
295
+ report_errors_to_user(data["errors"])
296
+ block_deployment()
297
+ elif data["warnings"]:
298
+ # Warnings found
299
+ report_warnings_to_user(data["warnings"])
300
+ request_confirmation()
301
+ ```
302
+
303
+ ## Agent-Specific Workflows
304
+
305
+ ### nextjs-engineer Agent
306
+
307
+ **Use cases:**
308
+ - Pre-deployment validation for Vercel
309
+ - NEXT_PUBLIC_ variable security checks
310
+ - .env.local vs .env.production management
311
+
312
+ **Example workflow:**
313
+ ```
314
+ 1. User: "Deploy to Vercel"
315
+ 2. Agent validates .env.local with --framework nextjs
316
+ 3. Agent checks for NEXT_PUBLIC_ secrets
317
+ 4. Agent compares with Vercel environment variables
318
+ 5. Agent proceeds with deployment or reports issues
319
+ ```
320
+
321
+ ### security Agent
322
+
323
+ **Use cases:**
324
+ - Secret exposure scanning
325
+ - Client-side variable security audit
326
+ - Credential format validation
327
+
328
+ **Example workflow:**
329
+ ```
330
+ 1. User: "Run security audit"
331
+ 2. Agent scans all .env* files
332
+ 3. Agent checks for exposed secrets in NEXT_PUBLIC_ vars
333
+ 4. Agent validates .gitignore covers .env files
334
+ 5. Agent generates security report
335
+ ```
336
+
337
+ ### vercel-ops-agent Agent
338
+
339
+ **Use cases:**
340
+ - Platform environment sync
341
+ - Deployment configuration validation
342
+ - Environment parity checks
343
+
344
+ **Example workflow:**
345
+ ```
346
+ 1. User: "Sync environment to Vercel"
347
+ 2. Agent compares local .env with Vercel project settings
348
+ 3. Agent identifies missing/different variables
349
+ 4. Agent generates vercel.json or CLI commands
350
+ 5. Agent syncs to platform (with confirmation)
351
+ ```
352
+
353
+ ### devops Agent
354
+
355
+ **Use cases:**
356
+ - CI/CD pipeline validation
357
+ - Multi-environment management
358
+ - .env.example maintenance
359
+
360
+ **Example workflow:**
361
+ ```
362
+ 1. User: "Set up CI/CD for environment validation"
363
+ 2. Agent creates GitHub Actions workflow
364
+ 3. Agent configures env-manager validation step
365
+ 4. Agent sets up strict mode for quality gate
366
+ 5. Agent tests pipeline with .env.example
367
+ ```
368
+
369
+ ### onboarding-assistant Agent
370
+
371
+ **Use cases:**
372
+ - New developer environment setup
373
+ - Guided .env configuration
374
+ - Validation and troubleshooting
375
+
376
+ **Example workflow:**
377
+ ```
378
+ 1. User: "New developer needs environment setup"
379
+ 2. Agent guides: cp .env.example .env
380
+ 3. Agent runs validation to find missing vars
381
+ 4. Agent explains each required variable
382
+ 5. Agent validates complete setup
383
+ 6. Agent confirms ready for development
384
+ ```
385
+
386
+ ## Best Practices for Agents
387
+
388
+ ### 1. Always Validate Before Deployment
389
+
390
+ ```python
391
+ def deploy_to_platform():
392
+ # ✅ Good: Validate first
393
+ validation_result = run_env_validation()
394
+ if not validation_result.valid:
395
+ report_errors_and_block()
396
+ return
397
+
398
+ proceed_with_deployment()
399
+ ```
400
+
401
+ ### 2. Use Framework-Specific Validation
402
+
403
+ ```python
404
+ def validate_for_framework(framework):
405
+ # ✅ Good: Framework-aware
406
+ cmd = f"python3 scripts/validate_env.py .env --framework {framework}"
407
+
408
+ # ❌ Bad: Generic validation only
409
+ # cmd = "python3 scripts/validate_env.py .env"
410
+ ```
411
+
412
+ ### 3. Parse JSON for Structured Handling
413
+
414
+ ```python
415
+ # ✅ Good: Structured output
416
+ result = run_validation(json=True)
417
+ data = json.loads(result.stdout)
418
+ handle_each_error(data["errors"])
419
+
420
+ # ❌ Bad: Parse text output
421
+ # result = run_validation()
422
+ # grep for errors in text
423
+ ```
424
+
425
+ ### 4. Explain Security Warnings
426
+
427
+ ```python
428
+ def handle_security_warning(warning):
429
+ # ✅ Good: Explain the risk
430
+ agent.explain(f"{warning.key} is exposed to client-side code")
431
+ agent.explain("This means users can see this value in their browser")
432
+ agent.suggest("Move to server-side variable or use publishable key")
433
+
434
+ # ❌ Bad: Just show the warning
435
+ # print(warning)
436
+ ```
437
+
438
+ ### 5. Guide Users to Fix Issues
439
+
440
+ ```python
441
+ def handle_missing_variable(var_name):
442
+ # ✅ Good: Actionable guidance
443
+ agent.explain(f"{var_name} is required but missing")
444
+ agent.explain("This variable is used for: <purpose>")
445
+ agent.suggest(f"Add to .env: {var_name}=<value>")
446
+ agent.guide("You can find this value in: <location>")
447
+
448
+ # ❌ Bad: Just report it's missing
449
+ # print(f"Missing: {var_name}")
450
+ ```
451
+
452
+ ### 6. Use Strict Mode in CI/CD
453
+
454
+ ```python
455
+ def ci_cd_validation():
456
+ # ✅ Good: Strict mode in CI
457
+ result = run_validation(strict=True)
458
+ # Warnings will fail the pipeline
459
+
460
+ # ❌ Bad: Ignore warnings in CI
461
+ # result = run_validation()
462
+ ```
463
+
464
+ ### 7. Never Log Actual Secret Values
465
+
466
+ ```python
467
+ def report_validation_result(result):
468
+ # ✅ Good: Report structure, not values
469
+ agent.report(f"Found {len(result.errors)} errors")
470
+ agent.report_error_details_without_values()
471
+
472
+ # ❌ Bad: Log actual values
473
+ # print(f"DATABASE_URL={os.getenv('DATABASE_URL')}") # NEVER!
474
+ ```
475
+
476
+ ## Integration Checklist
477
+
478
+ When integrating env-manager into an agent workflow:
479
+
480
+ - [ ] Identify validation trigger (deployment, commit, security scan)
481
+ - [ ] Determine appropriate framework (nextjs, vite, react, nodejs, flask)
482
+ - [ ] Choose validation mode (normal, strict, quiet)
483
+ - [ ] Set up JSON output parsing
484
+ - [ ] Handle all error types (file not found, validation errors, warnings)
485
+ - [ ] Provide actionable guidance for each error type
486
+ - [ ] Implement retry logic after user fixes issues
487
+ - [ ] Never log actual secret values
488
+ - [ ] Test with various .env file scenarios
489
+ - [ ] Document agent's env-manager usage in agent template
490
+
491
+ ## Example Agent Implementation
492
+
493
+ Here's a complete example of a deployment agent using env-manager:
494
+
495
+ ```python
496
+ class DeploymentAgent:
497
+ def __init__(self):
498
+ self.env_manager = EnvManagerSkill()
499
+
500
+ def deploy_to_vercel(self, env_file=".env.local"):
501
+ """Deploy Next.js app to Vercel with env validation."""
502
+
503
+ # Step 1: Pre-deployment validation
504
+ print("🔍 Validating environment variables...")
505
+ result = self.env_manager.validate(
506
+ file=env_file,
507
+ framework="nextjs",
508
+ strict=True,
509
+ json=True
510
+ )
511
+
512
+ # Step 2: Parse results
513
+ data = json.loads(result.stdout)
514
+
515
+ # Step 3: Handle errors
516
+ if data.get("errors"):
517
+ self.report_errors(data["errors"])
518
+ print("❌ Deployment blocked due to validation errors")
519
+ return False
520
+
521
+ # Step 4: Handle warnings
522
+ if data.get("warnings"):
523
+ self.report_warnings(data["warnings"])
524
+ if not self.request_user_confirmation():
525
+ print("⚠️ Deployment cancelled by user")
526
+ return False
527
+
528
+ # Step 5: Validate completeness
529
+ if not self.compare_with_example(env_file):
530
+ print("❌ Missing required variables")
531
+ return False
532
+
533
+ # Step 6: Proceed with deployment
534
+ print("✅ Environment validation passed")
535
+ print("🚀 Deploying to Vercel...")
536
+ self.deploy()
537
+ return True
538
+
539
+ def report_errors(self, errors):
540
+ """Report validation errors with actionable guidance."""
541
+ print(f"\n❌ Found {len(errors)} validation error(s):\n")
542
+ for error in errors:
543
+ print(f"Line {error['line']}: {error['key']}")
544
+ print(f" Error: {error['message']}")
545
+ print(f" Fix: {self.get_fix_suggestion(error)}\n")
546
+
547
+ def report_warnings(self, warnings):
548
+ """Report validation warnings with security context."""
549
+ print(f"\n⚠️ Found {len(warnings)} warning(s):\n")
550
+ for warning in warnings:
551
+ print(f"{warning['key']}: {warning['message']}")
552
+ if "client-exposed" in warning['message']:
553
+ print(" ⚠️ Security risk: This value will be visible in browser")
554
+ print(" Fix: Move to server-side variable or use publishable key")
555
+ print()
556
+
557
+ def compare_with_example(self, env_file):
558
+ """Ensure all required variables are present."""
559
+ result = self.env_manager.validate(
560
+ file=env_file,
561
+ compare_with=".env.example",
562
+ json=True
563
+ )
564
+ data = json.loads(result.stdout)
565
+
566
+ if data.get("missing_vars"):
567
+ print(f"❌ Missing required variables: {', '.join(data['missing_vars'])}")
568
+ print("Add these to your .env file before deploying")
569
+ return False
570
+
571
+ return True
572
+
573
+ def request_user_confirmation(self):
574
+ """Request user confirmation for warnings."""
575
+ response = input("⚠️ Warnings found. Proceed anyway? (y/N): ")
576
+ return response.lower() == 'y'
577
+
578
+ def get_fix_suggestion(self, error):
579
+ """Provide fix suggestion based on error type."""
580
+ if "empty value" in error["message"].lower():
581
+ return f"Add a value for {error['key']}"
582
+ elif "duplicate" in error["message"].lower():
583
+ return f"Remove duplicate definition of {error['key']}"
584
+ elif "invalid format" in error["message"].lower():
585
+ return f"Fix format: {error['key']}=value"
586
+ else:
587
+ return "Review and fix the issue"
588
+ ```
589
+
590
+ ## Support and Resources
591
+
592
+ - **Skill Documentation**: [README.md](README.md)
593
+ - **Validation Reference**: [references/validation.md](references/validation.md)
594
+ - **Security Reference**: [references/security.md](references/security.md)
595
+ - **Framework Reference**: [references/frameworks.md](references/frameworks.md)
596
+ - **Troubleshooting**: [references/troubleshooting.md](references/troubleshooting.md)
597
+
598
+ ## Contributing
599
+
600
+ When adding env-manager integration to agents:
601
+
602
+ 1. Follow the patterns in this guide
603
+ 2. Test with various .env file scenarios
604
+ 3. Document the integration in agent template
605
+ 4. Submit examples to this guide
606
+ 5. Ensure security best practices (never log secrets!)
607
+
608
+ ---
609
+
610
+ **Version**: 1.0.0
611
+ **Last Updated**: 2025-11-13