From lawvable-awesome-legal-skills
Edits, queries, and transforms .docx files using the SuperDoc CLI. Handles text replacement, tracked changes, redlining, contract markup, template filling, and document review.
How this skill is triggered — by the user, by Claude, or both
Slash command
/lawvable-awesome-legal-skills:docx-processing-lawvableThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use SuperDoc CLI for DOCX work. Use v1 commands (canonical operations and their helper wrappers).
LICENSE.txtreferences/bookmarks-footnotes.mdreferences/citations.mdreferences/comments.mdreferences/content-controls.mdreferences/create.mdreferences/diff.mdreferences/format.mdreferences/headers-footers.mdreferences/hyperlinks.mdreferences/images.mdreferences/index.mdreferences/lists.mdreferences/mutations-apply.mdreferences/mutations.mdreferences/protection.mdreferences/reading.mdreferences/sections.mdreferences/session.mdreferences/tables.mdUse SuperDoc CLI for DOCX work. Use v1 commands (canonical operations and their helper wrappers). Do not default to legacy commands unless explicitly needed for v0-style bulk workflows.
Use superdoc if installed, or npx @superdoc-dev/cli@latest as a fallback.
Before starting any edit workflow, check if running inside VS Code by testing VSCODE_PID. If set, open the target document so the user sees changes live:
if [ -n "$VSCODE_PID" ]; then
for cmd in code code-insiders cursor; do
if command -v "$cmd" > /dev/null 2>&1; then "$cmd" "$DOC_PATH"; break; fi
done
fi
VSCODE_PID is set by VS Code itself — works for any agent extension (Claude Code, Codex, Cline, etc.) and the integrated terminal.Before opening a document for editing, ask the user under which name tracked changes should be attributed:
Use the chosen name in --user-name on open. Convention for email: <name>@lawvable.com.
Always use --tracked on every mutating command unless the user explicitly asks for direct edits.
--tracked is shorthand for --change-mode tracked.TRACK_CHANGE_COMMAND_UNAVAILABLE, fall back to direct edit for that command only.The CLI and the VS Code SuperDoc extension run separate engines — the only sync point is the file on disk.
Call superdoc save after every mutation so changes appear live.
save immediately.save once after the group.save to end of session.Read references/index.md first — it lists all reference files by topic. Then read only the relevant file for your task (e.g., references/track-changes.md for accepting/rejecting changes, references/mutations-apply.md for batch find-and-replace).
Do NOT read all reference files at once — pick only what you need.
For commands not covered in any reference file, use superdoc describe command "<name>" as fallback.
Use mutations apply with text.rewrite + require: "all". Do NOT manually find → parse → build steps.
superdoc open ./contract.docx --user-name "Claude" --user-email "[email protected]"
superdoc mutations apply --atomic true --change-mode tracked --steps-json '[
{"id":"s1","op":"text.rewrite",
"where":{"by":"select","select":{"type":"text","pattern":"Lawvable"},"require":"all"},
"args":{"replacement":{"text":"Google"}}}
]'
superdoc save
superdoc close
require: "all" → every match. "first" → first only. "exactlyOne" → fails if != 1.steps array (see references/commands.md).Use query match (not find) to locate a target, then replace:
superdoc open ./contract.docx --user-name "Claude" --user-email "[email protected]"
superdoc query match --select-json '{"type":"text","pattern":"termination"}' --require exactlyOne
superdoc replace --tracked --target-json '{"kind":"text","blockId":"p1","range":{"start":0,"end":11}}' --text "expiration"
superdoc save
superdoc close
query match returns exact addresses with cardinality guarantees. find does not — use it only for exploration.open, commands run against the active session when <doc> is omitted.superdoc open ./contract.docx --user-name "Claude" --user-email "[email protected]"
superdoc query match --select-json '{"type":"text","pattern":"ACME Corp"}' --require exactlyOne
superdoc replace --tracked --target-json '{"kind":"text","blockId":"p2","range":{"start":0,"end":9}}' --text "NewCo Inc."
superdoc format bold --tracked --block-id p2 --start 0 --end 10
superdoc save
superdoc close
superdoc get-text ./proposal.docx
superdoc get-markdown ./proposal.docx
superdoc info ./proposal.docx
superdoc replace --tracked ./proposal.docx \
--target-json '{"kind":"text","blockId":"p1","range":{"start":0,"end":5}}' \
--text "Updated" --out ./proposal.updated.docx
Stateless mutating commands require --out unless using --dry-run.
--dry-run to preview any mutation without applying.--expected-revision <n> for optimistic concurrency checks.[super-editor] Telemetry: enabled. Use 2>/dev/null when piping JSON. Prefer declarative selectors (mutations apply) over find | parse pipelines.search, replace-legacy, read) exist for v0 compatibility. Use only for multi-file glob workflows.close on dirty state requires --discard or a prior save.npx claudepluginhub lawve-ai/awesome-legal-skillsEdits, queries, and transforms .docx files using the SuperDoc CLI v1 operation surface. Supports stateful multi-step edits, stateless one-off reads and mutations, and previewing changes with dry-run mode.
Reads, edits, redlines, comments on, and creates .docx files via a CLI tool. Use for tracked changes, formatting-preserving replacements, table edits, and building Word reports from Markdown or code.
Reads, creates, edits, redlines, and comments on .docx files (Word documents, contracts, agreements) using a lightweight subagent. Faster alternative to the docx skill.