bb-list-issues

Babel internal issue protocol — list open handoffs by label. Scans designs/*/.handoff/*.md (filtered by label) and best-effort merge with gh issue list. Used by all guru/architect agents at startup to

SKILL.md

GitHub

bb-list-issues

Inputs

  • --label <label> (optional) — filter; absent = all
  • --design-name <name> (optional) — filter; absent = all designs
  • --limit <int> (optional, default 20) — max returned
  • --include-fixed (flag) — include closed handoffs from .handoff/closed/

Output Contract

field 值
issues [{design_name, label, artifact, correlation_id, file, ts}]
count int
valid bool

4-Phase 执行

Phase 1 — scan_fs

调 Bash:

PATTERN="designs/*/.handoff/*.md"
[ -n "<label>" ] && PATTERN="designs/*/.handoff/<label>.md"
[ -n "<design-name>" ] && PATTERN="designs/<design-name>/.handoff/*.md"
find . -path "./$PATTERN" -type f 2>/dev/null | sort -r | head -n "<limit>"

Phase 2 — parse_md_frontmatter

调 Read 工具读每个匹配 md,按 - timestamp: / - artifact: / - correlation_id: 提字段。filename basename 即 label。

Phase 3 — gh_merge (best-effort)

if command -v gh >/dev/null 2>&1 && [ -n "<label>" ]; then
  gh issue list --label "<label>" --limit "<limit>" --json number,title,url 2>/dev/null
fi

合并 fs + gh 结果,按 ts 倒序。

Phase 4 — return

返回 JSON。count == 0 时返回 {issues:[], count:0, valid:true}。

用法示例

Skill(bb-list-issues, args="--label ready-for-rtl --limit 5")
Skill(bb-list-issues, args="--design-name uart")