Skip to content

chore(policy): .maintainer.yml says merges are never human-gated, but the ruleset requires an extra approval for unattributed commits #488

Description

@ivndev001

What to build

.maintainer.yml:100-105 states, as the load-bearing fact behind auto_merge: true, that required_approving_review_count is 0 and "Merges are gated by MACHINES — CI green plus the ruleset — never by a human review". The live main-protection ruleset (id 20556704, gh api repos/developerz-ai/wurk/rulesets/20556704) confirms the count is 0 but also carries require_extra_approval_for_unattributed_changes: true in its pull_request rule. GitHub's semantics for that flag: a pull request containing commits whose author is not attributed to a GitHub account needs one additional approving review on top of the configured count — so for this repo such a PR needs 1 human approval, and the platform bot's auto-merge (which the file says needs no human) will wait on it. Every squash on main today is attributed (checked the last 40: all author.login non-null), so the case has not fired yet; the day a fleet box commits with an email not linked to a GitHub account, that PR silently parks.

This issue is the documentation fix (the file's own rule at .maintainer.yml:10-14 is that it must not assert a ruleset state it does not have):

  1. In the pr: block comment (.maintainer.yml:100-105), after the sentence about count 0, add the caveat: the ruleset also sets require_extra_approval_for_unattributed_changes: true, so a PR with any commit not attributed to a GitHub account needs one human approval before the bot can merge it; name the parameter and the ruleset id so the next reader can verify with gh api.
  2. In CONTRIBUTING.md "Pull requests" (CONTRIBUTING.md:131-140), add a numbered step: commit with an email linked to your GitHub account (git config user.email), because unattributed commits require a human approval this repo otherwise never asks for.

Do not change the ruleset in this issue; flipping the flag is an operator decision and would be its own hitl ticket.

Acceptance criteria

  • .maintainer.yml's pr: comment names require_extra_approval_for_unattributed_changes and ruleset 20556704, and no longer says merges are "never" human-gated without the caveat.
  • CONTRIBUTING.md tells contributors to commit with a GitHub-linked email and says why.
  • .maintainer.yml still parses as YAML (ruby -ryaml -e 'YAML.load_file(".maintainer.yml")').
  • gates green: rubocop, rake test, rake test:parity (bin/check exit 0)

Affected paths

.maintainer.yml, CONTRIBUTING.md

Verified against

c346bc9

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    afkagent ships it solo via worktree+PRarea/docsdocumentationImprovements or additions to documentationready-for-agentsize/30m~30 min — trivial, single file

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions