safegit /safegit Requirements
On this page

#safegit Requirements

#Core: Multi-Agent Safety

  • Multiple AI agent sessions must be able to work on the same repo concurrently without worktrees
  • No shared mutable staging area -- agents must not be able to stage or commit each other's files
  • Commits must be serialized or isolated so that concurrent commits never produce corrupt or mixed results
  • If two agents edit the same file, the conflict must be surfaced as data, not silently lost or merged

#Concurrency Mechanism

  • Lock-free or minimally-locking design preferred over a global mutex
  • If a queue/lock is used, it must notify waiting agents automatically (no polling, no human intervention)
  • Agent crash must not leave the repo in a permanently locked state (stale lock recovery)

#Git Compatibility

  • Must read and write standard .git repositories
  • Commits must be normal git commits (same SHA, same format) visible to any git tool
  • Push/pull to GitHub, GitLab, and any standard git remote must work
  • Teammates using plain git must see normal branches and commits
  • CI/CD pipelines and code review tools must work without modification

#CLI

  • Must be usable as a CLI tool (no GUI dependency)
  • Must support non-interactive / headless operation for agent consumption
  • Structured output (JSON) for agent parsing is preferred

#Hooks

  • Pre-pre-push hooks: ability to run hooks before a connection to the remote is even established (e.g. validate, lint, or gate before any network I/O to GitHub)
  • Git's built-in pre-push hook fires after the remote connection is already open -- this is too late for some use cases (e.g. smoke tests that take a long time will cause the already-open SSH connection to timeout)

#Reliability

  • Every mutating operation should be undoable
  • No operation should silently lose work
  • Crash recovery must be automatic or trivial