rtl-writing
Skill7 starsChanged 6 days agoMITView on GitHub
Write right-to-left languages — Hebrew (עברית), Arabic (العربية), Persian (فارسی), Urdu — mixed with English technical terms so they render correctly, in chat and in files (Markdown, Word, LaTeX, PowerPoint). Use when the user types /rtl-writing, /academic-students:rtl-writing or the old /hebrew-with-english; when they complain that lines come out flipped, mirrored or with punctuation on the wrong side (\"השורות יוצאות הפוכות\", \"הנקודה קופצת\", \"النص مقلوب\", \"the Arabic is mirrored\"); when they ask for an RTL document, summary or slide deck that contains English terms; or when another skill in this plugin is about to write RTL prose into a file. Once invoked, keep applying it to every later reply until the user says to stop. Do not trigger just because the user wrote in an RTL language, and not for translation requests.
In this repository10 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- academic-writingSkill
- assignment-coachSkill
- assignment-judgeSkill
- exam-prepSkill
- lecture-notesSkill
- moodle-syncSkill
- prompt-injection-scannerSkill
- study-plannerSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 19
Write the reply directly: no reference to read, no checker to run, no draft to retype.
- Distinctive: line 26
Headings, bullets, bold labels, table cells: follow rule 1, header cells included: "## הגדרת Docker", "- הפונקציה fork יוצרת…", "הכלי …
- Distinctive: line 39
If the user reports a line that rendered wrong, fix it.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
RTL writing (Hebrew, Arabic, Persian, Urdu with English terms)
Purpose
Mixed RTL + English text renders by one rule: each line (paragraph, bullet, heading, table cell, bold label)
takes its direction from its first letter. Start a line with an English word, number, symbol, emoji, link
or inline code and the whole line flips left-to-right and its punctuation jumps. So every line opens with an
RTL word. Never translate technical terms: names, commands and terms of art stay in English inside the
sentence. Once invoked, this applies to every later reply until the user says stop. Examples are Hebrew;
for Arabic, Persian or Urdu also read references/arabic-persian-urdu.md once.
Chat replies — write once, no tool call
Write the reply directly: no reference to read, no checker to run, no draft to retype. The rules below are writing habits, applied as each line is written: do not plan the reply line by line in your thinking and do not review it line by line afterwards; think about the content as you would without this skill.
- Hebrew opener on every line. "Python is…" → "השפה Python היא…"; a name → "החברה Marvel…",
"הסרט Iron Man…"; "
mallocreturns" → "הפונקציהmallocמחזירה"; "3 steps" → "שלושה שלבים". Prefixes work too: "ב-Docker", "ה-API", "ל-Python". - Headings, bullets, bold labels, table cells follow rule 1, header cells included: "## הגדרת Docker", "- הפונקציה fork יוצרת…", "הכלי Podman: …", "| הכלי Docker | נפוץ |". Labels that feel like fixed English terms are the usual slip: "Pros:" → "יתרונות:", "Step 1:" → "שלב 1:", "Train:" → "סט ה-Train:".
- After a bold label that ends in English, the next word is Hebrew: "סשן ה-Transformer: מודל…".
- End lines on a Hebrew word, not on English + punctuation: "…ומריצים את
makeבטרמינל.". If no Hebrew ending fits, drop the final period. - Numbers next to English: "Iron Man (2008)" → "הסרט Iron Man משנת 2008"; "-1" → "מינוס 1".
- Code blocks hold no Hebrew (comments and strings in English); the line right after a block opens in Hebrew.
- Last resort for a cell or line that is only a name: prefix the letter א with no space ("אDocker").
The one second look worth taking: headings and bold labels, where most slips happen ("## Replication ו-FSMO" → "## שכפול ו-FSMO roles"). If the user reports a line that rendered wrong, fix it; the full rule set (below) covers rarer cases.
Files you write
Files are checked mechanically, on the file itself (nothing to retype):
- Markdown:
python3 scripts/check_rtl.py FILE --fix→ fix until0 errors(stdin works:-). - Word: set
w:bidi/w:rtl(references/docx.md);python3 scripts/check_docx_rtl.py FILE→ 0 paragraphs without RTL. - LaTeX:
references/latex.md(polyglossia, XeLaTeX). PowerPoint:references/pptx.md(rtl="1"). - Course terminology for a document:
references/glossary/<family>.md(first mention: Hebrew term with the English in parentheses); aCOURSE.mdmay override terms.
Files in this skill
scripts/check_rtl.py— checks Markdown/chat text for every RTL script;--fixsuggests openers;--json.scripts/check_docx_rtl.py— Hebrew/Arabic paragraphs in a.docxthat lackw:bidi.references/chat-markdown.md— the full rule set with every edge case (tables, links, lists, mixed quotes).references/docx.md,references/latex.md,references/pptx.md,references/arabic-persian-urdu.md,references/glossary/.
When this triggers
The user invokes it (/rtl-writing, the old /hebrew-with-english, or a namespaced form); complains that RTL
lines come out flipped or punctuation jumps; asks for an RTL document or slides with English terms; or another
skill is about to write RTL prose into a file. Not for translation, grammar questions, or plain RTL prose with
no English tokens.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

