mcpbeat

Docx Contracts

artwist-polyakov/docx-contracts

Fill Word document templates (contracts, forms) with structured data using docxtpl. Use when user uploads a .docx template with {{variables}} and provides data to fill it, or requests contract/form generation from template.

725 tokens
context cost
the whole folder, loaded on every use
3
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
175
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/artwist-polyakov/polyakov-claude-skills --skill docx-contracts

What comes with it

1 606 bytes besides the instruction
scripts/extract_schema.py
scripts/fill_template.py

The instruction itself

3 sections, as written by the author

docx-contracts

Automated contract and form filling using docxtpl library.

Workflow

Be shure, that you recieve docx file. Don't try to read it.

  • Extract schema: Run scripts/extract_schema.py <template.docx> to get variables list and JSON schema. Don't read file. Just launch script.
  • Gather data: Extract values from user message context, matching schema fields. Use Claude completion for extraction if needed
  • Handle missing data: If any required field is missing or uncertain, ask user directly. Do not guess
  • Fill template: Create JSON file with data, then run scripts/fill_template.py <template.docx> <data.json> <output.docx>
  • Deliver: Move result to /mnt/user-data/outputs/ and provide download link. Please don't read output file.

Key Points

  • Template must use Jinja2 syntax: {{VARIABLE_NAME}}
  • All required fields from schema must be filled
  • Ask user for missing data - never invent values
  • Install docxtpl if needed: pip install docxtpl --break-system-packages

How to use it

Copy the folder

Take artwist-polyakov/docx-contracts from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference pip. Without those the skill loads but fails at the first command.