Skip to content

dev-lead: suppress visible body on no-changes terminal comments #362

Description

@don-petry

Problem

When the dev-lead agent runs and makes no changes it still posts a fully-visible PR comment, e.g.:

Dev-Lead — fix-bot-comment (no-changes)

Engine ran but made no changes.

and similarly for other intents:

Dev-Lead — human-pr (no-changes)

No changes were needed for this PR.

These fire on every commit for every intent that finds nothing to do. On an active PR (e.g. #358) this generates a wall of noise comments that provide no actionable information.

Root cause

post_reviews_terminal in scripts/dev-lead-fix-reviews.sh (lines ~64–87) only suppresses the visible heading when $summary is empty:

local body="${marker}"
if [ -n "$summary" ]; then
  body="${body}
## Dev-Lead — ${intent} (${status})
${summary}"
fi

But every no-changes call-site passes a non-empty summary string (lines ~373, 391, 408, 439, 467), so a fully visible comment is always posted.

The idempotency marker itself (the HTML comment <!-- dev-lead-fix-reviews pr=… -->) is still required to prevent retry loops — only the user-visible heading and summary are unnecessary.

Proposed fix

For no-changes status, omit the summary argument so post_reviews_terminal posts only the invisible HTML marker:

# fix-bot-comment
post_reviews_terminal "fix-bot-comment" "no-changes"   # was: "Engine ran but made no changes."

# human-pr
post_reviews_terminal "human-pr" "no-changes"          # was: "No changes were needed for this PR."

# fix-reviews
post_reviews_terminal "fix-reviews" "no-changes"       # was: "No changes were needed for the open review threads."

# human
post_reviews_terminal "human" "no-changes"             # was: "Engine ran but made no changes."

# rebase
post_reviews_terminal "rebase" "no-changes"            # was: "PR is already up to date."

applied and rate-limited statuses should keep their visible summaries — those are meaningful events worth surfacing.

Examples

PR #358 has multiple instances: look for any comment from don-petry with the pattern ## Dev-Lead — * (no-changes).

Metadata

Metadata

Assignees

No one assigned

    Labels

    dev-leadFor dev-lead agent pickup

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions