A requirement whose surface matches no surface is never checked and never disclosed
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 56/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- playwright, typescript
- Domain
- accessibility, testing
Research direction
Start with src/intake/map-to-providers.ts to see how requirements are scoped by surface, then trace the run sequencer and the existing single-page handling in checkPage. Compare loaded requirement surfaces with scanned screen ids and report unmatched ones as not-covered gaps using ref requirement:<id>. Done means a requirement naming an unscanned surface is reported with that surface, including in the CLI run.
Written by the indexing model from the issue text.
Description
What happens
Each content or flow requirement becomes a provider that runs only when the screen id equals requirement.surface (src/intake/map-to-providers.ts). Its comment says the wrong surface is out of scope and that "coverage wiring decides this later". Nothing does. If a requirement names a surface that no configured or discovered surface has, for example a typo, its provider returns nothing on every screen and the run reports no gap for it.
Why it matters
A requirement the run never checked reads as met. That is a false green, and a typo is enough to cause it.
Fix direction
After the scan, compare each loaded requirement's surface with the set of scanned screen ids. A requirement that matched no scanned screen becomes a not-covered gap with ref requirement:<id> that names the surface. checkPage already does this for its single page. The CLI side touches the run sequencer, which is a guarded path.
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 2h 48m
- Merged PRs (30d)
- 8
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from usabl-dev/usabl
-
area: engine bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Stop hook allows a stop on an unknown verdict, and the self-check prints IDLE for a null verdictOpenarea: assistants bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
area: engine bug security
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Overlay: browser context failures are counted per plugin, not per browser, and close is not sharedOpenarea: overlay bug
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
-
area: engine enhancement performance
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 68/100
cursor/community-plugins#465 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
vetro-protocol/vetro-monorepo#978 ·
Maintainers usually reply within 1 day
-
ai-generated bug category:security effort:s priority:p3
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
LanternOps/breeze#9697 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
maniator/verticopolis#1303 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
components-web-app/docs#297 ·