diff --git a/docker/reproduce/entrypoint-reproduce.sh b/docker/reproduce/entrypoint-reproduce.sh index 2715602..f2068ee 100644 --- a/docker/reproduce/entrypoint-reproduce.sh +++ b/docker/reproduce/entrypoint-reproduce.sh @@ -496,9 +496,11 @@ fi if [ "$AGENT_TYPE" = "triage" ]; then log "Triage post-processing: checking for created issues to label..." - # Extract issue numbers from Claude output that were created during triage - # Look for patterns like "Created issue #123" or "harb#123" or "#123" after "create" - CREATED_ISSUES=$(grep -oE '(Created|created) issue #[0-9]+|harb#[0-9]+|#[0-9]+' \ + # Extract issue numbers from Claude output that were created during triage. + # Match unambiguous creation patterns: "Created issue #123", "Created #123", + # or "harb#123". Do NOT match bare #123 which would capture references in + # the triage summary (e.g., "Decomposed from #5", "cause 1 of 2", etc.). + CREATED_ISSUES=$(grep -oE '(Created|created) issue #[0-9]+|(Created|created) #[0-9]+|harb#[0-9]+' \ "/tmp/reproduce-claude-output-${ISSUE_NUMBER}.txt" 2>/dev/null | \ grep -oE '[0-9]+' | sort -u | head -10) @@ -506,12 +508,14 @@ if [ "$AGENT_TYPE" = "triage" ]; then # Get backlog label ID BACKLOG_ID=$(_label_id "backlog" "#fef2c0") - for issue_num in $CREATED_ISSUES; do - if [ -n "$BACKLOG_ID" ]; then + if [ -z "$BACKLOG_ID" ]; then + log "WARNING: could not get backlog label ID — skipping label enforcement" + else + for issue_num in $CREATED_ISSUES; do _add_label "$issue_num" "$BACKLOG_ID" log "Added backlog label to created issue #${issue_num}" - fi - done + done + fi fi fi