Création d'issues de transfert Babel

Crée des issues de transfert étiquetées entre agents pipeline. Écrit des fichiers markdown et des logs, et crée optionnellement des issues GitHub via gh CLI.

Spar Skills Guide Bot
DevOpsIntermédiaire
0022/07/2026
Claude CodeCursorWindsurfCopilotCodex
#handoff#issue-creation#pipeline#automation#protocol

Recommandé pour


name: bb-create-issue description: "Babel internal issue protocol — create a labeled handoff between pipeline agents. Writes designs/<name>/.handoff/<label>.md and appends to handoff_log.jsonl; best-effort gh issue create if gh available. Triggered by every guru/architect agent at handoff time."

bb-create-issue

Inputs

  • --label <label> — one of ready-for-rtl | ready-for-verification | ready-for-synth | ready-for-pd | signoff | arch-needs-fix | rtl-needs-fix | synth-needs-fix | escalate-user | pd-rework
  • --artifact <path> — canonical artifact path (e.g. designs/<name>/mas/mas.json)
  • --body-file <path> (optional) — markdown body source
  • --correlation-id <sha256> (optional) — sha256 of failing artifact for dedup (fix M-07)
  • --design-name <name> (optional) — derived from artifact path if absent
  • --summary <one-liner> (optional) — placed at top of body

Output Contract

| field | 值 | |-------|----| | artifact_path | designs/<name>/.handoff/<label>.md | | log_path | designs/<name>/.handoff/handoff_log.jsonl | | gh_issue_url | URL|null | | valid | bool |

4-Phase 执行

Phase 1 — derive_design_name

if --design-name absent:
  parse from --artifact: matches "designs/([^/]+)/" → design_name
  if no match: error "cannot derive design_name", exit 2

Phase 2 — write_handoff

LLM 直接调 Write 工具写出 designs/<design_name>/.handoff/<label>.md

# <label>
- timestamp: <ISO 8601 Beijing time>
- artifact: <path>
- correlation_id: <sha or NA>
- summary: <one-liner or "">
- body: <body-file content or stdin>

Phase 3 — append_log

Bash

mkdir -p designs/<design_name>/.handoff
LINE=$(printf '{"ts":"%s","label":"%s","artifact":"%s","correlation_id":"%s"}' \
  "$(date -u +'%Y-%m-%dT%H:%M:%SZ')" "<label>" "<artifact>" "<correlation_id_or_NA>")
echo "$LINE" >> designs/<design_name>/.handoff/handoff_log.jsonl

Phase 4 — gh_best_effort

if command -v gh >/dev/null 2>&1; then
  gh issue create \
    --label "<label>" \
    --title "<label>: <design_name>" \
    --body-file designs/<design_name>/.handoff/<label>.md \
    2>/dev/null || true
fi

返回 {artifact_path, log_path, gh_issue_url|null, valid:true}

Failure Modes

  • design_name 不可推导 → exit 2
  • label 不在 allow-list → exit 3
  • Write 失败 → 返回 {valid:false, error:"write failed"}

与 PostToolUse hook 联动

写入 <label>.md 后由 bb-hook-pipeline-advance.sh 自动提示用户下一步 agent;写 *-needs-fix.mdbb-hook-create-fix-issue.sh 记录 escalation。

Allow-list

ready-for-rtl, ready-for-verification, ready-for-synth, ready-for-pd, signoff,
arch-needs-fix, rtl-needs-fix, synth-needs-fix, pd-rework, escalate-user
Skills similaires