Description
When I am using Bmad with a python repository, whether it uses uv or uses pipenv, Bmad tries to take over the virtual environment .venv. Whether Bmad gets there first or the repository gets there first is determined by the user's action. With Bmad installed, I've had cases where Claude code has cleverly placed the Pipfile/Pipfile.lock in a sub-directory I think to avoid the conflict, because it knows about the issue.
Steps to reproduce
uv conflict
- Create a brownfield project with a pyproject.toml that pins packages that bmad wants to install to older versions.
- Use uv install to setup .venv
- Run npx bmad-method install
- Launch your LLM - claude
- Run /bmad-spec or /bmad-quick-dev and watch it fail or overwrite the pinned packages
pipenv conflict
- Create a brownfield project wth a Pipfile/Pipfile.lock that pins packages that bmad wants to install to older version.
- Define PIPENV_VENV_IN_PROJECT=1 because you want the same package root with both tools
- Run pipenv install -d to setup .venv
- Run npx bmad-method install
- Launch your LLM - claude
- Run /bmad-spec or /bmad-quick-dev and watch it fail or overwrite the pinned packages
Expected behavior
Bmad-method is a development tool that has to work with other development norms. It should not alter the norms for where virtual environments go for a repository by "taking over" that space. It should place its virtual environment always in the _bmad sub-directory.
Alternatively, the command-line tools for bmad should be packaged as a python package that can be installed via brew and/or pip, and the developer should be prompted to add it to their project environment. This could be a net win/win for the AI assistant and the developer, because the scripts would become well managed and versioned python packages with command-line interfaces (which are user interfaces) which can be used by both bmad and developers.
Actual behavior
bmad-method and the projects that it aims to benefit collide for control of the sub-directory .venv in the project root. Since bmad-method does not initialize the virtual environment until the first skill use after it is installed, the installation appears successful but leaves a time bomb.
bmad-method becomes a disruptive rather than helpful tool. bmad-method's scripts do not properly collaborate with the developer, undermining trust in the project.
Screenshots
No response
Which module is this for?
BMad Method (BMM) - Core Framework
BMad Version
discovered at work with 6.10.0
Which AI IDE are you using?
Claude Code
Operating System
macOS
Relevant log output
Confirm
Description
When I am using Bmad with a python repository, whether it uses uv or uses pipenv, Bmad tries to take over the virtual environment .venv. Whether Bmad gets there first or the repository gets there first is determined by the user's action. With Bmad installed, I've had cases where Claude code has cleverly placed the Pipfile/Pipfile.lock in a sub-directory I think to avoid the conflict, because it knows about the issue.
Steps to reproduce
uv conflict
pipenv conflict
Expected behavior
Bmad-method is a development tool that has to work with other development norms. It should not alter the norms for where virtual environments go for a repository by "taking over" that space. It should place its virtual environment always in the _bmad sub-directory.
Alternatively, the command-line tools for bmad should be packaged as a python package that can be installed via brew and/or pip, and the developer should be prompted to add it to their project environment. This could be a net win/win for the AI assistant and the developer, because the scripts would become well managed and versioned python packages with command-line interfaces (which are user interfaces) which can be used by both bmad and developers.
Actual behavior
bmad-method and the projects that it aims to benefit collide for control of the sub-directory .venv in the project root. Since bmad-method does not initialize the virtual environment until the first skill use after it is installed, the installation appears successful but leaves a time bomb.
bmad-method becomes a disruptive rather than helpful tool. bmad-method's scripts do not properly collaborate with the developer, undermining trust in the project.
Screenshots
No response
Which module is this for?
BMad Method (BMM) - Core Framework
BMad Version
discovered at work with 6.10.0
Which AI IDE are you using?
Claude Code
Operating System
macOS
Relevant log output
Confirm