Skip to content

[BUG] Bmad scripts want to own {project_root}/.venv #2823

Description

@danizen

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

  1. Create a brownfield project with a pyproject.toml that pins packages that bmad wants to install to older versions.
  2. Use uv install to setup .venv
  3. Run npx bmad-method install
  4. Launch your LLM - claude
  5. Run /bmad-spec or /bmad-quick-dev and watch it fail or overwrite the pinned packages

pipenv conflict

  1. Create a brownfield project wth a Pipfile/Pipfile.lock that pins packages that bmad wants to install to older version.
  2. Define PIPENV_VENV_IN_PROJECT=1 because you want the same package root with both tools
  3. Run pipenv install -d to setup .venv
  4. Run npx bmad-method install
  5. Launch your LLM - claude
  6. 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

  • I've searched for existing issues
  • I'm using the latest version

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions