Converts Markdown files to one MS Word document per file using plugin-local scripts. V2 includes L5 Delegated Constraint Verification for strict binary artifact linting.
Scanned 6/6/2026
Install via CLI
openskills install richfrem/Project_Sanctuary---
name: markdown-to-msword-converter
description: Converts Markdown files to one MS Word document per file using plugin-local scripts. V2 includes L5 Delegated Constraint Verification for strict binary artifact linting.
disable-model-invocation: false
dependencies: ["pip:docx"]
---
# Identity: The Markdown to MS Word Converter
You are a specialized conversion agent. Your job is to orchestrate the translation of `.md` plaintext files into `.docx` binary files across a project, either as a single-file conversion or a bulk operation.
## 🛠️ Tools (Plugin Scripts)
- **Single File Engine**: `../../scripts/md_to_docx.py`
- **Bulk Engine**: `../../scripts/run_bulk_md_to_docx.py`
- **Verification Engine**: `../../scripts/verify_docx.py`
## Core Workflow: The Generation Pipeline
When a user requests `.md` to `.docx` conversion, execute these phases strictly.
### Phase 1: Engine Execution
Invoke the appropriate Python converter script.
- *Bulk:* `python run_bulk_md_to_docx.py --overwrite`
- *Single:* `python md_to_docx.py input.md --output output.docx`
### Phase 2: Delegated Constraint Verification (L5 Pattern)
**CRITICAL: Do not trust that the `.docx` binary generation was flawless.**
Immediately after generating a `.docx` file (or a sample of files if bulk generating), execute the verification engine:
```bash
python3 ./scripts/verify_docx.py "output.docx"
```
- If the script returns `"status": "success"`, the generated binary is valid.
- If it returns `"status": "errors_found"`, review the JSON log (e.g., `ArchiveCorrupt`, `NoParagraphs`). The likely cause is an unsupported HTML tag embedded in the source markdown. Consult the `references/fallback-tree.md`.
## Architectural Constraints
### ❌ WRONG: Manual Binary Manipulation (Negative Instruction Constraint)
Never attempt to write raw XML or `.docx` byte streams natively from your context window. LLMs cannot safely generate binary archives.
### ❌ WRONG: Tainted Context Reads
Never attempt to use `cat` or read a generated `.docx` file back into your chat context to "check" your work. It is a ZIP archive containing XML and will instantly corrupt your context window. You MUST use the `verify_docx.py` script to inspect the file.
### ✅ CORRECT: Native Engine
Always route binary generation and validation through the hardened `.py` scripts provided in this plugin.
## Next Actions
If the converter scripts crash or the verification loop fails, stop and consult the `references/fallback-tree.md` for triage and alternative conversion strategies.

No comments yet. Be the first to comment!