<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>CommitBrief Blog</title><description>Releases, design notes, and short reads on local-first developer tooling.</description><link>https://commitbrief.com/</link><language>en</language><generator>Astro</generator><item><title>Where your AI reviewer runs matters.</title><link>https://commitbrief.com/blog/where-your-ai-reviewer-runs/</link><guid isPermaLink="true">https://commitbrief.com/blog/where-your-ai-reviewer-runs/</guid><description>CodeRabbit, Greptile, Copilot review, and Bugbot compared with a local CLI: where each runs, who holds the key, what leaves your machine.</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate><category>comparison</category><category>positioning</category><category>tooling</category><author>Muhammet Şafak</author></item><item><title>Blocking vs. nitpicking: shaping review tone with `OUTPUT.md`.</title><link>https://commitbrief.com/blog/output-md-tone-of-voice/</link><guid isPermaLink="true">https://commitbrief.com/blog/output-md-tone-of-voice/</guid><description>Encoding team norms into the review output. Severity scales, finding format, what gets surfaced and what gets quietly suppressed.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate><category>culture</category><category>output-format</category><category>configuration</category><author>CommitBrief</author></item><item><title>Cross-timezone review lag, and turning the reviewer from blocker into validator.</title><link>https://commitbrief.com/blog/cross-timezone-review-lag/</link><guid isPermaLink="true">https://commitbrief.com/blog/cross-timezone-review-lag/</guid><description>The hidden tax on async teams: a junior&apos;s PR waits for a reviewer who&apos;s asleep, then for one who&apos;s in a meeting. An LLM in the middle of that chain doesn&apos;t replace anyone — it changes what waiting means.</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><category>async</category><category>distributed-teams</category><category>workflow</category><author>Muhammet Şafak</author></item><item><title>Signal from noise: the three-layer filter that keeps reviews readable.</title><link>https://commitbrief.com/blog/three-layer-filtering/</link><guid isPermaLink="true">https://commitbrief.com/blog/three-layer-filtering/</guid><description>Built-in defaults, `.commitbriefignore`, and `COMMITBRIEF.md` semantic filtering — how they compose, last-wins semantics, and how negative patterns revert a default.</description><pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate><category>filtering</category><category>configuration</category><category>signal-noise</category><author>CommitBrief</author></item><item><title>Your diff should never leave your machine: the Ollama path for air-gapped repos.</title><link>https://commitbrief.com/blog/air-gapped-with-ollama/</link><guid isPermaLink="true">https://commitbrief.com/blog/air-gapped-with-ollama/</guid><description>How CommitBrief runs LLM code review with zero network egress. For SOC2-restricted repos, defense work, fintech and healthcare codebases — and an honest look at the quality trade-off.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate><category>privacy</category><category>ollama</category><category>air-gapped</category><category>security</category><author>CommitBrief</author></item><item><title>The solo developer&apos;s missing second pair of eyes.</title><link>https://commitbrief.com/blog/solo-developer-second-pair-of-eyes/</link><guid isPermaLink="true">https://commitbrief.com/blog/solo-developer-second-pair-of-eyes/</guid><description>For OSS maintainers, indie hackers, side-project builders — there&apos;s no one to review your code. What an LLM fills in, and what it deliberately doesn&apos;t.</description><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate><category>solo</category><category>open-source</category><category>indie</category><author>Muhammet Şafak</author></item><item><title>v1.13 → v1.15: replacing inference with evidence</title><link>https://commitbrief.com/blog/replacing-inference-with-evidence/</link><guid isPermaLink="true">https://commitbrief.com/blog/replacing-inference-with-evidence/</guid><description>Three releases that look unrelated — a JSON parser change, one config key, four new commands — and the single direction underneath them: every claim CommitBrief makes should be something it can show you, and the ones that don&apos;t need a model shouldn&apos;t call one.</description><pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate><category>release</category><category>security</category><category>git</category><category>workflow</category><author>CommitBrief</author></item><item><title>`commitbrief compress`: an LLM rewriting another LLM&apos;s system prompt — and the discipline that keeps it safe.</title><link>https://commitbrief.com/blog/compress-deep-dive/</link><guid isPermaLink="true">https://commitbrief.com/blog/compress-deep-dive/</guid><description>Three compression levels, atomic apply, automatic backup, and the rule that refuses to shrink your rules file if the result isn&apos;t actually smaller.</description><pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate><category>compress</category><category>cost-optimization</category><category>prompt-engineering</category><author>CommitBrief</author></item><item><title>`commitbrief doctor`: the diagnostic I wish more CLIs shipped.</title><link>https://commitbrief.com/blog/commitbrief-doctor/</link><guid isPermaLink="true">https://commitbrief.com/blog/commitbrief-doctor/</guid><description>Eight checks against the resolved environment, plus a per-provider connection ping — what doctor inspects, why warnings are non-blocking by design, and the CI pattern that gates merges on a clean health check.</description><pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate><category>doctor</category><category>diagnostics</category><category>workflow</category><author>CommitBrief</author></item><item><title>How a single JSON schema survives four very different LLM providers.</title><link>https://commitbrief.com/blog/structured-output-across-llms/</link><guid isPermaLink="true">https://commitbrief.com/blog/structured-output-across-llms/</guid><description>Anthropic tools mode, OpenAI strict response_format, Gemini ResponseSchema, Ollama format:json — four mechanisms, one contract. How CommitBrief&apos;s findings schema v1 stays stable across them, and the retry-once-then-degrade fallback for when it doesn&apos;t.</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate><category>json-schema</category><category>providers</category><category>engineering</category><author>CommitBrief</author></item><item><title>Three flags into one subcommand: the `commitbrief diff` collapse and what it taught me about CLI surface area.</title><link>https://commitbrief.com/blog/commitbrief-diff-subcommand/</link><guid isPermaLink="true">https://commitbrief.com/blog/commitbrief-diff-subcommand/</guid><description>v0.9.0 retired --commit, --branch, and --pull-request in favour of a single &apos;diff&apos; subcommand that pass-throughs to git diff. A note on why reinventing what git already does is the wrong shape.</description><pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate><category>cli-design</category><category>philosophy</category><category>git</category><author>Muhammet Şafak</author></item><item><title>Subprocess providers: reusing a subscription you&apos;re already paying for.</title><link>https://commitbrief.com/blog/subprocess-providers/</link><guid isPermaLink="true">https://commitbrief.com/blog/subprocess-providers/</guid><description>How claude-cli and gemini-cli wrap a host CLI as a subprocess instead of calling an API, what they give up to do that, and why stdin transport matters when the diff gets large.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate><category>providers</category><category>cost</category><category>subscription</category><author>CommitBrief</author></item><item><title>Hooks that survive Tower, GitHub Desktop, and JetBrains.</title><link>https://commitbrief.com/blog/hooks-in-gui-git-clients/</link><guid isPermaLink="true">https://commitbrief.com/blog/hooks-in-gui-git-clients/</guid><description>Why git hooks installed from the command line silently fail when you commit from a GUI client — and the absolute-path embedding trick that makes commitbrief install-hook just work everywhere.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>hooks</category><category>git</category><category>tooling</category><author>CommitBrief</author></item><item><title>`--fail-on`: turning an LLM review into a CI gate without locking yourself in.</title><link>https://commitbrief.com/blog/fail-on-ci-gate/</link><guid isPermaLink="true">https://commitbrief.com/blog/fail-on-ci-gate/</guid><description>How severity-based exit codes work, why graceful degrade deliberately skips the gate, and what &apos;fail at critical or worse&apos; actually means inside your pipeline.</description><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate><category>ci</category><category>workflow</category><category>severity</category><author>CommitBrief</author></item><item><title>Three guards before any token is spent.</title><link>https://commitbrief.com/blog/pre-send-guards/</link><guid isPermaLink="true">https://commitbrief.com/blog/pre-send-guards/</guid><description>The secret scanner, the cost preflight, and the .commitbrief/ guard — three pre-send checks that fire before CommitBrief talks to a provider, and why --yes deliberately doesn&apos;t bypass two of them anymore.</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>security</category><category>guards</category><category>secrets</category><author>CommitBrief</author></item><item><title>v1.0 is an API freeze: what `schema: v1` actually promises.</title><link>https://commitbrief.com/blog/api-freeze-v1/</link><guid isPermaLink="true">https://commitbrief.com/blog/api-freeze-v1/</guid><description>v1.0 isn&apos;t just a number. CLI flag surface, JSON schema v1, and the COMMITBRIEF.md / OUTPUT.md formats are under strict semver from here on. Here&apos;s what that buys you, and what it stops me from doing.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate><category>release</category><category>semver</category><category>stability</category><author>Muhammet Şafak</author></item><item><title>Why a CLI, not a GitHub App.</title><link>https://commitbrief.com/blog/cli-vs-github-app/</link><guid isPermaLink="true">https://commitbrief.com/blog/cli-vs-github-app/</guid><description>On trigger ownership when picking a code review tool. The design thinking behind CommitBrief as a CLI — and when that&apos;s the wrong choice.</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate><category>comparison</category><category>positioning</category><category>tooling</category><author>Muhammet Şafak</author></item><item><title>Anatomy of a `COMMITBRIEF.md`: turning team tribal knowledge into a system prompt.</title><link>https://commitbrief.com/blog/commitbrief-md-anatomy/</link><guid isPermaLink="true">https://commitbrief.com/blog/commitbrief-md-anatomy/</guid><description>What a good rules file looks like, what doesn&apos;t belong in it, and why the LLM&apos;s effectiveness as a zeroth reviewer depends on the file being written well.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>rules</category><category>system-prompt</category><category>configuration</category><author>CommitBrief</author></item><item><title>Review before the push: why the strongest review window is right before `git commit -m`.</title><link>https://commitbrief.com/blog/review-before-the-push/</link><guid isPermaLink="true">https://commitbrief.com/blog/review-before-the-push/</guid><description>Why CommitBrief defaults to --staged scope. Reviewing a change that hasn&apos;t entered history yet is always cheaper than patching it with a force-push.</description><pubDate>Sun, 31 May 2026 00:00:00 GMT</pubDate><category>workflow</category><category>pre-commit</category><category>git</category><author>CommitBrief</author></item><item><title>LLM code review doesn&apos;t replace human review. It multiplies it.</title><link>https://commitbrief.com/blog/force-multiplier-manifesto/</link><guid isPermaLink="true">https://commitbrief.com/blog/force-multiplier-manifesto/</guid><description>The position paper that ships with v1.0 — what an LLM catches, what it doesn&apos;t, and why a human reviewer&apos;s job changes shape rather than disappearing.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><category>manifesto</category><category>philosophy</category><category>review-culture</category><author>Muhammet Şafak</author></item></channel></rss>