Skip to content

The CLI specification needs the remaining lifecycle and scope rulings, and 4.4 still describes removed types #766

Closed

Description

@David-Noble-at-work

Feature: #834 — Help and reference: wrapped help, generated CLI docs, the specification

docs/architecture/10-command-line-interface.md is the CLI specification. It has been extended across
several days of design work and needs the remaining rulings placed, plus the sections that describe removed
or renamed code corrected.

Landed 2026-08-31

  • §3.1 The lifecycle is named once — four verbs in both programs, no status command anywhere, reconcile
    reports and repairs, reconcile is valid only after deployment.
  • §4.1 --scope — writ-only, repeatable, the five builtins with platform bindings, the LOCALAPPDATA /
    APPDATA exclusion, data-skipped-instructions-refused, elevation per scope.
  • §11.1 Introducing a name and setting its value — segments and scopes as name-to-value maps, a key with
    no value, a builtin's key as its override, vars for template variables alone.
  • §8 the formatting rules; §13 two version numbers; §15 the per-app coverage table. (Landed earlier.)

Remaining

  • §15's conformance table said writ status; renamed, along with the other references that describe
    the command rather than its history.
  • §1 was titled "Scope and principles", and "scope" now names an execution context. Retitled What
    this governs
    , with a note saying why one document should not spend the word twice.
  • The reserved flag table in §4 did not list --scope. It stays out — the table is the shared set,
    and only writ binds --scope — with a paragraph saying so, because a reader comparing the table
    against writ --help would otherwise find a flag it omits.
  • 4.4 — the Mode Switch section deleted and its four dependent references corrected.

Moved to #762. Regenerating docs/cli/** is a consequence of renaming the command, so it belongs with
the rename in that plan's Phase 2 rather than here. Leaving it in this issue made #766 unclosable without
work it does not own.

Neighbouring documents, corrected in the same pass

  • 2.4-hermeticity-guarantees.md — scope model placed; three "unconfined" claims corrected; the "Six Cells"
    and "2×3 matrix" arithmetic generalized, since it assumed exactly two scopes.
  • 5.1-reconciliation.md — the reversion recorded, reconcile repairs, writ status renamed throughout.
  • 5.3-recovery-site.md — a RootReaderWriter test mode that no longer exists.
  • 4.4-root-path-triad.md — not yet corrected. §4 "Mode Switch" tabulates confinedRoot, RootReader,
    and RootReaderWriter, all of which have zero occurrences in the tree, and line 79's diagram says
    Abs() → abs (unconfined I/O). Open: rewrite the section as "there is no mode switch — one implementation,
    a varying anchor", or delete it and renumber §5 and §6.

Related

#762 (the lifecycle and scope design this specifies), #765 (the config keys it documents), #755 (help
wrapping, landed), #743 (star's duplicate cli package, which keeps it outside this specification's reach).

Metadata

Metadata

Labels

Area:ArchitectureSystem architecture and designEpic:CommandLineOne output convention across every CLI in the suitedocumentationImprovements or additions to documentationtaskImplementation work item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions