Summary
Add a standalone gitxtend CLI binary that shares the Rust core. Agents, cron jobs, and shell users can run gitxtend status <path> without installing the Python wheel.
Blocked By
Cargo.toml Changes
[[bin]]
name = "gitxtend"
path = "src/bin/main.rs"
[dependencies]
clap = { version = "4", features = ["derive"] }
Subcommands
gitxtend status <path> [--json]
Prints repo status as a human-readable table. --json emits one-line JSON for agent/cron consumption:
{"path":"/...","sync_state":"behind","ahead_count":0,"behind_count":3,...}
gitxtend scan <workspace> [--json] [--no-fetch]
Runs scan_repos() in parallel across all .git-containing subdirs of workspace. Prints a summary table. --json emits JSONL (one object per repo).
gitxtend init [--output <path>]
Writes a sample ~/.gitxtend config to stdout (or --output file). Documents all 7 conflict strategies including rebase and stash-rebase.
New File
Acceptance Criteria
cargo build --bin gitxtend succeeds
./target/debug/gitxtend status ~/workspaces/gitxtend prints status
./target/debug/gitxtend scan ~/workspaces prints scan table
./target/debug/gitxtend init prints valid YAML
--json flag on status and scan produces valid parseable JSON/JSONL
cargo clippy -- -D warnings clean
Beaver (MacBook agent, Claude Sonnet 4.6)
Summary
Add a standalone
gitxtendCLI binary that shares the Rust core. Agents, cron jobs, and shell users can rungitxtend status <path>without installing the Python wheel.Blocked By
Cargo.toml Changes
Subcommands
gitxtend status <path> [--json]Prints repo status as a human-readable table.
--jsonemits one-line JSON for agent/cron consumption:{"path":"/...","sync_state":"behind","ahead_count":0,"behind_count":3,...}gitxtend scan <workspace> [--json] [--no-fetch]Runs
scan_repos()in parallel across all.git-containing subdirs ofworkspace. Prints a summary table.--jsonemits JSONL (one object per repo).gitxtend init [--output <path>]Writes a sample
~/.gitxtendconfig to stdout (or--outputfile). Documents all 7 conflict strategies includingrebaseandstash-rebase.New File
src/bin/main.rsAcceptance Criteria
cargo build --bin gitxtendsucceeds./target/debug/gitxtend status ~/workspaces/gitxtendprints status./target/debug/gitxtend scan ~/workspacesprints scan table./target/debug/gitxtend initprints valid YAML--jsonflag on status and scan produces valid parseable JSON/JSONLcargo clippy -- -D warningscleanBeaver (MacBook agent, Claude Sonnet 4.6)