Skip to content

Define the CLI interface from one completion schema#9

Merged
realityforge merged 3 commits into
mainfrom
codex/completion-interface-contract
Jul 12, 2026
Merged

Define the CLI interface from one completion schema#9
realityforge merged 3 commits into
mainfrom
codex/completion-interface-contract

Conversation

@realityforge

Copy link
Copy Markdown
Owner

Summary

  • define the complete CLI interface through one declarative schema
  • drive parsing, usage, completion, help, aliases, visibility, and syntax constraints from that schema
  • generate unit and compiled-executable completion contracts for every structurally distinct CLI position
  • require unit and integration completion coverage for future CLI changes

Why

Completion previously maintained a separate command and option inventory from the parser. Recent CLI changes exposed drift: accepted aliases and help forms were missing, while tests sampled only part of the interface. The shared schema makes completion coverage follow interface changes automatically.

Validation

  • bazel run @rules_go//go -- fmt ./...
  • git diff --exit-code
  • bazel test --test_env=PATH //... (30 tests)
  • bazel run @rules_go//go -- vet ./...
  • bazel run @rules_go//go -- run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.12.0 run (0 issues)
  • bazel test --test_env=PATH //integration/... (7 tests)

Complete accepted command aliases and help forms, and enforce unit and executable completion coverage for CLI changes.
Drive parsing, usage, completion, constraints, and generated unit and executable contracts from the same declarative command schema.
@realityforge realityforge self-assigned this Jul 12, 2026
@realityforge realityforge marked this pull request as ready for review July 12, 2026 06:41
@realityforge realityforge merged commit 52e331f into main Jul 12, 2026
7 checks passed
@realityforge realityforge deleted the codex/completion-interface-contract branch July 12, 2026 06:45
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