Gathers observations from fullsend-ai/fullsend and fullsend-ai/agents about
how the fullsend review agent performs relative to human reviewers, and turns
the gaps into concrete recommendations — so we can start trusting the review
agent to do what a human would do, or to correctly flag when it's unsure.
fullsend already dogfoods itself: every PR in fullsend-ai/fullsend and
fullsend-ai/agents gets reviewed by fullsend-ai-review[bot], and on
close/merge a fullsend-ai-retro[bot] runs a retrospective that includes a
skill literally called autonomy-readiness
(fullsend-ai/agents skills/autonomy-readiness/SKILL.md). That skill
already computes, per PR, the delta between what the review agent found and
what human reviewers found, classifies gaps, and proposes fixes.
So the single-PR analysis this project might otherwise have had to build already runs in production, automatically, on every PR. What doesn't exist yet is the rollup layer: turning hundreds of individual per-PR retrospectives (plus the ~18 months of GitHub issues they generated) into a periodic, quantified answer to "where are we actually closing the gap, and where are we not."
There's also a validity question worth taking seriously: the retro agent is grading the review agent's homework using the same kind of model doing the grading. An independent, second-opinion check on a sample of PRs is part of this project's job, not just aggregation.
Two distinct evidenced clusters dominate agent/review-labeled issues in
fullsend-ai/fullsend as of 2026-08:
- Redundant re-dispatch (#2587 + #2599, 75 evidence issues combined) — the same PR gets re-reviewed dozens of times on no-op/rebase commits, burning cost with zero new findings. This is a cost/efficiency gap, not a review-quality gap.
- Verdict-severity mismatch (#2940,
17 evidence issues) — the agent posts a real medium/high-severity finding
but the PR review verdict comes back COMMENT or APPROVE instead of
CHANGES_REQUESTED, so the finding merges unaddressed. This is the
dominant review-quality gap — the kind the user actually asked about —
and it's notable because the review pipeline already has a
self-consistency check meant to catch exactly this (blocking language in
the summary should force escalation to
request-changes). Either that check is failing in practice, or findings are being mis-classified as "advisory" when they describe an actual functional bug. That's a good first thing for the audit skill (below) to investigate directly.
Other smaller but real clusters: reviewing draft PRs (#1715, 9), re-raising findings the author already dismissed (#1672, 6), no verdict for closing policy-violating bot PRs (#1980, 6), diminishing-value post-approval findings (#3025, 3).
Data collection wrinkle: issues titled "Evidence for #N" stopped being
filed around 2026-07-20 — fullsend-ai/agents skills/retro-analysis/SKILL.md
now explicitly forbids filing them (they were noise; the fix landed in
fullsend-ai/agents PR #85). Evidence discovered after that date lives only
inside free-form retro PR-comment summaries, never as a new issue. Any
gathering tool has to read both eras: historical evidence via issue search,
recent evidence via PR comment text.
-
gather-review-observations— script-driven. Given a time period, pulls every PR touched by the review/retro agents across both repos and produces structured per-PR JSON: review-agent findings, retro summary (if any), and human review activity, cleanly separated from bot noise (Qodo, Codecov, github-actions). -
audit-pr-review-gap— launched as a sub-agent (to keep the main context free for cross-PR synthesis). Given one PR's gathered data, independently computes the agent-vs-human delta — mirroring the logic infullsend-ai/agentsskills/autonomy-readiness/SKILL.mdso output is comparable — and separately checks whether the retro agent's own self-assessment (when one exists) agrees with that independent read. This is the second-opinion check. -
mine-review-gap-patterns— cross-PR aggregation. Clusters gap findings from manyaudit-pr-review-gapruns, cross-references each cluster against the knownagent/reviewissue catalog to tell "more evidence for a known gap" apart from "a genuinely new pattern," and reports frequency/trend over the period.
See PLAN.md for the detailed design, data schemas, and rollout phases.
- Review agent comments: author is the bot's GitHub App identity and
body contains
<!-- fullsend:review-agent -->. Ignore<!-- fullsend:agent-status:... -->— that's a transient lifecycle ping, not a finding. - Retro comments: identified by author only (
fullsend-ai-retro[bot]) — there is no marker on them. Content is free-form markdown (the.summaryfield ofschemas/retro-result.schema.jsoninfullsend-ai/agents); no guaranteed heading structure, so parsing needs an LLM read, not regex. - Human signal:
gh api .../pulls/{n}/reviewsand.../issues/{n}/comments, filtered touser.type == "User". - Coverage caveat: outcome labels (
ready-for-merge,requires-manual-review,rejected) are applied for approve/comment/reject verdicts but not forrequest-changes— don't use labels alone to decide whether a PR was reviewed; check for the marker comment. - Repos in scope:
fullsend-ai/fullsend,fullsend-ai/agents.
Planning stage. No code yet — see PLAN.md for the build plan.