feat(agents): add action-hints footer to review, triage, and fix comments#2775
feat(agents): add action-hints footer to review, triage, and fix comments#2775rh-hemartin wants to merge 1 commit into
Conversation
…ents Users receiving agent comments don't know what commands are available. Add contextual "Next steps" footers so available actions are discoverable at the decision point — review (request-changes only), triage (sufficient only), and fix (always). Closes #1789, closes #2493, closes #2494 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Hector Martinez <hemartin@redhat.com>
PR Summary by QodoAdd contextual “Next steps” footers to review, triage, and fix agent comments
AI Description
Diagram
High-Level Assessment
Files changed (4)
|
Site previewPreview: https://215ca157-site.fullsend-ai.workers.dev Commit: |
|
🤖 Finished Review · ✅ Success · Started 8:54 AM UTC · Completed 9:04 AM UTC |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
ReviewFindingsMedium
Low
|
| self.assertIn("**Next steps:**", body) | ||
| self.assertIn("/fs-review", body) | ||
| self.assertIn("/fs-fix", body) | ||
|
|
There was a problem hiding this comment.
[medium] test-inadequate
The assertion assertIn('/fs-fix', body) passes via substring match against '/fs-fix ' in the production code. The fix agent footer omits a bare '/fs-fix' option, unlike the PR review footer in SKILL.md which lists both. The substring assertion masks this inconsistency.
Suggested fix: Either add bare '/fs-fix' to the fix agent footer (consistent with the review footer), or make the assertion precise: assertIn('/fs-fix ', body).
| - Do not present unverified assumptions with certainty. Convey uncertainty when appropriate. | ||
| - Write in second person ("you") addressing the reporter. Do not use first person ("I") — the comment is from the triage system, not an individual. | ||
| - If you include `label_actions`, the pipeline appends your label reason to the comment automatically — do not include label justifications in the `comment` field yourself. | ||
| - **Action hints footer (sufficient action only):** When `action` is `sufficient`, append the following footer to the end of the `comment` field. Omit it for all other actions (`insufficient`, `duplicate`, `prerequisites`, `question`). |
There was a problem hiding this comment.
[low] pattern-inconsistency
Triage footer placement guidance is adequate but less detailed than SKILL.md's placement instructions.
| - Do not present unverified assumptions with certainty. Convey uncertainty when appropriate. | ||
| - Write in second person ("you") addressing the reporter. Do not use first person ("I") — the comment is from the triage system, not an individual. | ||
| - If you include `label_actions`, the pipeline appends your label reason to the comment automatically — do not include label justifications in the `comment` field yourself. | ||
| - **Action hints footer (sufficient action only):** When `action` is `sufficient`, append the following footer to the end of the `comment` field. Omit it for all other actions (`insufficient`, `duplicate`, `prerequisites`, `question`). |
There was a problem hiding this comment.
[low] design-direction
Conditional footer logic for triage is instruction-driven, not enforced by schema or post-script, unlike the fix agent footer which is programmatic.
Summary
request-changesoutcomes, showing/fs-fix,/fs-fix <instruction>, push, and/fs-fix-stopsufficientaction, showing/fs-codeand/fs-code <instruction>/fs-review,/fs-fix <instruction>, and pushCloses #1789
Test plan
process-fix-result-test.pypasses (27 tests)request-changesoutcome — verify footer appearssufficientaction — verify footer appearsapprove,comment,reject,insufficient,duplicate,prerequisites,questionoutcomes🤖 Generated with Claude Code