You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add responsive-layout-audit, a Playwright-based skill for responsive UI audit across multiple viewports.
The skill separates page-level horizontal overflow from intentional region-level horizontal scrolling,
captures evidence (layout-report.json + PNG), and reports review candidates such as:
page-horizontal-overflow
text-clipping-candidate
action-outside-viewport-candidate
hit-test-obstruction-candidate
It also redacts secret-like query parameter values in the report target URL.
Why this adds value
Provides a reusable, testable audit workflow instead of ad-hoc manual viewport checks.
Distinguishes "page bug" vs "intentional scroll container" with explicit region probes.
Produces machine-readable evidence for follow-up review, not just screenshots.
Contents
New skill folder: skills/responsive-layout-audit/
SKILL.md
scripts/layout-audit.mjs
tests/layout-audit.test.mjs
tests/fixtures/intentional-scroll.html
tests/fixtures/page-overflow.html
Generated update:
docs/README.skills.md
Verification
Executed in local awesome-copilot working tree.
npm run skill:validate
Result: pass
Evidence: all 430 skills validated; no skill-specific error for this addition.
npm run build
Result: pass
Evidence: README generation and marketplace generation completed.
Note: warning lines from existing external.json entries are pre-existing and not introduced by this skill.
Functional checks with fixtures
intentional-scroll.html
page overflow false
region endReached=true, edgeVisible=true
clipping and hit-test candidates detected
redaction target with access_token=secret-value
output target contains access_token=REDACTED
page-overflow.html
page overflow true
page-horizontal-overflow candidate detected
Limitations
Findings are candidates for human review, not final defect verdicts.
The tool does not click elements; hit-test is sampled-point obstruction detection.
Redaction currently targets secret-like query keys and userinfo fields; it is not a full anonymization system.
Disclosure
This contribution was prepared with AI assistance.
Risk tier:merge-risk:high — Privileged execution, automation, or review-policy change Required to merge: passing submission-gate checks plus 1 approval from reviewers with write access, including a maintainer with admin or maintain permission.
Why this tier
skills/responsive-layout-audit/scripts/layout-audit.mjs is a high-risk path (automation, scripts, MCP config, hooks, or review policy)
Spawns processes or evaluates code in skills/responsive-layout-audit/tests/layout-audit.test.mjs
✓ [spec-compliance] All 1 skill(s) are spec-compliant.
ℹ️
✓ spec-compliance: All spec checks passed.
ℹ️
✓ [valid-refs] All file references across 1 skill(s) are valid.
ℹ️
✓ valid-refs: All file references resolve to existing files within the skill directory.
ℹ️
1 skill(s) linted, 1 passed
Full linter output
### Linting skills/responsive-layout-audit
✅ responsive-layout-audit (2/2 checks passed)
✓ [spec-compliance] All 1 skill(s) are spec-compliant.
✓ spec-compliance: All spec checks passed.
✓ [valid-refs] All file references across 1 skill(s) are valid.
✓ valid-refs: All file references resolve to existing files within the skill directory.
1 skill(s) linted, 1 passed
text-overflow: ellipsis does not itself clip content; with overflow-x: visible (or a scrollable overflow), the text remains available, but this condition still emits a clipping candidate. Require an actually clipping overflow mode so the report does not produce a known false positive. The regression fixture should also combine text-overflow: ellipsis with its visible-overflow case.
text-overflow: ellipsis does not itself clip content; with overflow-x: visible, the text remains rendered outside the box. The || style.textOverflow === "ellipsis" branch therefore reports text-clipping-candidate for content that is not clipped. Require a clipping overflow mode (and add a regression fixture with ellipsis plus visible overflow).
This skill isn't really adding a major uplift, it's more acting as an opinionated wrapper around playwright.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Draft: responsive-layout-audit
Title
feat(skills): add responsive-layout-audit skill 🤖🤖🤖
Summary
Add
responsive-layout-audit, a Playwright-based skill for responsive UI audit across multiple viewports.The skill separates page-level horizontal overflow from intentional region-level horizontal scrolling,
captures evidence (
layout-report.json+ PNG), and reports review candidates such as:page-horizontal-overflowtext-clipping-candidateaction-outside-viewport-candidatehit-test-obstruction-candidateIt also redacts secret-like query parameter values in the report target URL.
Why this adds value
Contents
skills/responsive-layout-audit/SKILL.mdscripts/layout-audit.mjstests/layout-audit.test.mjstests/fixtures/intentional-scroll.htmltests/fixtures/page-overflow.htmldocs/README.skills.mdVerification
Executed in local awesome-copilot working tree.
npm run skill:validatenpm run buildexternal.jsonentries are pre-existing and not introduced by this skill.intentional-scroll.htmlendReached=true,edgeVisible=trueaccess_token=secret-valueaccess_token=REDACTEDpage-overflow.htmlpage-horizontal-overflowcandidate detectedLimitations
Disclosure