Repository navigation
CLI parity with upstream OpenSpec v1.4.1 (release v0.3.0) - #3
Merged
Merged
Conversation
Authored via the OpenSpec workflow (proposal/design/specs/tasks; 4/4 valid). Closes the CLI-surface gaps the parity audit found vs upstream v1.4.1: - config subcommands (path/list/get/set/unset/reset/edit/profile) — replaces the flat --set/--get/--list (BREAKING) - feedback <message> (reuses telemetry transport + opt-out) - show spec-filter flags (--requirements / --requirement <n> / --no-scenarios) - new change flags (--json/--goal/--affected-areas/--initiative/--store/--store-path) - validate --concurrency <n> - --no-interactive accepted as a global no-op - fix: package-schema resolution uses the embedded schema for installed binaries (not the dev-only vendor/OpenSpec/schemas path) Out of scope (documented): the `view` TUI dashboard, and the deprecated spec/change noun groups + `experimental` alias. Spec deltas: cli-commands (MODIFIED new/show/validate + ADDED feedback / no-interactive / package-schema-resolution), config-management (ADDED config subcommand surface). No code yet — this is the plan.
…ack, flags)
Implements the cli-parity-upstream change (groups 1-7), reviewed and revised.
Commands & flags:
- config: subcommand group `path/list/get/set/unset/reset/edit/profile`,
replacing the flat `--set/--get/--list` (BREAKING). `reset` requires `--all`;
`set` validates enum values (profile ∈ core/custom, delivery ∈
both/skills/commands).
- `feedback <message> [--body]`: files a GitHub issue via the `gh` CLI, with a
manual issue-URL fallback when gh is missing/unauthenticated (explicit user
action — not telemetry, not opt-out-gated).
- `show`: spec-filter flags `--requirements` / `--requirement <n>` /
`--no-scenarios` (JSON-only; mirror upstream filterSpec — 1-based bounds,
conflict + json-required checks).
- `new change`: `--json` (upstream `{change:{id,path,metadataPath,schema},
initiative?}` shape), `--goal`, `--affected-areas`, and
`--initiative/--store/--store-path` linking (reuses the initiatives
resolution + `.openspec.yaml` metadata).
- `validate`: `--concurrency <n>` bounded worker pool (default 6) with
deterministic sorted output; resolves `--concurrency` / `OPENSPEC_CONCURRENCY`
/ default.
- global `--no-interactive` accepted as a no-op for upstream compatibility.
Fixes:
- schema resolution: the built-in schema resolves from the embedded definition
instead of the dev-only `vendor/OpenSpec/schemas` path, so installed binaries
work from any directory.
- `ChangeMetadata` gains `goal`/`affected_areas` (optional, snake_case).
- telemetry: drop the unused feedback event path.
cargo test (lib + 26 integration), fmt, clippy --all-targets -D warnings clean.
- bump version 0.2.0 -> 0.3.0 (minor: removes the flat config flags — a breaking CLI surface change — plus several new commands/flags) - CHANGELOG [0.3.0]: config subcommands, feedback (GitHub issue + --body), schema fork/init, templates, set change, show spec-filters, validate --concurrency, --no-interactive, embedded package-schema resolution - README: add templates / schema / set / feedback to the command table and correct the feedback description (GitHub issue, not telemetry) - docs/STATE.md: v0.3.0 release row, current-version section, known gaps - mark cli-parity-upstream tasks.md groups 1-8 complete cargo test (lib + 26 integration), fmt, clippy --all-targets -D warnings clean; validate --all 10/10; binary reports 0.3.0.
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 free
to 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.
CLI parity with upstream OpenSpec v1.4.1 (v0.3.0)
Closes the remaining CLI-surface gaps vs upstream v1.4.1 identified by the earlier parity audit, authored and tracked via the OpenSpec workflow
(
openspec/changes/cli-parity-upstream/). 26 files, +2.6k/−283.Added
configsubcommands —path | list | get <key> | set <key> <value> | unset <key> | reset --all | edit | profile [preset](replaces the flat flags).resetrequires--all;setvalidates enum values (profile,delivery).feedback <message> [--body <text>]— files a GitHub issue via theghCLI, with a manual issue-URL fallback whenghis missing/unauthenticated. (Explicit user action, not telemetry.)schema fork <source> [name]/schema init <name>, copy/scaffold a project-local schema (joining the existingschema which|validate).templates [--schema <name>] [--json]— show resolved template paths per artifact.set change <name> --initiative <id>— link a repo-local change to an initiative.new changeflags:--json,--goal,--affected-areas,--initiative/--store/--store-path.showspec-filter flags (JSON-only):--requirements,--requirement <n>,--no-scenarios.validate --concurrency <n>— bounded parallel validation (also readsOPENSPEC_CONCURRENCY).--no-interactiveaccepted as a no-op for upstream compatibility.Changed / Fixed
show --jsonandnew change --jsonnow emit the upstream payload shapes (camelCase, nestedchange/initiative, rich deltas).spec-drivendefinition instead of a dev-onlyvendor/OpenSpec/schemaspath, so installed binaries work from any directory.ChangeMetadatagainsgoal/affected_areas.Out of scope (documented)
viewTUI dashboard, and the deprecatedspec/changenoun command groups +experimentalalias.Verification
cargo fmt --all -- --check,cargo clippy --all-targets -- -D warnings,cargo test(lib + 26 integration), all clean.openspec validate --all→ 10/10.