Skip to content

docs: claim an issue before working on it, and do not rewrite pushed branches - #41

Merged
smb merged 2 commits into
mainfrom
docs/assign-issue-when-starting
Sep 4, 2026
Merged

smb merged 2 commits into
mainfrom
docs/assign-issue-when-starting

Conversation

@smb

@smb smb commented Sep 4, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Two rules for the issue and branch workflow in CLAUDE.md, both from things that went wrong today.

Check the assignee before you start, then assign yourself. Nothing said to do either. #28 was filed out of a reviewer's suggestion and implemented an hour later by someone else, with no assignee and no comment in between to show the work was taken. Looking first matters as much as claiming: an issue somebody else holds is a conversation to have, not a race, so the rule says to ask rather than to work in parallel.

Never force-push a branch that has already been pushed, without being told to. I did it twice today, once to correct commit messages and once to fold a change into an existing commit, and announced it afterwards instead of asking. The reasoning was wrong in a way worth writing down because it sounds reasonable: --force-with-lease refuses to destroy commits it has not seen, so the push felt safe, and safe was taken for permitted. A pushed branch is published — a reviewer may have fetched it, a comment may cite a commit, the pull request lists them — and rewriting it is the maintainer's call, like merging. Amending before the first push stays fine.

Both sit with the rest of the issue workflow so they apply to everyone working in this repository, not to one contributor.

🤖 Generated with Claude Code

Nothing in the repository said to claim an issue or to look at who
already had. The omission cost real work today: #28 was filed from a
reviewer's suggestion and implemented an hour later by someone else,
with no assignee and no comment on it in between to say the work was
taken.

The rule is therefore two-sided. Look first, because an issue somebody
else holds is a conversation, not a race; then take it, because an
assignee is the only signal the next person gets.

It sits with the rest of the issue workflow, so it applies to everyone
who works here rather than to one contributor.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@smb smb changed the title docs: assign yourself an issue before working on it docs: check an issue's assignee before working on it Sep 4, 2026
@smb
smb force-pushed the docs/assign-issue-when-starting branch from 38925c6 to cccedfd Compare September 4, 2026 21:43
Twice today I rewrote commits on a pushed branch and force-pushed them,
once to correct commit messages and once to fold a change into an
existing commit, announcing it afterwards rather than asking first.

The reasoning was wrong in a specific way worth recording, because it
sounds sensible: --force-with-lease refuses to destroy commits it has
not seen, so the push felt safe, and safe was taken for permitted. It
is not the same thing. A pushed branch is published: a reviewer may
have fetched it, a comment may cite one of its commits, and the pull
request lists them. Rewriting that is the maintainer's decision, like
merging, which is already reserved to them for the same reason.

Amending before the first push stays fine. After it, add a commit or
ask.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@smb smb changed the title docs: check an issue's assignee before working on it docs: claim an issue before working on it, and do not rewrite pushed branches Sep 4, 2026
@smb
smb merged commit 5f1bd6d into main Sep 4, 2026
10 of 11 checks passed
@smb
smb deleted the docs/assign-issue-when-starting branch September 4, 2026 21:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant