[docs/consistency] view issues wiki out of sync with binary + help gaps for move/swap + inconsistent invalid-selector and unknown-prop handling across formats
Environment
- OfficeCLI v1.0.149 (official release binary, officecli-win-x64.exe, SHA256 verified)
- Windows 11 x64; headless tool→CLI invocation (execFile, direct argv)
1. Wiki out of sync with binary (verified against main @ 1f0fd19)
a) "Slide has no title" — removed by design in commit 71e3cf8 (2026-05-18, "fix(pptx/issues): drop 'Slide has no title' structural warning"). The code in main documents it (PowerPointHandler.View.cs ~713-717) and skills/officecli-pptx/SKILL.md:282 already says "(untitled) is expected, not a defect". The command-view-ppt wiki page still lists it. b) "Inconsistent fonts in text box" — removed in commit 211443b1 (2026-06-18) when low_contrast was introduced (the diff removes the run-font comparison block). IssueSubtypes.cs has no font subtypes. c) "Body paragraph missing first-line indent" — present, but the wiki says "first-line indent drift" while the binary emits a per-paragraph issue with a CJK-flavored suggestion ("Set first-line indent to 2 characters"; the predicate accepts ANY firstLine > 0). On a typical Spanish docx, 100% of Normal paragraphs trigger it (×400 grouped), diluting other signals.
Repros:
- Slide lacking title placeholder →
view issues→ 0 Structure issues. - Textbox with 2 runs of different a:latin typefaces → 0 issues.
Possible fixes: (1) sync the wiki pages; (2) the code comment already proposes a dedicated audit mode as the home for this structural/a11y lint (e.g. opt-in view issues --audit); (3) make the indent check locale-aware or drift-based.
2. office_help <format> move|swap returns EMPTY output on all three formats
Repro: officecli help docx move, help xlsx move, help pptx swap → empty stdout. add/set/get/remove/query/view return full references. Callers that surface help verbatim return nothing to the model/agent.
Suggested fix: add reference sections for move/swap (the post-removal index semantics deserve documentation — see below).
3. move index semantics: post-removal splice (undocumented)
Observed: [P1,P2,P3,P4] + move /body/p[1] --to /body --index 2 → [P2,P3,P1,P4] — the index is applied to the list AFTER removing the moved element (standard splice semantics), not "insert before the element currently at that position" (which would give [P2,P1,P3,P4]). The two interpretations only differ for backward moves, which is why ad-hoc tests miss it. Please document (post-removal splice), or consider emitting the effective result position in the move confirmation so agents can self-verify.
4. Invalid selector handling differs by format
- docx:
query "nonsense[[["→ structured errorinvalid_selectorwith supported operators and suggestion (good). - xlsx:
query "%%%badselector"→ returns ALL cells, no error (match-all). - pptx:
query "!!invalid!!"→ returns all slides' shapes, no error (match-all).
Risk: a malformed selector silently returns everything, which can lead to accidental bulk edits. Suggested fix: consistent invalid_selector error across formats (or at least a warning in the JSON envelope).
5. Unknown props: silently discarded on add, generic error on set
add --type run --prop hyperlink=https://...(hyperlink is not a run property) → command succeeds, property silently dropped (no warning, no rel created).set --prop colr=red(typo) → genericengine_errorexit 2 without naming the offending property (the README documents property auto-correction with suggestions, but neither behavior matches it).
Suggested fix: consistent unknown-property behavior (suggest-nearest-name error like the README describes, or at least a warning in the JSON envelope for silently discarded props). Note also: add --type hyperlink props differ per format (docx: url/text; pptx: parent must be a shape and the prop is link; xlsx: hyperlink is not an element type at all — cells use a link property).
6. Minor: docx annotated under-reports run formatting
highlight, caps, vertAlign (sub/superscript), color and size overrides are applied (verified in XML and rendered PNG) but not shown in the annotated summary line (only font/size/bold/italic/underline/strike appear).
What we confirmed works well
text-overflow detection with exact computation and suggest.height, low_contrast, slide_field_not_evaluated, broken_part_ref, OpenXML validate on all three formats, scale dedup grouping, atomic batch rollback with automatic resident restart, OFFICECLI_RESIDENT_FLUSH=each persistence, charts with live series re-evaluation from =SUM cells, and template merge across paragraph/table/header.
Source: iOfficeAI/OfficeCLI