Docx Anthropic
PassAudited by ClawScan on May 1, 2026.
Overview
The skill is coherently focused on Word document creation and editing, with no evidence of exfiltration or credential abuse, but it uses local helper code, external tools, and native/macro execution that users should understand.
This appears appropriate for Word document work. Before installing or invoking it, be comfortable with local document file reads/writes, external document tools, the global npm dependency, and the LibreOffice macro/native shim helpers. For sensitive documents, verify final outputs manually, especially after accepting tracked changes.
Findings (4)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
Installing the package globally can affect the user's wider JavaScript environment and depends on trusting the npm package source.
The skill asks the user to install an unpinned npm package globally. This is directly related to generating DOCX files, but it expands the local dependency trust boundary.
Generate .docx files with JavaScript, then validate. Install: `npm install -g docx`
Install only if needed, prefer a project-local or pinned version where possible, and use a trusted package registry.
Using conversion helpers may compile and run local native code in the LibreOffice process.
The LibreOffice helper may compile bundled C source into a shared library and preload it into soffice when a socket restriction is detected. The source is included and purpose-aligned, but this is native code execution.
env["LD_PRELOAD"] = str(shim) ... subprocess.run(["gcc", "-shared", "-fPIC", "-o", str(_SHIM_SO), str(src), "-ldl"], check=True, capture_output=True)
Run the skill only in an environment where gcc, LibreOffice, and temporary-file execution are acceptable, and review the shim if your environment restricts native code.
Accepting tracked changes through this helper runs a local LibreOffice macro and leaves a temporary LibreOffice profile behind for reuse.
The tracked-change acceptance helper writes and executes a LibreOffice Basic macro from a temporary profile. The macro is included and matches the stated document-redline purpose, but it is still macro execution.
LIBREOFFICE_PROFILE = "/tmp/libreoffice_docx_profile" ... macro_file.write_text(ACCEPT_CHANGES_MACRO) ... "vnd.sun.star.script:Standard.Module1.AcceptAllTrackedChanges?language=Basic&location=application"
Use this helper only for documents you intend to modify, and clear the temporary LibreOffice profile if your environment requires no leftover macros.
A user could believe a document has no remaining tracked changes even if the timeout occurred before the operation completed.
If LibreOffice times out, the helper reports success without verifying that tracked changes were actually accepted. This is a reliability and user-trust issue for a sensitive document-cleanup action.
except subprocess.TimeoutExpired: return (None, f"Successfully accepted all tracked changes: {input_file} -> {output_file}")After accepting tracked changes, open or validate the output document to confirm that redlines and comments are in the intended state.
