agentleFS
MasihMoafiMasihMoafi/skills/word-farsi-docx/SKILL.md

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.

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
  1. Very specific:

    Start from the bundled template perfect-farsi-word.docx in this skill's folder, which already has the right margins, spacing and headings, …

    line 26
  2. Distinctive:

    After all content is added, walk every paragraph and run and reapply RTL and B Nazanin, keeping centred cover paragraphs centred, because …

    line 34
  3. Very specific:

    If the client cannot download Persian filenames, also save an ASCII-named copy and optionally a .zip.

    line 35
  4. Distinctive:

    No empty placeholder squares.

    line 41

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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-docx for 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

  1. Start from the bundled template perfect-farsi-word.docx in this skill's folder, which already has the right margins, spacing and headings, because styling Word from scratch is fragile.
  2. Clear the body but keep w:sectPr, which holds page size, margins and layout; deleting it changes the page geometry.
  3. 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.
  4. Set B Nazanin on every run in all four w:rFonts channels (w:ascii, w:hAnsi, w:cs, w:eastAsia) and in run.font.name, because mixed-script runs fall back to other fonts unless all channels are set.
  5. Rebuild the content as Word structures: headings, normal paragraphs, bullet and numbered lists, Table Grid tables and captioned images, so the document stays editable and its layout consistent.
  6. Set w:spacing explicitly on key paragraphs and headings (for example after = 120), since Word's defaults inflate spacing around Persian text.
  7. 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.
  8. Insert doc.add_page_break() after the cover, after the abstract and between major sections so Word does not reflow them unpredictably.
  9. 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.
  10. 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

SymptomFix
Wrong fontSet w:rFonts in all four channels
RTL looks right but punctuation is wrongAdd w:bidi = 1 to the paragraph properties
Layout changed after editingsectPr was removed; keep it
Download failsSave an ASCII-named copy or zip it

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.