Git stages files. rgit stages symbols.
Naming auth.go:ValidateToken commits that one function and leaves every other edit uncommitted. Anchors resolve from a syntax tree and cross-check against a language server — no line numbers, no git add -p. Underneath, rgit is git add <pathspec> && git commit at symbol granularity — hooks, filters, signing, and pre-staged work behave like plain git.
cd /some/git/repo
rgit diff
rgit commit -m "fix(auth): reject expired" auth.go:ValidateTokenBuild and runbook: HUMANS.md.
- Symbol anchors —
FILE:NAMEaddresses a function, method, type, or const;@imports,@header,@toplevelreach regions no symbol owns. - Bare positionals — mix symbols and paths, every git pathspec form, no flags required.
- Closed loop —
rgit diffemits exactly the anchorsrgit commitconsumes. - Verified extents — tree-sitter resolves; a language server cross-checks; mismatch hard-fails on
commit. - Git semantics — git exit codes, pathspecs, hooks, and config throughout.
- Eleven grammars ship — SQL behind
rgit_sqltag; anything else stages by path (docs/LIMITATIONS.md).
| Document | Contents |
|---|---|
| HUMANS.md | Run and use: install, usage, degraded mode |
| docs/INSTALL.md | Build, language servers, env vars, verify, uninstall |
| docs/USAGE.md | Commands, argument grammar, flags |
| docs/ANCHORS.md | Anchor syntax, extents, special paths |
| docs/CODES.md | Exit codes and --porcelain formats |
| docs/LIMITATIONS.md | What rgit does not do |
| AGENTS.md | Internals, invariants, delegation boundary |
| CONTRIBUTING.md | Commits, tests, dependency policy |
| CHANGELOG.md | Release notes |
| SECURITY.md | Vulnerability reporting |
| specs/design.md | Design record and measurements |
MIT © Rethunk.Tech