<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>safegit Documentation</title>
  <link href="https://smmh.dev/safegit/feed.xml" rel="self"/>
  <link href="https://smmh.dev/safegit/"/>
  <id>https://smmh.dev/safegit/</id>
  <updated>2026-08-12T00:00:00Z</updated>
  <entry>
    <title>safegit author</title>
    <link href="https://smmh.dev/safegit/cli-author/"/>
    <id>https://smmh.dev/safegit/cli-author/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit backup</title>
    <link href="https://smmh.dev/safegit/cli-backup/"/>
    <id>https://smmh.dev/safegit/cli-backup/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit bisect</title>
    <link href="https://smmh.dev/safegit/cli-bisect/"/>
    <id>https://smmh.dev/safegit/cli-bisect/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit checkout</title>
    <link href="https://smmh.dev/safegit/cli-checkout/"/>
    <id>https://smmh.dev/safegit/cli-checkout/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit cherry-pick</title>
    <link href="https://smmh.dev/safegit/cli-cherry-pick/"/>
    <id>https://smmh.dev/safegit/cli-cherry-pick/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit commit</title>
    <link href="https://smmh.dev/safegit/cli-commit/"/>
    <id>https://smmh.dev/safegit/cli-commit/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit config</title>
    <link href="https://smmh.dev/safegit/cli-config/"/>
    <id>https://smmh.dev/safegit/cli-config/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit doctor</title>
    <link href="https://smmh.dev/safegit/cli-doctor/"/>
    <id>https://smmh.dev/safegit/cli-doctor/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit hook</title>
    <link href="https://smmh.dev/safegit/cli-hook/"/>
    <id>https://smmh.dev/safegit/cli-hook/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit CLI Reference</title>
    <link href="https://smmh.dev/safegit/cli-index/"/>
    <id>https://smmh.dev/safegit/cli-index/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit merge</title>
    <link href="https://smmh.dev/safegit/cli-merge/"/>
    <id>https://smmh.dev/safegit/cli-merge/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit pull</title>
    <link href="https://smmh.dev/safegit/cli-pull/"/>
    <id>https://smmh.dev/safegit/cli-pull/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit push</title>
    <link href="https://smmh.dev/safegit/cli-push/"/>
    <id>https://smmh.dev/safegit/cli-push/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit rebase</title>
    <link href="https://smmh.dev/safegit/cli-rebase/"/>
    <id>https://smmh.dev/safegit/cli-rebase/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit reset</title>
    <link href="https://smmh.dev/safegit/cli-reset/"/>
    <id>https://smmh.dev/safegit/cli-reset/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit revert</title>
    <link href="https://smmh.dev/safegit/cli-revert/"/>
    <id>https://smmh.dev/safegit/cli-revert/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit scan</title>
    <link href="https://smmh.dev/safegit/cli-scan/"/>
    <id>https://smmh.dev/safegit/cli-scan/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit scrub</title>
    <link href="https://smmh.dev/safegit/cli-scrub/"/>
    <id>https://smmh.dev/safegit/cli-scrub/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit undo</title>
    <link href="https://smmh.dev/safegit/cli-undo/"/>
    <id>https://smmh.dev/safegit/cli-undo/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit unlock</title>
    <link href="https://smmh.dev/safegit/cli-unlock/"/>
    <id>https://smmh.dev/safegit/cli-unlock/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit version</title>
    <link href="https://smmh.dev/safegit/cli-version/"/>
    <id>https://smmh.dev/safegit/cli-version/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen (strictcli), do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>API Reference</title>
    <link href="https://smmh.dev/safegit/gen-index/"/>
    <id>https://smmh.dev/safegit/gen-index/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>internal/commit</title>
    <link href="https://smmh.dev/safegit/internal-commit/"/>
    <id>https://smmh.dev/safegit/internal-commit/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>internal/coord</title>
    <link href="https://smmh.dev/safegit/internal-coord/"/>
    <id>https://smmh.dev/safegit/internal-coord/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>internal/filelock</title>
    <link href="https://smmh.dev/safegit/internal-filelock/"/>
    <id>https://smmh.dev/safegit/internal-filelock/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>internal/git</title>
    <link href="https://smmh.dev/safegit/internal-git/"/>
    <id>https://smmh.dev/safegit/internal-git/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>internal/hooks</title>
    <link href="https://smmh.dev/safegit/internal-hooks/"/>
    <id>https://smmh.dev/safegit/internal-hooks/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>internal/index</title>
    <link href="https://smmh.dev/safegit/internal-index/"/>
    <id>https://smmh.dev/safegit/internal-index/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>internal/lock</title>
    <link href="https://smmh.dev/safegit/internal-lock/"/>
    <id>https://smmh.dev/safegit/internal-lock/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>internal/oplog</title>
    <link href="https://smmh.dev/safegit/internal-oplog/"/>
    <id>https://smmh.dev/safegit/internal-oplog/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>internal/procutil</title>
    <link href="https://smmh.dev/safegit/internal-procutil/"/>
    <id>https://smmh.dev/safegit/internal-procutil/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>internal/repo</title>
    <link href="https://smmh.dev/safegit/internal-repo/"/>
    <id>https://smmh.dev/safegit/internal-repo/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>internal/scan</title>
    <link href="https://smmh.dev/safegit/internal-scan/"/>
    <id>https://smmh.dev/safegit/internal-scan/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>internal/stage</title>
    <link href="https://smmh.dev/safegit/internal-stage/"/>
    <id>https://smmh.dev/safegit/internal-stage/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>internal/submodule</title>
    <link href="https://smmh.dev/safegit/internal-submodule/"/>
    <id>https://smmh.dev/safegit/internal-submodule/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>internal/testutil</title>
    <link href="https://smmh.dev/safegit/internal-testutil/"/>
    <id>https://smmh.dev/safegit/internal-testutil/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>internal/trailer</title>
    <link href="https://smmh.dev/safegit/internal-trailer/"/>
    <id>https://smmh.dev/safegit/internal-trailer/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>safegit</title>
    <link href="https://smmh.dev/safegit/safegit/"/>
    <id>https://smmh.dev/safegit/safegit/</id>
    <updated>2026-08-12T00:00:00Z</updated>
    <summary>&lt;!-- generated by selfdoc gen, do not edit --&gt;</summary>
  </entry>
  <entry>
    <title>Commands Guide</title>
    <link href="https://smmh.dev/safegit/commands-guide/"/>
    <id>https://smmh.dev/safegit/commands-guide/</id>
    <updated>2026-08-07T00:00:00Z</updated>
    <summary>safegit is a concurrency-safe git wrapper providing atomic commits, oplog-based undo, history rewriting, and multi-agent coordination. This guide covers every command in detail.</summary>
  </entry>
  <entry>
    <title>Integration Guide</title>
    <link href="https://smmh.dev/safegit/integration-guide/"/>
    <id>https://smmh.dev/safegit/integration-guide/</id>
    <updated>2026-08-07T00:00:00Z</updated>
    <summary>safegit is designed to be embedded in automated workflows and AI agent toolchains. This guide covers how safegit interacts with external tools and how to configure those integrations.</summary>
  </entry>
  <entry>
    <title>Concurrency Guide</title>
    <link href="https://smmh.dev/safegit/concurrency-guide/"/>
    <id>https://smmh.dev/safegit/concurrency-guide/</id>
    <updated>2026-08-03T00:00:00Z</updated>
    <summary>This guide explains safegit's concurrency model: what problems arise when multiple AI sessions share a git worktree, how safegit solves them, and what guarantees it provides.</summary>
  </entry>
  <entry>
    <title>Architecture</title>
    <link href="https://smmh.dev/safegit/architecture/"/>
    <id>https://smmh.dev/safegit/architecture/</id>
    <updated>2026-07-04T00:00:00Z</updated>
    <summary>This document captures safegit's design rationale and architectural specification: why it exists in its current shape, how the commit pipeline achieves concurrency safety, and how failure modes are detected and recovered.</summary>
  </entry>
  <entry>
    <title>safegit</title>
    <link href="https://smmh.dev/safegit/"/>
    <id>https://smmh.dev/safegit/</id>
    <updated>2026-05-17T00:00:00Z</updated>
    <summary>Concurrency-safe git operations for multi-session worktrees.</summary>
  </entry>
  <entry>
    <title>safegit Requirements</title>
    <link href="https://smmh.dev/safegit/req/"/>
    <id>https://smmh.dev/safegit/req/</id>
    <updated>2026-05-17T00:00:00Z</updated>
    <summary>- 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</summary>
  </entry>
  <entry>
    <title>Git Alternatives for AI-Safe Concurrency</title>
    <link href="https://smmh.dev/safegit/research/"/>
    <id>https://smmh.dev/safegit/research/</id>
    <updated>2026-05-17T00:00:00Z</updated>
    <summary>The core problem: Git's staging area (`.git/index`) is a single global file per worktree. When multiple AI agent sessions run `git add` / `git commit` concurrently, they race on this shared resource -- one session can accidentally commit another's staged files, or overwrite the index mid-operation. Worktrees are the standard mitigation but add complexity and have their own edge cases (stale lock files, orphan branches).</summary>
  </entry>
</feed>
