Skip to content

feat: add /deliver skill — automated delivery pipeline#94

Open
reshashi wants to merge 1 commit intogarrytan:mainfrom
reshashi:feat/deliver-skill
Open

feat: add /deliver skill — automated delivery pipeline#94
reshashi wants to merge 1 commit intogarrytan:mainfrom
reshashi:feat/deliver-skill

Conversation

@reshashi
Copy link

Summary

Adds a /deliver skill that automates the full delivery pipeline from PR creation to merge:

  • State machine tracking: WORKING → PR_CREATING → CI_RUNNING → REVIEWING → APPROVED → MERGING → MERGED | BLOCKED
  • CI polling via gh CLI with configurable interval/timeout
  • Pluggable quality gates — each gate is an agent .md file with YAML front matter, configurable triggers (always, file_match, min_lines_changed), and blocking/non-blocking modes
  • Auto-merge when all blocking gates pass (squash by default)
  • Resume support across sessions via persisted state at ~/.gstack/deliver/
  • Two bundled agents: verify-app (types, lint, test, build — blocking) and code-simplifier (readability — non-blocking)

Structure

deliver/
├── SKILL.md.tmpl
├── gates.yaml.example
├── scripts/
│   ├── run.sh                 # Pipeline orchestrator
│   ├── delivery-state.sh      # State machine (JSON-backed)
│   ├── ci-monitor.sh          # CI polling
│   ├── gate-runner.sh         # Gate orchestration
│   ├── pr-manager.sh          # PR lifecycle (create/merge/labels)
│   └── agent-registry.sh      # Agent .md loader
└── agents/
    ├── verify-app.md
    └── code-simplifier.md

Usage

/deliver                    # deliver current branch
/deliver feat/my-feature    # deliver specific branch
/deliver --no-merge         # approve but don't merge
/deliver --resume           # resume from saved state
/deliver --status           # show pipeline state

Users configure gates at ~/.gstack/deliver/gates.yaml and drop custom agent .md files in ~/.gstack/deliver/agents/.

Test plan

  • Fresh install: /deliver creates ~/.gstack/deliver/ and copies defaults
  • CI polling: correctly detects pass/fail/timeout via gh pr checks
  • Gate execution: verify-app runs and produces PASS/FAIL/CONDITIONAL PASS
  • Auto-merge: PR merges when all blocking gates pass
  • Resume: /deliver --resume picks up from saved state
  • No project-specific references in any file

🤖 Generated with Claude Code

Adds a new /deliver skill that automates the full path from PR creation
to merge. Features:

- State machine tracking (WORKING → PR_CREATING → CI_RUNNING →
  REVIEWING → APPROVED → MERGING → MERGED | BLOCKED)
- CI polling via GitHub CLI with configurable interval/timeout
- Pluggable quality gates (verify-app, code-simplifier) with
  configurable triggers (always, file_match, min_lines_changed)
- Auto-merge when all blocking gates pass
- Resume support across sessions
- Example gate configuration with commented-out infra/security gates

Usage: /deliver [branch] [--no-merge] [--resume] [--status]

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant