Configuration Alignment: kanon-reviewer filters drop the worker's own /kelos review — automated worker→reviewer handoff never fires (Kanon PR #6: comment by kelos-bot[bot], 0 reviews)
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 68/100
Research direction
Start with kanon-development/kanon-reviewer.yaml, then inspect kanon-workers.yaml to understand the dependent handoff and compare the related resolution in issue #1221. Update the webhook filters so the worker bot's /kelos review comment is admitted while retaining the manual maintainer path, and verify the bot's submitted review cannot trigger another review.
Written by the indexing model from the issue text.
Description
🤖 Kelos Agent @gjkim42
Configuration Alignment: kanon-reviewer filters drop the worker's own /kelos review — the automated worker→reviewer handoff never fires
Summary
kanon-workers ends every run by self-requesting a review (steps 11a/11b):
Then request a review by posting a comment on the PR:
gh pr comment kanon-task-{{.Number}} --body "/kelos review". The reviewer agent will post its findings asynchronously as a PR review.
But kanon-reviewer's webhook filters can never match that comment, because the worker posts it as the bot, not as gjkim42. The promised async review never happens — kanon-reviewer is only reachable when gjkim42 manually types /kelos review.
Evidence (Kanon PR #6)
On the one generated PR so far, the worker posted the handoff comment and the reviewer stayed silent:
- Comment on PR #6: body
/kelos review, authorkelos-bot[bot](gh api repos/kelos-dev/kanon/issues/6/comments) - Reviews on PR #6: none (
gh api repos/kelos-dev/kanon/pulls/6/reviewsreturns[])
So the worker's /kelos review was posted and produced zero reviews — the handoff died at the filter.
Root cause (kanon-development/kanon-reviewer.yaml)
The githubWebhook block filters the bot out twice over:
when:
githubWebhook:
repository: kelos-dev/kanon
excludeAuthors:
- kelos-bot[bot] # (1) drops every bot-authored event, globally
events: [issue_comment, pull_request_review]
filters:
- event: issue_comment
action: created
bodyPattern: /kelos review
commentOn: PullRequest
state: open
author: gjkim42 # (2) requires the comment author to be gjkim42
- event: pull_request_review
action: submitted
bodyPattern: /kelos review
state: open
author: gjkim42 # same restriction
The worker comment is authored by kelos-bot[bot] (confirmed on PR #6), so it is rejected by both excludeAuthors (1) and the per-filter author: gjkim42 (2). There is no filter path that admits the bot's review request.
This is the Kanon analog of the kelos-side #1221 (kelos-reviewer/kelos-api-reviewer drop bot-authored review requests). The fix has not been ported to kanon-development/, and kanon-workers here actively depends on the handoff working.
Why this matters
- Every worker-produced Kanon PR reaches human review with no
kanon-reviewerpass, despite the worker prompt asserting one will run. kanon-revieweris effectively dead for the automated pipeline; it only fires on a manual maintainer comment.- The worker prompt's claim ("The reviewer agent will post its findings asynchronously") is misleading given the current filters.
Proposed fix (kanon-development/kanon-reviewer.yaml only)
The maintainer approval gate already lives on kanon-workers (/kelos pick-up requires author: gjkim42). Once a worker is running, the review request is an internal pipeline step and should be allowed from the bot. Concretely:
- Add a filter entry to
kanon-reviewerthat admits the worker's bot-authored/kelos reviewrequest, e.g. a secondissue_commentfilter without theauthor: gjkim42restriction (keepingcommentOn: PullRequest,bodyPattern: /kelos review,state: open), and - Remove
kelos-bot[bot]from the top-levelexcludeAuthors(since it is applied globally and would otherwise still drop the bot comment admitted in step 1).
Keep the existing author: gjkim42 manual path so maintainers can still trigger reviews directly. Verify this doesn't create a loop: kanon-reviewer submits via gh pr review (its review bodies do not contain /kelos review), so admitting the bot does not re-trigger the reviewer on its own output.
Alternatively, mirror whatever resolution is chosen for #1221 so the two reviewers stay consistent.
Scope
- Reasoning limited to
kanon-development/files (kanon-reviewer.yaml, withkanon-workers.yamlas the dependent consumer). - Not a duplicate of #1221, which targets the
self-development/kelos-reviewer/kelos-api-reviewerfiles; this is the un-ported Kanon counterpart with its own evidence (Kanon PR #6).
- Dominant language
- Go
- Stars
- 331
- Forks
- 40
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 64
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from kelos-dev/kelos
-
actor/kelos generated-by-kelos kind/bug priority/important-longterm triage-accepted
Difficulty 1/5 Under an hour Newbie friendliness 76/100
-
actor/kelos kind/feature priority/important-soon triage-accepted
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
actor/kelos generated-by-kelos kind/bug priority/important-longterm triage-accepted
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
actor/kelos generated-by-kelos kind/cleanup priority/important-longterm triage-accepted
Difficulty 1/5 Under an hour Newbie friendliness 78/100
-
actor/kelos generated-by-kelos kind/bug priority/important-longterm triage-accepted
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100
-
enhancement needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
kind/cleanup
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
kubernetes-sigs/kueue#15947 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
sympozium-ai/sympozium#627 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100