Uh oh!
There was an error while loading. Please reload this page.
docs(deployment): add os package publish and os package install to the CLI reference - #9021
Merged
os-project-manager merged 1 commit intoAug 16, 2026
Conversation
…e CLI reference `content/docs/deployment/cli.mdx` carried a `####` entry per command across Development, Production, Build & Validate, Schema migrations, Scaffolding, Quality, Authentication and Cloud Environments — but had no entry for the two commands that move a compiled app onto a platform. The only mention of either was one prose line inside `os cloud login`. This matters now because #8910 made `publish-and-preview.mdx` the page that states how a metadata app reaches a platform, on the instruction "link to the CLI reference, do not restate it". The link landed on a reference that did not cover the two commands the page is about. Adds a `### Packages` subsection with `#### os package publish` and `#### os package install`, each with a full flag table and one example per mode, matching how `os migrate` and `os cloud login` are covered. Every flag was read from `packages/cli/src/commands/package/{publish,install}.ts` rather than restated from the card. That found flags the card did not name: publish's full 23-flag surface (the card listed only install's flags), and install's `--timeout` / `OS_CLOUD_TIMEOUT_MS`, `-r`/`-v` short forms, `--version` default `latest`, and the `OS_RUNTIME_EMAIL` / `OS_RUNTIME_PASSWORD` env spellings. `publish-and-preview.mdx` is untouched: it keeps the narrative and the choosing rule; this page carries the flag-level detail. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011RB4waLuNbdruCo6X9oobm
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
This was referenced Aug 16, 2026
os-project-manager
marked this pull request as ready for review
August 16, 2026 06:37
os-project-manager
enabled auto-merge
August 16, 2026 06:38
Uh oh!
There was an error while loading. Please reload this page.
os-project-manager
deleted the
claude/issue-8965-package-commands-reference
branch
August 16, 2026 06:59
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#8965
content/docs/deployment/cli.mdxcarried a####entry per command across Development, Production, Build & Validate, Schema migrations, Scaffolding, Quality, Authentication and Cloud Environments — but had no entry for the two commands that move a compiled app onto a platform. The only mention of either was a single prose line insideos cloud login.This became load-bearing when #8910 made
publish-and-preview.mdxthe page that states how a metadata app reaches a platform, under the instruction "link to the CLI reference, do not restate it". The link was there and landed on a reference that did not cover the two commands the page is about — a reader following it for flag-level detail found nothing.What this adds
A new
### Packagessubsection under## Commands, with#### os package publishand#### os package install— each a flag table plus one example per mode, matching howos migrateandos cloud loginare already covered.Placement, and why not
### Cloud Environments. The card offered both options.### Cloud Environmentscoversos environments *— commands that manage environment records in the cloud control plane.os package installdoes not touch the cloud at all in air-gapped mode; it POSTs to a running runtime's local install endpoint. Filing it under Cloud Environments would misfile it and split the pair. The two commands pair with each other — publish-to-cloud / install-into-runtime — so they get their own family, consistent with the page's existing task-family grouping. It sits after### Cloud Environmentsso both of its prerequisites (theos cloud logincredential, and environment ids for--env) are introduced before it.Flags were read from source, not from the card
Every flag was verified against
packages/cli/src/commands/package/publish.tsand.../install.ts. The card's flag list turned out to be install's flags only — it named--runtime/OS_RUNTIME_URL,--email/--passwordand--confirm-global-uniques, and attributed them to the pair.os package publishhas a completely disjoint 23-flag surface built on the cloud identity (--server/OS_CLOUD_URL,--token/OS_CLOUD_API_KEY), none of which the card named.Flags the card missed, now documented:
--manifest-id,--display-name,--description,--category,--visibility,--org,--env,--install,--seed-sample-data,--pre-release,--submit,--auto-approve,--readme,--readme-file,--icon-url,--icon-file,--homepage-url,--license,--note,--timeout, plus--server/--token/--version) and the positionalartifact.--timeout/OS_CLOUD_TIMEOUT_MS; the-r/-vshort forms;--versiondefaulting tolatest; and theOS_RUNTIME_EMAIL/OS_RUNTIME_PASSWORDenv spellings the card referred to only as "--email / --password".Both install modes were confirmed against the source. The mode is chosen by argument shape, and the page states the real rule: a file path when the argument ends in
.json, starts with./,../or/, or names something that exists in the working directory — that last clause is a real shadowing hazard and is called out.The card's identity distinction is documented on both sides, because it is exactly the thing that misleads when restated loosely: publish resolves
--token, then$OS_TOKEN, then~/.objectstack/cloud.json, and deliberately does not fall back toos login's~/.objectstack/credentials.json; install authenticates as an account on the target runtime.One claim deliberately narrowed against its own source comment
install.tscomments that the--confirm-global-uniquesaffirmation is recorded "whereos doctorcan later show who affirmed it and when." Measured,os doctordoes not display who or when — it callsunconfirmedGlobalUniques(...)and uses the attestation only to suppress re-reporting the affirmed constraints. The attestation record itself does carryposture,confirmed,attestedAtand an optionalattestedBy.Rather than copy a comment that over-claims (Prime Directive #10), the page documents the measured behaviour: what is recorded, and that
os doctorstops re-reporting the affirmed constraints. Filed separately as a finding — see the report.Scope
content/docs/deployment/cli.mdxonly, purely additive (154 lines, 0 deletions).publish-and-preview.mdxis untouched and keeps the narrative and the choosing rule; #8913's restructure surface (index.mdx+meta.json) is untouched. Docs-only, soskip-changeset.Verification
Gate union run at final commit
6bc51c9ea, working tree clean at that sha:Derived with
node scripts/pm/dispatch-gates.mjs content/docs/deployment/cli.mdx, which namedcheck:docs-audit-scopeandcheck:role-word;check:doc-anchors,check:nul-bytesandcheck:doc-authoringwere added from the actual diff (new fragment links, any-edit, new doc prose).The three CLI tests that pin prose in this file pass — they regex-match text in the
os login/os cloud loginsections, which this change does not touch:Reverse verification of the anchor gate, from the committed state: breaking one newly-added fragment link to a non-existent heading turned
check:doc-anchorsred (ELIFECYCLE Command failed with exit code 1); restoring withgit checkout HEAD -- ...returned it to green with a cleangit status --porcelain. Direction as expected — red — so the gate demonstrably reads the new links rather than passing over them.Page-path links: the one added,
/docs/deployment/publish-and-preview, resolves tocontent/docs/deployment/publish-and-preview.mdx. lychee is not installed locally, so theCheck Documentation Linksjob is the authority on that half.Generated by Claude Code