02 — Commands & UX
Summary
Every block is the intended user-facing output, to be matched word for word — several strings are load-bearing because they are the only place a user learns why an irreversible thing is irreversible. The publish baseline is private-and-ciphertext-only; publishing the read key requires --visibility public and a stated-consequence confirmation: anyone with the URL can read every file, now and in every future publish, and copies cannot be recalled. The 19 Aug revision removes the target argument — publish always writes .sg_vault/publish/ and deployment is a separate act — and adds the API-docs flags with the CDN default.
Key concepts
- Consequence stated, not implied — the --visibility public confirmation is the disclosure moment, designed as such
- The safe default — bare visibility: no key published, readers supply their own
Key ideas
- Load-bearing strings are part of the spec: change one, explain it in the PR.
- The next-steps block after publish teaches the two consumption paths (serve locally, clone from any GET host) at the moment they matter.
Read the document
📄 Pack document · 02__commands-and-ux.md · rendered from the raw markdown (the source of truth)