Skip to content

Ralph mode: approval gates before push, PR and merge actions #2465

Open

Description

@bradygaster

Problem

Ralph mode (the coordinator's backlog work-monitor loop) scans GitHub, then creates branches, pushes, opens PRs and merges approved PRs. It's told not to stop and ask permission between items. Code scanning flagged this as an excessive-agency risk on the Claude Code plugin's copy of the text in #2463 (thread).

The behaviour isn't new in #2463. The same text is in:

The plugin copies it as is. Changing Ralph's semantics is a product decision for all hosts, so it's tracked here rather than in the plugin PR.

Proposal

  • Keep reading autonomous: scanning, triage, routing, reporting and rescanning.
  • Put a deterministic gate in front of state-changing GitHub actions: push, PR create or edit, merge, close or reopen, label changes and workflow reruns. Options:
    • Per item: the coordinator shows the planned write and waits for approval.
    • Scoped pre-approval: the user grants it when starting Ralph (for example "Ralph, go — may open PRs, never merge"), and the coordinator records and honours it.
    • Host permissions: on Claude Code, rely on the permission system (no allowed-tools grants for git push or gh pr merge), and say so in the prompt.
  • Keep the existing reviewer, circuit-breaker and auth checks.
  • Apply the change in the canonical template, the Claude projection and the plugin. Then regenerate the mirrors and run node scripts/build-claude-plugin.mjs.

Done when

  • The Ralph text on every host names the approval gate.
  • A test asserts that the gate's wording appears in each projection.
  • The docs (concepts/github-workflow.md, the watch-monitor blog post where relevant) describe the gate.

Related: #2438, #2443, #2463.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions