# 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. Use when this capability is needed.

- Skill: `tomevault-io/docx-contracts` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/docx-contracts`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/docx-contracts/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/docx-contracts

---


# docx-contracts

Automated contract and form filling using docxtpl library.

## Workflow

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

1. **Extract schema**: Run `scripts/extract_schema.py <template.docx>` to get variables list and JSON schema. Don't read file. Just launch script.
2. **Gather data**: Extract values from user message context, matching schema fields. Use Claude completion for extraction if needed
3. **Handle missing data**: If any required field is missing or uncertain, ask user directly. Do not guess
4. **Fill template**: Create JSON file with data, then run `scripts/fill_template.py <template.docx> <data.json> <output.docx>`
5. **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`

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/artwist-polyakov) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

