Skip to main content

doc-control

doc-control: let AI agents edit Word documents safely. Deterministic .docx edits, every change a tracked change the writer can reject.

Status: spec and plan approved — implementation starting. See status/specification.md and status/plan.md.

A deterministic tool that lets AI agents work on Word documents quickly, precisely and safely, ideally live in the Word window the writer has open. Every content change is a tracked change the writer can accept or reject.

For anyone — writers and editors first — who wants an AI agent's help inside a Word document without a single silent change. Nothing to install yet; watch the repo for the first release.

Planned shape

  • One core, two engines, one API
    • File engine: edits a closed .docx with the Python standard library only, rewriting only the parts it touches.
    • Live engine: controls the open Word (Windows/COM first, Mac later).
  • Two front doors: a CLI with JSON in/out, and an MCP server (doc-control mcp, stdio) for Claude Desktop / Cowork and other MCP clients.
  • Safety first: lock-file and on-disk change detection, backup before every write, verification, automatic restore, operation log with undo, and unintended_changes == 0 as a gate.
  • No AI inside. Judgment belongs to the agent; approval belongs to the writer.

It will replace docx-fixer, whose rules become packs built on this tool, and serve literary-critic as its first downstream consumer.

MCP server

doc-control mcp serves every operation as an MCP tool over stdio, one tool per operation (para.move becomes para_move), with the same JSON Schemas and the same response envelope as the CLI. It needs nothing beyond the package itself:

{
  "mcpServers": {
    "doc-control": { "command": "uvx", "args": ["doc-control", "mcp"] }
  }
}

Documents

Development

This repo uses claude-arsenal (spec-driven workflow, gated tasks in arsenal/tasks/). See CLAUDE.md.

Same author:

  • claude-arsenal — a Claude Code skill and plugin marketplace: specs before code, failing tests first, gates with numbers.
  • literary-critic — lets an LLM index, analyse and advise on a full novel manuscript the way a professional editor would; doc-control's first planned consumer.
  • drawspec — declarative diagram spec → clean, themeable SVG; JSON with no coordinates, so an LLM can write it.
  • integral-job-search — a candidate-centred job search run as a conversation in Claude Code.

License

Apache-2.0

Metadata

Release files for doc-control 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for doc-control 0.0.1
File Size Uploaded
doc_control-0.0.1.tar.gz 387.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for doc-control 0.0.1
File Interpreter ABI Platform
doc_control-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 633.4 kB

Release files / doc_control-0.0.1.tar.gz

Download URL doc_control-0.0.1.tar.gz
Size 387.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e2218c9e000c4f124041a77ff5329b38ba1a7f707097e73a9ccb323db4fc7474
BLAKE2b-256 checksum
How to use checksums
5b3a2e984b923150b62b24e577deba12b8ef6a8696e321fc8122151417d79fa2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / doc_control-0.0.1-py3-none-any.whl

Download URL doc_control-0.0.1-py3-none-any.whl
Size 246.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7bb2009644d23e5e0976c3e0641e511e0fc0c8c3abea889d3461f07c5f036fa6
BLAKE2b-256 checksum
How to use checksums
00dc5385a333d69eab4a257b72c32b0bba2d445d2798a6a548b5a73bc0a90574
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page