Skip to content

Latest commit

Β 

History

History
46 lines (35 loc) Β· 2.17 KB

File metadata and controls

46 lines (35 loc) Β· 2.17 KB

AGENTS.md

This file provides guidance to coding agents (e.g. Claude Code, claude.ai/code) when working with code in this repository.

Repository purpose

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.

Architecture

  • 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 in ace debug.
  • Dockerfile.in (PROD, distroless), Dockerfile.dbg (debian), Dockerfile.ubi (Red Hat certified).
  • hack/, Makefile β€” AppsCode build harness.
  • vendor/ β€” checked-in deps.

Common commands

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

Conventions

  • Module path is go.bytebuilders.dev/cli (vanity URL); imports must use that. Binary name is ace.
  • 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 vendor clean.
  • New subcommand: drop a pkg/cmds/<name>/ package implementing New* constructor and register in pkg/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, and Dockerfile.ubi in sync.