deploy-steward

Serializes merging and deploying ready GitHub pull requests into mainline one at a time.

916|82|Updated Mar 20, 2026
One-click install
npx skills add https://github.com/SethGammon/Citadel --skill deploy-steward
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: deploy-steward
Source: https://github.com/SethGammon/Citadel/tree/main/skills/deploy-steward
Command: npx skills add https://github.com/SethGammon/Citadel --skill deploy-steward

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

When multiple agents or contributors produce many ready pull requests, merging them manually creates a stampede of stale branches, failed checks, and conflicting merges. This Skill serializes mainline landing so only one candidate is refreshed, verified, merged, and deployed at a time.

Core Features & Use Cases

  • Queue-based landing: Scans .planning/pr-readiness reports or accepts explicit PR URLs to build a durable landing queue in .planning/deploy-steward/queue.jsonl.
  • Lease-protected serialization: Acquires a steward lease so no two runs merge into the same target simultaneously.
  • Safe merge gating: Refreshes live PR state with the GitHub CLI, updates stale branches, waits for pending checks, and merges only when checks pass on the current head commit.
  • Repair task generation: Opens intake repair tasks for failed checks, conflicts, or closed PRs instead of forcing merges.
  • Use Case: A team running parallel coding agents ends the day with eight ready PRs; the steward rebases each against main, waits for CI, merges them one at a time, runs the deploy command after each merge, and files repair tasks for the two that fail.

Quick Start

Ask the agent to run the deploy steward in dry-run mode to scan ready PRs and show what it would merge before doing a live run.

Frequently Asked Questions about deploy-steward

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

FAQPage Schema
How do I merge multiple ready GitHub PRs automatically in order?

Run the deploy steward with --scan to build a queue from readiness reports, then use --run to process one candidate at a time. It refreshes each PR, waits for checks, and merges only when checks pass on the current head commit.

How do I keep agent PRs rebased against the latest main branch?

The steward detects when a PR branch is behind its base via GitHub and updates the branch automatically. It then marks the item as waiting for checks and stops until CI reruns on the updated head.

Does the deploy steward work with GitHub merge queue?

Yes, pass --merge-mode merge-queue to hand candidates to GitHub's merge queue instead of direct merging. The steward queues one PR, marks it landing, and you rerun after GitHub merges it.

What happens when a PR has failing checks or merge conflicts?

The steward never merges a PR with failing, pending, or conflicted state. It creates a repair intake task under .planning/intake and stops the run so the issue can be fixed before landing continues.

Why does the deploy steward refuse to run?

Common causes are a missing or unauthenticated GitHub CLI, another active steward lease, or a missing .planning directory. Run gh auth status to verify authentication and use --force-lease only after confirming the old holder is dead.

Can I test the deploy steward without merging anything?

Yes, run it with --dry-run before first live use on a repository. This exercises the scan and run logic without performing actual merges or deploys.