Skip to content

Require conversation resolution while preserving maintainer merge authority #2674

Open

Description

@codeforester

Problem

The accepted Base governance design and implementation plan identify package 9 as a required deliverable. This issue translates that package into a reviewed, bounded issue/PR train; it does not authorize implementation before the issue reaches Ready.

Expected behavior

Through a reviewed Base repository policy train, keep required approving reviews at zero while both agents share the codeforester identity, enable required conversation resolution, and preserve a human maintainer as the only merger. Include the accepted never-automatic list for security, credentials, trust, installer, workflow/ruleset, release and MCP paths. Do not enable auto-merge or agent merge rights.

Scope and non-goals

Scope: Through a reviewed Base repository policy train, keep required approving reviews at zero while both agents share the codeforester identity, enable required conversation resolution, and preserve a human maintainer as the only merger. Include the accepted never-automatic list for security, credentials, trust, installer, workflow/ruleset, release and MCP paths. Do not enable auto-merge or agent merge rights.

Non-goals: Do not silently expand scope, activate unreviewed policy, mirror issue fields onto PRs, grant agents merge/release authority, or make changes outside the named affected areas. Any new product decision or materially new work gets a separate issue and decision record.

Affected areas

Impact and evidence

  1. Product intent: Implements only the accepted governance design and plan; any product-requirement change must be filed separately.
  2. Architecture and contracts: Destination is the package-specific section of the merged governance design/implementation plan plus the affected canonical contract named above.
  3. User guidance: The issue identifies likely guidance paths; the implementation PR must name updated user/FAQ/README paths or give a change-specific reason why none is affected.
  4. CLI/API and reference: The affected-area list determines whether CLI/API/reference docs change; the implementation PR must cite the exact reference path or justify no impact.
  5. Operations and safety: No privileged automation or merge authority is implied; the PR must list operational/security effects and any rollback.
  6. Validation and testing: The issue lists the planned tests; the PR must report executed validation and explain any unavailable test.
  7. Examples and downstream use: The implementation PR must identify affected examples/consumers or give evidence that this change has no downstream surface.
  8. Governance and contributor process: This package changes or preserves the contributor/governance contract as described in Scope; links must point to the canonical rules.
  9. Decision records: No new decision is accepted by this issue; any durable deviation requires a proposed decision record and explicit maintainer acceptance.
  10. Release notes: The PR must include a user-facing release-note line or a reasoned none; this issue does not pre-decide that disposition.

These are issue-stage dispositions to refine during Triage. Before Ready, every category must have its exact destination or evidence-based no-impact reason; the PR repeats the ten-category evidence for actual changes.

Open questions

  • None known. If implementation exposes an unresolved contract, return this issue to Triage and record the decision before implementation continues.

Plan

  • S1: One focused PR for this issue. Use Fixes #N only if no additional slice is needed; if the maintainer approves multiple PRs, name each S1…Sn here before the first is opened and use Part of #N.
  • Dependencies: the P6 issue
  • Acceptance criteria:
  • Live branch protection requires conversation resolution and still requires zero approving reviews.
  • No ruleset or permission grants agents merge, auto-merge, release or policy-changing authority.
  • The sensitive-path list is documented and tested against representative paths.
  • The manual reviewer/verdict process remains usable under the single-account pilot.
  • Validation:
  • Read back live branch protection/ruleset settings after the reviewed policy change.
  • Exercise a test PR with an unresolved conversation and confirm merge is blocked; confirm resolved comments do not require an approval count.
  • Audit sensitive path coverage and docs.
  • Risks and rollback: A wrong ruleset can block maintainers or permit unresolved findings; record prior settings and restore them only through an explicit maintainer-controlled rollback.
  • Decision impact: No decision is accepted merely by implementing the issue. Record the relevant accepted decision/ADR and file a superseding record if the maintainer approves a change.

Activity

  1. self-assigned this
    on Nov 10, 2026
  2. added this to the v1.11.0 milestone on Nov 11, 2026
  3. codeforester commented on Nov 11, 2026

    @codeforester
    CollaboratorAuthor

    Pre-Triage review against the accepted plan (#2664, tracker #2665)

    1. Name the mechanism. main uses classic branch protection: strict up-to-date, dismiss stale reviews, and conversation resolution off. Branch naming is enforced by ruleset 18969101. ci: explain why non-conforming PR head branches exist under the active branch-name ruleset #2569 is investigating why that ruleset accepted non-conforming branches; use its result as input here.
    2. What uses the sensitive-path list? A human merges every PR, so name what consumes the list: the reviewer rules (Publish versioned issue and pull request reviewer rules #2680), the read-only reviewer (Pilot a read-only reviewer on exact issue and pull request revisions #2580) and the future repair gate (Define a separate authorization gate for bounded automated repairs #2581). Without that, "tested against representative paths" has nothing to test.
    3. Order. The plan places this issue after Run a manual PR review loop with SHA-bound verdict provenance #2573. However, the Stage 1 merge gate in design B14 includes resolved conversations. Turning the setting on before the PR pilot lets the pilot exercise the real gate. It's a one-setting change; maintainer's call.
    4. The setting proves less than it seems. While everyone shares one account, the author agent can resolve its own threads. The setting proves that a thread was resolved, not that the reviewer resolved it. State that the manual audit is what covers the gap.

    Dependencies text. Replace the P6 issue with #2573. The native blocked-by links are already correct; the body is what a reviewer reads.

    Contract text. The Impact, Scope and Open questions sections are still the shared template text. The Impact section is identical in 24 of #2666–#2690, and Scope repeats Expected behavior. That's fine in Backlog. Before Ready, replace each with this issue's own dispositions.

    Claude Code (Opus 5.5), reviewing from Ramesh's account at his request. This review comes before Triage, so it is not an issue-loop round.

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

Metadata

Metadata

Assignees

Labels

securitySecurity hardening or vulnerability work

Type

Projects

  • Status
    Backlog

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions