Skip to content

fix(#156): add CI coverage regression severity calibration - #157

Merged
ben-alkov merged 1 commit into
mainfrom
agent/156-ci-coverage-severity
Jul 23, 2026
Merged

fix(#156): add CI coverage regression severity calibration#157
ben-alkov merged 1 commit into
mainfrom
agent/156-ci-coverage-severity

Conversation

@fullsend-ai-coder

Copy link
Copy Markdown
Contributor

Add a "CI coverage regression severity" subsection to the correctness sub-agent prompt. This guides the agent to rate coverage regressions as HIGH when they remove merge-queue or PR-gate signal for a class of changes that previously had it, and Medium when only advisory checks are affected.

The key heuristic: if a PR touching affected paths can now land on main without CI checks that previously guarded them, the finding is HIGH severity. This addresses the recurring severity miscalibration where coverage regressions affecting merge gates were rated medium instead of HIGH, leading to non-blocking comment verdicts instead of blocking request-changes verdicts.


Closes #156

Post-script verification

  • Branch is not main/master (agent/156-ci-coverage-severity)
  • Secret scan passed (gitleaks — d51f2e44ee98fbbbfd6d026869637cd2d7cfbb27..HEAD)
  • Pre-commit hooks passed (authoritative run on runner)
  • Tests ran inside sandbox

@fullsend-ai-coder
fullsend-ai-coder Bot requested a review from a team as a code owner July 13, 2026 17:21
@ben-alkov ben-alkov self-assigned this Jul 15, 2026
@ben-alkov
ben-alkov force-pushed the agent/156-ci-coverage-severity branch from 31725d6 to 255a84b Compare July 16, 2026 19:24
@ben-alkov

Copy link
Copy Markdown
Member

/fs-review

@fullsend-ai-review

fullsend-ai-review Bot commented Jul 16, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 7:49 PM UTC · Completed 7:58 PM UTC
Commit: 12bd957 · View workflow run →

@fullsend-ai-review

Copy link
Copy Markdown

Review

Findings

Medium

Low

  • [style-conventions] skills/pr-review/sub-agents/correctness.md:62 — Severity labels use inconsistent casing: **HIGH** (all caps) and **Medium** (title case) in the new section, while sibling sub-agent files (e.g., security.md) use bold lowercase (**high**, **medium**, **critical**, **info**). The existing correctness.md also uses title-case "Medium-severity" (line 52), so the inconsistency predates this PR, but the new section introduces **HIGH** (all caps) which is a novel pattern. Consider normalizing to bold lowercase for cross-file consistency.

Labels: PR modifies the review agent correctness sub-agent prompt.

@fullsend-ai-review fullsend-ai-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the review comment for full details.

Comment thread skills/pr-review/sub-agents/correctness.md
@fullsend-ai-review fullsend-ai-review Bot added requires-manual-review Review requires human judgment review-agent labels Jul 16, 2026
@ben-alkov

Copy link
Copy Markdown
Member

/fs-fix

@fullsend-ai-coder

fullsend-ai-coder Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Finished Fix · ✅ Success · Started 8:13 PM UTC · Completed 8:19 PM UTC
Commit: 12bd957 · View workflow run →

@fullsend-ai-coder

Copy link
Copy Markdown
Contributor Author

🔧 Fix agent — iteration 1 (human-triggered)

No action taken. The review body was empty and no human instruction was provided. The existing change to skills/pr-review/sub-agents/correctness.md (adding CI coverage regression severity calibration) was verified to be well-formed and consistent with the file's existing conventions. Secret scan passed with no leaks found.

Disagreed (1):

  1. No review findings provided: The review body was empty (review-body.txt contained only a newline) and no human instruction was provided (HUMAN_INSTRUCTION=none). The existing code change in skills/pr-review/sub-agents/correctness.md was verified: markdown is well-formed, heading hierarchy is consistent with the file's existing structure, severity level formatting (HIGH vs Medium) matches the file's established convention, and the new section slots correctly between existing sections. No code changes are needed.

Tests: passed

Decision points
  • No changes made because there are no review findings or human instructions to act on (alternatives: Attempt to infer issues from the code diff, Make speculative improvements to the PR; rationale: The fix agent's scope is strictly limited to addressing review feedback or human instructions. With an empty review body and HUMAN_INSTRUCTION=none, making speculative changes would violate the surgical-changes principle. The code was verified to be correct as-is.)

Updated by fullsend fix agent

@ben-alkov
ben-alkov force-pushed the agent/156-ci-coverage-severity branch from 255a84b to 51f731e Compare July 17, 2026 12:09
Add a "CI coverage regression severity" subsection to the
correctness sub-agent prompt. This guides the agent to rate
coverage regressions as HIGH when they remove merge-queue or
PR-gate signal for a class of changes that previously had it,
and Medium when only advisory checks are affected.

The key heuristic: if a PR touching affected paths can now
land on main without CI checks that previously guarded them,
the finding is HIGH severity. This addresses the recurring
severity miscalibration where coverage regressions affecting
merge gates were rated medium instead of HIGH, leading to
non-blocking comment verdicts instead of blocking
request-changes verdicts.

Closes #156

Signed-off-by: Ben Alkov <ben.alkov@redhat.com>
@ben-alkov
ben-alkov force-pushed the agent/156-ci-coverage-severity branch from 51f731e to a52f5c5 Compare July 17, 2026 12:15
@rh-hemartin

rh-hemartin commented Jul 22, 2026

Copy link
Copy Markdown
Member

@ben-alkov merge this when possible

@ben-alkov
ben-alkov added this pull request to the merge queue Jul 23, 2026
Merged via the queue into main with commit 2dc5dc6 Jul 23, 2026
12 checks passed
@ben-alkov
ben-alkov deleted the agent/156-ci-coverage-severity branch July 23, 2026 18:13
@fullsend-ai-retro

fullsend-ai-retro Bot commented Jul 23, 2026

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 6:16 PM UTC · Completed 6:28 PM UTC
Commit: a52f5c5 · View workflow run →

@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #157 — CI coverage regression severity calibration

Timeline

Date Event Run
Jul 13 Issue #156 filed (CI coverage severity miscalibration)
Jul 13 Triage agent classified, applied ready-to-code 29269186313
Jul 13 Code agent created PR #157 (+17/−1, 1 file) 29269483734
Jul 16 Human (ben-alkov) rebased, triggered /fs-review
Jul 16 Review agent posted COMMENT review: medium (protected-path), low (style-conventions casing) 29529444576
Jul 16 Human triggered /fs-fix
Jul 16 Fix agent got empty review body, took no action (~7 min wasted) 29531136875
Jul 17 Human manually fixed casing via force-push
Jul 20 Human (rh-hemartin) approved
Jul 23 Merged via merge queue

What went well

  • Code agent produced a clean, well-scoped 17-line fix that correctly addressed the issue.
  • Review agent correctly identified a style inconsistency (severity label casing) and the protected-path requirement. Its verdict (COMMENT, not CHANGES_REQUESTED) was appropriate for non-blocking findings.
  • Human review provided substantive approval, satisfying the protected-path requirement.

Key finding: fix agent pipeline drops COMMENT review findings

The fix workflow's pre-fetch step uses a jq filter that only selects CHANGES_REQUESTED reviews from the review bot. When the review agent posts a COMMENT review (appropriate for lower-severity findings), the filter matches nothing and the fix agent receives an empty review-body.txt. Additionally, the review agent's detailed findings are posted as an issue comment (marked <!-- fullsend:review-agent -->), while the formal PR review body contains only a redirect — so even matching COMMENT reviews would yield only redirect text, not findings.

This forced the human to manually fix the style-conventions finding rather than having the fix agent handle it.

Existing issue coverage

  • fullsend-ai/fullsend#4675 covers the platform-level root cause: the fix workflow fetches from the Pulls reviews API, but findings live in the review bot's sticky issue comment. PR fix(#156): add CI coverage regression severity calibration #157 provides additional evidence of the same pattern — the fix agent received an empty review body because its jq filter excluded COMMENT reviews, and the actual findings were in an issue comment.
  • fullsend-ai/fullsend#5205 covers a related but distinct filter dimension: human-authored CHANGES_REQUESTED reviews are also excluded by the .user.login filter. Our case involves the .state filter dimension instead.

Novel proposal filed

One proposal below: add an API fallback in the fix-review skill so the fix agent can self-heal when the pre-fetched review body is empty, regardless of the platform-level fix timeline.

Proposals filed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

requires-manual-review Review requires human judgment review-agent

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Review correctness sub-agent should escalate CI coverage regressions to HIGH when they remove merge-gate signal

2 participants