CLI

The installer as scriptable commands. Same engine the MCP server calls (internal/installer) — opinions first, preview second, mutation last.

Install once (binaries + Go toolchain when missing, curl + git only):

curl -sSfL https://raw.githubusercontent.com/calionauta/gogogo/master/install.sh | sh -s -- --run

Commands

CommandChanges anything?What it does
gogogo advise --need "..." [--dir <path>]NoWhich lib or language fits the use-case; how each capability switches off. --dir is optional and adds one stat: if that path is not a gogogo checkout, the answer says so instead of listing capabilities you cannot use there
gogogo --dry-run --format jsonNoThe trim plan as one JSON document
gogogo --yesYesScaffold: clone when missing, trim, rename, prove the build
gogogo add <unit> --from <pristine> --dir <proj>Yes (--yes)Bring a trimmed unit back (--dry-run previews)
gogogo --check --dir <proj>NoMarker drift verdict per unit
gogogo --runTakes the terminalAfter a successful proof, make dev replaces this process (Ctrl-C stops dev; humans only)
gogogo --versionNoPrints the release tag (or dev)

With Go installed and no curl | sh: go run github.com/calionauta/gogogo/cmd/gogogo@latest with the same flags (always tracks the latest commit; releases pin a version).

Agent contract

ScopeWhenWhat you get
templatea gogogo-shaped need (or anything the vocabulary does not match — the full map is shown instead of a guess)the capability table + keep/drop presets. When nothing matched, the scaffold first-run is withheld and the text names the preset list to retry with
exception-to-gothe need names Zig, the repo's one documented exception to Go-firstthe exception-to-go gate (pprof → SIMD → Zig, Go baseline first) + the skill pointer; no capability table, nothing installs under the exception
go-standardseither a need that forbids dependencies ("stdlib only", "no deps", "single binary"), or --dir pointing at a path that is not a gogogo checkoutthe Go-standards pointer; the capability table is omitted because no entry applies. Two causes share the scope, so branch on reason: stdlib-only (the need rules dependencies out) or not-a-gogogo-checkout (the path does). tree records what the probe found, and is absent when no --dir was given

The go-standards scope exists because answering a stdlib-only need with 24 dependency-bearing capabilities is worse than answering nothing: an agent reading it recommends a managed realtime backend for a task whose spec forbids it.

Engine internals (alternatives analysis, trim tables, flag matrix): cmd/gogogo. MCP equivalent: mcp. Guided tour: getting-started.