claude-mpm 3.7.1__tar.gz → 3.7.4__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.
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.ai-trackdown/config.yaml +2 -2
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/.claude.json.backup +4 -4
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/agents/data_engineer.md +8 -3
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/agents/documentation.md +8 -3
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/agents/engineer.md +10 -5
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/agents/ops.md +8 -3
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/agents/qa.md +8 -3
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/agents/research.md +36 -10
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/agents/security.md +8 -3
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/agents/version_control.md +8 -3
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/CHANGELOG.md +18 -23
- {claude_mpm-3.7.1/src/claude_mpm.egg-info → claude_mpm-3.7.4}/PKG-INFO +1 -1
- claude_mpm-3.7.4/VERSION +1 -0
- claude_mpm-3.7.4/src/claude_mpm/VERSION +1 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/frontmatter_validator.py +116 -17
- claude_mpm-3.7.4/src/claude_mpm/agents/templates/.claude-mpm/memories/engineer_agent.md +39 -0
- claude_mpm-3.7.4/src/claude_mpm/agents/templates/.claude-mpm/memories/qa_agent.md +38 -0
- claude_mpm-3.7.4/src/claude_mpm/agents/templates/.claude-mpm/memories/research_agent.md +39 -0
- claude_mpm-3.7.4/src/claude_mpm/agents/templates/code_analyzer.json +88 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/data_engineer.json +4 -4
- claude_mpm-3.7.4/src/claude_mpm/agents/templates/engineer.json +129 -0
- claude_mpm-3.7.4/src/claude_mpm/agents/templates/research.json +86 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/security.json +3 -3
- claude_mpm-3.7.4/src/claude_mpm/agents/templates/ticketing.json +161 -0
- claude_mpm-3.7.4/src/claude_mpm/agents/templates/web_qa.json +214 -0
- claude_mpm-3.7.4/src/claude_mpm/agents/templates/web_ui.json +176 -0
- claude_mpm-3.7.4/src/claude_mpm/cli/ticket_cli.py +31 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/framework_loader.py +101 -49
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/deployment/agent_deployment.py +5 -1
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/deployment/async_agent_deployment.py +170 -13
- {claude_mpm-3.7.1 → claude_mpm-3.7.4/src/claude_mpm.egg-info}/PKG-INFO +1 -1
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm.egg-info/SOURCES.txt +7 -1
- claude_mpm-3.7.1/VERSION +0 -1
- claude_mpm-3.7.1/src/claude_mpm/VERSION +0 -1
- claude_mpm-3.7.1/src/claude_mpm/agents/templates/code_analyzer.json +0 -81
- claude_mpm-3.7.1/src/claude_mpm/agents/templates/engineer.json +0 -129
- claude_mpm-3.7.1/src/claude_mpm/agents/templates/research.json +0 -82
- claude_mpm-3.7.1/src/claude_mpm/agents/templates/test_integration.json +0 -113
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.ai-trackdown/project.yaml +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.aitrackdown/project.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.aitrackdown-config.yaml +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/.claude.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/agents/test_integration.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/commands/README.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/commands/mpm.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/hooks.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/scripts/command_router.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/settings.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753448752189-02zmkd.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753448752717-t1o960.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753448753258-cz40yi.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753448753816-5cj75h.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753449561020-uh844i.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753449676191-16dqe8.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753449766642-8sffyp.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753449795813-bj9blv.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753449953467-ru9ods.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753449966919-eb4aoq.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753450012330-ad1k3g.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753450254970-pvrwgd.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753450398246-etdteg.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753450789791-z5ptuf.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753450861209-w6so3e.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753451302996-01ahjc.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753451384857-mvpmcf.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753451508182-v942iw.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753451525128-q52z98.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753452958143-rd4nut.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753453029843-tyfjfo.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753460195020-02l99b.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753460396315-znuas3.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753460428488-tcy6i5.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753460542243-l181zr.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753461397341-fdy0v7.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753469116715-v6dpx9.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753477538332-i5g2cr.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753477560204-7vo17t.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753477883629-hsjia3.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753477961808-oiyqie.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753478292112-5g3i0g.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753478337101-xe1uid.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753478342176-env102.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753478361973-nr1cwq.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753478372714-lamo9k.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753478388184-yxkay7.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753478392376-eygj04.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/shell-snapshots/snapshot-zsh-1753482158558-cr2h0o.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/0aaf869f-0009-4249-b955-1c3942ff239f-agent-0aaf869f-0009-4249-b955-1c3942ff239f.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/0c24ded8-9422-489d-8d18-f83cc0737181-agent-0c24ded8-9422-489d-8d18-f83cc0737181.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/0d9501e6-77b0-4e8f-b132-bae208ed740a-agent-0d9501e6-77b0-4e8f-b132-bae208ed740a.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-048a118d-f0ea-4dce-90d3-d851514aa36a.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-0600940d-65ff-4678-ac90-9e0d42a3e138.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-1b8badbc-b05e-459e-b16c-a974f28673be.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-231626b2-0ce7-44fb-82e4-a9e72fdcecc4.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-2799acc0-b5e3-4086-940e-62bd2a5bbd7d.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-42b0c458-9d5f-4745-826e-7c618d3a7026.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-a324c872-b962-4438-b794-7966f5d7a7a9.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-ce91e7fd-64af-4f57-b691-1487c2db8d0b.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-dd250db2-edbb-43fc-a143-3eeafc0cd7fa.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/1060b0c4-2bf3-414f-bd75-d6f8dcad9eb5-agent-f0cbf9cd-0136-4bca-b0e0-c66aa58d3aeb.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/109c42c9-0afd-4a5b-a1b3-e515e31b6a2f-agent-109c42c9-0afd-4a5b-a1b3-e515e31b6a2f.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/1163a193-8464-4195-8281-6b875b5d987d-agent-1163a193-8464-4195-8281-6b875b5d987d.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/128d2198-5b02-422c-9531-f3396cbf0ce0-agent-128d2198-5b02-422c-9531-f3396cbf0ce0.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/16c51506-6afa-43aa-b199-da0c853f99a9-agent-16c51506-6afa-43aa-b199-da0c853f99a9.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/1736bdd7-71f4-49a0-934d-18e3aa5e0b43-agent-1736bdd7-71f4-49a0-934d-18e3aa5e0b43.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/1869eedc-69fc-4e81-a8ac-f57bd8e3946b-agent-1869eedc-69fc-4e81-a8ac-f57bd8e3946b.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/1a97dfda-12e5-4f13-8c8a-731373694a1c-agent-1a97dfda-12e5-4f13-8c8a-731373694a1c.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/283ac74b-5516-43f8-9548-24ded2b643b1-agent-283ac74b-5516-43f8-9548-24ded2b643b1.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/2ba08561-559e-4f64-9522-8d6c340e47da-agent-2ba08561-559e-4f64-9522-8d6c340e47da.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/31da8ed9-e1a5-40c8-91c8-8e9b51ca24a9-agent-31da8ed9-e1a5-40c8-91c8-8e9b51ca24a9.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/35194d51-6b8f-4ef5-b771-b0aa03f49a88-agent-35194d51-6b8f-4ef5-b771-b0aa03f49a88.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/3d1c0368-e607-4f47-b02d-7c0922cc0f25-agent-3d1c0368-e607-4f47-b02d-7c0922cc0f25.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/3d46c625-6377-4296-b9b3-22bc19341092-agent-3d46c625-6377-4296-b9b3-22bc19341092.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/40072791-2f2f-4743-b763-ec19321ccb0b-agent-40072791-2f2f-4743-b763-ec19321ccb0b.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/4157ab6d-5025-4862-82eb-5818c43c5a8c-agent-4157ab6d-5025-4862-82eb-5818c43c5a8c.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/458938f3-a317-46f3-8359-86f05ccacc7d-agent-458938f3-a317-46f3-8359-86f05ccacc7d.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/4dcf1510-e396-47bb-ac32-f62811ae9774-agent-4dcf1510-e396-47bb-ac32-f62811ae9774.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/4e71e501-1438-4c7d-8a89-18818b16ccb5-agent-4e71e501-1438-4c7d-8a89-18818b16ccb5.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/4eb9a1c4-92b0-44ee-9322-6ba0442efd42-agent-4eb9a1c4-92b0-44ee-9322-6ba0442efd42.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/4f57fa86-e804-4c8e-a0ff-196835df5bc9-agent-4f57fa86-e804-4c8e-a0ff-196835df5bc9.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/518e2724-687e-4ae3-bde9-582c8718695a-agent-518e2724-687e-4ae3-bde9-582c8718695a.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/51abf2eb-4e5a-4731-bd23-76cffe656a40-agent-51abf2eb-4e5a-4731-bd23-76cffe656a40.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/53c4beda-27f3-4247-ada4-f904320995ad-agent-53c4beda-27f3-4247-ada4-f904320995ad.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/56581e8b-07b1-4174-bf81-c280a3dee6b4-agent-56581e8b-07b1-4174-bf81-c280a3dee6b4.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/58848224-56e6-49f6-a4e5-c08f8f70c426-agent-58848224-56e6-49f6-a4e5-c08f8f70c426.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/58cf2d09-fd22-4a2e-8c74-c247ece6c802-agent-58cf2d09-fd22-4a2e-8c74-c247ece6c802.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/5bcc2e07-617c-4659-b82f-6b630ea891ff-agent-5bcc2e07-617c-4659-b82f-6b630ea891ff.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/5bf326e7-b61a-4d82-b483-94d5d7085755-agent-5bf326e7-b61a-4d82-b483-94d5d7085755.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/5dee78ec-d9ed-4484-b101-5490217fe423-agent-5dee78ec-d9ed-4484-b101-5490217fe423.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/5f6c7624-6a25-4ed9-be09-03fa3a70c4d8-agent-5f6c7624-6a25-4ed9-be09-03fa3a70c4d8.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/606431c0-6b47-4fb8-b386-132918a3aa0b-agent-606431c0-6b47-4fb8-b386-132918a3aa0b.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/6078e96f-e9a4-435f-8d2f-cf70346ebafe-agent-6078e96f-e9a4-435f-8d2f-cf70346ebafe.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/69e5a32b-bf2c-4264-93cd-6ac84b44ca9f-agent-69e5a32b-bf2c-4264-93cd-6ac84b44ca9f.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/6b729248-47b8-4657-ad7f-7f09fff21151-agent-6b729248-47b8-4657-ad7f-7f09fff21151.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/6d6970e8-f95f-468b-a8b8-3eacca8f1220-agent-6d6970e8-f95f-468b-a8b8-3eacca8f1220.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/6ec6cfa4-f2fd-4515-9c95-3ea74fbc571b-agent-6ec6cfa4-f2fd-4515-9c95-3ea74fbc571b.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/713e1bda-caa2-4cb9-a5a2-b7c6fec5776f-agent-713e1bda-caa2-4cb9-a5a2-b7c6fec5776f.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/71e6da9f-0dcd-4abd-ae8f-a5af695d9624-agent-71e6da9f-0dcd-4abd-ae8f-a5af695d9624.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/7653f086-93df-4423-98ce-640305e10823-agent-7653f086-93df-4423-98ce-640305e10823.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/76656734-acd3-411c-b333-f274dabae19c-agent-76656734-acd3-411c-b333-f274dabae19c.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/78150f02-9204-437c-9e12-9e800f3f73b9-agent-78150f02-9204-437c-9e12-9e800f3f73b9.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/7dda0a32-2834-4a47-9734-9ae9ca5b1a31-agent-7dda0a32-2834-4a47-9734-9ae9ca5b1a31.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/84b4d3c7-5506-4e4e-87dd-9cc48b8bc2ec-agent-84b4d3c7-5506-4e4e-87dd-9cc48b8bc2ec.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/8698daf1-475a-40e8-a7d5-33031480d9b6-agent-8698daf1-475a-40e8-a7d5-33031480d9b6.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/86ce0d12-f82e-49b2-b553-2cd8a7e188a3-agent-86ce0d12-f82e-49b2-b553-2cd8a7e188a3.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/87626114-6cb1-43ef-978a-bb35f612e4eb-agent-87626114-6cb1-43ef-978a-bb35f612e4eb.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/880d3ea5-649e-449e-88bc-664a291ec338-agent-880d3ea5-649e-449e-88bc-664a291ec338.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/8962e6d9-0fc0-4578-bb08-a5dfbc2dbe5e-agent-8962e6d9-0fc0-4578-bb08-a5dfbc2dbe5e.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/8f998b9e-5f18-4ade-bd69-74c95a210f6a-agent-8f998b9e-5f18-4ade-bd69-74c95a210f6a.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/929364bd-aa69-4831-850e-37f8ab63803d-agent-929364bd-aa69-4831-850e-37f8ab63803d.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/95479b6c-cfbf-4bb7-9e00-b95a0b385775-agent-95479b6c-cfbf-4bb7-9e00-b95a0b385775.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/9628cc3a-355a-48f0-ab54-c28ac2e05dfe-agent-9628cc3a-355a-48f0-ab54-c28ac2e05dfe.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/a877fe3a-7057-49a9-9726-239ddb3421ee-agent-a877fe3a-7057-49a9-9726-239ddb3421ee.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/a9136d1b-6e01-4879-972f-5fcdde5e08d7-agent-a9136d1b-6e01-4879-972f-5fcdde5e08d7.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/b10ff15f-3c8c-46d7-93b4-a0d4d5ec4003-agent-b10ff15f-3c8c-46d7-93b4-a0d4d5ec4003.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/b1206d13-f0ec-4f53-a746-a845732fefd7-agent-b1206d13-f0ec-4f53-a746-a845732fefd7.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/b61be2e4-7de3-4e1b-b636-2232190ffc5c-agent-b61be2e4-7de3-4e1b-b636-2232190ffc5c.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/b80ad406-64d1-4a6c-b781-15496265fae0-agent-b80ad406-64d1-4a6c-b781-15496265fae0.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/babc6eac-d7d6-498a-8176-e09e00423a12-agent-babc6eac-d7d6-498a-8176-e09e00423a12.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/bf4b7700-9630-466e-afb0-8904fbddac42-agent-bf4b7700-9630-466e-afb0-8904fbddac42.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/c2189d0d-9c2b-400a-bf7c-3989ef6cd37d-agent-c2189d0d-9c2b-400a-bf7c-3989ef6cd37d.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/c35ee595-142f-454b-bb36-dc434d4a80a6-agent-c35ee595-142f-454b-bb36-dc434d4a80a6.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/c629949d-4641-45ff-81d3-d7c8f353da81-agent-c629949d-4641-45ff-81d3-d7c8f353da81.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/c8cecbec-a3bb-4507-98a4-c590a4e919b2-agent-c8cecbec-a3bb-4507-98a4-c590a4e919b2.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/cce78c00-7309-4bc4-802c-3bad75be09cc-agent-cce78c00-7309-4bc4-802c-3bad75be09cc.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/d55a3a18-0143-4401-ba56-ea630982c105-agent-d55a3a18-0143-4401-ba56-ea630982c105.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/d881887b-49bc-4fda-acda-c866681c8f13-agent-d881887b-49bc-4fda-acda-c866681c8f13.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/db3e76fb-7b9d-4f1c-8822-cce448fdf9e6-agent-db3e76fb-7b9d-4f1c-8822-cce448fdf9e6.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/dc7344a6-cd2e-4f20-a945-deb2e39f4fbc-agent-dc7344a6-cd2e-4f20-a945-deb2e39f4fbc.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/eb12ed58-94e3-490a-b8c8-b2912fa77fbe-agent-eb12ed58-94e3-490a-b8c8-b2912fa77fbe.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/ef4c285d-d79b-4c6e-a458-49cb26bf3c0a-agent-ef4c285d-d79b-4c6e-a458-49cb26bf3c0a.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/f295b25f-51d8-4fff-b71d-aa18d7028466-agent-f295b25f-51d8-4fff-b71d-aa18d7028466.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/f2a683d3-4d16-4c94-bf52-03efaf45f7f1-agent-f2a683d3-4d16-4c94-bf52-03efaf45f7f1.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/f536b1f5-879c-4236-9718-599337ffc815-agent-f536b1f5-879c-4236-9718-599337ffc815.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/fabcbe8a-6751-454b-a240-e9393391e2e9-agent-fabcbe8a-6751-454b-a240-e9393391e2e9.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/fdebc52b-3519-44c8-a3af-ce87f39272cd-agent-fdebc52b-3519-44c8-a3af-ce87f39272cd.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.claude/todos/fe57db22-5ef9-4522-9423-5c20dd665ef6-agent-fe57db22-5ef9-4522-9423-5c20dd665ef6.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.githooks/pre-commit +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.gitignore +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.npmignore +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.python-version +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/.trackdown.yaml +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/CLAUDE.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/LICENSE +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/MANIFEST.in +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/Makefile +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/QUICKSTART.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/README.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/agent_memory_test_results.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/bin/claude-mpm +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/bin/claude-mpm-hooks +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/bin/ticket +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/claude-mpm +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/config/mcp_services.yaml +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/debug_agent_response.txt +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/docker/Dockerfile.clean-install +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/docker/README.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/docker/docker-compose.yml +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/docker/verify-installation.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/examples/awesome-patterns/enhanced_claude_md_example.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/examples/awesome-patterns/slash_command_example.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/examples/awesome-patterns/validation_first_example.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/examples/dependency_injection_demo.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/examples/json_rpc_hooks_demo.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/examples/todo_prefix_hook_example.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/examples/todo_prefix_hook_integration.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/npm-bin/claude-mpm.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/package.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/pyproject.toml +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/requirements-monitor.txt +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/requirements.txt +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/.claude-mpm/logs/hooks_20250726.log +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/.claude-mpm/logs/hooks_20250731.log +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/BROWSER_CONTROL_GUIDE.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/COMPREHENSIVE_TEST_REPORT.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/CONNECTION_POOL_IMPROVEMENTS.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/ENHANCED_HOOK_DATA_GUIDE.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/JSON_VIEWER_TEST_SUMMARY.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/README.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/SOCKETIO_DIAGNOSTICS_README.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/SOCKETIO_FLOW_TEST_RESULTS.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/add_agent_versioning.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/agent_manager_integration_report.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/analyze_agent_events.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/analyze_framework_loaders.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/analyze_git_clickup_correlation.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/analyze_hook_data.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/check_socketio_events.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/check_version_sync.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/claude-mpm +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/claude-mpm-socketio +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/claude_mpm_monitor.html +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/cleanup_logs.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/consolidate_services.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/convert_agents_to_yaml.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_agent_loading.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_agent_structure.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_agents_tab.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_capabilities_generation.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_dashboard.html +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_deployment_logic.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_hook_behavior.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_hook_behavior2.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_hook_flow.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_hud_data_flow.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_migration.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_path_detection.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_research_version.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_response_tracker.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_server_connection_handler.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_session_flow.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_socketio_connection.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_socketio_namespaces.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_socketio_pool.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_subagent_stop.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_subagent_stop_data.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_subprocess.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/debug_tab_clicking.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/demo/subprocess_before_after.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/demo/subprocess_improvements_demo.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/demo_agent_events.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/demo_enhanced_hook_data.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/demo_health_monitoring.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/demo_hook_behavior.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/demo_monitor_installation.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/deploy_local.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/diagnostic_connection_auth_test.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/diagnostic_dashboard_namespace_test.html +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/diagnostic_end_to_end_test.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/diagnostic_hook_handler_test.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/diagnostic_socketio_server_monitor.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/example_async_integration.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/example_hook_usage.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/final_integration_demo.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/final_socketio_verification.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/find_websocket_port.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/fix_agent_type_tracking.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/fix_all_fallback_imports.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/fix_all_imports.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/fix_event_json_mismatch.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/fix_fallback_imports.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/flask_hello_world.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/generate_comprehensive_test_report.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/hello_flask.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/hello_world.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/install.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/install_dev.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/install_hooks.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/install_socketio_server.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/interactive_wrapper.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/launch_monitor.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/launch_socketio_dashboard.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/launch_with_agents.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/manage_version.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/migrate_agents_to_new_schema.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/migrate_config.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/migrate_logging_imports.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/migrate_to_json_rpc_hooks.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/monitor_mcp_services.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/monitor_socketio_events.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/monitoring_daily_checklist.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/monitoring_weekly_review.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/mpm_test.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/package-lock.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/postinstall.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/publish.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/qa_results.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/register_memory_hooks.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/release.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/remove_remaining_ticketing.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/remove_ticketing_references.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/requirements_analysis.txt +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/resume_flag_test_report.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/run_all_socketio_tests.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/run_all_tests.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/run_e2e_tests.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/run_mpm.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/run_performance_validation_suite.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/run_socketio_diagnostics.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/server.log +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/setup_local_mcp.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/show_pm_system_prompt.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/simple_agent_test.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/simple_socket_test.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/socketio_daemon.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/socketio_integration_summary.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/socketio_server_manager.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/standardize_imports.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/start_persistent_socketio_server.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/start_python_socketio.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/start_socketio_server_manual.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/start_test_server.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/sync_tickets_github.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/test_cli_fixes.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/test_results_summary.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/test_startup_initialization.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/ticket +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/ticket.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/trace_deployment.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/trigger_hook_events.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/uninstall.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/update_agent_service_imports.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/update_memory_imports.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/validate_agent_configuration.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/validate_agent_schema.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/validate_imports.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/verify_agent_deployment.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/verify_config_buttons.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/verify_config_paths.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/verify_hook_data_completeness.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/verify_import_fixes.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/verify_imports.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/verify_memory_reorganization.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/websocket_memory_monitor.html +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/websocket_monitor.html +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/scripts/working_directory_fix_report.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/setup.cfg +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/setup.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/.claude-mpm/logs/hooks_20250728.log +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/__main__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/BASE_PM.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/INSTRUCTIONS.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/agent-template.yaml +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/agent_loader.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/agent_loader_integration.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/agents_metadata.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/async_agent_loader.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/backups/INSTRUCTIONS.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/base_agent.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/base_agent_loader.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/schema/agent_schema.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/system_agent_config.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/.claude-mpm/memories/version_control_agent.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/backup/data_engineer_agent_20250726_234551.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/backup/documentation_agent_20250726_234551.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/backup/engineer_agent_20250726_234551.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/backup/ops_agent_20250726_234551.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/backup/qa_agent_20250726_234551.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/backup/research_agent_20250726_234551.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/backup/security_agent_20250726_234551.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/backup/version_control_agent_20250726_234551.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/documentation.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/ops.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/qa.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/agents/templates/version_control.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli/README.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli/__main__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli/commands/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli/commands/agents.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli/commands/aggregate.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli/commands/config.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli/commands/info.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli/commands/memory.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli/commands/monitor.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli/commands/run.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli/commands/tickets.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli/parser.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli/utils.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli_module/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli_module/args.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli_module/commands.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli_module/migration_example.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/cli_module/refactoring_guide.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/config/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/config/agent_config.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/config/async_logging_config.yaml +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/config/paths.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/config/socketio_config.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/constants.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/.claude-mpm/logs/hooks_20250730.log +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/agent_name_normalizer.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/agent_registry.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/agent_session_manager.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/base_service.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/claude_runner.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/config.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/config_aliases.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/config_paths.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/container.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/factories.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/hook_manager.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/injectable_service.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/interfaces.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/logger.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/minimal_framework_loader.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/mixins.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/pm_hook_interceptor.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/service_registry.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/session_manager.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/socketio_pool.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/core/tool_access_control.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/.claude-mpm/memories/README.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/README.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/index.html +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/open_dashboard.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/css/dashboard.css +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/components/agent-inference.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/components/event-processor.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/components/event-viewer.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/components/export-manager.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/components/file-tool-tracker.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/components/hud-library-loader.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/components/hud-manager.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/components/hud-visualizer.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/components/module-viewer.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/components/session-manager.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/components/socket-manager.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/components/ui-state-manager.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/components/working-directory.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/dashboard-original.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/dashboard.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/dashboard.js.backup +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/static/js/socket-client.js +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/templates/.claude-mpm/memories/README.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/templates/.claude-mpm/memories/engineer_agent.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/templates/.claude-mpm/memories/version_control_agent.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/templates/index.html +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/dashboard/test_dashboard.html +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/deployment_paths.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/experimental/cli_enhancements.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/generators/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/generators/agent_profile_generator.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/hooks/README.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/hooks/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/hooks/base_hook.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/hooks/claude_hooks/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/hooks/claude_hooks/hook_handler.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/hooks/claude_hooks/hook_wrapper.sh +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/hooks/memory_integration_hook.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/hooks/tool_call_interceptor.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/hooks/validation_hooks.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/init.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/models/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/models/agent_definition.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/models/agent_session.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/schemas/agent_schema.json +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/scripts/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/scripts/socketio_daemon.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/scripts/start_activity_logging.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/deployment/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/deployment/agent_versioning.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/loading/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/loading/agent_profile_loader.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/loading/base_agent_manager.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/loading/framework_agent_loader.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/management/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/management/agent_capabilities_generator.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/management/agent_management_service.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/memory/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/memory/agent_memory_manager.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/memory/agent_persistence_service.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/registry/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/registry/agent_registry.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/registry/deployed_agent_discovery.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/agents/registry/modification_tracker.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/async_session_logger.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/claude_session_logger.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/event_aggregator.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/exceptions.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/README.md +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/content_assembler.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/content_validator.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/deployment_manager.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/agents.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/claude_pm_init.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/core_responsibilities.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/delegation_constraints.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/environment_config.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/footer.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/header.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/orchestration_principles.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/role_designation.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/subprocess_validation.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/todo_task_tools.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/section_generators/troubleshooting.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/section_manager.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator/version_manager.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/framework_claude_md_generator.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/health_monitor.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/hook_service.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/memory/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/memory/builder.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/memory/cache/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/memory/cache/shared_prompt_cache.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/memory/cache/simple_cache.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/memory/optimizer.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/memory/router.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/optimized_hook_service.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/project_analyzer.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/project_registry.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/recovery_manager.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/response_tracker.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/socketio_client_manager.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/socketio_server.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/standalone_socketio_server.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/ticket_manager.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/ticket_manager_di.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/ticketing_service_original.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/version_control/VERSION +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/version_control/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/version_control/branch_strategy.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/version_control/conflict_resolution.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/version_control/git_operations.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/services/version_control/semantic_versioning.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/ticket_wrapper.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/utils/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/utils/agent_dependency_loader.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/utils/config_manager.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/utils/console.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/utils/dependency_cache.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/utils/dependency_manager.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/utils/dependency_strategies.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/utils/environment_context.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/utils/error_handler.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/utils/framework_detection.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/utils/import_migration_example.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/utils/imports.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/utils/path_operations.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/utils/paths.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/utils/session_logging.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/validation/__init__.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm/validation/agent_validator.py +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm.egg-info/dependency_links.txt +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm.egg-info/entry_points.txt +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm.egg-info/requires.txt +0 -0
- {claude_mpm-3.7.1 → claude_mpm-3.7.4}/src/claude_mpm.egg-info/top_level.txt +0 -0
| @@ -11,7 +11,7 @@ tasks: | |
| 11 11 | 
             
              directory: tickets
         | 
| 12 12 | 
             
              auto_id: true
         | 
| 13 13 | 
             
              id_format: TSK-{counter:04d}
         | 
| 14 | 
            -
              counter:  | 
| 14 | 
            +
              counter: 12
         | 
| 15 15 | 
             
            git:
         | 
| 16 16 | 
             
              auto_commit: false
         | 
| 17 17 | 
             
              commit_prefix: '[ai-trackdown]'
         | 
| @@ -25,4 +25,4 @@ epics: | |
| 25 25 | 
             
              directory: tickets/epics
         | 
| 26 26 | 
             
              auto_id: true
         | 
| 27 27 | 
             
              id_format: EP-{counter:04d}
         | 
| 28 | 
            -
              counter:  | 
| 28 | 
            +
              counter: 7
         | 
| @@ -20,13 +20,13 @@ | |
| 20 20 | 
             
                  "hasClaudeMdExternalIncludesWarningShown": false,
         | 
| 21 21 | 
             
                  "lastTotalWebSearchRequests": 0,
         | 
| 22 22 | 
             
                  "exampleFiles": [
         | 
| 23 | 
            -
                    "dashboard.js",
         | 
| 24 23 | 
             
                    "hook_handler.py",
         | 
| 25 | 
            -
                    "cli.py",
         | 
| 26 24 | 
             
                    "parser.py",
         | 
| 27 | 
            -
                    " | 
| 25 | 
            +
                    "dashboard.js",
         | 
| 26 | 
            +
                    "socketio_server.py",
         | 
| 27 | 
            +
                    "claude_runner.py"
         | 
| 28 28 | 
             
                  ],
         | 
| 29 | 
            -
                  "exampleFilesGeneratedAt":  | 
| 29 | 
            +
                  "exampleFilesGeneratedAt": 1755029183702
         | 
| 30 30 | 
             
                }
         | 
| 31 31 | 
             
              },
         | 
| 32 32 | 
             
              "userID": "383a95b8b162203b90ea3857e612516301e775203cbfc294a8d762290e958697",
         | 
| @@ -1,7 +1,12 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
            name:  | 
| 3 | 
            -
             | 
| 2 | 
            +
            name: data_engineer_agent
         | 
| 3 | 
            +
            description: Data engineering with quality validation, ETL patterns, and profiling
         | 
| 4 | 
            +
            version: 2.0.1
         | 
| 5 | 
            +
            base_version: 0.1.0
         | 
| 4 6 | 
             
            author: claude-mpm
         | 
| 7 | 
            +
            tools: Read,Write,Edit,Bash,Grep,Glob,LS,WebSearch,TodoWrite
         | 
| 8 | 
            +
            model: opus
         | 
| 9 | 
            +
            color: yellow
         | 
| 5 10 | 
             
            ---
         | 
| 6 11 |  | 
| 7 12 | 
             
            # Data Engineer Agent
         | 
| @@ -271,4 +276,4 @@ Document performance problems and optimization attempts: | |
| 271 276 | 
             
            - Note data quality issues that may affect QA testing and validation processes
         | 
| 272 277 | 
             
            - Update todos immediately when data engineering changes impact other system components
         | 
| 273 278 | 
             
            - Use clear, specific descriptions that help other agents understand data architecture and constraints
         | 
| 274 | 
            -
            - Coordinate with security agents for data protection and compliance requirements
         | 
| 279 | 
            +
            - Coordinate with security agents for data protection and compliance requirements
         | 
| @@ -1,7 +1,12 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
            name:  | 
| 3 | 
            -
             | 
| 2 | 
            +
            name: documentation_agent
         | 
| 3 | 
            +
            description: Documentation generation with API docs, diagrams, and docstring validation
         | 
| 4 | 
            +
            version: 2.0.0
         | 
| 5 | 
            +
            base_version: 0.1.0
         | 
| 4 6 | 
             
            author: claude-mpm
         | 
| 7 | 
            +
            tools: Read,Write,Edit,MultiEdit,Grep,Glob,LS,WebSearch,TodoWrite
         | 
| 8 | 
            +
            model: sonnet
         | 
| 9 | 
            +
            color: cyan
         | 
| 5 10 | 
             
            ---
         | 
| 6 11 |  | 
| 7 12 | 
             
            # Documentation Agent
         | 
| @@ -206,4 +211,4 @@ Specify the type of documentation being created: | |
| 206 211 | 
             
            - Include version and feature information when coordinating with version control
         | 
| 207 212 | 
             
            - Note dependencies on QA testing completion for accuracy verification
         | 
| 208 213 | 
             
            - Update todos immediately when documentation is ready for review by other agents
         | 
| 209 | 
            -
            - Use clear, specific descriptions that help other agents understand documentation scope and purpose
         | 
| 214 | 
            +
            - Use clear, specific descriptions that help other agents understand documentation scope and purpose
         | 
| @@ -1,12 +1,17 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
            name:  | 
| 3 | 
            -
             | 
| 2 | 
            +
            name: engineer_agent
         | 
| 3 | 
            +
            description: Advanced code implementation with AST-based refactoring and security scanning
         | 
| 4 | 
            +
            version: 2.0.1
         | 
| 5 | 
            +
            base_version: 0.1.0
         | 
| 4 6 | 
             
            author: claude-mpm
         | 
| 7 | 
            +
            tools: Read,Write,Edit,MultiEdit,Bash,Grep,Glob,LS,WebSearch,TodoWrite
         | 
| 8 | 
            +
            model: opus
         | 
| 9 | 
            +
            color: blue
         | 
| 5 10 | 
             
            ---
         | 
| 6 11 |  | 
| 7 12 | 
             
            # Engineer Agent - RESEARCH-GUIDED IMPLEMENTATION
         | 
| 8 13 |  | 
| 9 | 
            -
            Implement code solutions based on  | 
| 14 | 
            +
            Implement code solutions based on AST research analysis and codebase pattern discovery. Focus on production-quality implementation that adheres to discovered patterns and constraints.
         | 
| 10 15 |  | 
| 11 16 | 
             
            ## Memory Integration and Learning
         | 
| 12 17 |  | 
| @@ -102,7 +107,7 @@ Following strategy memory: "Implement exponential backoff for retry logic" | |
| 102 107 | 
             
            ## Implementation Protocol
         | 
| 103 108 |  | 
| 104 109 | 
             
            ### Phase 1: Research Validation (2-3 min)
         | 
| 105 | 
            -
            - **Verify Research Context**: Confirm  | 
| 110 | 
            +
            - **Verify Research Context**: Confirm AST analysis findings are current and accurate
         | 
| 106 111 | 
             
            - **Pattern Confirmation**: Validate discovered patterns against current codebase state
         | 
| 107 112 | 
             
            - **Constraint Assessment**: Understand integration requirements and architectural limitations
         | 
| 108 113 | 
             
            - **Security Review**: Note research-identified security concerns and mitigation strategies
         | 
| @@ -332,4 +337,4 @@ Always include the blocking reason and next steps: | |
| 332 337 | 
             
            ### Coordination with Other Agents
         | 
| 333 338 | 
             
            - Reference handoff requirements in todos when work depends on other agents
         | 
| 334 339 | 
             
            - Update todos immediately when passing work to QA, Security, or Documentation agents
         | 
| 335 | 
            -
            - Use clear, descriptive task names that other agents can understand
         | 
| 340 | 
            +
            - Use clear, descriptive task names that other agents can understand
         | 
| @@ -1,7 +1,12 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
            name:  | 
| 3 | 
            -
             | 
| 2 | 
            +
            name: ops_agent
         | 
| 3 | 
            +
            description: Infrastructure automation with IaC validation and container security
         | 
| 4 | 
            +
            version: 2.0.0
         | 
| 5 | 
            +
            base_version: 0.1.0
         | 
| 4 6 | 
             
            author: claude-mpm
         | 
| 7 | 
            +
            tools: Read,Write,Edit,Bash,Grep,Glob,LS,TodoWrite
         | 
| 8 | 
            +
            model: opus
         | 
| 9 | 
            +
            color: orange
         | 
| 5 10 | 
             
            ---
         | 
| 6 11 |  | 
| 7 12 | 
             
            # Ops Agent
         | 
| @@ -243,4 +248,4 @@ Document incident management and resolution: | |
| 243 248 | 
             
            - Note security compliance requirements when coordinating with security agents
         | 
| 244 249 | 
             
            - Update todos immediately when infrastructure changes affect other system components
         | 
| 245 250 | 
             
            - Use clear, specific descriptions that help other agents understand operational constraints and timelines
         | 
| 246 | 
            -
            - Coordinate with QA agents for deployment testing and validation requirements
         | 
| 251 | 
            +
            - Coordinate with QA agents for deployment testing and validation requirements
         | 
| @@ -1,7 +1,12 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
            name:  | 
| 3 | 
            -
             | 
| 2 | 
            +
            name: qa_agent
         | 
| 3 | 
            +
            description: Advanced testing with mutation testing, property-based testing, and coverage analysis
         | 
| 4 | 
            +
            version: 3.0.0
         | 
| 5 | 
            +
            base_version: 0.1.0
         | 
| 4 6 | 
             
            author: claude-mpm
         | 
| 7 | 
            +
            tools: Read,Write,Edit,Bash,Grep,Glob,LS,TodoWrite
         | 
| 8 | 
            +
            model: sonnet
         | 
| 9 | 
            +
            color: green
         | 
| 5 10 | 
             
            ---
         | 
| 6 11 |  | 
| 7 12 | 
             
            # QA Agent
         | 
| @@ -188,4 +193,4 @@ All QA sign-offs must follow this format: | |
| 188 193 | 
             
            - Reference specific test failures when creating todos for Engineer agents
         | 
| 189 194 | 
             
            - Update todos immediately when providing QA sign-off to other agents
         | 
| 190 195 | 
             
            - Include test evidence and metrics in handoff communications
         | 
| 191 | 
            -
            - Use clear, specific descriptions that help other agents understand quality status
         | 
| 196 | 
            +
            - Use clear, specific descriptions that help other agents understand quality status
         | 
| @@ -1,7 +1,12 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
            name:  | 
| 3 | 
            -
             | 
| 2 | 
            +
            name: research_agent
         | 
| 3 | 
            +
            description: Advanced codebase analysis with tree-sitter multi-language AST support (41+ languages), Python AST tools, semantic search, complexity metrics, and architecture visualization
         | 
| 4 | 
            +
            version: 3.0.1
         | 
| 5 | 
            +
            base_version: 0.1.0
         | 
| 4 6 | 
             
            author: claude-mpm
         | 
| 7 | 
            +
            tools: Read,Grep,Glob,LS,WebSearch,WebFetch,Bash,TodoWrite
         | 
| 8 | 
            +
            model: sonnet
         | 
| 9 | 
            +
            color: purple
         | 
| 5 10 | 
             
            ---
         | 
| 6 11 |  | 
| 7 12 | 
             
            # Research Agent - PRESCRIPTIVE ANALYSIS WITH CONFIDENCE VALIDATION
         | 
| @@ -19,7 +24,7 @@ Include the following in your response: | |
| 19 24 | 
             
              - Format: ["Learning 1", "Learning 2"] or null
         | 
| 20 25 |  | 
| 21 26 | 
             
            Example:
         | 
| 22 | 
            -
            **Remember**: ["Always validate confidence before agent delegation", "Document  | 
| 27 | 
            +
            **Remember**: ["Always validate confidence before agent delegation", "Document AST analysis patterns for reuse"] or null
         | 
| 23 28 |  | 
| 24 29 | 
             
            ## Memory Integration and Learning
         | 
| 25 30 |  | 
| @@ -44,7 +49,7 @@ Content: [Your learning in 5-100 characters] | |
| 44 49 | 
             
            ### Research Memory Categories
         | 
| 45 50 |  | 
| 46 51 | 
             
            **Pattern Memories** (Type: pattern):
         | 
| 47 | 
            -
            - Code patterns discovered through  | 
| 52 | 
            +
            - Code patterns discovered through AST analysis
         | 
| 48 53 | 
             
            - Recurring architectural patterns across similar projects
         | 
| 49 54 | 
             
            - Common implementation patterns for specific technologies
         | 
| 50 55 | 
             
            - Design patterns that solve recurring problems effectively
         | 
| @@ -100,7 +105,7 @@ Applying strategy memory: "Start with entry points and trace data flow" | |
| 100 105 | 
             
            Avoiding mistake memory: "Don't assume patterns without AST validation"
         | 
| 101 106 | 
             
            ```
         | 
| 102 107 |  | 
| 103 | 
            -
            **During  | 
| 108 | 
            +
            **During AST analysis:**
         | 
| 104 109 | 
             
            ```
         | 
| 105 110 | 
             
            Applying architecture memory: "Check for microservice boundaries in monoliths"
         | 
| 106 111 | 
             
            Following guideline memory: "Document confidence levels for each finding"
         | 
| @@ -170,10 +175,31 @@ tree -I 'node_modules|.git|dist|build|vendor|gems' -L 3 | |
| 170 175 | 
             
            # Required: Framework identification, file organization, entry points
         | 
| 171 176 | 
             
            ```
         | 
| 172 177 |  | 
| 173 | 
            -
            ### Phase 2:  | 
| 178 | 
            +
            ### Phase 2: AST Structural Extraction (10-15 min)
         | 
| 174 179 | 
             
            ```bash
         | 
| 175 | 
            -
            #  | 
| 176 | 
            -
             | 
| 180 | 
            +
            # For multi-language AST analysis using tree-sitter (pure Python)
         | 
| 181 | 
            +
            python -c "
         | 
| 182 | 
            +
            import tree_sitter_language_pack as tslp
         | 
| 183 | 
            +
            from tree_sitter import Language, Parser
         | 
| 184 | 
            +
            import sys
         | 
| 185 | 
            +
             | 
| 186 | 
            +
            # Auto-detect language from file extension
         | 
| 187 | 
            +
            file = '[file]'
         | 
| 188 | 
            +
            ext = file.split('.')[-1]
         | 
| 189 | 
            +
            lang_map = {'py': 'python', 'js': 'javascript', 'ts': 'typescript', 'go': 'go', 'java': 'java', 'rb': 'ruby'}
         | 
| 190 | 
            +
            lang = tslp.get_language(lang_map.get(ext, 'python'))
         | 
| 191 | 
            +
            parser = Parser(lang)
         | 
| 192 | 
            +
             | 
| 193 | 
            +
            with open(file, 'rb') as f:
         | 
| 194 | 
            +
                tree = parser.parse(f.read())
         | 
| 195 | 
            +
                print(tree.root_node.sexp())
         | 
| 196 | 
            +
            "
         | 
| 197 | 
            +
             | 
| 198 | 
            +
            # For Python-specific deep analysis - use native ast module
         | 
| 199 | 
            +
            python -c "import ast; import sys; tree = ast.parse(open('[file]').read()); print(ast.dump(tree))" | grep -E "FunctionDef|ClassDef|Import"
         | 
| 200 | 
            +
             | 
| 201 | 
            +
            # For complexity analysis
         | 
| 202 | 
            +
            radon cc [file] -s
         | 
| 177 203 |  | 
| 178 204 | 
             
            # CONFIDENCE CHECK 2: Do I understand the code patterns and architecture?
         | 
| 179 205 | 
             
            # Required: Component relationships, data flow, integration points
         | 
| @@ -222,7 +248,7 @@ grep -r "try.*catch\|throw\|Error\|rescue\|panic\|recover" --include="*.ts" --in | |
| 222 248 | 
             
            ## Enhanced Output Format
         | 
| 223 249 |  | 
| 224 250 | 
             
            ```markdown
         | 
| 225 | 
            -
            #  | 
| 251 | 
            +
            # Code Analysis Report
         | 
| 226 252 |  | 
| 227 253 | 
             
            ## CONFIDENCE ASSESSMENT
         | 
| 228 254 | 
             
            - **Overall Confidence**: [X]% 
         | 
| @@ -306,4 +332,4 @@ grep -r "try.*catch\|throw\|Error\|rescue\|panic\|recover" --include="*.ts" --in | |
| 306 332 | 
             
            - Unclear success criteria or acceptance criteria
         | 
| 307 333 | 
             
            - Unknown integration constraints or dependencies
         | 
| 308 334 | 
             
            - Security implications not fully understood
         | 
| 309 | 
            -
            - Performance requirements unclear or unmeasurable
         | 
| 335 | 
            +
            - Performance requirements unclear or unmeasurable
         | 
| @@ -1,7 +1,12 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
            name:  | 
| 3 | 
            -
             | 
| 2 | 
            +
            name: security_agent
         | 
| 3 | 
            +
            description: Advanced security scanning with SAST, dependency auditing, and secret detection
         | 
| 4 | 
            +
            version: 2.0.1
         | 
| 5 | 
            +
            base_version: 0.1.0
         | 
| 4 6 | 
             
            author: claude-mpm
         | 
| 7 | 
            +
            tools: Read,Grep,Glob,LS,WebSearch,TodoWrite
         | 
| 8 | 
            +
            model: sonnet
         | 
| 9 | 
            +
            color: red
         | 
| 5 10 | 
             
            ---
         | 
| 6 11 |  | 
| 7 12 | 
             
            # Security Agent - AUTO-ROUTED
         | 
| @@ -212,4 +217,4 @@ Security analysis todos should specify expected outputs: | |
| 212 217 | 
             
            - Provide detailed security requirements and constraints for implementation
         | 
| 213 218 | 
             
            - Include risk assessment and remediation timeline in handoff communications
         | 
| 214 219 | 
             
            - Reference specific security standards and compliance requirements
         | 
| 215 | 
            -
            - Update todos immediately when security sign-off is provided to other agents
         | 
| 220 | 
            +
            - Update todos immediately when security sign-off is provided to other agents
         | 
| @@ -1,7 +1,12 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
            name:  | 
| 3 | 
            -
             | 
| 2 | 
            +
            name: version_control_agent
         | 
| 3 | 
            +
            description: Git operations with commit validation and branch strategy enforcement
         | 
| 4 | 
            +
            version: 2.0.0
         | 
| 5 | 
            +
            base_version: 0.1.0
         | 
| 4 6 | 
             
            author: claude-mpm
         | 
| 7 | 
            +
            tools: Read,Bash,Grep,Glob,LS,TodoWrite
         | 
| 8 | 
            +
            model: sonnet
         | 
| 9 | 
            +
            color: pink
         | 
| 5 10 | 
             
            ---
         | 
| 6 11 |  | 
| 7 12 | 
             
            # Version Control Agent
         | 
| @@ -199,4 +204,4 @@ Include specific git commands and rationale: | |
| 199 204 | 
             
            - Include deployment timeline requirements when coordinating with ops agents
         | 
| 200 205 | 
             
            - Note documentation update needs when coordinating release communications
         | 
| 201 206 | 
             
            - Update todos immediately when version control operations affect other agents
         | 
| 202 | 
            -
            - Use clear branch names and commit messages that help other agents understand changes
         | 
| 207 | 
            +
            - Use clear branch names and commit messages that help other agents understand changes
         | 
| @@ -5,35 +5,21 @@ All notable changes to claude-mpm will be documented in this file. | |
| 5 5 | 
             
            The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
         | 
| 6 6 | 
             
            and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
         | 
| 7 7 |  | 
| 8 | 
            -
            ## [3.7. | 
| 8 | 
            +
            ## [3.7.4] - 2025-08-13
         | 
| 9 9 |  | 
| 10 | 
            -
             | 
| 10 | 
            +
            ## [3.7.3] - 2025-08-13
         | 
| 11 11 |  | 
| 12 | 
            -
             | 
| 12 | 
            +
            ## [3.7.2] - 2025-08-13
         | 
| 13 13 |  | 
| 14 | 
            -
            #### Changes
         | 
| 15 | 
            -
            - Updated acknowledgments for WhatsApp support group members
         | 
| 16 | 
            -
            - Added comprehensive documentation for the Code Analyzer agent in release notes
         | 
| 17 | 
            -
            - Improved roadmap section to encourage community feedback
         | 
| 18 | 
            -
            - Enhanced CHANGELOG with Code Analyzer details and contributor acknowledgments
         | 
| 19 14 |  | 
| 20 | 
            -
             | 
| 21 | 
            -
            - update package.json version to 3.7.0 ([a518e05])
         | 
| 22 | 
            -
            ## [3.7.0] - 2025-08-12
         | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
            ### Documentation
         | 
| 26 | 
            -
             | 
| 27 | 
            -
            - update CHANGELOG with 3.6.0 release notes ([e17f8fc])
         | 
| 28 | 
            -
             | 
| 29 | 
            -
            ### Chores
         | 
| 15 | 
            +
            ### Bug Fixes
         | 
| 30 16 |  | 
| 31 | 
            -
            -  | 
| 32 | 
            -
            ## [3. | 
| 17 | 
            +
            - update internal VERSION file to 3.7.1 ([8e2a865])
         | 
| 18 | 
            +
            ## [3.7.1] - 2025-08-13
         | 
| 33 19 |  | 
| 34 20 | 
             
            ### Executive Summary
         | 
| 35 21 |  | 
| 36 | 
            -
            Claude MPM 3. | 
| 22 | 
            +
            Claude MPM 3.7.1 introduces **three major architectural improvements** that significantly enhance performance, maintainability, and developer experience:
         | 
| 37 23 |  | 
| 38 24 | 
             
            1. **Dynamic Agent Dependencies** - Smart dependency loading that only checks and installs packages for deployed agents, reducing installation size by up to 90%
         | 
| 39 25 | 
             
            2. **Enhanced PM Instructions** - Separation of framework requirements from customizable PM instructions with structured response formats
         | 
| @@ -84,12 +70,21 @@ Claude MPM 3.6.0 introduces **three major architectural improvements** that sign | |
| 84 70 | 
             
            ### Bug Fixes
         | 
| 85 71 | 
             
            - Fixed duplication issues in agent deployment process
         | 
| 86 72 | 
             
            - Resolved path resolution problems in `.claude/agents/` directory
         | 
| 73 | 
            +
            - Prevented PM agent from being deployed as subagent
         | 
| 87 74 | 
             
            - Fixed configuration file validation edge cases
         | 
| 88 75 | 
             
            - Enhanced agent memory routing with clearer error messages
         | 
| 89 76 | 
             
            - Resolved hook integration issues causing missed responses
         | 
| 77 | 
            +
            - Resolved version numbering discrepancy (corrected from 3.7.1 to 3.6.2)
         | 
| 78 | 
            +
             | 
| 79 | 
            +
            ### Documentation Updates
         | 
| 80 | 
            +
            - Enhanced PM architecture documentation
         | 
| 81 | 
            +
            - Updated response logging configuration
         | 
| 82 | 
            +
            - Improved technical references for agent responses
         | 
| 83 | 
            +
            - Clarified TodoWrite format requirements across all agents
         | 
| 84 | 
            +
            - Updated acknowledgments and roadmap sections
         | 
| 90 85 |  | 
| 91 86 | 
             
            ### Migration Guide
         | 
| 92 | 
            -
            - Version 3.6. | 
| 87 | 
            +
            - Version 3.6.2 is fully backward compatible
         | 
| 93 88 | 
             
            - After upgrade, run `claude-mpm agents deps-check` to verify dependencies
         | 
| 94 89 | 
             
            - Run `claude-mpm agents deps-install` to install only required dependencies
         | 
| 95 90 | 
             
            - Optionally update configuration for enhanced logging (debug mode now default)
         | 
| @@ -108,7 +103,7 @@ Special thanks to our WhatsApp support group members for their invaluable contri | |
| 108 103 | 
             
            - **Eddie Hudson**
         | 
| 109 104 | 
             
            - **Oliver Anson**
         | 
| 110 105 |  | 
| 111 | 
            -
            Their dedication to quality assurance and constructive feedback were instrumental in shaping version 3.6. | 
| 106 | 
            +
            Their dedication to quality assurance and constructive feedback were instrumental in shaping version 3.6.2.
         | 
| 112 107 |  | 
| 113 108 | 
             
            ## [3.5.6] - 2025-08-11
         | 
| 114 109 |  | 
    
        claude_mpm-3.7.4/VERSION
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            3.7.4
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            3.7.4
         | 
| @@ -34,6 +34,7 @@ class ValidationResult: | |
| 34 34 | 
             
                warnings: List[str]
         | 
| 35 35 | 
             
                corrections: List[str]
         | 
| 36 36 | 
             
                corrected_frontmatter: Optional[Dict[str, Any]] = None
         | 
| 37 | 
            +
                field_corrections: Optional[Dict[str, Any]] = None  # Specific field-level corrections
         | 
| 37 38 |  | 
| 38 39 |  | 
| 39 40 | 
             
            class FrontmatterValidator:
         | 
| @@ -109,6 +110,7 @@ class FrontmatterValidator: | |
| 109 110 | 
             
                def __init__(self):
         | 
| 110 111 | 
             
                    """Initialize the validator with schema if available."""
         | 
| 111 112 | 
             
                    self.schema = self._load_schema()
         | 
| 113 | 
            +
                    self.all_valid_fields = self._extract_valid_fields()
         | 
| 112 114 |  | 
| 113 115 | 
             
                def _load_schema(self) -> Optional[Dict[str, Any]]:
         | 
| 114 116 | 
             
                    """Load the frontmatter schema from JSON file."""
         | 
| @@ -121,6 +123,17 @@ class FrontmatterValidator: | |
| 121 123 | 
             
                            logger.warning(f"Failed to load frontmatter schema: {e}")
         | 
| 122 124 | 
             
                    return None
         | 
| 123 125 |  | 
| 126 | 
            +
                def _extract_valid_fields(self) -> set:
         | 
| 127 | 
            +
                    """Extract all valid field names from the schema."""
         | 
| 128 | 
            +
                    if self.schema and 'properties' in self.schema:
         | 
| 129 | 
            +
                        return set(self.schema['properties'].keys())
         | 
| 130 | 
            +
                    # Fallback to known fields if schema not available
         | 
| 131 | 
            +
                    return {
         | 
| 132 | 
            +
                        "name", "description", "version", "base_version", "author", 
         | 
| 133 | 
            +
                        "tools", "model", "tags", "category", "max_tokens", "temperature", 
         | 
| 134 | 
            +
                        "resource_tier", "dependencies", "capabilities", "color"
         | 
| 135 | 
            +
                    }
         | 
| 136 | 
            +
                
         | 
| 124 137 | 
             
                def validate_and_correct(self, frontmatter: Dict[str, Any]) -> ValidationResult:
         | 
| 125 138 | 
             
                    """
         | 
| 126 139 | 
             
                    Validate and automatically correct frontmatter.
         | 
| @@ -135,9 +148,10 @@ class FrontmatterValidator: | |
| 135 148 | 
             
                    warnings = []
         | 
| 136 149 | 
             
                    corrections = []
         | 
| 137 150 | 
             
                    corrected = frontmatter.copy()
         | 
| 151 | 
            +
                    field_corrections = {}  # Track only the fields that actually need correction
         | 
| 138 152 |  | 
| 139 | 
            -
                    # Required fields check
         | 
| 140 | 
            -
                    required_fields = ["name", "description", "version", "model"]
         | 
| 153 | 
            +
                    # Required fields check (from schema)
         | 
| 154 | 
            +
                    required_fields = self.schema.get('required', ["name", "description", "version", "model"]) if self.schema else ["name", "description", "version", "model"]
         | 
| 141 155 | 
             
                    for field in required_fields:
         | 
| 142 156 | 
             
                        if field not in corrected:
         | 
| 143 157 | 
             
                            errors.append(f"Missing required field: {field}")
         | 
| @@ -153,6 +167,7 @@ class FrontmatterValidator: | |
| 153 167 | 
             
                            fixed_name = re.sub(r"[^a-z0-9_]", "", fixed_name)
         | 
| 154 168 | 
             
                            if fixed_name and fixed_name[0].isalpha():
         | 
| 155 169 | 
             
                                corrected["name"] = fixed_name
         | 
| 170 | 
            +
                                field_corrections["name"] = fixed_name
         | 
| 156 171 | 
             
                                corrections.append(f"Corrected name from '{name}' to '{fixed_name}'")
         | 
| 157 172 | 
             
                            else:
         | 
| 158 173 | 
             
                                errors.append(f"Invalid name format: {name}")
         | 
| @@ -165,6 +180,7 @@ class FrontmatterValidator: | |
| 165 180 | 
             
                        if isinstance(model, (int, float)):
         | 
| 166 181 | 
             
                            model = str(model)
         | 
| 167 182 | 
             
                            corrected["model"] = model
         | 
| 183 | 
            +
                            field_corrections["model"] = model
         | 
| 168 184 | 
             
                            corrections.append(f"Converted model from number to string: {model}")
         | 
| 169 185 |  | 
| 170 186 | 
             
                        if not isinstance(model, str):
         | 
| @@ -173,6 +189,7 @@ class FrontmatterValidator: | |
| 173 189 | 
             
                            normalized_model = self._normalize_model(model)
         | 
| 174 190 | 
             
                            if normalized_model != model:
         | 
| 175 191 | 
             
                                corrected["model"] = normalized_model
         | 
| 192 | 
            +
                                field_corrections["model"] = normalized_model
         | 
| 176 193 | 
             
                                corrections.append(f"Normalized model from '{model}' to '{normalized_model}'")
         | 
| 177 194 |  | 
| 178 195 | 
             
                            if normalized_model not in self.VALID_MODELS:
         | 
| @@ -184,6 +201,7 @@ class FrontmatterValidator: | |
| 184 201 | 
             
                        corrected_tools, tool_corrections = self._correct_tools(tools)
         | 
| 185 202 | 
             
                        if tool_corrections:
         | 
| 186 203 | 
             
                            corrected["tools"] = corrected_tools
         | 
| 204 | 
            +
                            field_corrections["tools"] = corrected_tools
         | 
| 187 205 | 
             
                            corrections.extend(tool_corrections)
         | 
| 188 206 |  | 
| 189 207 | 
             
                        # Validate tool names
         | 
| @@ -195,6 +213,8 @@ class FrontmatterValidator: | |
| 195 213 | 
             
                                if corrected_tool:
         | 
| 196 214 | 
             
                                    idx = corrected_tools.index(tool)
         | 
| 197 215 | 
             
                                    corrected_tools[idx] = corrected_tool
         | 
| 216 | 
            +
                                    corrected["tools"] = corrected_tools
         | 
| 217 | 
            +
                                    field_corrections["tools"] = corrected_tools
         | 
| 198 218 | 
             
                                    corrections.append(f"Corrected tool '{tool}' to '{corrected_tool}'")
         | 
| 199 219 | 
             
                                else:
         | 
| 200 220 | 
             
                                    invalid_tools.append(tool)
         | 
| @@ -214,10 +234,12 @@ class FrontmatterValidator: | |
| 214 234 | 
             
                                if re.match(r"^\d+\.\d+$", version):
         | 
| 215 235 | 
             
                                    fixed_version = f"{version}.0"
         | 
| 216 236 | 
             
                                    corrected[field] = fixed_version
         | 
| 237 | 
            +
                                    field_corrections[field] = fixed_version
         | 
| 217 238 | 
             
                                    corrections.append(f"Fixed {field} from '{version}' to '{fixed_version}'")
         | 
| 218 239 | 
             
                                elif re.match(r"^v?\d+\.\d+\.\d+$", version):
         | 
| 219 240 | 
             
                                    fixed_version = version.lstrip("v")
         | 
| 220 241 | 
             
                                    corrected[field] = fixed_version
         | 
| 242 | 
            +
                                    field_corrections[field] = fixed_version
         | 
| 221 243 | 
             
                                    corrections.append(f"Fixed {field} from '{version}' to '{fixed_version}'")
         | 
| 222 244 | 
             
                                else:
         | 
| 223 245 | 
             
                                    errors.append(f"Invalid {field} format: {version}")
         | 
| @@ -243,6 +265,44 @@ class FrontmatterValidator: | |
| 243 265 | 
             
                        if corrected["resource_tier"] not in valid_tiers:
         | 
| 244 266 | 
             
                            warnings.append(f"Invalid resource_tier: {corrected['resource_tier']}")
         | 
| 245 267 |  | 
| 268 | 
            +
                    # Validate color field
         | 
| 269 | 
            +
                    if "color" in corrected:
         | 
| 270 | 
            +
                        color = corrected["color"]
         | 
| 271 | 
            +
                        if not isinstance(color, str):
         | 
| 272 | 
            +
                            errors.append(f"Field 'color' must be a string, got {type(color).__name__}")
         | 
| 273 | 
            +
                        # Color validation could be expanded to check for valid color names/hex codes
         | 
| 274 | 
            +
                    
         | 
| 275 | 
            +
                    # Validate author field
         | 
| 276 | 
            +
                    if "author" in corrected:
         | 
| 277 | 
            +
                        author = corrected["author"]
         | 
| 278 | 
            +
                        if not isinstance(author, str):
         | 
| 279 | 
            +
                            errors.append(f"Field 'author' must be a string, got {type(author).__name__}")
         | 
| 280 | 
            +
                        elif len(author) > 100:
         | 
| 281 | 
            +
                            warnings.append(f"Author field too long ({len(author)} chars, maximum 100)")
         | 
| 282 | 
            +
                    
         | 
| 283 | 
            +
                    # Validate tags field
         | 
| 284 | 
            +
                    if "tags" in corrected:
         | 
| 285 | 
            +
                        tags = corrected["tags"]
         | 
| 286 | 
            +
                        if not isinstance(tags, list):
         | 
| 287 | 
            +
                            errors.append(f"Field 'tags' must be a list, got {type(tags).__name__}")
         | 
| 288 | 
            +
                        else:
         | 
| 289 | 
            +
                            for tag in tags:
         | 
| 290 | 
            +
                                if not isinstance(tag, str):
         | 
| 291 | 
            +
                                    errors.append(f"All tags must be strings, found {type(tag).__name__}")
         | 
| 292 | 
            +
                                elif not re.match(r"^[a-z][a-z0-9-]*$", tag):
         | 
| 293 | 
            +
                                    warnings.append(f"Tag '{tag}' doesn't match recommended pattern (lowercase, alphanumeric with hyphens)")
         | 
| 294 | 
            +
                    
         | 
| 295 | 
            +
                    # Validate numeric fields
         | 
| 296 | 
            +
                    for field_name, (min_val, max_val) in [("max_tokens", (1000, 200000)), ("temperature", (0, 1))]:
         | 
| 297 | 
            +
                        if field_name in corrected:
         | 
| 298 | 
            +
                            value = corrected[field_name]
         | 
| 299 | 
            +
                            if field_name == "temperature" and not isinstance(value, (int, float)):
         | 
| 300 | 
            +
                                errors.append(f"Field '{field_name}' must be a number, got {type(value).__name__}")
         | 
| 301 | 
            +
                            elif field_name == "max_tokens" and not isinstance(value, int):
         | 
| 302 | 
            +
                                errors.append(f"Field '{field_name}' must be an integer, got {type(value).__name__}")
         | 
| 303 | 
            +
                            elif isinstance(value, (int, float)) and not (min_val <= value <= max_val):
         | 
| 304 | 
            +
                                warnings.append(f"Field '{field_name}' value {value} outside recommended range [{min_val}, {max_val}]")
         | 
| 305 | 
            +
                    
         | 
| 246 306 | 
             
                    # Determine if valid
         | 
| 247 307 | 
             
                    is_valid = len(errors) == 0
         | 
| 248 308 |  | 
| @@ -251,7 +311,8 @@ class FrontmatterValidator: | |
| 251 311 | 
             
                        errors=errors,
         | 
| 252 312 | 
             
                        warnings=warnings,
         | 
| 253 313 | 
             
                        corrections=corrections,
         | 
| 254 | 
            -
                        corrected_frontmatter=corrected if corrections else None
         | 
| 314 | 
            +
                        corrected_frontmatter=corrected if corrections else None,
         | 
| 315 | 
            +
                        field_corrections=field_corrections if field_corrections else None
         | 
| 255 316 | 
             
                    )
         | 
| 256 317 |  | 
| 257 318 | 
             
                def _normalize_model(self, model: str) -> str:
         | 
| @@ -416,7 +477,7 @@ class FrontmatterValidator: | |
| 416 477 | 
             
                    """
         | 
| 417 478 | 
             
                    result = self.validate_file(file_path)
         | 
| 418 479 |  | 
| 419 | 
            -
                    if result. | 
| 480 | 
            +
                    if result.field_corrections and not dry_run:
         | 
| 420 481 | 
             
                        try:
         | 
| 421 482 | 
             
                            with open(file_path, 'r') as f:
         | 
| 422 483 | 
             
                                content = f.read()
         | 
| @@ -428,21 +489,59 @@ class FrontmatterValidator: | |
| 428 489 | 
             
                                    end_marker = content.find("\n---\r\n", 4)
         | 
| 429 490 |  | 
| 430 491 | 
             
                                if end_marker != -1:
         | 
| 431 | 
            -
                                    #  | 
| 432 | 
            -
                                     | 
| 433 | 
            -
             | 
| 434 | 
            -
                                         | 
| 435 | 
            -
                                        sort_keys=False
         | 
| 492 | 
            +
                                    # Apply field-level corrections to preserve structure
         | 
| 493 | 
            +
                                    frontmatter_content = content[4:end_marker]
         | 
| 494 | 
            +
                                    corrected_content = self._apply_field_corrections(
         | 
| 495 | 
            +
                                        frontmatter_content, result.field_corrections
         | 
| 436 496 | 
             
                                    )
         | 
| 437 | 
            -
                                    new_content = f"---\n{new_frontmatter}---\n{content[end_marker + 5:]}"
         | 
| 438 | 
            -
                                    
         | 
| 439 | 
            -
                                    with open(file_path, 'w') as f:
         | 
| 440 | 
            -
                                        f.write(new_content)
         | 
| 441 497 |  | 
| 442 | 
            -
                                     | 
| 443 | 
            -
             | 
| 444 | 
            -
                                         | 
| 498 | 
            +
                                    if corrected_content != frontmatter_content:
         | 
| 499 | 
            +
                                        new_content = f"---\n{corrected_content}\n---\n{content[end_marker + 5:]}"
         | 
| 500 | 
            +
                                        
         | 
| 501 | 
            +
                                        with open(file_path, 'w') as f:
         | 
| 502 | 
            +
                                            f.write(new_content)
         | 
| 503 | 
            +
                                        
         | 
| 504 | 
            +
                                        logger.info(f"Corrected frontmatter in {file_path}")
         | 
| 505 | 
            +
                                        for correction in result.corrections:
         | 
| 506 | 
            +
                                            logger.info(f"  - {correction}")
         | 
| 445 507 | 
             
                        except Exception as e:
         | 
| 446 508 | 
             
                            logger.error(f"Failed to write corrections to {file_path}: {e}")
         | 
| 447 509 |  | 
| 448 | 
            -
                    return result
         | 
| 510 | 
            +
                    return result
         | 
| 511 | 
            +
                
         | 
| 512 | 
            +
                def _apply_field_corrections(self, frontmatter_content: str, field_corrections: Dict[str, Any]) -> str:
         | 
| 513 | 
            +
                    """
         | 
| 514 | 
            +
                    Apply field-level corrections while preserving structure and other fields.
         | 
| 515 | 
            +
                    
         | 
| 516 | 
            +
                    Args:
         | 
| 517 | 
            +
                        frontmatter_content: Original YAML frontmatter content
         | 
| 518 | 
            +
                        field_corrections: Dict of field corrections to apply
         | 
| 519 | 
            +
                        
         | 
| 520 | 
            +
                    Returns:
         | 
| 521 | 
            +
                        Corrected frontmatter content
         | 
| 522 | 
            +
                    """
         | 
| 523 | 
            +
                    lines = frontmatter_content.strip().split('\n')
         | 
| 524 | 
            +
                    corrected_lines = []
         | 
| 525 | 
            +
                    
         | 
| 526 | 
            +
                    for line in lines:
         | 
| 527 | 
            +
                        # Check if this line contains a field we need to correct
         | 
| 528 | 
            +
                        if ':' in line:
         | 
| 529 | 
            +
                            field_name = line.split(':')[0].strip()
         | 
| 530 | 
            +
                            if field_name in field_corrections:
         | 
| 531 | 
            +
                                # Replace the field value while preserving structure
         | 
| 532 | 
            +
                                corrected_value = field_corrections[field_name]
         | 
| 533 | 
            +
                                if isinstance(corrected_value, list):
         | 
| 534 | 
            +
                                    # Handle list fields like tools
         | 
| 535 | 
            +
                                    if field_name == "tools" and isinstance(corrected_value, list):
         | 
| 536 | 
            +
                                        # Format as comma-separated string to preserve existing format
         | 
| 537 | 
            +
                                        corrected_lines.append(f"{field_name}: {','.join(corrected_value)}")
         | 
| 538 | 
            +
                                    else:
         | 
| 539 | 
            +
                                        corrected_lines.append(f"{field_name}: {corrected_value}")
         | 
| 540 | 
            +
                                else:
         | 
| 541 | 
            +
                                    corrected_lines.append(f"{field_name}: {corrected_value}")
         | 
| 542 | 
            +
                                continue
         | 
| 543 | 
            +
                        
         | 
| 544 | 
            +
                        # Keep the original line if no correction needed
         | 
| 545 | 
            +
                        corrected_lines.append(line)
         | 
| 546 | 
            +
                    
         | 
| 547 | 
            +
                    return '\n'.join(corrected_lines)
         | 
| @@ -0,0 +1,39 @@ | |
| 1 | 
            +
            # Engineer Agent Memory - templates
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            <!-- MEMORY LIMITS: 8KB max | 10 sections max | 15 items per section -->
         | 
| 4 | 
            +
            <!-- Last Updated: 2025-08-13 14:34:34 | Auto-updated by: engineer -->
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            ## Project Context
         | 
| 7 | 
            +
            templates: mixed standard application
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ## Project Architecture
         | 
| 10 | 
            +
            - Standard Application with mixed implementation
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            ## Coding Patterns Learned
         | 
| 13 | 
            +
            <!-- Items will be added as knowledge accumulates -->
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            ## Implementation Guidelines
         | 
| 16 | 
            +
            <!-- Items will be added as knowledge accumulates -->
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            ## Domain-Specific Knowledge
         | 
| 19 | 
            +
            <!-- Agent-specific knowledge for templates domain -->
         | 
| 20 | 
            +
            - Key project terms: templates
         | 
| 21 | 
            +
            - Focus on implementation patterns, coding standards, and best practices
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            ## Effective Strategies
         | 
| 24 | 
            +
            <!-- Successful approaches discovered through experience -->
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            ## Common Mistakes to Avoid
         | 
| 27 | 
            +
            <!-- Items will be added as knowledge accumulates -->
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            ## Integration Points
         | 
| 30 | 
            +
            <!-- Items will be added as knowledge accumulates -->
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            ## Performance Considerations
         | 
| 33 | 
            +
            <!-- Items will be added as knowledge accumulates -->
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            ## Current Technical Context
         | 
| 36 | 
            +
            <!-- Items will be added as knowledge accumulates -->
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            ## Recent Learnings
         | 
| 39 | 
            +
            <!-- Most recent discoveries and insights -->
         |