Guide
Catching What Agents Miss
See how fresh review, browser measurements, and accessibility tests caught 4 defects in a Draftroom change that passed local checks.
· 3 min read
https://greglum.com/learn/catching-what-agents-miss
The local checks pass. Is the change ready? A configurable league-rules change in the Fantasy Basketball Draftroom still had 4 problems. Independent reviewers, a phone-width browser check, and hosted accessibility checks found them. Each caught something the earlier checks had left open.
The repository's make check command runs tests, build, lint, formatting, types, file-size checks, and a private-name scan. It gives the implementer one repeatable check before opening a pull request.
Those checks passed, but the behavior and browser problems below remained.
Reviewers who had not worked on the implementation received the repository instructions, review guide, and diff. One checked correctness; the other checked security. They found 2 defects:
- For a custom date period, the report did not know how many games each candidate player would play. The report treated the missing counts as 0 and could suggest no available player would help. The fix made those recommendations unavailable and explained the missing counts.
- Imported settings accepted arrays where strings were required. Converting a value to a string let an array such as
["daily"]pass an allowed-value check, while later comparisons expected a string. The fix checked the type before checking allowed values.
For imported data, validate the original value before coercing it. For incomplete data, preserve the difference between unknown and zero.
A browser check found the Matchup report overflowing a narrow screen. Its grid column could grow to fit the table instead of shrinking to the viewport.
The fix added an explicit column:
grid gap-6became:
grid grid-cols-1 gap-6In the site's Tailwind configuration, that column uses minmax(0, 1fr), which lets it shrink. The table keeps its own horizontal scroll area.
Compare the rendered page's width with its document scroll width. A screenshot helps you locate overflow. Measurements from the DOM, the browser's representation of the page, establish whether it fits.
Hosted continuous integration (CI), which runs checks on code changes, then flagged the table's scroll area with axe's scrollable-region-focusable rule. The region could not receive keyboard focus.
The fix gave it a name and a tab stop:
<div
role="region"
aria-label="Category comparison table"
tabIndex={0}
className="overflow-x-auto focus-visible:outline-offset-[-3px]"
>In your own page, use a label that describes the table. After the automated scan, press Tab to reach the region, confirm that focus is visible, and use the arrow keys to scroll. An automated scan alone does not establish usability.
The fixes were committed before the league-rules pull request merged. This repository now requires the fast local CI gate and at least 2 independent reviewers on the final pull request commit. A full CI pass is required before deployment. A later code change requires fresh checks and review of the affected paths. Merge and deployment also require Greg's authorization.
- Put required checks behind one command and run it before the pull request.
- Give fresh reviewers the request, source, diff, and written review rules. Require each finding to name the file, line, and failing input or state.
- Exercise the changed behavior in the running app. Include a narrow viewport, long content, missing data, and imported settings where relevant.
- Run accessibility checks, then check keyboard use yourself.
- Run the required pre-merge gate on the final commit and bind its review record to that commit. Run the full gate on the commit you will deploy.
Without hosted CI, run the browser and accessibility checks locally and keep their results with the commit. On a team, agent reviews can help prepare a change for human review. For a command-line tool or mobile app, exercise the running interface appropriate to that platform.
Playwright's accessibility guide shows how to run axe in browser tests. The axe-core project documents the engine used by this site's UX checks. Keep manual keyboard and visual checks alongside automated results.
An outside course that covers this ground in more depth. Compare the time, cost, and limits before you start, or see every next step.
- Suits
- Team leads whose people already use AI on their own and are considering shared agents.
- You'll Learn
- How a shared agent differs from a personal chatbot, and four working rules: clear roles, a written goal, more work only as the agent proves reliable, and the right access to information.
- Before You Start
- No technical background.
- Time
- 5 lessons, about 45 minutes, and a quiz.
- Cost & Access
- Free. Start without an account; sign in to save progress.
- Keep in Mind
- A beta course from Anthropic about team practice, not setup steps for a particular tool.
- Agent session logs for the change, checked 2026-10-25
- League-rules source history and gate requirements, checked 2026-10-26
- axe-core
- Playwright: accessibility testing
- Fantasy Basketball Draftroom