Problem
STANDARDS.md has a Go CLI standards section (added recently) that recommends Cobra as the default CLI framework. It is otherwise thin on how a Go CLI integrates with Base's runtime model. Specifically:
-
No example of how a Go binary is launched through Base — does a Go CLI get launched through basectl run <project> <command>, through a thin Bash launcher in bin/, through base-wrapper, or something else?
-
No base-wrapper guidance for Go — base-wrapper runs Python packages in a project venv. Go binaries don't use a venv. Is there a Go equivalent? Does a Bash launcher just exec the Go binary directly?
-
No example manifest entry for a Go command — what does commands: look like for a Go CLI? Is it go run ./cmd/myapp (slow) or a pre-built binary path?
-
No guidance on binary location — where does the compiled Go binary live in a project repository? Is it in bin/, .build/, or somewhere else? Does basectl activate add that directory to PATH?
A contributor writing a Go CLI for a Base-managed project today would find no concrete guidance.
Fix
Add a "Go CLI Integration" subsection to the Go section of STANDARDS.md that covers:
- How Go CLIs should be declared in
commands: (shell wrapper or compiled binary)
- Where compiled binaries should live for PATH discovery
- Whether and when to use a thin Bash launcher in project
bin/ (the pattern used for Python CLIs)
- A minimal example
commands: block for a Go CLI
Keep it short (10–20 lines). Link to docs/tool-boundaries.md for the broader Go ecosystem boundary decisions.
Problem
STANDARDS.mdhas a Go CLI standards section (added recently) that recommends Cobra as the default CLI framework. It is otherwise thin on how a Go CLI integrates with Base's runtime model. Specifically:No example of how a Go binary is launched through Base — does a Go CLI get launched through
basectl run <project> <command>, through a thin Bash launcher inbin/, throughbase-wrapper, or something else?No
base-wrapperguidance for Go —base-wrapperruns Python packages in a project venv. Go binaries don't use a venv. Is there a Go equivalent? Does a Bash launcher justexecthe Go binary directly?No example manifest entry for a Go command — what does
commands:look like for a Go CLI? Is itgo run ./cmd/myapp(slow) or a pre-built binary path?No guidance on binary location — where does the compiled Go binary live in a project repository? Is it in
bin/,.build/, or somewhere else? Doesbasectl activateadd that directory toPATH?A contributor writing a Go CLI for a Base-managed project today would find no concrete guidance.
Fix
Add a "Go CLI Integration" subsection to the Go section of
STANDARDS.mdthat covers:commands:(shell wrapper or compiled binary)bin/(the pattern used for Python CLIs)commands:block for a Go CLIKeep it short (10–20 lines). Link to
docs/tool-boundaries.mdfor the broader Go ecosystem boundary decisions.