Prompt Request Pipeline
by @shunsukehayashi
GitHub Issue → auto-implement → PR → review → auto-merge pipeline. Write an Issue with [auto] tag, and the pipeline handles everything: task analysis, implem...
clawhub install prompt-request📖 About This Skill
name: prompt-request description: > GitHub Issue → auto-implement → PR → review → auto-merge pipeline. Write an Issue with [auto] tag, and the pipeline handles everything: task analysis, implementation, testing, PR creation, review, and merge. Includes progress comments on Issues and early-exit optimization. version: 1.0.0 author: ShunsukeHayashi tags: [github, webhook, automation, pipeline, prompt-request]
Prompt Request Pipeline
Issue を書くだけで、自動実装 → PR → レビュー → マージまで全自動で回るパイプライン。
Overview
[auto] Issue 起票
→ 🚀 実装開始コメント
→ Phase A: タスク分解(Omega-bridge or Issue本文)
→ 📋 分析完了コメント
→ Phase B: 実装 + テスト
→ ✅ 実装完了コメント
→ Phase C: commit → push → PR作成
→ 🔗 PR作成コメント
→ 自動レビュー → 自動マージ → Issue close
Prerequisites
gh) authenticatedSetup
1. Register GitHub Webhook
On your GitHub repo → Settings → Webhooks → Add webhook:
https:///hooks/github application/json2. Configure OpenClaw hooks
Add this to your openclaw.json under hooks.mappings:
{
"match": { "path": "github" },
"action": "agent",
"name": "GitHub",
"sessionKey": "hook:github:{{repository.name}}:{{headers.x-github-event}}:{{issue.number}}{{pull_request.number}}{{check_run.id}}",
"messageTemplate": "",
"deliver": true,
"allowUnsafeExternalContent": true,
"channel": "telegram",
"to": "",
"model": "anthropic/claude-opus-4-6",
"thinking": "high",
"timeoutSeconds": 900
}
3. Set working directory
In the messageTemplate, replace the working directory path:
WORKDIR variable: where repositories are cloned (e.g., C:\Users\you\Dev or /home/you/dev)4. (Optional) Omega-bridge
If you have Miyabi's omega-bridge for SWML-based task decomposition:
omega-bridge.ts in the messageTemplateUsage
Basic: Create an [auto] Issue
Title: [auto] Add utility function XBody:
Requirements
Create scripts/x.sh with function do_x()
Add tests in tests/test-x.sh Acceptance Criteria
Function returns expected output
Tests pass
Advanced: With agent personality
Title: [auto] [content] Write article about YBody:
Read agents/content-agent/AGENTS.md and SOUL.md first.
Follow the rules defined there.
Topic
...Output
File: articles/y.md
Word count: 6000
Advanced: With skill reference
Title: [auto] Generate report with weather dataBody:
Read skills/weather/SKILL.md for API usage.
Requirements
...
How It Works
Issue Events (action=opened)
1. Early exit check: If action is closed/labeled/etc → 1-line reply, stop
2. [auto] check: Title starts with [auto] or body contains
3. Phase A: Task decomposition (omega-bridge or direct)
4. Phase B: Implementation (branch, code, test)
5. Phase C: Integration (commit, push, PR)
6. Progress comments posted at each phase
PR Events (action=opened/synchronize)
1. Skip bot senders (loop prevention)
2. Diff review for quality/security
3. Auto-merge if ALL conditions met:
- PR title contains [auto] or branch starts with feature/issue-
- Review is LGTM
- CI checks pass (or empty = pass)
- No merge conflicts
Safety Rules
Configuration Options
| Option | Default | Description |
|--------|---------|-------------|
| model | claude-opus-4-6 | Model for hook sessions |
| thinking | high | Thinking level |
| timeoutSeconds | 900 | Max execution time (15 min) |
| deliver | true | Send results to chat |
| channel | telegram | Delivery channel |
Performance (measured)
| Metric | Before optimization | After optimization | |--------|--------------------|--------------------| | close/push events | 8-12 min, ~500 tokens | 3 sec, ~15 tokens | | [auto] Issue → merged PR | N/A (stuck) | ~5 min | | Full pipeline (Issue → merge) | N/A | ~5 min |
Tips
💡 Examples
Basic: Create an [auto] Issue
```markdown Title: [auto] Add utility function X
Body:
⚙️ Configuration
1. Register GitHub Webhook
On your GitHub repo → Settings → Webhooks → Add webhook:
https:///hooks/github application/json2. Configure OpenClaw hooks
Add this to your openclaw.json under hooks.mappings:
{
"match": { "path": "github" },
"action": "agent",
"name": "GitHub",
"sessionKey": "hook:github:{{repository.name}}:{{headers.x-github-event}}:{{issue.number}}{{pull_request.number}}{{check_run.id}}",
"messageTemplate": "",
"deliver": true,
"allowUnsafeExternalContent": true,
"channel": "telegram",
"to": "",
"model": "anthropic/claude-opus-4-6",
"thinking": "high",
"timeoutSeconds": 900
}
3. Set working directory
In the messageTemplate, replace the working directory path:
WORKDIR variable: where repositories are cloned (e.g., C:\Users\you\Dev or /home/you/dev)4. (Optional) Omega-bridge
If you have Miyabi's omega-bridge for SWML-based task decomposition:
omega-bridge.ts in the messageTemplate