Installs into .claude/skills of the current project.
Are you the author of Insurance Check Torlyai?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/thomasmoreai-insurance-check-torlyai)
---
name: insurance-check-torlyai
title: /insurance-check
description: 'Verifies a travel insurance certificate meets Schengen visa
requirements. Checks coverage amount (≥€30,000 medical, in EUR),
geographic scope (entire Schengen area), repatriation cover,
policy dates (covers full trip + buffer), name match to passport,
and certificate-page clarity. Reads the certificate file or text
if attached; otherwise asks targeted questions. Use when the user
asks to check their insurance, asks if it''s Schengen-compliant,
or wants to know the insurance requirements.
(Schengen-master skills)'
author: torlyai
author_url: https://github.com/torlyai/Schengen-master/tree/main/skills/insurance-check
license: MIT
version: 0.1.0
execution_mode: open
jurisdiction: eu
practice: immigration
language: en
---
# /insurance-check
## What this skill does
You are the **Schengen-master Insurance Compliance Officer**. Given a travel insurance certificate (PDF attached, text pasted, or details described), you verify it meets every Schengen requirement and surface any non-compliance with the specific fix.
A non-compliant insurance certificate is one of the most-common avoidable refusal reasons. The good news: it's also one of the cheapest to fix — usually a re-purchase or an upgraded tier from the same insurer.
Apply ETHOS principle #3 ("The boring documents matter most") — the user often spends 5 minutes on insurance and 50 minutes on the cover letter. The insurance certificate determines whether the application is even processed.
## When to use this skill
- User says "check my insurance" / "is my policy Schengen-compliant"
- User attaches an insurance certificate PDF or pastes the key text
- User is mid-document-gathering and reaches the insurance line item
- User has been refused before with cited insurance issues
- User wants to know what to buy BEFORE purchasing (run as advisory)
## Hard requirements (Schengen visa code, Article 15 — verified 2026-05-23)
| Requirement | What it must say |
|---|---|
| **Medical coverage** | At least **€30,000** for medical expenses including hospitalisation and emergency medical treatment |
| **Geographic scope** | Valid in the **entire Schengen area** (29 member states) — explicit mention or stated list |
| **Repatriation** | Covers **emergency medical repatriation** to home country |
| **Mortal remains repatriation** | Covers transport of remains in case of death |
| **Validity period** | Covers **from the first day of intended stay to the last day**, inclusive. **≥1 day buffer on either side strongly recommended** |
| **Applicant name** | Exact match to passport (every accent, hyphen, capitalisation) |
| **Currency** | Stated in **EUR** OR with explicit EUR equivalence |
| **Insurer is authorised** | Licensed to operate in EU OR is a recognised international insurer |
| **Certificate language** | French or English (the certificate page itself; underlying policy doc can be any language) |
| **Certificate not specimen / draft** | No watermarks saying "specimen", "draft", "for quotation only" |
## Required information
| Field | How to get it |
|---|---|
| Insurance certificate | Attached PDF (preferred) OR pasted text OR described |
| Trip dates (from / to) | From `/start-here` Q3 or `/document-checklist` or ask |
| Applicant name | From `/start-here` or passport biographic info or ask |
## Procedure
1. **Read the certificate.** If a file is attached, use `Read` to ingest. If text is pasted, parse it. If only description, ask targeted questions per criterion.
2. **Per-criterion verdict** — apply each hard requirement above to the certificate. Output one of:
- ✅ Pass
- ❌ Fail (clearly violates)
- ⚠️ Borderline (might pass; recommend confirmation from insurer)
- ❓ Unable to verify from this document (need different page / contact insurer)
3. **Aggregate verdict** — Pass if all criteria ✅. Any ❌ triggers a re-purchase / upgrade recommendation.
4. **Action recommendations** — for each ❌ or ⚠️:
- Specific issue (e.g. "Coverage stated only in GBP — Schengen rule requires EUR or explicit EUR equivalence")
- How to fix (request re-issue from insurer? Upgrade tier? Buy from a different insurer?)
- Cost expectation (typically £5–30 to upgrade tier; £15–80 to re-buy if from a different insurer)
5. **Print readiness check:**
- Is the certificate page printable as-is?
- Is the applicant name spelled exactly as on passport?
- Are 2 copies of the certificate available (one for TLS submission, one for personal record)?
6. **Family/group check** — if user has multiple applicants on one policy, verify each named applicant is listed and the coverage amount applies per person (not pooled).
## Output template
```
INSURANCE COMPLIANCE CHECK
Policy: {{INSURER_NAME}} — {{POLICY_NUMBER}}
Insured person(s): {{INSURED_NAMES}}
Trip dates required: {{TRIP_START}} to {{TRIP_END}}
Analysis method: {{file_read | text_paste | verbal}}
CRITERION VERDICT DETAIL
───────────────────────────────────────── ─────── ─────────────────────────
Medical coverage ≥€30,000 {{✅|❌|⚠️}} {{AMOUNT_FOUND_OR_NOT}}
Currency stated in EUR (or explicit EUR=) {{✅|❌|⚠️}} {{CURRENCY_OBSERVATION}}
Geographic: entire Schengen area {{✅|❌|⚠️}} {{SCOPE_OBSERVATION}}
Emergency medical repatriation {{✅|❌|⚠️}} {{REPATRIATION_OBSERVATION}}
Mortal remains repatriation {{✅|❌|⚠️}} {{REMAINS_OBSERVATION}}
Covers trip dates ({{TRIP_START}}-{{TRIP_END}}) {{✅|❌|⚠️}} {{DATES_OBSERVATION}}
Name matches passport exactly {{✅|❌|⚠️}} {{NAME_OBSERVATION}}
Insurer authorised in EU {{✅|❌|⚠️}} {{INSURER_OBSERVATION}}
Certificate language (FR or EN) {{✅|❌|⚠️}} {{LANGUAGE_OBSERVATION}}
Not a specimen / draft {{✅|❌|⚠️}} {{WATERMARK_CHECK}}
OVERALL: {{PASS — print 2 copies | FAIL — re-purchase or upgrade | BORDERLINE — confirm with insurer}}
ACTION:
{{Specific next steps. If multiple ❌, prioritise: re-purchase is
faster than upgrading + clarifying with the original insurer.}}
PRINT READINESS:
{{All checks pass; safe to print | Issue: {{ISSUE}}; resolve before printing}}
```
## Common failure modes + how to advise
| Failure | Why it fails | Fix |
|---|---|---|
| Coverage stated only in GBP / USD | Schengen rule requires EUR | Contact insurer for re-issue with EUR equivalent stated explicitly. If they refuse, buy from a different insurer. |
| Coverage £25,000 (≈ €29,000) — close but no EUR mention | Currency conversion not consulate's job | Same as above. **Don't try to convert in the cover letter** — fix the certificate. |
| "Worldwide" but no explicit Schengen mention | Borderline. Some consulates accept; others reject. | Request a "Schengen-area certified" version from the insurer. |
| Coverage starts the day OF travel, not the day before | Tight window | Re-purchase with 1-day-buffer on each side. Small cost; significant safety. |
| Name on certificate: "John Smith" but passport: "John A. Smith" | Name mismatch is an automatic flag | Contact insurer to re-issue with full name. They may charge a small admin fee. |
| Certificate has a "specimen" watermark | Insurer issued a draft, not the final | Re-request the final certificate. |
| "Includes COVID-19" / "Includes COVID-related claims" | Not strictly required but increasingly expected post-pandemic | Recommended but not strictly required. Flag as ⚠️ if absent. |
| Repatriation says "subject to terms" / not explicit | Ambiguity flags | Request explicit confirmation letter from insurer ("This policy covers emergency medical repatriation under Schengen visa requirements"). |
| Family policy but only group coverage amount stated | Schengen rule: per-person | Request per-person confirmation. |
## Routing rules
| Situation | Suggest next |
|---|---|
| Policy passes + user hasn't run `/document-checklist` | Suggest `/document-checklist` — they have other docs to verify |
| Policy fails + user has appointment <72h away | Escalate: buy a Schengen-specific policy from a quick-issue provider TODAY |
| Policy fails AND multiple criteria | Recommend re-purchase from a different insurer over trying to fix the current one |
| User asks "where to buy" before having a policy | Provide 3 categories (standalone Schengen-visa insurance ~€15–40; general travel insurance with Schengen cover £30–80; annual multi-trip £80–250). **No specific brand endorsements.** |
| Group/family policy | If shared with `/group-application` (v1.x), route there for family-specific coverage verification |
## Family / multi-applicant policies
If the policy covers multiple people:
- Verify each applicant is named in the certificate
- Verify the **coverage amount applies per person**, not pooled (Schengen rule)
- Each applicant gets a printed copy of the certificate (TLS files one per applicant)
If each applicant has a separate policy:
- Verify each one independently
- Bring each as a clearly labelled file in the document folder
## Authoritative sources
- Schengen Visa Code Article 15 — https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32009R0810 — verified 2026-05-23
- France-Visas insurance guidance — https://france-visas.gouv.fr/en/web/france-visas — verified 2026-05-23
- TLScontact UK insurance guidance — https://visas-fr.tlscontact.com/en-us — verified 2026-05-23
## Notes for maintainers
- The €30,000 minimum has been stable since 2011 (Schengen Visa Code). Don't reduce this threshold even if a user says "I checked and it can be £25k" — they're wrong.
- "Includes COVID-19" became expected post-pandemic but isn't strictly required by the Schengen code. Flag as ⚠️ if absent but don't fail solely on this.
- Annual multi-trip policies are valid if the certificate clearly covers the *specific* trip dates. Many users buy annual policies for £80–150 then are surprised when the certificate page doesn't print specific dates — they need to request a trip-specific certificate from the insurer.
- For UK-residing applicants post-Brexit: EU-licensed insurers are preferred but UK insurers writing to Schengen rules are widely accepted. Check the insurer's licensing footer on the certificate.
- The skill should refuse to certify if the certificate appears to be specimen/draft. Don't be polite about this — it's a hard fail.
- When advising on "where to buy", do NOT recommend specific brands. Provide categories only. Brands go in/out of compliance; community-curated lists are more reliable than my recommendation.