Skip to content

sideshow install --from cannot detect bmad version from source directory #18

Description

@arcavenai

Bug

sideshow install bmad --from <local-dir> cannot determine the BMAD version from the source directory and falls back to unknown:

$ sideshow install bmad --from /Users/skippy/work/bmad-master
Installing bmad unknown from /Users/skippy/work/bmad-master
Installed 1360 files to /Users/skippy/.local/share/sideshow/packs/bmad/unknown

The source directory contains BMAD 6.3.0.

Expected behavior

sideshow should detect the version and install to packs/bmad/6.3.0, not packs/bmad/unknown.

Version detection method

Every BMAD install (source or consumer) contains a manifest at:

_bmad/_config/manifest.yaml

The installation.version field is the canonical version:

installation:
  version: 6.3.0
  installDate: 2026-04-11T23:57:56.716Z
  lastUpdated: 2026-04-11T23:57:56.716Z

Verified across four independent directories:

Directory Version
/Users/skippy/work/bmad-master 6.3.0
/Users/skippy/work/ftc 6.2.2
/Users/skippy/work/ThreeDoors 6.0.4
~/.multiclaude/repos/aae-orc/switchboard 6.0.4

No other version indicators exist (no VERSION file, no package.json, no git tags). _bmad/_config/manifest.yaml is the only reliable source.

Suggestion

When --from points to a local directory, sideshow should:

  1. Check for _bmad/_config/manifest.yaml and read .installation.version
  2. Use that as the version slug for the install path

Important: This detection should be self-contained within the sideshow binary — it should parse the YAML manifest directly rather than relying on any external scripts (e.g. Python helpers from the sideshow source tree) being checked out locally. sideshow is distributed as a standalone Go binary via Homebrew; version detection must work the same way regardless of whether the user has the sideshow source code available.

Environment

  • sideshow: 0.1.0-alpha.20260406.002014.82ea7a3
  • Install: Homebrew (arcavenae/tap/sideshow)
  • OS: macOS Darwin 25.3.0 arm64
  • Go: 1.26.2 darwin/arm64

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions