Skip to content

STANDARDS.md Go CLI section lacks integration example for basectl run and base-wrapper #450

@codeforester

Description

@codeforester

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:

  1. 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?

  2. No base-wrapper guidance for Gobase-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?

  3. 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?

  4. 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.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions