Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Apply the Law of Common Region to group elements using containers, backgrounds, and boundaries.
.claude/skills/owl-listener-law-of-common-region/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | -8% | 0% |
| case-22 | ✓→✗ | ▼ Worse | -4% | 0% |
| case-01 | ✓→✓ | = Same ✓ | -8% | 0% |
| case-03 | ✓→✓ | = Same ✓ | -4% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 18% | 0% |
You are an expert in Gestalt visual organization and containment-based grouping.
You apply the Law of Common Region to create clear groupings using visual boundaries — backgrounds, borders, cards, and surfaces — so users understand which elements belong together.
Elements enclosed within a shared boundary or placed on a shared background are perceived as a group, even when they are not especially close together. Containment is one of the strongest grouping signals available:
Both signal grouping; they work differently: | | Law of Proximity | Law of Common Region | |---|---|---| | Mechanism | Spatial closeness | Shared boundary or background | | Best for | Related items already close | Items that need a stronger or explicit boundary | | Overhead | Zero — just spacing | Visual weight — a border or background is present | | When to prefer | Most layout grouping | Cards, panels, sidebars, tabbed sections, modals | Use proximity first; add common region when proximity alone is insufficient or when the grouping boundary needs to be explicit (e.g. a card that can be acted on as a unit, a form section within a larger form).
| Pattern | Common Region Role | |---|---| | Cards | Container clearly delimits a discrete item | | Sidebar | Background or border separates navigation from content | | Modal / sheet | Surface elevation signals an isolated task context | | Form sections | Background or rule divides logical groups within a long form | | Table rows | Hover/selection background shows a row as a unit | | Tag groups | Pill background makes each tag a discrete object | | Tooltip | Container boundary distinguishes overlay from page content |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 10,884 | 7,664 | -30% | 1 | 1 | 0% | 1,975 | 1,820 | -8% | 0 | 0 | — |
case-02 | fail→pass | 12,400 | 8,504 | -31% | 1 | 1 | 0% | 2,121 | 1,951 | -8% | 0 | 0 | — |
case-03 | pass→pass | 10,350 | 5,820 | -44% | 1 | 1 | 0% | 1,598 | 1,540 | -4% | 0 | 0 | — |
case-04 | pass→pass | 12,389 | 9,694 | -22% | 1 | 1 | 0% | 1,874 | 2,203 | +18% | 0 | 0 | — |
case-05 | pass→pass | 10,648 | 12,555 | +18% | 1 | 1 | 0% | 1,855 | 2,520 | +36% | 0 | 0 | — |
case-06 | pass→pass | 16,056 | 11,471 | -29% | 1 | 1 | 0% | 2,438 | 2,479 | +2% | 0 | 0 | — |
case-07 | pass→pass | 6,762 | 8,104 | +20% | 1 | 1 | 0% | 1,056 | 1,878 | +78% | 0 | 0 | — |
case-08 | pass→pass | 12,439 | 13,593 | +9% | 1 | 1 | 0% | 2,189 | 2,845 | +30% | 0 | 0 | — |
case-09 | pass→pass | 9,276 | 10,669 | +15% | 1 | 1 | 0% | 1,666 | 2,460 | +48% | 0 | 0 | — |
case-10 | pass→pass | 5,983 | 6,633 | +11% | 1 | 1 | 0% | 1,160 | 1,710 | +47% | 0 | 0 | — |
case-11 | pass→pass | 10,517 | 7,530 | -28% | 1 | 1 | 0% | 1,862 | 1,968 | +6% | 0 | 0 | — |
case-12 | pass→pass | 14,307 | 13,541 | -5% | 1 | 1 | 0% | 2,408 | 2,852 | +18% | 0 | 0 | — |
case-13 | pass→pass | 5,432 | 6,960 | +28% | 1 | 1 | 0% | 904 | 1,649 | +82% | 0 | 0 | — |
case-14 | pass→pass | 13,124 | 10,282 | -22% | 1 | 1 | 0% | 2,205 | 2,318 | +5% | 0 | 0 | — |
case-15 | pass→pass | 9,528 | 6,590 | -31% | 1 | 1 | 0% | 1,661 | 1,628 | -2% | 0 | 0 | — |
case-16 | pass→pass | 11,368 | 10,197 | -10% | 1 | 1 | 0% | 1,982 | 2,294 | +16% | 0 | 0 | — |
case-17 | pass→pass | 13,155 | 11,592 | -12% | 1 | 1 | 0% | 2,375 | 2,485 | +5% | 0 | 0 | — |
case-18 | pass→pass | 13,380 | 10,191 | -24% | 1 | 1 | 0% | 2,923 | 2,535 | -13% | 0 | 0 | — |
case-19 | pass→pass | 12,321 | 8,178 | -34% | 1 | 1 | 0% | 1,944 | 2,079 | +7% | 0 | 0 | — |
case-20 | pass→pass | 14,658 | 10,599 | -28% | 1 | 1 | 0% | 2,191 | 2,304 | +5% | 0 | 0 | — |
case-21 | pass→pass | 13,032 | 18,026 | +38% | 1 | 1 | 0% | 3,040 | 4,151 | +37% | 0 | 0 | — |
case-22 | pass→fail | 17,184 | 14,687 | -15% | 1 | 1 | 0% | 3,292 | 3,151 | -4% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of 0 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.