From 89a5a343373cb02d50e1f604fe2d489bc93231e6 Mon Sep 17 00:00:00 2001 From: "goodolclint-claude[bot]" <323206664+goodolclint-claude[bot]@users.noreply.github.com> Date: Tue, 1 Sep 2026 13:43:55 -0500 Subject: [PATCH] docs: prefer MCP push_files; git push is the unverified large-push fallback Co-Authored-By: Claude Opus 5 (1M context) --- CLAUDE.md | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 552d192..b587ada 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -27,13 +27,21 @@ git push -u origin feat/my-feature gh pr create ``` -### Agent commit identity +### Agent pushes and commit identity -`.claude/settings.json` sets `GIT_AUTHOR_*` / `GIT_COMMITTER_*` to -`goodolclint-claude[bot]`, so commits made from an agent session are attributed to the App -rather than to the operator. The push itself is an ordinary local `git push` over the -operator's SSH key — the env vars change authorship, not transport. No `Co-Authored-By` -trailer is needed when they are in effect. +**Default: the `github` MCP tools.** Agent-authored branches go up with `create_branch` + +`push_files`, which commits as the `goodolclint-claude` App and produces a **verified** +commit. `push_files` re-uploads full file contents, so byte-verify before opening the PR: +commit the identical change locally, `git fetch`, and `git diff +origin/ --` must be empty. `push_files` cannot express a removal — use +`delete_file` for deletions, and a rename is `push_files` of the new path plus +`delete_file` of the old. + +**Fallback: local `git push`, for large pushes only.** Re-uploading full contents inline +is impractical past a certain size. `.claude/settings.json` sets `GIT_AUTHOR_*` / +`GIT_COMMITTER_*` to `goodolclint-claude[bot]` so those commits are still attributed to the +App — but they are **not verified**, because the signature comes from committing through +the API, not from the author name. Use this path when needed, not by default. The env block applies at session start, so a session that predates this file still commits as the operator.