Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Office Document Editor

Professional DOCX/PPTX document editing with tracked changes, formatting preservation, highlights, strikethrough, and Git version control.

MIT-0 · Free to use, modify, and redistribute. No attribution required.
1 · 556 · 5 current installs · 5 all-time installs
byXuan-You Lin@TsukiSama9292
MIT-0
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Overall coherent: the package provides utilities to fetch files, edit DOCX/PPTX, generate diffs, and help with Git commits as advertised. Minor mismatch: the README advertises 'tracked changes' while the implementation applies formatting (highlight/strike/bold/underline) and textual replacements rather than generating Microsoft Word revision-tracked changes (the skill marks edits visually, it does not create Word revision metadata).
Instruction Scope
SKILL.md and included scripts limit actions to fetching files (uploads, URL, SFTP, local), performing edits, generating diffs, and optional Git commit. The scripts reference the agent workspace (~/.openclaw/workspace/media/inbound) and standard tools (curl, sftp, git). They do not read unrelated system config or attempt to exfiltrate data to hidden endpoints.
Install Mechanism
Install uses the 'uv' packaging/virtual-env mechanism (metadata and uv sync). All executable scripts and Python sources are bundled with the skill; there are no remote downloads from arbitrary URLs or extract-from-URL steps in the install metadata.
Credentials
No environment variables, credentials, or config paths are required. The skill uses standard user directories (HOME, ~/.openclaw workspace) and common CLI tools (curl, sftp). SFTP operations rely on the system's sftp client and any user-provided credentials or keys — the skill does not request or store secrets itself.
Persistence & Privilege
The skill does not request always:true and does not modify other skills or system-wide configs. It writes files into its skill workspace and the agent media inbound folder (for uploads), which is expected for this functionality.
Assessment
This skill appears to do what it says: fetch files (uploads/URL/SFTP/local), apply replacements/formatting to DOCX/PPTX, generate diffs, and help commit to Git. Before installing: (1) be aware that 'tracked changes' is implemented as visible formatting (highlights/strike) not Word's revision-tracking metadata; (2) SFTP operations will attempt to connect to hosts you supply and use your system sftp client (you should not supply credentials to untrusted hosts); (3) the skill writes files into your OpenClaw workspace (~/.openclaw/workspace) and can copy edited files back into the workspace media folder—ensure that is acceptable for your data-sensitivity requirements. If you rely specifically on Word's native 'Track Changes' feature, test carefully first. If you want additional assurance, review the scripts locally before running, or run them in an isolated environment.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
latestvk978m6vs8qxj9g0dwxyy5ne6wx81pthv

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

Binsuv, curl

Install

uv
Bins: docx_editor.py, pptx_editor.py, generate_diff.py

SKILL.md

Universal Office Document Editor

Professional document editing for any DOCX/PPTX file from any source.

Quick Reference

TaskApproach
Fetch file from uploadbash scripts/fetch_file.sh upload
Fetch file from URLbash scripts/fetch_file.sh https://example.com/file.docx
Fetch file from SFTPbash scripts/fetch_file.sh sftp://user@host:/path/file.docx
Edit DOCXuv run python scripts/docx_editor.py input.docx output.docx edits.json
Edit PPTXuv run python scripts/pptx_editor.py input.pptx output.pptx edits.json
Generate diffuv run python scripts/generate_diff.py old.docx new.docx diff.md
Interactive modebash scripts/interactive_edit.sh

File Sources

Uploaded Files (Chat Attachments)

# Get latest uploaded DOCX
bash scripts/fetch_file.sh upload output.docx

# Get latest uploaded PPTX
bash scripts/fetch_file.sh upload output.pptx

Location: ~/.openclaw/workspace/media/inbound/file_*.docx

Local Filesystem Paths

# Copy from local path
bash scripts/fetch_file.sh ~/Documents/report.docx output.docx

# Or direct path
bash scripts/fetch_file.sh /absolute/path/file.pptx output.pptx

Public URLs

# Download from URL
bash scripts/fetch_file.sh https://example.com/document.docx output.docx

SFTP/SSH Remote Files

# Fetch via SFTP
bash scripts/fetch_file.sh sftp://user@host:/path/file.docx output.docx

Creating Edit Rules

Create edits.json with your editing instructions:

{
  "description": "Edit description",
  "replacements": [
    {
      "search": "old text",
      "replace": "new text",
      "style": "highlight"
    }
  ],
  "additions": [
    {
      "after": "after this text",
      "text": "add this text",
      "style": "highlight"
    }
  ],
  "slides": [
    {
      "action": "rearrange",
      "order": [0, 2, 1, 3]
    }
  ]
}

Supported Styles

  • replace - Direct replacement
  • highlight - Yellow highlight
  • delete - Strikethrough
  • bold - Bold text
  • underline - Underline

Slide Actions (PPTX only)

  • rearrange - Change slide order
  • add - Add new slide
  • remove - Delete slide

Editing Documents

Edit DOCX

uv run python scripts/docx_editor.py input.docx output.docx edits.json

Features:

  • Paragraph text editing
  • Table cell editing
  • Format preservation
  • Multiple replacements
  • Text additions

Edit PPTX

uv run python scripts/pptx_editor.py input.pptx output.pptx edits.json

Features:

  • Slide text replacement
  • Slide rearrangement
  • Add/remove slides
  • Format preservation

Generate Diff Report

uv run python scripts/generate_diff.py input.docx output.docx diff-report.md

Output: Standard Unified Diff format in Markdown.


Complete Workflow

Step 1: Fetch File

# From upload
bash scripts/fetch_file.sh upload input.docx

# From URL
bash scripts/fetch_file.sh https://example.com/file.docx input.docx

# From local path
bash scripts/fetch_file.sh ~/Documents/file.docx input.docx

Step 2: Create Edit Rules

{
  "description": "IRB Review Response",
  "replacements": [
    {
      "search": "2026 年 2 月 28 日",
      "replace": "2026 年 8 月 31 日",
      "style": "highlight"
    }
  ]
}

Step 3: Execute Edit

uv run python scripts/docx_editor.py input.docx output.docx edits.json

Step 4: Generate Reports

# Unified Diff
uv run python scripts/generate_diff.py input.docx output.docx diff.md

# Convert to Markdown
uv run markitdown output.docx > output.md

Step 5: Version Control

git add *.docx *.md diff.md
git commit -m "Edit: Description of changes"

Interactive Mode

For guided editing:

bash scripts/interactive_edit.sh

This will prompt you through:

  1. File source selection
  2. Edit type selection
  3. Details collection
  4. Output location

Examples

Example 1: Text Replacement with Highlight

{
  "replacements": [
    {
      "search": "February 28, 2026",
      "replace": "August 31, 2026",
      "style": "highlight"
    }
  ]
}

Example 2: Add Text After Question

{
  "additions": [
    {
      "after": "What is the research topic?",
      "text": "[ANSWER] Data Structures and Algorithms",
      "style": "highlight"
    }
  ]
}

Example 3: Rearrange Slides

{
  "slides": [
    {
      "action": "rearrange",
      "order": [0, 2, 1, 3, 4]
    }
  ]
}

Notes

Format Preservation

  • ✅ Text, paragraphs, tables: Fully preserved
  • ✅ Highlights, strikethrough, bold: Supported
  • ⚠️ Complex styles (custom themes): May be lost
  • ❌ Images, charts: Manual handling required

Table Text Replacement

python-docx requires exact match (including spaces, punctuation, newlines) for table text.

Solutions:

  1. Use shorter search strings
  2. Use markitdown to preview table content first
  3. Use exact match in JSON

Git Best Practices

  • Use local Git repo (do not upload to GitHub)
  • Add sensitive files to .gitignore
  • Backup to secure location regularly

Dependencies

  • uv: Package management and virtual environment
  • python-docx: DOCX editing
  • python-pptx: PPTX editing
  • mammoth: DOCX to Markdown conversion
  • markitdown: Universal document conversion
  • curl: URL downloads
  • sftp: SFTP file transfers (optional)

Installation

cd ~/.openclaw/workspace/skills/office-document-editor
uv sync

Troubleshooting

"No replacements made"

Cause: Text doesn't match exactly

Solution:

# Preview content
uv run markitdown input.docx

# Use exact text from preview

"Virtual environment not found"

Solution:

cd ~/.openclaw/workspace/skills/office-document-editor
uv sync

"File not found"

Solutions:

  • Check file path is correct
  • Try uploading the file again
  • Verify URL is accessible
  • Check SFTP credentials

Scripts Reference

fetch_file.sh

Universal file fetcher for all source types.

bash scripts/fetch_file.sh <source> [output_filename]

Sources:

  • upload - Latest uploaded file
  • /path/to/file - Local path
  • https://... - Public URL
  • sftp://... - SFTP remote

docx_editor.py

Edit Word documents with formatting.

uv run python scripts/docx_editor.py input.docx output.docx edits.json

pptx_editor.py

Edit PowerPoint presentations.

uv run python scripts/pptx_editor.py input.pptx output.pptx edits.json

generate_diff.py

Generate Unified Diff reports.

uv run python scripts/generate_diff.py old.docx new.docx diff.md

interactive_edit.sh

Interactive guided editing.

bash scripts/interactive_edit.sh

workflow_complete.sh

Complete automated workflow.

bash scripts/workflow_complete.sh input.docx edits.json

Files

7 total
Select a file
Select a file to preview.

Comments

Loading comments…