Skip to content

docs: present the CLI as shipped, not an MVP - #48

Merged
robinbraemer merged 4 commits into
mainfrom
docs/readme-production-ready
Aug 19, 2026
Merged

docs: present the CLI as shipped, not an MVP#48
robinbraemer merged 4 commits into
mainfrom
docs/readme-production-ready

Conversation

@robinbraemer

Copy link
Copy Markdown
Member

Summary

  • Removes the leftover "current MVP" framing from the README intro. akua is a real, shipped product (v0.10.1+, brew install akua-dev/tap/akua), proven end-to-end against production today: install → login → free cluster → free managed worker → package → install.
  • Bumps the pinned copy-paste install examples (macOS/Linux script, Windows PowerShell script) and the release-artifact table from v0.9.0 to the current v0.10.1 release. This isn't just cosmetic: v0.9.0 archives predate the embedded package-runtime change (feat(release): ship the embedded package runtime in every archive #42) and contain only the bare akua binary, while the current install script (added alongside that change) extracts and, on Windows, explicitly copies a node_modules/@akua-dev tree that doesn't exist in v0.9.0 archives — so the old pinned version would break a copy-pasting user on Windows and silently ship a binary without the embedded native package runtime everywhere else.
  • Updates test/docs.test.ts's pinned asset-name literals to match the version bump.

No other MVP/early-access/"coming soon" language was found elsewhere in the README — the rest of the doc (auth, output modes, OpenAPI command generation, release process) already accurately describes the current, real command surface. I verified every command example against this repo's actual CLI output (akua --help, akua auth login/status/logout, akua commands, akua workspaces --help in human mode, akua pkg version) rather than trusting the prior prose.

Test plan

  • bun test test/docs.test.ts — 4 pass
  • bun test (full suite) — 165 pass, 0 fail
  • Manually ran akua --help, akua auth login --help, akua commands --limit 5, akua workspaces --help --output human, akua pkg --help, akua pkg version against the current src/bin/akua.ts to confirm README examples match real output
  • Downloaded and diffed the v0.9.0 vs v0.10.1 darwin-arm64 release archives to confirm the node_modules/@akua-dev embedded-runtime difference that motivated the version bump

Remove leftover "current MVP" framing from the README intro now that
akua is a real, shipped product (v0.10.1+, installable via
`brew install akua-dev/tap/akua`, proven end-to-end against production:
install, login, free cluster, free managed worker, package, install).
Bump the pinned copy-paste install examples and the release-artifact
table from v0.9.0 to the current v0.10.1 release; v0.9.0 archives predate
the embedded package-runtime change (#42) and don't contain the
`node_modules/@akua-dev` tree the current install script extracts and
(on Windows) copies, so the old pinned version silently breaks the
documented install path. Update test/docs.test.ts's pinned asset-name
literals to match.

Verified every command example in the README against this repo's
current source: `akua --help`, `akua auth login`/`status`/`logout`,
`akua commands`, `akua workspaces --help` (human mode), and
`akua pkg version` all match what the CLI at v0.10.1 actually outputs.

Tested: bun test test/docs.test.ts; bun test (165 pass)
Rework the README's intro and structure to lead with what akua does
(create clusters, add machines, package and install apps) and who it
serves (a human at a terminal, a CI pipeline, a coding agent) before
any mechanism explanation. Name all three audiences explicitly instead
of only "humans, automation, and coding agents" in passing.

Remove every mention of Effect, the internal library the CLI happens
to be built with. It is not something a user installing and running
the CLI needs to know. Where a sentence's real content was the useful,
user-facing fact that commands are generated from the OpenAPI spec and
therefore never drift out of sync, keep that fact and state it in
outcome terms instead of naming the framework.

Move the OpenAPI-generation mechanics out of the primary usage flow
and into the Development section, since that detail matters to
contributors, not to someone running `akua workspaces list`. Reorder
first-use so sign-in gets its own section, and consolidate the human
vs. CI vs. agent output story into one section explicitly titled for
all three.

Verified every command and flag shown against the current CLI: `akua
--help`, `--version`, `commands --limit 1|5`, `pkg version`, `pkg
--help`, `auth --help`, `auth login --help`, `auth status`, `workspaces
--help`, and the `workspaces list --input -` stdin-piping example, all
run directly from src/bin/akua.ts.

Updated test/docs.test.ts's pinned README literals to match: dropped
the "generated typed Effect API" and "Generated API commands execute"
assertions (text no longer present by design) in favor of phrases that
match the new copy, and added a regression test asserting the README
never mentions Effect and does name all three audiences.
Move the Development section (codegen mechanics, release packaging/
verification/smoke, Release Please/Homebrew tap process) into a new
CONTRIBUTING.md so README.md only covers using the shipped `akua`
executable: what it does, install, sign in, run commands, and where
to find the full reference. README now points to docs.akua.dev for
the command reference and to CONTRIBUTING.md for repo development.

Rationale: reviewer feedback on PR #48 - anything a developer using
the CLI doesn't need to see belongs in its own file, not the README.

Tested: bun test (168 pass), bun scripts/generate-commands.ts --check,
bun scripts/generate-effect-api.ts --check, bun run build.
The per-OS GitHub Release install steps (checksum verification, extraction,
PATH setup for macOS/Linux/Windows) cluttered the primary README flow for a
path almost no one uses; Homebrew is the install method for the vast
majority of users. Move the detailed fallback into docs/install.md and
leave a single pointer line in README.md.

The fallback stays documented (not deleted) because docs/quickstart.mdx in
the cnap repo references it as the non-Homebrew install path for agents.
@robinbraemer
robinbraemer merged commit 1b80328 into main Aug 19, 2026
7 checks passed
@robinbraemer
robinbraemer deleted the docs/readme-production-ready branch August 19, 2026 07:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant