Catalogskills.sh · igorwarzocha

word

Handle Word document (.docx) creation, editing, and analysis with high-fidelity visual review. Use for professional reports, legal documents, and tracked changes. Use proactively when quality and precise formatting are critical. Examples: - user: "Create a professional report in Word" -> use python-docx with render loops - user: "Draft a legal contract with redlines" -> use ooxml redlining workflow - user: "Extract text from this DOCX while preserving structure" -> use pandoc markdown conversion

UnsafeVerified hub774 installs

Savant verdict: Unsafe

Savant's security policy blocks importing this skill.

Live evaluation

Not evaluated yet. Workspaces can request a live evaluation.

Security assessment

Risk score
73/100
Recommendation
DO NOT INSTALL
Severity
HIGH
Savant decision
Blocked
The security assessment advises against importing or installing this package. Static security analysis completed.

9 patterns found

  • Prompt Injection: <!-- Bold --> <w:r><w:rPr><w:b/><w:bCs/></w:rPr><w:t>Bold</w:t></w:r> <!-- Italic --> <w:r><w:rPr><w:i/><w:iCs/></w:rPr><w:t>Italic</w:t></w:r> <!-- Underline --> <w:r><w:rPr><w:u w:val="single"/></w:high · references/ooxml.md:49 · Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
  • Prompt Injection: <!-- Add for stretch fill with aspect ratio preservation --> <a:stretch> <a:fillRect/> </a:stretch> </pic:blipFill> <pic:shigh · references/ooxml.md:196 · Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
  • Prompt Injection: <!-- Bookmark target -->high · references/ooxml.md:246 · Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
  • Data Exfiltration: os.environ.copy()high · scripts/render_docx.py:92 · Code enumerates, copies, or searches environment variables for secrets. Bulk environment access can collect credentials unrelated to the skill's stated purpose.
  • MCP Least Privilege: Skill declares no tool scope ('permissions' or 'allowed-tools') but code capabilities were detected: env, file_read, file_write, shell.medium · SKILL.md:1 · Without declared permissions the skill's intent is opaque and cannot be validated.
  • Dangerous Code Execution: subprocess.run( [ "soffice", "--headless", "--convert-to", filter_name, "--outdir",medium · references/ooxml/scripts/pack.py:103 · subprocess module calls execute external commands. Without careful input validation, this enables command injection.
  • Dangerous Code Execution: subprocess.run( [ "git", "diff", "--word-diff=plain", "--word-diff-regex=.", # Charmedium · references/ooxml/scripts/validation/redlining.py:153 · subprocess module calls execute external commands. Without careful input validation, this enables command injection.
  • Dangerous Code Execution: subprocess.run( [ "git", "diff", "--word-diff=plain", "-U0", # Zero lines of contexmedium · references/ooxml/scripts/validation/redlining.py:185 · subprocess module calls execute external commands. Without careful input validation, this enables command injection.
  • Dangerous Code Execution: subprocess.run( cmd, check=False, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, env=os.environ.copy(), )medium · scripts/render_docx.py:87 · subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Structure

  • Ships 12 executable scriptsreferences/ooxml/scripts/pack.py, references/ooxml/scripts/unpack.py, references/ooxml/scripts/validate.py, references/ooxml/scripts/validation/__init__.py, references/ooxml/scripts/validation/base.py, …. Review what they do before enabling the skill for agents with tool access.
  • No license declaredConfirm you may reuse this skill before importing it into your repository.

SKILL.md

---
name: word
description: |-
  Handle Word document (.docx) creation, editing, and analysis with high-fidelity visual review. Use for professional reports, legal documents, and tracked changes. Use proactively when quality and precise formatting are critical.
  
  Examples:
  - user: "Create a professional report in Word" -> use python-docx with render loops
  - user: "Draft a legal contract with redlines" -> use ooxml redlining workflow
  - user: "Extract text from this DOCX while preserving structure" -> use pandoc markdown conversion
---
<instructions>
<word_document_professional_suite>

<quality_workflow>
For all professional deliverables, you MUST follow the "Render & Review" loop:
1. **Edit**: Use `python-docx` for structure/styling or the Document library for XML edits.
2. **Render**: Convert to PDF/PNG using `soffice` and `pdftoppm`:
   - `soffice --headless --convert-to pdf document.docx`
   - `pdftoppm -png -r 150 document.pdf page`
3. **Inspect**: Read the generated PNG images. You MUST look for clipped text, overlapping shapes, or misaligned margins.
4. **Fix**: Address defects and repeat the loop until the document is visually flawless.
</quality_workflow>

<technical_workflows>
### 1. Creating New Documents
- **Python**: You SHOULD use `python-docx`. Establish hierarchy with HeadingLevel styles.
- **JavaScript**: You SHOULD use `docx-js`. **Reference**: See `references/docx-js.md` for syntax.
- **CRITICAL**: You MUST NOT use `\n` for line breaks (use Paragraphs). You MUST NOT use Unicode bullets (use numbering config). `PageBreak` MUST be inside a Paragraph.

### 2. Redlining & Tracked Changes
For legal or business review:
- **Initialize**: Use `scripts/document.py`. **Reference**: Read `references/ooxml.md` for XML patterns.
- **Procedure**: Unpack (`unpack.py`), edit XML using the Document Library, then Pack (`pack.py`).
- **Standard**: You MUST only mark text that actually changes. Keep unchanged text outside `<w:del>`/`<w:ins>`.

### 3. Text Extraction
- You SHOULD use **Pandoc** to convert to markdown while preserving structure:
  - `pandoc --track-changes=all path-to-file.docx -o output.md`
</technical_workflows>

<quality_expectations>
- **Client-Ready**: You MUST NOT use Unicode dashes (use ASCII hyphens). No internal AI tokens.
- **Element Ordering**: In `<w:pPr>`, elements MUST follow schema order: Style -> Numbering -> Spacing -> Indent -> Alignment.
- **Visual Fidelity**: Charts and tables MUST be sharp and legible in rendered previews.
</quality_expectations>

</word_document_professional_suite>
</instructions>