Skip to content

Prompt Tuning: kelos-squash-commits step 7 uses non-functional label instead of comment-based control #836

@kelos-bot

Description

@kelos-bot

🤖 Kelos Self-Update Agent @gjkim42

Area: Prompt Tuning

Problem

kelos-squash-commits.yaml step 7 adds a kelos/needs-input label to the linked issue after squashing. However, the workers spawner (kelos-workers.yaml) uses comment-based control flow (commentPolicy.excludeComments), not label-based exclusion. The label addition has no effect on any spawner — it is a vestigial reference to the old label-based pattern.

Evidence

Workers spawner uses comment-based control (not labels)

kelos-workers.yaml lines 39–48:

when:
  githubIssues:
    labels:
      - actor/kelos
    commentPolicy:
      triggerComment: "/kelos pick-up"
      excludeComments:
        - "/kelos needs-input"
      allowedUsers:
        - gjkim42
        - kelos-bot[bot]

There is no excludeLabels field. The pause mechanism is the /kelos needs-input comment, not a label.

Squash-commits prompt uses the old label pattern

kelos-squash-commits.yaml lines 92–94:

7. Add `kelos/needs-input` label to the linked issue:
   - Extract the linked issue number from the PR body (look for `Closes #N`, `Fixes #N`, etc.)
   - Run: `gh issue edit <issue-number> --add-label kelos/needs-input`

All other agents use comment-based signaling

Every other agent that signals "needs human input" does so via a comment:

  • workers: posts /kelos needs-input comment on the issue (step post-checklist)
  • pr-responder: posts /kelos needs-input comment on the PR (post-checklist)
  • planner: posts /kelos needs-input comment on the issue (step 5)
  • reviewer: includes /kelos needs-input in review body (step 4)

The squash-commits agent is the only one using a label for this purpose.

The main README still describes the old label pattern

README.md lines 87–107 show excludeLabels: [kelos/needs-input] as the core pattern, but the actual workers spawner has migrated to commentPolicy.excludeComments. This confirms the label was once the mechanism and has since been replaced.

Impact

  1. Non-functional step: The agent wastes time extracting the issue number and running gh issue edit for a label that no spawner checks
  2. False sense of pausing: After squashing, a maintainer might expect the kelos/needs-input label to prevent workers from picking up the issue. It doesn't — a prior /kelos pick-up comment without a subsequent /kelos needs-input comment would still allow workers to process the issue
  3. Orphan labels: Issues accumulate a kelos/needs-input label that serves no automation purpose and may confuse maintainers

Proposed Fix

Replace step 7 with a comment-based signal that actually works:

Before (label — no effect):

7. Add `kelos/needs-input` label to the linked issue:
   - Extract the linked issue number from the PR body (look for `Closes #N`, `Fixes #N`, etc.)
   - Run: `gh issue edit <issue-number> --add-label kelos/needs-input`

After (comment — functional):

7. Signal that the linked issue needs maintainer attention:
   - Extract the linked issue number from the PR body (look for `Closes #N`, `Fixes #N`, etc.)
   - Run: `gh issue comment <issue-number> --body "/kelos needs-input\n\nCommits squashed on PR #{{.Number}}. Ready for maintainer review."`

This aligns with the comment-based control flow used by all other spawners and actually pauses the workers spawner from re-processing the issue.

Related Issues

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions