approve-merge

Record CEO approval markers and merge GitHub PRs with squash.

489|254|Updated Apr 5, 2026
One-click install
npx skills add https://github.com/me2resh/apexyard --skill approve-merge
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: approve-merge
Source: https://github.com/me2resh/apexyard/tree/main/.claude/skills/approve-merge
Command: npx skills add https://github.com/me2resh/apexyard --skill approve-merge

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It prevents accidental or ambiguous merges by forcing an explicit, per-PR CEO approval moment before running the GitHub merge command.

Core Features & Use Cases

  • Records a structured CEO approval marker at .claude/session/reviews/<pr>-ceo.approved, binding the approval to the PR’s GitHub HEAD SHA (GitHub-reported).
  • Validates safety conditions before merging by checking PR state (OPEN only), mergeability (non-conflicting), and the existence of the corresponding Rex approval marker at the same PR HEAD.
  • Executes the merge in the same turn by default with gh pr merge <pr> --squash --delete-branch, while keeping the CEO marker on disk so you can retry after fixing any gate failures.
  • Use case: After you confirm a specific PR is ready, record CEO approval and immediately merge it with the correct enforcement that plan-level “go” is not sufficient.

Quick Start

Invoke approve-merge with the PR number you explicitly approved, optionally adding --no-merge if you want to record approval now but merge later.

Frequently Asked Questions about approve-merge

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enforce explicit PR approval before executing a GitHub merge?

To enforce explicit PR approval before a GitHub merge, record a structured CEO approval marker bound to the PR HEAD SHA, then execute the merge. This prevents ambiguous merges by ensuring an explicit, per-PR approval moment occurs.

What's the best way to prevent accidental merges when a plan-level go-ahead is not sufficient?

The best way to prevent accidental merges when a plan-level go-ahead is not sufficient is to validate the PR state and mergeability, verify a Rex approval marker SHA match, and write a separate CEO marker before merging.

How does binding approval to the PR HEAD SHA improve merge enforcement?

Binding approval to the PR HEAD SHA improves merge enforcement by recording a structured marker at `.claude/session/reviews/<pr>-ceo.approved` tied to the GitHub-reported HEAD. This ensures the approval matches the exact code state being merged.

Can I record approval now but delay the squash merge execution?

Yes, you can record approval now but delay the squash merge execution by adding the `--no-merge` flag. This stores the CEO marker on disk so you can retry the merge later after fixing any gate failures.

What safety checks are required before running a squash merge on a pull request?

Required safety checks before running a squash merge include verifying the PR state is OPEN, confirming mergeability is non-conflicting, and checking the existence of the corresponding Rex approval marker at the same PR HEAD.

Why should I use a separate CEO approval marker instead of relying on existing GitHub approvals?

A separate CEO approval marker is needed because plan-level approval must not be treated as merge authorization. It forces a distinct, per-PR CEO approval moment and verifies the Rex marker SHA matches before executing the merge.