Skip to content

feat: bmalph config — platform switching without reset #66

@LarsCowe

Description

@LarsCowe

Summary

Currently, changing the platform after bmalph init requires bmalph reset (which destroys all state) or manual editing of bmalph/config.json. Neither is ideal.

Proposed Solution

A bmalph config command (or bmalph config set platform <id>) that:

  1. Validates the new platform ID
  2. Updates bmalph/config.json with the new platform
  3. Swaps the instructions file snippet (removes old platform's snippet, writes new one)
  4. Handles command delivery migration:
    • directory → none: warns about orphaned command files
    • none → directory: creates command directory and copies commands
    • inline → none: removes inline commands section from instructions file
  5. Updates _bmad/config.yaml platform field
  6. Updates .ralph/.ralphrc PLATFORM_DRIVER value

Options

  • --dry-run — Preview changes without writing
  • bmalph config get <key> — Read a config value
  • bmalph config set <key> <value> — Set a config value
  • bmalph config list — Show all config values

Risks

  • Command delivery migration is the tricky part — going from directory-based (Claude Code) to none (Cursor) leaves orphaned .claude/commands/ files
  • Instructions file manipulation needs to handle partial/corrupted content gracefully

Additional Context

This would significantly improve the developer experience for users who want to try different platforms without losing their BMAD planning artifacts and Ralph state.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions