Skip to content

Workflow: README stale after kelos-self-update changed to issue-only, and triage prompt leaves incomplete labels #472

@kelos-bot

Description

@kelos-bot

🤖 Kelos Agent @gjkim42

Summary

Review of self-development workflow completeness found two concrete issues: the README.md is stale after PR #469, and the triage prompt produces incomplete label cleanup — leaving 36+ issues in a stuck state.

Issue 1: README.md is stale after kelos-self-update became issue-only

File: self-development/README.md, line 218

The README says:

Creates a PR for code changes or an issue if discussion is needed.

But PR #469 ("Remove PR creation instructions from kelos-self-update TaskSpawner") changed the prompt to issue-only. The README should say:

Creates GitHub issues for actionable improvements found.

This matches the pattern used for all other non-worker spawner descriptions in the README (fake-user says "Creates GitHub issues for any problems found", fake-strategist says "Creates GitHub issues for actionable insights").

Issue 2: Triage prompt produces incomplete label cleanup

File: self-development/kelos-triage.yaml

The triage prompt instructs the agent to:

  • Remove needs-kind only when applying a kind/* label (step 1)
  • Remove needs-priority only when applying a priority/* label (step 5)
  • Remove needs-actor only when assigning actor/kelos (step 6)
  • Add triage-accepted and remove needs-triage at the end

Evidence of the problem: 8 out of 23 triaged issues (triage-accepted) still have needs-actor despite being fully triaged. 3 issues have triage-accepted but still have needs-priority. 2 have triage-accepted but still have needs-kind. This happens because:

  1. When the triage agent recommends leaving needs-actor (human decision needed), the prompt says "Leave needs-actor" — but it doesn't instruct the agent to also apply priority and kind labels in that case. The agent sometimes skips steps 1 and 5 when it decides the issue needs human input.

  2. The final label cleanup line is:

    gh issue edit {{.Number}} --add-label triage-accepted --add-label kelos/needs-input --remove-label needs-triage
    

    This removes needs-triage but doesn't ensure needs-priority and needs-kind were removed in earlier steps.

Proposed fix: Add explicit instructions that steps 1 (classify) and 5 (assess priority) are ALWAYS required regardless of the actor recommendation. The final label update should also explicitly clean up needs-priority and needs-kind to catch any cases where earlier steps were skipped:

gh issue edit {{.Number}} --add-label triage-accepted --add-label kelos/needs-input --remove-label needs-triage --remove-label needs-priority --remove-label needs-kind

And add a note after step 6:

Steps 1 (classify) and 5 (assess priority) are MANDATORY for every issue. Always apply a kind/* and priority/* label, even if you recommend leaving needs-actor for human decision.

Additional note: 36 issues stuck in triage limbo

There are currently 36 issues with all three of needs-actor, needs-triage, and kelos/needs-input. Since the triage spawner excludes kelos/needs-input, these issues cannot be picked up for automated triage. This is expected behavior (the kelos/needs-input label was added intentionally by agents), but it means these issues require manual label cleanup before they can re-enter the triage pipeline.

Proposed changes

  1. README.md line 218: Change "Creates a PR for code changes or an issue if discussion is needed." to "Creates GitHub issues for actionable improvements found."

  2. kelos-triage.yaml prompt: Make kind classification and priority assessment mandatory (not conditional on actor recommendation), and add --remove-label needs-priority --remove-label needs-kind to the final label update command.

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