docx (anthropics/skills)
anthropics docx: same results as no skill on three Word tasks, plus working files left behind
21.4 / 30
Lift over no skill: -0.30
Situational: the total 21.4/30 is under 22 and the lift -0.30 is under +1.0. Recommended needs a total of 22/30, output quality of 3.5, and a lift of +1.0.
SOTA
PassTested with Codex.
Covers Codex, Claude Code
Codex CLI 0.166 (SOTA tier): 12 graded runs. A pass here also covers Claude Code under our tier rule; it says nothing about the second tier.
Scores
Each dimension is 0 to 5 and the six add up to the total out of 30. 5 is better on every dimension. Cost 5 means cheap and fast. Install 5 means easy.
- Trigger reliability
- 5.0
- Lift over no skill
- 1.7
- Output quality
- 4.7
- Token and time cost
- 3.0
- Install and portability
- 3.0
- Safety
- 4.0
Security review
SafeStatic scan: 0 CRITICAL / 1 HIGH / 7 MEDIUM. Manual review: safe to run (no-network sandbox). A clean scan does not prove a skill safe.
Install
npx skills@latest add anthropics/skills --skill docx
Pinned commit: ca45fc496a3436251f191354091d557da31c15b5
Tested: 2026-11-02
What we tested
- Create a memo — Create memo.docx: a Word memo titled 'Project Falcon status update' on US Letter paper with three headed sections (Summary, Risks, Next steps), a bulleted list of at least four next steps, and a 3-column table (Task, Owner, Due) with three rows. Use real Word…
- Tracked change + comment — In contract.docx change the payment term in clause 2 from 30 days to 45 days as a tracked change authored by 'Reviewer', and attach a comment to that clause saying 'Confirmed with finance'. Do not change anything else. Save the result as contract.docx (edit in…
- Extract table and outline — From report.docx write table.csv (the table, with its header row) and outline.txt (the document's headings, one per line, in order). Do not modify report.docx.
Pros
- The skill was picked up without being named: Skill file read in 6/6 treatment runs.
- High absolute quality with the skill: 4.7 out of 5.
Cons
- No measurable lift over no skill (-0.30, inside the noise).
- The control already scores 5.0: a ceiling effect, so the test cannot show a lift.
- Test caveat: Two-arm test only (no skill vs skill, 12 runs). The one-sentence arm was not run because it needs LibreOffice, which we do not run on the test machines.
- n=2 per task per arm; differences under about 1 point are noise.
Review
Codex CLI 0.166 (gpt-6-astra, low reasoning) on a Mac test machine, a fresh temporary project and temporary HOME/TMPDIR/caches per run, skill installed (treatment) or absent (control), 2 runs per group per task, network off, /tmp writes blocked. The prompts never mention the skill (except the wording noted below). Environment: both groups got the same offline toolkit copied into the run (the npm docx package, python lxml/defusedxml/openpyxl, and a python shim for python3), because the skill assumes these are preinstalled. LibreOffice exists on the Mac but aborts (exit 134) inside the Codex sandbox, so nobody could render a preview.
Three-arm comparison
| Arm | Mean score (0-5) | Tokens per run |
|---|---|---|
| Without the skill | 5.0 | 91k |
| With the skill | 4.7 | 120k |
Measured with Codex CLI over 12 runs, scored by rule-based checks with no LLM judge. Total 21.4 / 30, verdict Situational.
Disclosure: Two-arm test only (no skill vs skill, 12 runs). The one-sentence arm was not run because it needs LibreOffice, which we do not run on the test machines.
Verdict: Situational (21.4 / 30). Source: anthropics/skills, skills/docx, pinned at commit ca45fc4. Install: npx skills@latest add anthropics/skills --skill docx. Licence: Proprietary (LICENSE.txt in skill dir): evaluated read-only, not redistributed.
What it is
The docx skill from Anthropic's skills repo. It tells the agent to create Word files with the docx npm library, edit existing ones by unzipping the XML, and read them with pandoc, and it ships helper scripts for tracked changes and comments (comment.py, accept_changes.py), an XSD validator (office/validate.py) and a LibreOffice wrapper (office/soffice.py). SKILL.md says the libraries are "preinstalled".
How we tested
Codex CLI 0.166 (gpt-6-astra, low reasoning) on a Mac test machine, a fresh temporary project and temporary HOME/TMPDIR/caches per run, skill installed (treatment) or absent (control), 2 runs per group per task, network off, /tmp writes blocked. The prompts never mention the skill (except the wording noted below).
Environment: both groups got the same offline toolkit copied into the run (the npm docx package, python lxml/defusedxml/openpyxl, and a python shim for python3), because the skill assumes these are preinstalled. LibreOffice exists on the Mac but aborts (exit 134) inside the Codex sandbox, so nobody could render a preview.
- Create a memo — Create memo.docx: a Word memo titled 'Project Falcon status update' on US Letter paper with three headed sections (Summary, Risks, Next steps), a bulleted list of at least four next steps, and a 3-column table (Task, Owner, Due) with three rows. Use real Word…
- Tracked change + comment — In contract.docx change the payment term in clause 2 from 30 days to 45 days as a tracked change authored by 'Reviewer', and attach a comment to that clause saying 'Confirmed with finance'. Do not change anything else. Save the result as contract.docx (edit in…
- Extract table and outline — From report.docx write table.csv (the table, with its header row) and outline.txt (the document's headings, one per line, in order). Do not modify report.docx.
Scoring is programmatic (hidden tests / planted-issue recall / constraint checks / render+OCR where relevant), 0–5 per run. No LLM judge decided any score.
Results
| Task | Control score | With skill | Control tokens | With-skill tokens | Skill read |
|---|---|---|---|---|---|
| t1-new | 5.0 | 4.92 | 118k | 107k | 2/2 |
| t2-redline | 5.0 | 4.17 | 86k | 162k | 2/2 |
| t3-extract | 5.0 | 5.0 | 68k | 90k | 2/2 |
Mean score: 5.0 without vs 4.7 with the skill (delta -0.3). Tokens per run: 91k vs 120k (1.32x); time 60s vs 54s.
What happened
- No measurable lift: every run of both groups scored full marks on our structural checks (new memo: US Letter, 3 real headings, 4+ list items, 3-column table, opens in LibreOffice; tracked change by 'Reviewer' plus comment with the other clauses intact; table extracted and outline correct; source untouched).
- The skill is read in 6/6 treatment runs. In the redline task one treatment run used the skill's
comment.pyto add the comment and tried its XSD validator (the call failed, exit 1); the other only readcomment.py --helpand edited the XML itself. The control runs edited the XML directly and got the same result. - Side effect: both treatment redline runs left their working tree in the project (
.edit/or.docx-edit/with the original copy and about 22 unpacked XML files); control runs left nothing. We count that as clutter (small penalty in the score). - Cost: about 1.3x the tokens per run overall; the redline task was about 1.9x (the agent reads the skill and the helper scripts first).
- The preview step the skill recommends (convert to PDF with
soffice.py, then look at the pages) failed with exit 134 in the sandbox in both treatment tasks that tried it, so its main verification loop did not actually run.
Dimension scores
| Dimension | Score | Why |
|---|---|---|
| 1_output_quality | 4.7 | Mean score 4.70/5 with the skill (programmatic checks, see per-task table). |
| 2_lift_vs_no_skill | 1.7 | -0.30 points vs 5.00 without the skill (n=2 per task; under ~1 point is noise). |
| 3_trigger | 5.0 | Skill file read in 6/6 treatment runs. |
| 4_instructions_portability | 3 | |
| 5_efficiency | 3 | 1.32x tokens (120k vs 91k per run) and 0.90x time (54s vs 60s). |
| 6_safety_hygiene | 4 |
Limits of this test
- Three tasks that a baseline agent with Python's zipfile can already do; complex layouts (tables of contents, headers/footers, images) and visual quality were not tested.
- We checked structure, not how the page looks in Word.
- Tracked-change correctness was checked with regexes on the XML, not by opening in Word.
- The skill is proprietary (see licence), so only its behaviour is described.
- n = 2 per group per task: differences under about 1 point are noise.
- Rule-based scoring measures what the checks can see; it cannot judge taste or whether a result is the best possible.
Security
See security.md. Scan: 0 CRITICAL / 1 HIGH / 7 MEDIUM. Verdict: safe to run (no-network sandbox). A clean scan does not prove a skill safe.
Bottom line
No measurable gain over an unaided agent on three ordinary Word tasks, at about 1.3x the tokens and with leftover working files; the skill's own preview step does not run in a sandboxed agent. Its validator and comment helper may still help on harder editing jobs.
Transcript
Run log for docx: Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run. Columns: task, arm-run, score (0-5), tokens, seconds, checks passed, skill files the agent opened. t1-new control-1: score 5.0, tokens 117370, secs 96.2, checks 2/2, opened nothing t1-new control-2: score 5.0, tokens 118677, secs 116.6, checks 2/2, opened nothing t1-new treatment-1: score 4.92, tokens 107319, secs 59.6, checks 1/2, opened docx t1-new treatment-2: score 4.92, tokens 108005, secs 66.9, checks 1/2, opened docx t2-redline control-1: score 5.0, tokens 91990, secs 43.3, checks 2/2, opened nothing t2-redline control-2: score 5.0, tokens 81049, secs 42.9, checks 2/2, opened nothing t2-redline treatment-1: score 4.17, tokens 151502, secs 54.2, checks 1/2, opened docx t2-redline treatment-2: score 4.17, tokens 174205, secs 75.4, checks 1/2, opened docx t3-extract control-1: score 5.0, tokens 68934, secs 30.3, checks 3/3, opened nothing
12 runs, 3 artifacts
Sample output
SOTA · With the skill: final message (t1-new, run 1, Codex)
Created [memo.docx](memo.docx) with US Letter pages, three Word headings, four real bullets, and a three-column table with three task rows. Document structure verified; visual preview was unavailable.