word-farsi-docx
Skill8 starsChanged 10 days agoMITView on GitHub
Build a clean, editable Persian (Farsi) Word .docx in B Nazanin from a report, PDF or TeX source with python-docx. Use for Persian Word output, RTL or font problems in .docx, or converting a Persian report to Word.
In this repository17 other files it gives its agents.
- app-controlSkill
- artifactSkill
- clean-systemSkill
- contribution-checklistSkill
- debuggingSkill
- doc-styleSkill
- experiment-workflowSkill
- first-principlesSkill
- latex-authoringSkill
- logoSkill
- multi-agentSkill
- product-designSkill
- project-docsSkill
- reference-driven-productSkill
- specSkill
- tddSkill
- test-auditSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 26
Start from the bundled template perfect-farsi-word.docx in this skill's folder, which already has the right margins, spacing and headings, …
- Distinctive: line 34
After all content is added, walk every paragraph and run and reapply RTL and B Nazanin, keeping centred cover paragraphs centred, because …
- Very specific: line 35
If the client cannot download Persian filenames, also save an ASCII-named copy and optionally a .zip.
- Distinctive: line 41
No empty placeholder squares.
≈ “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
Persian Word documents
Produce a Word-native, RTL-correct Persian .docx in B Nazanin that keeps a clean academic layout.
Goal
- Real Word objects (paragraphs, tables, images), not PDF pages pasted into Word.
- The template's margins, spacing and headings preserved.
- RTL punctuation and alignment correct.
- B Nazanin everywhere, including English inside Persian text.
- Tables, bullets, headings, page breaks and images supported.
Tools
python-docxfor generation and styling.- Optionally, PDF text extraction or page images as a reference; rebuild the content as Word objects.
- For validation, render the final document with a Word-compatible renderer and compare its pages with the reference. If no renderer is available, report the visual check as incomplete.
Steps
- Start from the bundled template
perfect-farsi-word.docxin this skill's folder, which already has the right margins, spacing and headings, because styling Word from scratch is fragile. - Clear the body but keep
w:sectPr, which holds page size, margins and layout; deleting it changes the page geometry. - Set every paragraph to right alignment and add
w:bidi = 1, since Persian can look right while punctuation, numbering and Latin tokens behave wrongly without the RTL flag. - Set B Nazanin on every run in all four
w:rFontschannels (w:ascii,w:hAnsi,w:cs,w:eastAsia) and inrun.font.name, because mixed-script runs fall back to other fonts unless all channels are set. - Rebuild the content as Word structures: headings, normal paragraphs, bullet and numbered lists,
Table Gridtables and captioned images, so the document stays editable and its layout consistent. - Set
w:spacingexplicitly on key paragraphs and headings (for exampleafter = 120), since Word's defaults inflate spacing around Persian text. - Build tables with
doc.add_table, bold the header row and apply RTL and B Nazanin to every cell paragraph and run, because tables show direction and font bugs first. - Insert
doc.add_page_break()after the cover, after the abstract and between major sections so Word does not reflow them unpredictably. - After all content is added, walk every paragraph and run and reapply RTL and B Nazanin, keeping centred cover paragraphs centred, because some operations add runs with default fonts or drop the bidi flag.
- If the client cannot download Persian filenames, also save an ASCII-named copy and optionally a
.zip.
Quality checklist
- Persian punctuation (، ؛ ؟) is correct and stays RTL.
- English terms sit in parentheses and do not break the sentence flow.
- No empty placeholder squares.
- Headings are bold and consistently sized.
- Bullets align correctly in RTL.
- Tables are readable, aligned and do not overflow.
- Images are undistorted and captioned.
- Page breaks fall where intended.
Failures and fixes
| Symptom | Fix |
| Wrong font | Set w:rFonts in all four channels |
| RTL looks right but punctuation is wrong | Add w:bidi = 1 to the paragraph properties |
| Layout changed after editing | sectPr was removed; keep it |
| Download fails | Save an ASCII-named copy or zip it |
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.

