Railpane
RAILPANE ENGINE · SEMANTIC CODE-CHANGE ANALYSIS

Rift — what actually changed?

Review layer between coding agents and your codebase. Agents modify dozens of files in seconds; Rift answers what behavior changed, what matters, and what deserves human attention — before you merge.

github.com/GregDixonMXN/Rift · Rust · License: Apache-2.0

Railpane role

Railpane consumes Rift's machine-readable output and converts evidence into REQUIRE_APPROVAL or DENY. Canonical case: task "increase session timeout" + agent also changes password validation, payment auth, schema → Rift detects scope exceedance → Railpane escalates. Deterministic analysis is never replaced by an LLM.

Use

rift .                # review working tree vs HEAD (opens app)
rift --overview       # text overview, no GUI
rift --staged         # staged changes
rift --commit <sha>   # one commit vs parent
rift main..HEAD       # branch comparison
rift --json           # machine-readable ChangeSet
rift --overview --task "extend session timeout"  # task-vs-change check
rift --escalate --json  # evidence-only LLM package (no source/diffs)

No accounts, no cloud, no config. Local-first, deterministic. Cloud judgments only with explicit --jev; --no-ai rejects them.

CI gates

rift --staged --overview --fail-on high
rift --overview --task @task.md --fail-on-task partial
rift --install-hook            # pre-commit, gates on high
rift main..HEAD --format github --fail-on high

Install / build

cargo install --path crates/rift-cli
# then: cd <repo> && rift
cargo build; cargo test; cargo clippy

Needs a git repo. Layout: rift-core (ChangeSet), rift-git (git2 diffs), rift-parser (syn + tree-sitter), rift-analysis (scoring), rift-cli, rift-ui (egui), rift-jev (opt-in).