Implement orbit-graph-cli crate with seven subcommands#460
Merged
Conversation
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.
Task
ORB-00318 — Implement orbit-graph-cli crate with seven subcommands
Description
Problem
GRAPH_SPEC.md §9 defines seven user-facing commands: sync, search, show, refs, callees, impact, trace. After Phase 4 lands the Graph API methods, this task wraps them in a CLI binary
orbit-graph-cliexposingorbit graph <cmd>subcommands per 2_design.md §1. The CLI does no semantic work — only argument parsing, Graph::open, method dispatch, JSON serialization, and error mapping.Why It Matters
This is the first reachable surface for orbit-graph. Without it, the Graph API only runs from Rust callers. Landing the CLI enables manual smoke testing on real worktrees, lets the equivalence harness (ORB-00297) drive v2 outputs side-by-side with v1, and unlocks broader integration with the orbit ecosystem (orbit binary subcommand wiring, skills that shell out, etc.).
Constraints / Notes
crates/orbit-graph-cli/per GRAPH_SPEC.md §5. Add to workspace Cargo.toml members.Plan ID: P5.1. Depends on all five Phase 4 tasks: ORB-00313 (search + show), ORB-00315 (refs), ORB-00314 (callees), ORB-00316 (impact), ORB-00317 (trace). Gates P5.2 (MCP wrappers) and Phase 6 harness wiring.
Acceptance Criteria
Execution Summary
Click to expand
Outcome: success
Changes:
orbit-graph-cliworkspace crate with JSON stdout/stderr handling, tracing initialization, and one command module per sync/search/show/refs/callees/impact/trace/version/db-path/clean subcommand.Graph::open(..., SyncPolicy::Manual)and serialized API results to the GRAPH_SPEC-shaped JSON surfaces.Assessment: The crate builds, tests, and passes clippy under workspace lints;
cargo tree -p orbit-graph-cli --edges allhas noorbit-knowledgedependency.Validation
Branch Freshness
origin/agent-mainorbit/ORB-00318-6a13d535