Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when reviewing whether a website has a visible, accessible privacy policy link, particularly in the footer navigation.
.claude/skills/thedaviddias-privacy-policy/SKILL.md| Model | Eval pass | Runs |
|---|---|---|
| gemini-3.6-flash | 100% | 19 |
| gemini-3.1-pro-preview | 100% | 2 |
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-21 | ✓→✗ | ▼ Worse | 34% | 0% |
| case-22 | ✓→✓ | = Same ✓ | 1% | 0% |
Collecting user data without a publicly accessible privacy policy violates GDPR (EU), CCPA (California), PIPEDA (Canada), and other regulations — even if the policy is technically published but not linked from the site.
Check whether the website footer contains a link to a privacy policy page. Verify the linked page contains an actual privacy policy with contact information, what data is collected, and user rights. Check that the link is present on all pages, not just the homepage. Confirm the policy discloses retention periods and whether analytics, logging, or monitoring vendors receive user data.
Add a 'Privacy Policy' link to the site footer that appears on every page. Ensure the linked page describes what personal data is collected, why, how it is used, who it is shared with, how long it is kept, and how users can exercise their rights.
Explain why a publicly accessible privacy policy is legally required under GDPR and CCPA, what information it must contain, and how to make it genuinely accessible to users.
Review server config, headers, forms, and integration points related to Link to your privacy policy in the footer. Flag exact responses, cookies, or browser behaviors that violate the rule, and verify them against the effective production-like response.
For full implementation details, code examples, and framework-specific guidance, see references/rule.md.
Rule page: https://frontendchecklist.io/en/rules/privacy/privacy-policy
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-22 | pass→pass | 20,478 | 17,548 | -14% | 1 | 1 | 0% | 3,626 | 3,674 | +1% | 0 | 0 | — |
case-10 | pass→pass | 10,264 | 7,612 | -26% | 1 | 1 | 0% | 1,709 | 1,801 | +5% | 0 | 0 | — |
case-21 | pass→fail | 14,766 | 18,271 | +24% | 1 | 1 | 0% | 3,172 | 4,259 | +34% | 0 | 0 | — |
case-01 | fail→pass | 12,074 | 11,436 | -5% | 1 | 1 | 0% | 2,061 | 2,483 | +20% | 0 | 0 | — |
case-02 | pass→pass | 11,036 | 9,595 | -13% | 1 | 1 | 0% | 2,022 | 2,102 | +4% | 0 | 0 | — |
case-03 | pass→pass | 12,194 | 7,237 | -41% | 1 | 1 | 0% | 2,018 | 1,746 | -13% | 0 | 0 | — |
case-04 | pass→pass | 11,928 | 9,884 | -17% | 1 | 1 | 0% | 2,144 | 2,247 | +5% | 0 | 0 | — |
case-05 | pass→pass | 12,400 | 7,803 | -37% | 1 | 1 | 0% | 2,158 | 1,761 | -18% | 0 | 0 | — |
case-06 | pass→pass | 13,761 | 13,903 | +1% | 1 | 1 | 0% | 2,424 | 3,328 | +37% | 0 | 0 | — |
case-07 | pass→pass | 11,435 | 8,919 | -22% | 1 | 1 | 0% | 1,978 | 1,950 | -1% | 0 | 0 | — |
case-08 | pass→pass | 9,442 | 6,523 | -31% | 1 | 1 | 0% | 1,847 | 1,694 | -8% | 0 | 0 | — |
case-09 | pass→pass | 10,133 | 6,261 | -38% | 1 | 1 | 0% | 1,644 | 1,535 | -7% | 0 | 0 | — |
case-11 | pass→pass | 10,794 | 7,138 | -34% | 1 | 1 | 0% | 1,975 | 1,730 | -12% | 0 | 0 | — |
case-12 | fail→pass | 11,867 | 7,757 | -35% | 1 | 1 | 0% | 1,866 | 1,857 | -0% | 0 | 0 | — |
case-13 | pass→pass | 13,460 | 12,210 | -9% | 1 | 1 | 0% | 2,369 | 2,509 | +6% | 0 | 0 | — |
case-14 | pass→pass | 11,275 | 9,083 | -19% | 1 | 1 | 0% | 2,049 | 1,983 | -3% | 0 | 0 | — |
case-15 | pass→pass | 12,680 | 9,066 | -29% | 1 | 1 | 0% | 2,241 | 2,269 | +1% | 0 | 0 | — |
case-16 | pass→pass | 11,583 | 6,432 | -44% | 1 | 1 | 0% | 2,111 | 1,529 | -28% | 0 | 0 | — |
case-17 | pass→pass | 11,392 | 11,044 | -3% | 1 | 1 | 0% | 2,065 | 2,473 | +20% | 0 | 0 | — |
case-18 | fail→pass | 16,119 | 16,584 | +3% | 1 | 1 | 0% | 3,034 | 3,646 | +20% | 0 | 0 | — |
case-19 | pass→pass | 14,471 | 13,617 | -6% | 1 | 1 | 0% | 2,540 | 2,902 | +14% | 0 | 0 | — |
case-20 | pass→pass | 15,064 | 15,335 | +2% | 1 | 1 | 0% | 2,922 | 3,321 | +14% | 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 +9 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.