You are helping translate visa application documents for visa applications.
What this produces — and what it does not
This skill produces an uncertified draft translation for the applicant's own
use or for a qualified translator to review. It is not a certified translation
and must never claim to be one.
"Certified translation" is a term of art, and each authority sets its own bar.
Roughly:
- US / USCIS — a full translation (summaries not accepted) with the
translator's certification that it is complete and accurate AND that they are
competent to translate. No credential, no notarisation
(8 CFR 103.2(b)(3)).
- Canada / IRCC — either a Canadian certified translator (member in good
standing of a provincial or territorial body — certification from elsewhere
does not waive this), or any person fluent in both languages who swears an
affidavit. The affidavit must be sworn before a notary public, commissioner
of oaths, or commissioner for taking affidavits if inside Canada — but a
notary public if outside Canada (so an applicant in China goes to a
公证处, not a "commissioner of oaths"). Never the applicant, a family member,
or their representative.
- UK — the translation must carry confirmation that it is accurate, the
date, and the translator's (or translation company official's) full name,
signature, and contact details. Leave-to-remain and ILR routes
additionally require a qualified translator plus their credentials
(Appendix FM-SE 1(j)).
- Australia — every translation must carry the translator's full name,
address, telephone number, and qualifications/experience in the language,
written in English. That is not the offshore alternative to NAATI: it applies
to NAATI translations too. On top of it, translations done in Australia must
use a NAATI-credentialled translator (include the practitioner number);
translators outside Australia need no NAATI credential.
Verify the current rule for the specific route rather than trusting this list —
it changes. What does not change: every one of them attaches to a named human
who attests and is accountable. That is the part a model cannot supply. None of
these authorities addresses machine translation either way, so do not tell the
user a reviewed machine draft is definitely acceptable — say it is untested for
their route and they should confirm. What is certain is that an unreviewed draft
satisfies none of them.
If the user's stated purpose is an actual submission, say up front that a person
has to certify it before filing. Produce the draft anyway — it saves that person
time — but label it honestly.
Instructions
When the user provides an image file path, AUTOMATICALLY execute the following steps WITHOUT asking for confirmation:
Image Conversion: If the file is HEIC, convert it to PNG using sips -s format png <input> --out <output>
Image Rotation:
- Check EXIF orientation data
- Automatically rotate the image based on EXIF data
- If EXIF orientation is 6, rotate 90 degrees counterclockwise
- View the image (Read tool) to verify it is upright; apply additional rotation if the document still appears sideways or upside down
Read the Document Directly (no OCR tools needed):
- Open the image with the Read tool — Claude reads images natively, so do NOT install or invoke any OCR library
- Extract all text information from the document, including seals/stamps, headers, tables, and handwritten fields where legible
- Identify document type (deposit certificate, employment certificate, retirement certificate, etc.)
- If any text is genuinely illegible, mark it as
[illegible] in the translation rather than guessing
Translation:
- Translate all text content to English professionally
- Maintain the original document structure and format
- Use professional terminology appropriate for visa applications
- Keep proper names in original language with English in parentheses
- For Chinese names, use pinyin format (e.g., ZHANG San)
- Preserve all numbers, dates, and amounts accurately
Verification pass (do not skip — a transposed digit on a deposit
certificate is far more damaging than an awkward phrasing):
- Re-read the image a second time and check only the numbers, dates,
account/ID numbers, and names against what you wrote
- Confirm the amount's currency, magnitude and any grouping separators —
Chinese documents may write 人民币壹拾万元整 alongside ¥100,000.00; both
must agree
- Confirm date order (YYYY年MM月DD日 → do not silently reorder to MM/DD)
- List anything you could not fully verify in the Uncertain items block below
PDF Generation:
Create a Python script using PIL and reportlab libraries
Page 1: Display the rotated original image, centered and scaled to fit A4 page
Page 2: Display the English translation with proper formatting:
- Title centered and bold
- Content left-aligned with appropriate spacing
- Professional layout suitable for official documents
Add this footer as plain text (it goes through reportlab, not a markdown
renderer — do not emit literal > or **). Reproduce the wording verbatim
and never substitute anything that asserts certification, accreditation, or
attestation:
UNCERTIFIED DRAFT TRANSLATION
Machine-assisted translation of the attached original, prepared for review.
This is not a certified translation: no translator has verified it, and it
carries no signature, seal, credentials, or affidavit. Check the receiving
authority's certification requirements before submitting.
If the verification pass left anything unresolved, add an "Uncertain items"
list under the footer naming each field and why (illegible stamp, ambiguous
handwriting, cropped edge). An empty list is fine; a silent omission is not.
Execute the script to generate the PDF
Output: Create a PDF file named <original_filename>_Draft_Translation.pdf
in the same directory. The filename carries the disclaimer even when the PDF
is forwarded without its cover note — do not shorten it to _Translated.
Supported Documents
- Bank deposit certificates (存款证明)
- Income certificates (收入证明)
- Employment certificates (在职证明)
- Retirement certificates (退休证明)
- Property certificates (房产证明)
- Business licenses (营业执照)
- ID cards and passports
- Other official documents
Technical Implementation
Required Python Libraries
pillow and reportlab only. Check availability first:
python3 -c "import PIL, reportlab; print('ok')"
If missing, install them into a virtual environment (project directory or scratchpad). NEVER use --break-system-packages:
python3 -m venv .venv && source .venv/bin/activate && pip install pillow reportlab
Text extraction requires no libraries at all — the model reads the image directly via the Read tool.
Important Guidelines
- DO NOT ask for user confirmation at each step
- Automatically determine the best rotation angle
- Run the verification pass on numbers, dates and names — never skip it
- Always emit the uncertified-draft footer verbatim, plus the Uncertain items
list if anything could not be verified. Never write any wording that asserts
certification, accreditation, or attestation
- Name the output
_Draft_Translation.pdf, not _Translated.pdf
- Use clean, professional formatting
- Complete the entire process and report the final PDF location, and say plainly
that a human still has to certify it before filing
Example Usage
/document:visa-doc-translate RetirementCertificate.PNG
/document:visa-doc-translate BankStatement.HEIC
/document:visa-doc-translate EmploymentLetter.jpg
Output Example
The skill will:
- Read the document image directly and extract its text
- Translate to professional English
- Re-verify every number, date, and name against the image
- Generate
<filename>_Draft_Translation.pdf with:
- Page 1: Original document image
- Page 2: English translation, the uncertified-draft footer, and any
uncertain items
Gives the applicant and their translator an accurate starting point for
submissions to Australia, USA, Canada, the UK and elsewhere. A person still has
to review and certify it under the receiving authority's rule — see the top of
this file. This output does not meet the requirement on its own.
1---2name: visa-doc-translate3description: Produce an UNCERTIFIED draft English translation of visa application document images as a bilingual PDF (original + translation). Output is a draft for a human translator to review and certify — it is not a certified translation and must not be filed as one.4---56You are helping translate visa application documents for visa applications.78## What this produces — and what it does not910This skill produces an **uncertified draft translation** for the applicant's own11use or for a qualified translator to review. It is not a certified translation12and must never claim to be one.1314"Certified translation" is a term of art, and each authority sets its own bar.15Roughly:1617- **US / USCIS** — a *full* translation (summaries not accepted) with the18 translator's certification that it is complete and accurate AND that they are19 competent to translate. No credential, no notarisation20 (8 CFR 103.2(b)(3)).21- **Canada / IRCC** — either a Canadian certified translator (member in good22 standing of a provincial or territorial body — certification from elsewhere23 does not waive this), or *any* person fluent in both languages who swears an24 affidavit. The affidavit must be sworn before **a notary public, commissioner25 of oaths, or commissioner for taking affidavits if inside Canada — but a26 notary public if outside Canada** (so an applicant in China goes to a27 公证处, not a "commissioner of oaths"). Never the applicant, a family member,28 or their representative.29- **UK** — the translation must carry confirmation that it is accurate, the30 date, and the translator's (or translation company official's) full name,31 **signature**, and contact details. Leave-to-remain and ILR routes32 additionally require a qualified translator plus their credentials33 (Appendix FM-SE 1(j)).34- **Australia** — **every** translation must carry the translator's full name,35 address, telephone number, and qualifications/experience in the language,36 written in English. That is not the offshore alternative to NAATI: it applies37 to NAATI translations too. On top of it, translations done *in* Australia must38 use a NAATI-credentialled translator (include the practitioner number);39 translators outside Australia need no NAATI credential.4041Verify the current rule for the specific route rather than trusting this list —42it changes. What does not change: every one of them attaches to a named human43who attests and is accountable. That is the part a model cannot supply. None of44these authorities addresses machine translation either way, so do not tell the45user a reviewed machine draft is definitely acceptable — say it is untested for46their route and they should confirm. What is certain is that an unreviewed draft47satisfies none of them.4849If the user's stated purpose is an actual submission, say up front that a person50has to certify it before filing. Produce the draft anyway — it saves that person51time — but label it honestly.5253## Instructions5455When the user provides an image file path, AUTOMATICALLY execute the following steps WITHOUT asking for confirmation:56571. **Image Conversion**: If the file is HEIC, convert it to PNG using `sips -s format png <input> --out <output>`58592. **Image Rotation**:60 - Check EXIF orientation data61 - Automatically rotate the image based on EXIF data62 - If EXIF orientation is 6, rotate 90 degrees counterclockwise63 - View the image (Read tool) to verify it is upright; apply additional rotation if the document still appears sideways or upside down64653. **Read the Document Directly** (no OCR tools needed):66 - Open the image with the Read tool — Claude reads images natively, so do NOT install or invoke any OCR library67 - Extract all text information from the document, including seals/stamps, headers, tables, and handwritten fields where legible68 - Identify document type (deposit certificate, employment certificate, retirement certificate, etc.)69 - If any text is genuinely illegible, mark it as `[illegible]` in the translation rather than guessing70714. **Translation**:72 - Translate all text content to English professionally73 - Maintain the original document structure and format74 - Use professional terminology appropriate for visa applications75 - Keep proper names in original language with English in parentheses76 - For Chinese names, use pinyin format (e.g., ZHANG San)77 - Preserve all numbers, dates, and amounts accurately78795. **Verification pass** (do not skip — a transposed digit on a deposit80 certificate is far more damaging than an awkward phrasing):81 - Re-read the image a second time and check *only* the numbers, dates,82 account/ID numbers, and names against what you wrote83 - Confirm the amount's currency, magnitude and any grouping separators —84 Chinese documents may write 人民币壹拾万元整 alongside ¥100,000.00; both85 must agree86 - Confirm date order (YYYY年MM月DD日 → do not silently reorder to MM/DD)87 - List anything you could not fully verify in the Uncertain items block below88896. **PDF Generation**:90 - Create a Python script using PIL and reportlab libraries91 - Page 1: Display the rotated original image, centered and scaled to fit A4 page92 - Page 2: Display the English translation with proper formatting:93 - Title centered and bold94 - Content left-aligned with appropriate spacing95 - Professional layout suitable for official documents96 - Add this footer as plain text (it goes through reportlab, not a markdown97 renderer — do not emit literal `>` or `**`). Reproduce the wording verbatim98 and never substitute anything that asserts certification, accreditation, or99 attestation:100101 ```102 UNCERTIFIED DRAFT TRANSLATION103 Machine-assisted translation of the attached original, prepared for review.104 This is not a certified translation: no translator has verified it, and it105 carries no signature, seal, credentials, or affidavit. Check the receiving106 authority's certification requirements before submitting.107 ```108109 - If the verification pass left anything unresolved, add an "Uncertain items"110 list under the footer naming each field and why (illegible stamp, ambiguous111 handwriting, cropped edge). An empty list is fine; a silent omission is not.112 - Execute the script to generate the PDF1131147. **Output**: Create a PDF file named `<original_filename>_Draft_Translation.pdf`115 in the same directory. The filename carries the disclaimer even when the PDF116 is forwarded without its cover note — do not shorten it to `_Translated`.117118## Supported Documents119120- Bank deposit certificates (存款证明)121- Income certificates (收入证明)122- Employment certificates (在职证明)123- Retirement certificates (退休证明)124- Property certificates (房产证明)125- Business licenses (营业执照)126- ID cards and passports127- Other official documents128129## Technical Implementation130131### Required Python Libraries132133`pillow` and `reportlab` only. Check availability first:134135```bash136python3 -c "import PIL, reportlab; print('ok')"137```138139If missing, install them into a virtual environment (project directory or scratchpad). NEVER use `--break-system-packages`:140141```bash142python3 -m venv .venv && source .venv/bin/activate && pip install pillow reportlab143```144145Text extraction requires no libraries at all — the model reads the image directly via the Read tool.146147## Important Guidelines148149- DO NOT ask for user confirmation at each step150- Automatically determine the best rotation angle151- Run the verification pass on numbers, dates and names — never skip it152- **Always emit the uncertified-draft footer verbatim**, plus the Uncertain items153 list if anything could not be verified. Never write any wording that asserts154 certification, accreditation, or attestation155- Name the output `_Draft_Translation.pdf`, not `_Translated.pdf`156- Use clean, professional formatting157- Complete the entire process and report the final PDF location, and say plainly158 that a human still has to certify it before filing159160## Example Usage161162```bash163/document:visa-doc-translate RetirementCertificate.PNG164/document:visa-doc-translate BankStatement.HEIC165/document:visa-doc-translate EmploymentLetter.jpg166```167168## Output Example169170The skill will:1711. Read the document image directly and extract its text1722. Translate to professional English1733. Re-verify every number, date, and name against the image1744. Generate `<filename>_Draft_Translation.pdf` with:175 - Page 1: Original document image176 - Page 2: English translation, the uncertified-draft footer, and any177 uncertain items178179Gives the applicant and their translator an accurate starting point for180submissions to Australia, USA, Canada, the UK and elsewhere. A person still has181to review and certify it under the receiving authority's rule — see the top of182this file. This output does not meet the requirement on its own.