itut-drafting

ITU-T-specific contribution document drafting: template structure, header table fields, style-name mapping, equation conventions, and batch workflows. Use when preparing or editing ITU-T contribution .docx files (C-series or TD-series). Delegates formatting rules to sdo-docx-formatting and officecli operations to sdo-docx-operations.

jr2804/prompts23 installsMITSynced Aug 26

Works with

Claude CodeCursorCodex CLIGitHub CopilotGemini CLI

Agent Skills format with YAML frontmatter. Claude Code reads it as-is.

---
name: "itut-drafting"
description: "ITU-T-specific contribution document drafting: template structure, header table fields, style-name mapping, equation conventions, and batch workflows. Use when preparing or editing ITU-T contribution .docx files (C-series or TD-series). Delegates formatting rules to sdo-docx-formatting and officecli operations to sdo-docx-operations."
license: "MIT"
---

# ITU-T Contribution Drafting

Use this skill for ITU-T-specific document structure, template conventions,
and concrete Word style names. For formatting rules (headings, enumerations,
notes, tables, figures, citations), see `sdo-docx-formatting`. For officecli
operations (tab-run injection, field codes, bookmarks), see
`sdo-docx-operations`.

## Critical rules from delegated skills

These key constraints are inlined here to reduce cross-referencing:

**From `sdo-docx-formatting`:**

- Apply formatting through **named styles** from the template, never manual
  overrides (bold, italic, font size, colour).
- Keep numbering **update-safe** — use SEQ fields and bookmarks, never
  hard-coded numbers.
- Use **non-breaking spaces** (`\u00a0`) for semantic units (number+unit,
  Figure/Table+number).
- Use **real tab runs** (`<w:tab/>`), never spaces, for structural tabs
  (heading number+title, enumeration bullet+text, note label+text).

**From `sdo-docx-operations`:**

- Open in resident mode (`officecli open <doc>`) before multi-step edits;
  close at end.
- Prefer style/ordinal or explicit XPath targeting, not paraId targeting.
- Never use `raw-set --action replace` with an empty XML payload.
- Always preserve non-breaking spaces and explicit tab runs.
- Validate with `officecli validate <doc>` after every major batch update.

## Assets

- `assets/template.docx` -- canonical ITU-T contribution Word template with
  all required styles and header structure (9-row header table, abstract
  table, running header, footer). Copy or use as reference when starting a
  new contribution. This is a user-provided template carrying ITU-T branding,
  predefined styles, and placeholder content. Do **not** modify the original;
  always work on a copy.
- `assets/itu-t-sg12-contribution-template.docx` -- downloaded official ITU-T
  contribution template (SG12 example) for reproducible offline use.
- `assets/itu-t-sg12-liaison-statement-template.docx` -- downloaded official ITU-T
  Liaison Statement template (SG12 example) for drafting outgoing LS documents.
- `../itut-recommendations/assets/itu-t-recommendation-skeleton.docx` --
  downloaded official ITU-T Recommendation skeleton for style-baseline checks.

## Canonical ITU-T template sources (online)

These are the upstream sources for the downloaded assets above:

- Contribution template (example SG12):
  `https://www.itu.int/dms_pub/itu-t/oth/0A/0F/T0A0F00002F0012MSWE.docx`
- Liaison Statement template (example SG12):
  `https://www.itu.int/dms_pub/itu-t/oth/0A/0F/T0A0F00000B0006MSWE.docx`
- New Recommendation skeleton (latest Word styles baseline):
  `https://www.itu.int/en/ITU-T/studygroups/Documents/Doc-ITUT-Recs-Skelet.docx`

### Template selection rule

- For **meeting contributions**: start from
  `assets/itu-t-sg12-contribution-template.docx`.
- For **outgoing Liaison Statements**: start from
  `assets/itu-t-sg12-liaison-statement-template.docx`.
- For **Recommendation drafting or style refresh checks**: use
  `../itut-recommendations/assets/itu-t-recommendation-skeleton.docx`
  to confirm style definitions (including appendix and bibliography headings).
- Use the online URLs only to refresh these local files when needed.

______________________________________________________________________

## ITU-T style-name mapping

Concrete Word style IDs for ITU-T documents. Use these when applying
formatting rules from `sdo-docx-formatting`.

| Abstract name (`sdo-docx-formatting`) | ITU-T concrete style ID | Notes |
|---|---|---|
| `body-text` | `Body Text` | If absent, fall back to `Normal`; verify with `officecli get <doc> /styles` |
| `heading-1` | `Heading 1` | Section headings (numbered) |
| `heading-2` | `Heading 2` | Subsection headings |
| `heading-3` | `Heading 3` | Sub-subsection headings |
| `enum-1` | `enumlev1` | First-level enumeration |
| `enum-2` | `enumlev2` | Second-level enumeration |
| `enum-3` | `enumlev3` | Third-level enumeration (if used) |
| `table-caption` | `Table_No & title` | officecli styleId: `TableNotitle` |
| `table-header` | `Table_head` | officecli styleId: `Tablehead` |
| `table-data` | `Table_text` | officecli styleId: `Tabletext` |
| `table-note` | (varies by template) | If not found in template, omit styling and add a TODO comment for manual review |
| `figure-para` | `Figure` | Paragraph containing image |
| `figure-caption` | `Figure_No & title` | Below figure |
| `figure-note` | (varies by template) | If not found in template, omit styling and add a TODO comment for manual review |
| `note-main` | `Note` | Last note in block |
| `note-continuation` | (varies by template) | If not found in template, omit styling and add a TODO comment for manual review |
| `reference-entry` | `References` | Each references entry (normative references *and* bibliography entries) |
| `appendix-heading` | `Appendix_No & title` | Non-integral (informative) appendix headings |
| `bibliography-heading` | `Appendix_No & title` | Bibliography clause heading (same style as appendix) |
| `code-text` | `Macro Text` | officecli styleId: `MacroText` |

Additional ITU-T-specific styles (no abstract equivalent):

| Style ID | Purpose |
|----------|---------|
| `Equation` | Display equation paragraph (centred equation + right-aligned label via tab stops) |
| `Equation_legend` | officecli styleId: `Equation_legend` -- annotation paragraph following equation |
| `Headingb` | Sub-headings within a proposed clause block (not auto-numbered) |
| `TSBHeaderSummary` | Abstract table cell content |

______________________________________________________________________

## Bibliography clause

The **Bibliography** is an optional, non-normative clause that lists
informative references. It appears as the **very last element** of a
Recommendation, after all integral and non-integral annexes.

### Three mandatory rules — never drop any of them

1. **Heading style** — Use style `Appendix_No & title` (abstract:
   `bibliography-heading`), **not** `Heading 1`. The Bibliography is a
   non-integral appendix in ITU-T, so it shares the appendix heading style.
   Write the heading text as `Bibliography` without a number prefix.

2. **Page break before heading** — Insert a page break immediately before
   the `Bibliography` heading paragraph. Apply it as a paragraph property
   (`w:pageBreakBefore` = `true`, or `pageBreakBefore: true` in the
   officecli `set` command) on the heading paragraph itself — **do not**
   insert a separate empty paragraph with a manual page break.

   ```json
   { "command": "set",
     "path": "/body/p[<bibliography-heading-ordinal>]",
     "props": { "style": "Appendix_No & title",
                "pageBreakBefore": true,
                "text": "Bibliography" } }
   ```

3. **Entry style** — Each bibliography entry uses style `References`
   (abstract: `reference-entry`) — the **same** style as normative
   reference entries in clause 2. Do not use `Body Text`, `Normal`, or
   any other style for bibliography entries.

### Entry format

Format identical to normative references:

```
[N]\t<citation text>
```

- Square-bracket-wrapped `{SEQ Ref \* ARABIC}` field (no hard-coded number).
- Real `<w:tab/>` run between the bracket and the citation text.
- Bookmark `ref_<short_name>` around the sequence field only.
- Style: `References` on every entry paragraph.

### Common agent failure modes

| Mistake | Correct behaviour |
|---------|-------------------|
| Using `Heading 1` for the Bibliography heading | Use `Appendix_No & title` |
| Omitting the page break before Bibliography | Set `pageBreakBefore: true` on the heading paragraph |
| Styling entries with `Body Text` or `Normal` | Apply `References` style to every entry |
| Hard-coding `[1]`, `[2]` as plain text | Use `{SEQ Ref \* ARABIC}` field with bookmark |

______________________________________________________________________

## Template structure

ITU-T contribution documents use a structured header **table** (not
paragraphs). This differs from 3GPP.

### Header table (`/body/tbl[1]`)

9 rows with the following cell layout:

| Row | Cell | Content |
|-----|------|---------|
| tr[1]/tc[3] | Document number | 3rd run is the highlighted placeholder; set text to `0xxx` |
| tr[4]/tc[2] | Question(s) | e.g. `Question 9/12` |
| tr[4]/tc[3] | Place and date | e.g. `Geneva, 09-17 June 2026` |
| tr[6]/tc[2] | Source organization | e.g. `HEAD acoustics GmbH` |
| tr[7]/tc[2] | Title | Contribution title |
| tr[8]/tc[2] | Contact 1 | Tab-separated: `Name\tOrganization\tCountry` |
| tr[8]/tc[3]/p[1]/r[4] | Tel number | Highlighted run |
| tr[8]/tc[3]/p[1]/r[8] | E-mail | Highlighted run |
| tr[9] | Contact 2 | Clear with `""` if unused |

### Abstract table (`/body/tbl[2]`)

1 row x 2 cells: `"Abstract:"` label (tc[1]) + content (tc[2]/p[1]).

### Running header

`/header[1]/p[@paraId=00100052]/r[4]` -- document number (e.g. `SG12-C0xxx`).

### Instruction paragraphs to delete

Remove all 8 yellow-highlighted instruction paragraphs (paraIds
`0010003A` through `00100048`) using `remove` commands in a setup batch
before adding content.

### Horizontal rule

`/body/p[@paraId=0010004C]` -- `_______________________` separator.

### First content paragraph

`/body/p[@paraId=0010004E]` -- empty paragraph after the rule; first
content goes after this.

> **Key finding:** The ITU-T template may NOT contain a `Body Text` style.
> If absent, use `Normal` for body paragraphs. Always verify with
> `officecli get <doc> /styles --depth 1` on any new template.

______________________________________________________________________

## Liaison Statement template structure

The LS template (`assets/itu-t-sg12-liaison-statement-template.docx`) uses an
11-row header table. This differs from the contribution template above.

### Header table (`/body/tbl[1]`)

| Row | Cell | Content | Style |
|-----|------|---------|-------|
| tr[1]/tc[2] | Question(s) | e.g. `4/12` | `TSBHeaderQuestion` |
| tr[1]/tc[4] | Meeting | e.g. `Geneva, 9-17 June 2026` | `VenueDate` (right-aligned) |
| tr[2]/tc[2] | Study Group | e.g. `12` | `Normal` |
| tr[2]/tc[4] | Working Party | e.g. `WP1/12` | `Normal` |
| tr[3]/tc[2] | Source | e.g. `ITU-T Study Group 12` | `TSBHeaderSource` |
| tr[4]/tc[2] | Title | LS title | `TSBHeaderTitle` |
| tr[5] | "LIAISON STATEMENT" banner | merged across all 6 columns, centred | `Normal` + bold |
| tr[6]/tc[2] | For action to | e.g. `ITU-T Q10/21` | `LSForAction` |
| tr[7]/tc[2] | For information to | e.g. `ITU-T SG21` | `LSForInfo` |
| tr[8]/tc[2] | Approval | e.g. `Q4/12 rapporteur group meeting...` | `LSApproval` |
| tr[9]/tc[2] | Deadline | e.g. `1 September 2026` | `LSDeadline` |
| tr[10]/tc[2] | Contact 1 — Name/Org/Country | Tab-separated fields | `Normal` |
| tr[10]/tc[3] | Contact 1 — Tel/E-mail | Tab-separated with labels | `Normal` + tabs @ 794 twips |
| tr[11] | Contact 2 | Clear with `""` if unused | `Normal` |

**Note:** The LS template has 6 table columns (not 2). Cells use `colspan`
and `rowspan`:

- tr\[1\]: 4 visible cells with colspans 1/2/2/1
- tr[3] onward: cells span across all 6 columns

Populate via officecli batch targeting the style names rather than paraIds:

```json
[
  { "command": "set", "path": "/body/tbl[1]/tr[1]/tc[2]/p",
    "props": { "text": "4/12" } },
  { "command": "set", "path": "/body/tbl[1]/tr[4]/tc[2]/p",
    "props": { "text": "LS on ...", "style": "TSBHeaderTitle" } }
]
```

### LS-specific fields

- **Abstract** is in a separate table (`/body/tbl[2]`), same structure as
  the contribution template.
- The LS body follows after the abstract table, with no instruction
  paragraphs to delete (unlike the contribution template).
- The first body paragraph is at `/body/p[paraId=70FBDF66]` in the template.

______________________________________________________________________

## Equation conventions

### Display equations (numbered, standalone)

Use a **single paragraph** with style `Equation` containing
`\t[equation]\t(<SEQ EQ>)`. The `Equation` style has two tab stops:
first centred at 4820 (for the equation), second right-aligned at 9639
(for the label). This centres the equation and right-aligns the label
on the same line. Set paragraph `alignment: left` so the tab stops
(not paragraph justification) control positioning — `left` here means
"do not centre-justify the paragraph itself," not "left-align the
equation."

Target structure:

```
[p intro sentence]
[p style=Equation]  <- \t + oMath + \t + (EQ_seq_result)  -- one paragraph
[p style=Equation_legend]  <- "where..." annotation paragraph
```

**Numbering:** Do NOT hard-code equation numbers. Use `{SEQ EQ \* ARABIC}`
for automatic numbering. Wrap the label `(SEQ)` in a bookmark named
`EQ_<short_name>` (e.g., `EQ_MOSK`, `EQ_XPLUS`). Cross-reference in body
text with `{REF EQ_<short_name>}`.

Build with officecli in order:

```json
[
  { "command": "set", "path": "/body/p[@paraId=XXXX]",
    "props": { "style": "Equation", "alignment": "left", "text": "\t" } },
  { "command": "add", "parent": "/body/p[@paraId=XXXX]", "type": "equation",
    "props": { "mode": "inline", "formula": "..." } },
  { "command": "add", "parent": "/body/p[@paraId=XXXX]", "type": "run",
    "props": { "text": "\t(" } },
  { "command": "add", "parent": "/body/p[@paraId=XXXX]", "type": "field",
    "props": { "code": "SEQ EQ \\* ARABIC", "bookmark": "EQ_NAME" } },
  { "command": "add", "parent": "/body/p[@paraId=XXXX]", "type": "run",
    "props": { "text": ")" } }
]
```

**IMPORTANT:** Do NOT combine `ind.left` with `alignment` in a single
`add` paragraph command. officecli emits `w:ind` AFTER `w:jc` in the
OOXML, violating the schema. Use a separate `set` call to add indentation
after creation.

### Inline equations in body text

Rebuild paragraphs with mixed text + inline equations as a sequence of
`set` + `add` commands (run, equation, run, ...). Each JSON array
passed to `officecli batch` must contain at most 12 JSON command objects.
If more are needed, split into sequential batch calls.

### Known KaTeX constraints

| Forbidden | Use instead |
|---|---|
| `\text{word}` | `\mathrm{word}` |
| `\left(...\right)` with sub/superscripts inside | plain `(...)` -- OMML auto-sizes |
| `\tag{label}` | Put label in the same paragraph with tab |
| `\mathcal{L}` | `\mathit{L}` |

______________________________________________________________________

## Term formatting (clause 3 Definitions)

Terms in clause 3 (both 3.1 "Terms defined elsewhere" and
3.2 "Terms defined in this Recommendation") use **pseudo-subclause**
formatting:

- Numbered like subclauses (3.1.1, 3.1.2, ...) but are NOT heading
  paragraphs — they do NOT appear in the table of contents

- Style: `Normal` (body-text style, fallback if `Body Text` absent)

- Each term is a single paragraph in the format:

  `<bold>3.1.N\tTERM NAME</bold>: definition text`

### Run structure

| Run | Content | Format |
|-----|---------|--------|
| r[1] | `3.1.N` (number prefix) | bold |
| r[2] | `<w:tab/>` | bold (on run) |
| r[3] | term name | bold |
| r[4] | `: ` + definition text | normal |

### Tab stop

The ITU-T template's `Normal` style does **not** include a tab stop at
1.5 cm. Each term paragraph must have this added manually:

```xml
<w:pPr>
  <w:tabs>
    <w:tab w:val="left" w:pos="851"/>
  </w:tabs>
</w:pPr>
```

851 twips = 1.5 cm. Use `raw-set` to inject this since officecli L2
`set` on a paragraph with revision marks does not create tracked
changes.

### Creating terms with tracked changes

Since officecli L2 `set`/`add` does not create revision marks, terms
must be built via `raw-set` with the content wrapped in `w:ins`
elements:

```xml
<w:p xmlns:w="..." xmlns:w14="..." w14:paraId="PARAID">
  <w:pPr>
    <w:tabs>
      <w:tab w:val="left" w:pos="851"/>
    </w:tabs>
  </w:pPr>
  <w:ins w:author="Author Name" w:date="..." w:id="...">
    <w:r>
      <w:rPr><w:b/></w:rPr>
      <w:t xml:space="preserve">3.1.N</w:t>
    </w:r>
    <w:r>
      <w:rPr><w:b/></w:rPr>
      <w:tab/>
    </w:r>
    <w:r>
      <w:rPr><w:b/></w:rPr>
      <w:t xml:space="preserve">TERM NAME</w:t>
    </w:r>
    <w:r>
      <w:t xml:space="preserve">: definition text</w:t>
    </w:r>
  </w:ins>
</w:p>
```

Replace the target paragraph via:

```
officeli raw-set <doc> /document \
  --xpath '//w:p[@w14:paraId="PARAID"]' \
  --action replace \
  --xml '<w:p>...</w:p>'
```

### Notes attached to terms

A `Note`-style paragraph that belongs to a term (e.g., clarifying a
definition) stays after the term paragraph with style `Note`. These are
not pseudo-subclauses — use the standard note formatting convention.

______________________________________________________________________

## Table and figure numbering (per-clause counters)

ITU-T Recommendations use **per-clause** SEQ field counters for tables
and figures. This differs from the generic `sdo-docx-formatting` convention
(global `SEQ Figure` / `SEQ Table`).

### SEQ field naming

| Element | SEQ field name | Bookmark prefix | Caption style ID |
|---------|---------------|-----------------|-------------------|
| Figures | `FIG<N>` where N = clause number | `FIG_` | `FigureNotitle0` (`Figure_No & title`) |
| Tables | `TAB<N>` where N = clause number | `TAB_` | `TableNoTitle` (`Table_No & title`) |

Examples:

- Clause 6 figures: `SEQ FIG6`, bookmarks `FIG_EQUIPMENT_*`
- Clause 8 tables: `SEQ TAB8`, bookmarks `TAB_SETUP_*`

### Caption structure

```
Figure\u00a0<N>-{SEQ FIG<N>}: caption text
Table\u00a0<N>-{SEQ TAB<N>}: caption text
```

- The clause-number prefix (`6-`) is hardcoded text before the field
- The SEQ field provides the running number within the clause
- A non-breaking space separates "Figure"/"Table" from the number
- The bookmark wraps around the full compound number (`6-1`, `6-2`, etc.)
  — start bookmark before the `6-` run, end bookmark after the field end

### Bookmark naming

Use `FIG_` / `TAB_` prefix followed by a short descriptive name in
UPPER_SNAKE_CASE. Follow the naming scheme already used in the document:

- Look at existing bookmarks in nearby clauses for the naming pattern
- Choose a 1–2 word description that fits the topic
- Examples: `FIG_EQUIPMENT_RRS_SP`, `TAB_SIGNALS_ACCURACYMEASUREMENTS`

### Run-level structure for a correct caption

```
r[1]   run          "Figure "           (non-breaking space)
       bookmark     (around 6-N)         name="FIG_xxx"
r[2]   run          "6-"
r[3]   fieldChar    begin
r[4]   instrText    " SEQ FIG6 "
r[5]   fieldChar    separate
r[6]   run          "N"                 (field result)
r[7]   fieldChar    end
       bookmarkEnd
r[8]   run          ": caption text"
```

### Cross-references

Body text references use `REF` fields pointing to the bookmark:

```
{ REF FIG_EQUIPMENT_RRS_SP \h }
{ REF TAB_SIGNALS_ACCURACYMEASUREMENTS \h }
```

### Procedure: fix table/figure numbering in a clause

When asked to "fix table/figure numbers in clause N", follow this workflow:

1. **Analyse**: Scan all figure/table captions in the clause. For each,
   check:

   - Does it have a `SEQ FIG<N>` / `SEQ TAB<N>` field?
   - Does it have a bookmark with `FIG_` / `TAB_` prefix?
   - Is the number hardcoded (no field) or auto-numbered?
   - Are there duplicate numbers?

2. **Add missing SEQ fields**: For captions with hardcoded numbers,
   replace the hardcoded number with `{SEQ FIG<N>}` / `{SEQ TAB<N>}`.

3. **Add missing bookmarks**: For captions without bookmarks, add a
   bookmark around the compound number (`N-M`). Choose a descriptive
   name that fits the naming pattern of existing bookmarks in that
   clause.

4. **Fix duplicate numbers**: If adding SEQ fields changes the sequence
   order, the field results will auto-update. If a figure/table has a
   duplicate hardcoded number, let the SEQ field resolve it — do not
   assign numbers manually.

5. **Check cross-references**: Search the clause body text for `REF`
   fields. Verify each references a bookmark that still exists with
   the correct name. If a hardcoded reference (plain text "Figure 6-3")
   is found, replace it with a `{REF <bookmark> \h}` field.

6. **Rebuild captions**: Use `raw-set` with `--action replace` targeting
   `//w:p[@w14:paraId="PARAID"]` to replace each caption paragraph with
   a correctly structured one. The replacement XML must include:

   - `w:pPr` with the correct style (`FigureNotitle0` / `TableNoTitle`)
   - Bookmark start/end around the number
   - SEQ field (begin/instrText/separate/result/end)
   - Caption text after the field

7. **Refresh fields**: Run `officecli refresh <doc>` to re-evaluate all
   SEQ and REF fields.

8. **Verify**: Check field results in the raw XML:

   ```bash
   officecli raw <doc> /document | grep -A1 'fldCharType="separate"'
   ```

### Common pitfalls

| Problem | Cause | Fix |
|---------|-------|-----|
| Duplicate figure/table numbers | Missing SEQ field, hardcoded number | Add SEQ field; let field auto-resolve |
| Cross-reference shows wrong number | REF bookmark name doesn't match caption bookmark | Update REF instruction to point to correct bookmark |
| Caption shows empty number | `officecli refresh` didn't update the field | Re-run `officecli refresh`; check raw XML for result |
| Bookmark name doesn't match nearby pattern | Newly invented name inconsistent with document | Review existing bookmarks in clause; match the naming scheme |

______________________________________________________________________

## Heading conventions (ITU-T-specific)

- **No hard-coded numbers in heading text.** The template's heading styles
  have automatic outline numbering. Write just the title: `"Introduction"`
  not `"1\tIntroduction"`.
- `Headingb` style is used for sub-headings *within a proposed clause
  block* (e.g. `"7.5.4 Maximum absolute prediction error (maxabs)"`,
  subsection labels `"a)\tUnconstrained least-squares fit"`). These appear
  in the TOC as `Heading_b` entries but do NOT get automatic numbering.

______________________________________________________________________

## Batch workflow patterns

### General workflow

1. **Start from template**: `Copy-Item "docs\template.docx" -Destination "<output>.docx" -Force`
2. **Resident mode**: `officecli open <doc>` before editing; `officecli close <doc>` at end.
3. **Batch mode**: pipe JSON arrays to `officecli batch <doc>`. Each JSON
   array must contain at most 12 JSON command objects. If more are needed,
   split into sequential batch calls.
4. **Validate frequently**: `officecli validate <doc>` after every major
   batch update.

### Common errors

| Error | Root Cause | Fix |
|-------|-----------|-----|
| Conclusion heading missing | Batch added heading + table together; table `set` commands failed (index didn't exist yet) | Split: add heading separately, then table, then fill with dedicated batch |
| Paragraphs reversed in `add` with `after` | Each `add` with `after: anchor` inserts immediately after the anchor, pushing any previously added paragraphs down | Submit `add` commands in **reverse reading order** (last paragraph first, first paragraph last). The first add ends up furthest from the anchor, the last add ends up closest. |
| `\left\right` with subscripts crashes equation | OMML parser limitation | Use plain `(` `)` delimiters |
| "Body Text" style not found | Template uses `Normal` as body style | Use `Normal` for body paragraphs |
| Running header shows placeholder | Header paragraph r[4] not updated | Target `/header[1]/p[@paraId=00100052]/r[4]` and set text |
| `ind.left` + `alignment` in one command | Schema ordering bug in officecli | Split into separate `add` + `set` calls |

### Indentation for proposed clause text

Text inside a proposed new/amended clause uses `"ind.left":"720"`
(720 twips = 0.5 inch). Sub-items use `"ind.left":"1080"`.

______________________________________________________________________

## Cross-references

- `sdo-project-setup` -- common project bootstrap (layout, metadata sync, autodetection)
- `sdo-docx-formatting` -- formatting rules (delegated; see mapping above)
- `sdo-docx-operations` -- officecli guardrails for raw-set, field codes, bookmarks
- `sdo-writing-style` -- prose quality rules
- `sdo-writing-conventions` -- mechanical writing rules
- `itut-basics` -- ITU-T organisation context
- `itut-contributions` -- contribution types and numbering
- `itut-patents` -- patent policy, IPR disclosure, licensing declarations
- `itut-recommendations` -- Recommendation structure and approval

More General & Other skills

← All General & Other skills

Check your AI visibility

One URL in, a 0–100 score and the exact fixes out.

RUN THE CHECK

Browse all the tools

15 tools across six categories
13 of them never send your data anywhere

Free · No signup · No trial clock

SEE THE DIRECTORY