This file provides guidance to coding agents (e.g. Claude Code, claude.ai/code) when working with code in this repository.
Go module go.bytebuilders.dev/cli — the ACE (AppsCode Container Engine) command-line. Produced binary is ace. Used by operators to drive ACE installs and clusters from the host shell.
Subcommands (from pkg/cmds/root.go):
config— manage local ACE config.cluster— cluster-side operations (list/select/etc.).auth— login / token management.cloud-swap— switch cloud accounts.installer— install ACE components.debug— debug introspection.expose— expose ACE services.
Plus version and completion.
cmd/ace/— entry point.pkg/cmds/— one subdirectory per subcommand (config,cluster,auth,cloud_swap,installer,debug,expose).pkg/config/— local config file plumbing.pkg/printer/— output formatting.license-debug-info/— helper for surfacing license state inace debug.Dockerfile.in(PROD, distroless),Dockerfile.dbg(debian),Dockerfile.ubi(Red Hat certified).hack/,Makefile— AppsCode build harness.vendor/— checked-in deps.
make ci— full CI pipeline.make build/make all-build— host or all-platform build.make fmt,make lint,make unit-tests/make test— standard.make verify— codegen + module-tidy verification.make container/make push/make release— image build/publish flow.
- Module path is
go.bytebuilders.dev/cli(vanity URL); imports must use that. Binary name isace. - License:
LICENSE.md. Sign off commits (git commit -s); contributions follow the DCO (DCO,CONTRIBUTING.md). - Vendor directory is checked in; keep
go mod tidy && go mod vendorclean. - New subcommand: drop a
pkg/cmds/<name>/package implementingNew*constructor and register inpkg/cmds/root.go. - Output formatting goes through
pkg/printer/— don't print directly from subcommand handlers. - Three Dockerfiles, one binary — keep
Dockerfile.in,Dockerfile.dbg, andDockerfile.ubiin sync.