| name | submit-to-queue |
| description | Agent işini bitirince merge kuyruğuna ekler. Mevcut branch'i, değişen dosyaları ve commit geçmişini okuyup merge-queue.json'a yazar. Koordinatör bu kuyruğu okur ve sırayla merge eder. Tetikleyici: /submit-to-queue, "kuyruğa ekle", "merge için hazırım". |
Submit to Merge Queue
Agent'ın mevcut branch'ini merge koordinatör kuyruğuna ekler.
Adımlar (bu sırayla çalıştır)
1. Git bilgilerini topla
BRANCH=$(git branch --show-current)
PROJECT_ROOT=$(git rev-parse --show-toplevel)
CHANGED_FILES=$(git diff main...HEAD --name-only 2>/dev/null || git diff HEAD~1 --name-only)
LAST_COMMIT=$(git log -1 --format="%s")
echo "Branch: $BRANCH"
echo "Dosyalar:"
echo "$CHANGED_FILES"
Eğer BRANCH boşsa veya main/master ise DUR — feature branch'i gerekli.
2. Görev hedefini belirle
Kullanıcıya şunu sor: "Bu branch'in amacı ne? (1 cümle)"
Eğer kullanıcı cevap vermediyse veya /submit-to-queue tek başına çağrıldıysa son commit mesajını kullan.
3. Kuyruğa ekle
cd "$PROJECT_ROOT"
python ~/.claude/scripts/merge-queue-manager.py add \
--agent "<AGENT_ADINI_BURAYA_YAZ>" \
--branch "$BRANCH" \
--goal "<GÖREV_HEDEFİ>"
<AGENT_ADINI_BURAYA_YAZ> yerine bu session'ı çalıştıran agent'ın adını yaz (örn: inference-developer, backend-developer). Bilinmiyorsa claude-code kullan.
4. Değişen dosyaları kuyruğa işle
merge-queue.json'daki entry'ye changedFiles'ı ekle. Queue manager bunu desteklemiyorsa JSON'u doğrudan güncelle:
import json, subprocess
project_root = subprocess.check_output(
["git", "rev-parse", "--show-toplevel"], text=True).strip()
queue_path = f"{project_root}/merge-queue.json"
branch = subprocess.check_output(
["git", "branch", "--show-current"], text=True).strip()
files_raw = subprocess.check_output(
["git", "diff", "main...HEAD", "--name-only"],
text=True, stderr=subprocess.DEVNULL).strip()
if not files_raw:
files_raw = subprocess.check_output(
["git", "diff", "HEAD~1", "--name-only"], text=True).strip()
files = [{"path": f, "isConflict": False, "diffStats": "", "workDetails": ""}
for f in files_raw.splitlines() if f]
with open(queue_path) as fh:
data = json.load(fh)
for entry in data["queue"]:
if entry["branch"] == branch:
entry["changedFiles"] = files
break
with open(queue_path, "w") as fh:
json.dump(data, fh, ensure_ascii=False, indent=2)
print(f"✅ {len(files)} dosya kaydedildi")
5. Kullanıcıya bildir
Şunu söyle:
✅ [branch-adı] merge kuyruğuna eklendi.
Sıra: #N
Değişen dosyalar: X adet
Koordinatörü çalıştırmak için: 'merge-coordinator' agent'ını çağır
Board'u görmek için: ~/.claude/tasks/merge-board.html dosyasını aç