Fold six contribution lessons into the skill
Closes #4 (closed)
This adds six rules to the contribution walk, one commit each, from one round of work on a gitlab-org/gitlab change and the expand MR it needed.
monorepo: Keep unpushed commits across a re-clone in a thin bundle
A git bundle keeps a branch's signed commits and shas when its disposable clone is deleted, where a rebuild from patches changes every sha. From a shallow clone the bundle names its base as a prerequisite; without it, the same branches came to about 200 MB instead of 61 KB.
contribute: Put the changelog trailer on the commit the squash keeps
gitlab-org/gitlab squashes by default with the first commit's message, so the trailer goes on commit 1, and commit 1 is reworded when a split makes it untrue. A follow-up commit on an MR with squash off lands as itself and carries no trailer.
contribute: Carry an unmerged dependency instead of chaining to it
Chaining is the common shape there, but the project removes all approvals on a change of target branch, and GitLab makes that change itself when the dependency merges. Carrying the dependency's commits, with the dependency merged with squash off and marked as blocking, saves that round.
contribute: Ship new event IDs and settings keys a release ahead
A node one release behind cannot drain or read an AI usage event ID it does not know, or save a row holding a key its closed schema does not list. The expand carries the event definitions the registry needs to load, and lists the key with no writer and no accessor.
review: Keep server-set event extras out of the event definition
Declaring them lets any signed-in user write them through track_events, which a client check showed. A suggestion to declare them gets a reply with no change.
contribute: Request GitLab Duo's review on the draft before people
GitLab Duo's automatic passes skip drafts while a manual request runs on one, so the walk requests it by hand after the last push and answers it before anyone else is asked.
Verified: just ci and Vale, with the ruleset CI uses, pass on every commit.