platform-ctl Plan
The platform CLI — the Abukix unified command-line front-door. Wraps basecamp + terralabs + portal + agents into one developer-friendly Go CLI. Self-service interface to the platform. Goes public at the Abukix Studio launch in Year 5 Phase 29.
platform-ctl is the Group A platform project that turns basecamp + terralabs from “a stack of tools an operator can drive” into “a product a developer can use.” It’s the golden path — one CLI that covers ~90% of platform operations so a user doesn’t have to alternate between kubectl, argocd, terraform, helm, the ArgoCD UI, mlship, and various MCP clients to ship something.
The CLI starts in Year 2 Phase 12 as a private daily-driver — five service-ops commands wrapping Backstage Scaffolder, ArgoCD, and ESO. Each subsequent year extends it as new platform layers come online: Year 3 adds cluster bootstrap (wrapping terralabs) and pipeline runs; Year 4 adds model deploy (wrapping mlship); Year 5 adds agent invocation, portal surfacing, and composition recipe runners. The whole thing goes public at the Abukix Studio launch in Year 5 Phase 29, polished with GoReleaser binaries and example workflows.
This is the project that proves you can build a platform product, not just operate one — the platform-as-product pattern in CLI form.
What it is
A Go (cobra) CLI:
platform-ctl service create my-app --template golang-service# → scaffolds Go service repo from Backstage Template; creates basecamp Application; commits PR
platform-ctl service deploy my-app --env staging# → triggers ArgoCD sync for my-app in staging cluster
platform-ctl service status my-app# → pods, recent deploys, error rate, on-call, SLO burn
platform-ctl service logs my-app --tail# → tails Loki logs for the service
platform-ctl secret rotate my-app --secret db-password# → triggers ESO rotation; verifies new value picked up
platform-ctl cluster bootstrap k3s --on proxmox# → wraps terralabs + ArgoCD app-of-apps install
platform-ctl model deploy ./model.pkl --as my-model# → wraps mlship for in-basecamp deploy
platform-ctl pipeline run train-deploy# → triggers Kubeflow Pipeline
platform-ctl agent invoke aiops --alert "high-cpu"# → triggers AIOps agent
platform-ctl recipe run personal-rag# → runs a Studio composition recipeWhy it exists
basecamp + terralabs + Portal + agents are great but require knowing many tools (kubectl, argocd-cli, terraform, helm, ArgoCD UI, mlship, custom curl, MCP clients, etc.). platform-ctl is the golden path — the opinionated CLI a developer learns once and uses for 90% of platform operations.
This is the project that proves you can build a platform product, not just operate one.
Pattern it teaches
platform-as-product: the discipline of treating internal tools as products with users + UX expectations + time-to-first-deploy.
Plus reinforced:
- layering-and-abstraction: platform-ctl is the user-facing layer; basecamp/terralabs/portal are underneath.
Scope (by year)
Y2 P12: start
[ ] github.com/abukix/platform-ctl (PRIVATE at start)[ ] Go binary, cobra-based[ ] Subcommands: service (create, deploy, status, logs), secret (rotate, list)[ ] Wraps Backstage Scaffolder + ArgoCD + ESO[ ] Tests, CI, GoReleaserY3
[ ] + cluster bootstrap (wraps terralabs)[ ] + pipeline run (wraps Airflow / Kubeflow Pipelines)[ ] + service observe (opens Grafana with logs/metrics/traces filtered)Y4
[ ] + model deploy / list / rollback (wraps mlship)[ ] + integration with mlship v0/v0.5 from Phase 21/25Y5: launch
[ ] + agent invoke / status / kill (wraps services/aiops/)[ ] + portal (status, search, surface in command palette)[ ] + recipe run (the 5 composition recipes)[ ] PUBLIC LAUNCH at Y5 P29 alongside Abukix Studio[ ] LinkedIn announcement[ ] Used as case study in Y5 pattern paper if relevantWhen built
Started Year 2 Phase 12, Month 19-20. Grows continuously through Year 5.
Dependencies
platform-ctl is the outermost layer of the substrate. It depends on every other Group A project being usable underneath it: basecamp for service deployment, terralabs for cluster bootstrap, mlship for model deploy, services/aiops/ for agent invocation, and basecamp-mcp (Y5 P27) for the agent integration. Each year’s new subcommand maps to a new platform capability that landed that year.
Deliverables (cumulative)
| Year | State |
|---|---|
| Y2 end | private; ~5 commands (service ops); used in daily basecamp work |
| Y3 end | private; +cluster bootstrap; +pipeline run; +observe |
| Y4 end | private; +model deploy; integrated with mlship v0.5 |
| Y5 end | PUBLIC; +agent + +portal + +recipe; full platform CLI |
Stack
- Go 1.23+
- cobra (CLI)
- viper (config)
- K8s client-go (cluster ops)
- ArgoCD SDK (sync triggering)
- AWS + GCP SDKs (terralabs wrap)
- MCP client (talks to basecamp-mcp from Y5 P27)
- testify (tests)
Public vs private
- Y2-Y4: private. Working tool for daily basecamp ops; not yet polished for public.
- Y5 P29: GOES PUBLIC alongside Abukix Studio. Polished README, examples, contributing guide, GoReleaser binaries.
Success criteria
Y5 launch:[ ] Public on GitHub with comprehensive README[ ] 5+ example workflows in /examples[ ] GoReleaser-built binaries (linux/macos/windows; amd64/arm64)[ ] CI clean[ ] Used in the Abukix Studio demo + composition recipes[ ] LinkedIn announcement post-launchCross-references
- Pattern: platform-as-product
- Phases: Year 2 Phase 12 (start), grows every phase
- Public launch: Year 5 Phase 29
- Master plan context: Master Plan — Group A: the platform itself
- Brand context: Abukix Studio
- Related: basecamp, terralabs, mlship, studio