#2001

docx: tracked-change markup has no template, and accept_changes.py rejects .dotx

Opendanvanostrandopened 19d ago

Two related gaps in skills/docx around tracked changes and templates.

1. Tracked-change markup is specified only in prose

SKILL.md:63 describes the OOXML for insertions, deletions, and deleted paragraph marks in a single paragraph:

  • the w:id, w:author, and w:date attributes
  • <w:delText> instead of <w:t> inside <w:del>
  • the deleted paragraph mark
  • the schema-enforced position of <w:del/> among the rPr children

This is the most fragile markup the skill asks the model to produce, and the model has to rebuild it from prose every time. validate.py --author catches mistakes only after the edit is made.

Comments already have exact XML templates and a helper script (comment.py). Tracked changes should get the same treatment: either a copy-paste XML template block for an insertion, a deletion, and a deleted paragraph, or a scripts/redline.py helper that wraps given runs.

2. scripts/accept_changes.py:46 rejects .dotx

if not input_path.suffix.lower() == ".docx":
    return None, f"Error: Input file is not a DOCX file: {input_file}"

The skill's description explicitly covers Word templates (.dotx), but producing a clean copy of a template with tracked changes fails at this check.


Found in an audit of the installed skills against Skill authoring best practices. Checked against main at dbd4588 (2026-10-09).

Activity

3
donaldzitzer406-lang15d ago

Two related gaps in skills/docx around tracked changes and templates.

1. Tracked-change markup is specified only in prose

SKILL.md:63 describes the OOXML for insertions, deletions, and deleted paragraph marks in a single paragraph:

  • the w:id, w:author, and w:date attributes
  • <w:delText> instead of <w:t> inside <w:del>
  • the deleted paragraph mark
  • the schema-enforced position of <w:del/> among the rPr children

This is the most fragile markup the skill asks the model to produce, and the model has to rebuild it from prose every time. validate.py --author catches mistakes only after the edit is made.

Comments already have exact XML templates and a helper script (comment.py). Tracked changes should get the same treatment: either a copy-paste XML template block for an insertion, a deletion, and a deleted paragraph, or a scripts/redline.py helper that wraps given runs.

2. scripts/accept_changes.py:46 rejects .dotx

if not input_path.suffix.lower() == ".docx":
    return None, f"Error: Input file is not a DOCX file: {input_file}"

The skill's description explicitly covers Word templates (.dotx), but producing a clean copy of a template with tracked changes fails at this check.


Found in an audit of the installed skills against Skill authoring best practices. Checked against main at dbd4588 (2026-10-09).