Repository Analysis

iOfficeAI/OfficeCLI

OfficeCLI is the first and best Office suite purpose-built for AI agents to read, edit, and automate Word, Excel, and PowerPoint files. Free, open-source, single binary, no Office installation required.

18.6 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of iOfficeAI/OfficeCLI, a C# project with 16,634 GitHub stars. SynthScan v2.0 examined 387,412 lines of code across 1005 source files, recording 3535 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 18.6 places this repository in the Moderate AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

18.6
Adjusted Score
18.6
Raw Score
100%
Time Factor
2026-07-14
Last Push
16.6K
Stars
C#
Language
387.4K
Lines of Code
1.0K
Files
3.5K
Pattern Hits
2026-07-14
Scan Date
0.01
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 5HIGH 5MEDIUM 1784LOW 1741

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 3535 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Decorative Section Separators1748 hits · 5378 pts
SeverityFileLineSnippetContext
MEDIUMexamples/excel/shapes.py61 # -----------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/shapes.py63 # -----------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/shapes.py77 # -----------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/shapes.py79 # -----------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/shapes.py93 # -----------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/shapes.py95 # -----------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/shapes.py110 # -----------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/shapes.py112 # -----------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/shapes.py129 # -----------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/shapes.py131 # -----------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/shapes.py158 # -----------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/shapes.py160 # -----------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/data-validation.sh32# ==========================================================================COMMENT
MEDIUMexamples/excel/data-validation.sh34# ==========================================================================COMMENT
MEDIUMexamples/excel/data-validation.sh46# ==========================================================================COMMENT
MEDIUMexamples/excel/data-validation.sh48# ==========================================================================COMMENT
MEDIUMexamples/excel/data-validation.sh72# ==========================================================================COMMENT
MEDIUMexamples/excel/data-validation.sh74# ==========================================================================COMMENT
MEDIUMexamples/excel/data-validation.sh93# ==========================================================================COMMENT
MEDIUMexamples/excel/data-validation.sh95# ==========================================================================COMMENT
MEDIUMexamples/excel/data-validation.sh115# ==========================================================================COMMENT
MEDIUMexamples/excel/data-validation.sh117# ==========================================================================COMMENT
MEDIUMexamples/excel/data-validation.sh133# ==========================================================================COMMENT
MEDIUMexamples/excel/data-validation.sh135# ==========================================================================COMMENT
MEDIUMexamples/excel/slicers.py48 # ==========================================================================COMMENT
MEDIUMexamples/excel/slicers.py51 # ==========================================================================COMMENT
MEDIUMexamples/excel/slicers.py80 # ==========================================================================COMMENT
MEDIUMexamples/excel/slicers.py93 # ==========================================================================COMMENT
MEDIUMexamples/excel/slicers.py103 # ==========================================================================COMMENT
MEDIUMexamples/excel/slicers.py105 # ==========================================================================COMMENT
MEDIUMexamples/excel/slicers.py107 # --------------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/slicers.py120 # --------------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/slicers.py130 # --------------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/slicers.py142 # --------------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/slicers.py151 # --------------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/slicers.py162 # --------------------------------------------------------------------------COMMENT
MEDIUMexamples/excel/slicers.py170 # ==========================================================================COMMENT
MEDIUMexamples/excel/slicers.py176 # ==========================================================================COMMENT
MEDIUMexamples/excel/charts.py156 # ======================================================================COMMENT
MEDIUMexamples/excel/charts.py158 # ======================================================================COMMENT
MEDIUMexamples/excel/charts.py187 # ======================================================================COMMENT
MEDIUMexamples/excel/charts.py189 # ======================================================================COMMENT
MEDIUMexamples/excel/charts.py205 # ======================================================================COMMENT
MEDIUMexamples/excel/charts.py207 # ======================================================================COMMENT
MEDIUMexamples/excel/charts.py242 # ======================================================================COMMENT
MEDIUMexamples/excel/charts.py244 # ======================================================================COMMENT
MEDIUMexamples/excel/charts.py263 # ======================================================================COMMENT
MEDIUMexamples/excel/charts.py270 # ======================================================================COMMENT
MEDIUMexamples/excel/cell-formatting.sh29# ==========================================================================COMMENT
MEDIUMexamples/excel/cell-formatting.sh31# ==========================================================================COMMENT
MEDIUMexamples/excel/cell-formatting.sh63# ==========================================================================COMMENT
MEDIUMexamples/excel/cell-formatting.sh65# ==========================================================================COMMENT
MEDIUMexamples/excel/cell-formatting.sh95# ==========================================================================COMMENT
MEDIUMexamples/excel/cell-formatting.sh97# ==========================================================================COMMENT
MEDIUMexamples/excel/cell-formatting.sh114# ==========================================================================COMMENT
MEDIUMexamples/excel/cell-formatting.sh116# ==========================================================================COMMENT
MEDIUMexamples/excel/cell-formatting.sh142# ==========================================================================COMMENT
MEDIUMexamples/excel/cell-formatting.sh144# ==========================================================================COMMENT
MEDIUMexamples/excel/cell-formatting.sh171# ==========================================================================COMMENT
MEDIUMexamples/excel/cell-formatting.sh173# ==========================================================================COMMENT
1688 more matches not shown…
Over-Commented Block1605 hits · 1446 pts
SeverityFileLineSnippetContext
LOWsdk/python/officecli.py221 breakCOMMENT
LOWsdk/python/officecli.py381 # liveness probe (ping the -ping pipe + verify the served path), not aCOMMENT
LOWsdk/python/officecli.py401 req["Args"] = {k: str(v) for k, v in args.items() if v is not None}COMMENT
LOWsdk/python/officecli.py481 resident, so call this only when you want to check liveness yourself."""COMMENT
LOWsdk/node/index.js341 }COMMENT
LOWexamples/excel/data-validation.sh1#!/bin/bashCOMMENT
LOWexamples/excel/slicers.py81 # The slicer SOURCE — a PivotTable. Slicers anchor to this pivot's cacheCOMMENT
LOWexamples/excel/slicers.py101 "name": "SalesPivot", "style": "PivotStyleMedium9"}})COMMENT
LOWexamples/excel/slicers.py121 print("\n--- Slicer: Region ---")COMMENT
LOWexamples/excel/slicers.py141 # pivots), columnCount=3 (wide grid)COMMENT
LOWexamples/excel/cell-formatting.sh1#!/bin/bashCOMMENT
LOWexamples/excel/pivot-tables.sh1#!/bin/bashCOMMENT
LOWexamples/excel/conditional-formatting.sh1#!/bin/bashCOMMENT
LOWexamples/excel/sparklines.sh1#!/bin/bashCOMMENT
LOWexamples/excel/shapes.sh1#!/bin/bashCOMMENT
LOWexamples/excel/slicers.sh1#!/bin/bashCOMMENT
LOWexamples/excel/workbook-settings.sh1#!/bin/bashCOMMENT
LOWexamples/excel/sheet-settings.sh1#!/bin/bashCOMMENT
LOWexamples/excel/pivot-tables.py141 # --------------------------------------------------------------------------COMMENT
LOWexamples/excel/pivot-tables.py181 # --prop source=Sheet1!A1:J51 \COMMENT
LOWexamples/excel/pivot-tables.py201 layout="outline",COMMENT
LOWexamples/excel/pivot-tables.py241 # officecli add pivot-tables.xlsx "/4-Channel Analysis" --type pivottable \COMMENT
LOWexamples/excel/pivot-tables.py261 grandtotals="both",COMMENT
LOWexamples/excel/pivot-tables.py301 # Sheet: 6-Compact 3-LevelCOMMENT
LOWexamples/excel/pivot-tables.py361 sort="asc",COMMENT
LOWexamples/excel/pivot-tables.py421 name="Top5Products",COMMENT
LOWexamples/excel/pivot-tables.py461COMMENT
LOWexamples/excel/pivot-tables.py501 # --prop 'values=Sales:count,Quantity:min,Quantity:product,Sales:countNums' \COMMENT
LOWexamples/excel/pivot-tables.py521 grandtotals="both",COMMENT
LOWexamples/excel/pivot-tables.py561 # officecli add pivot-tables.xlsx "/14-Statistical" --type pivottable \COMMENT
LOWexamples/excel/pivot-tables.py581 cols="Quarter",COMMENT
LOWexamples/excel/pivot-tables.py621 layout="outline",COMMENT
LOWexamples/excel/pivot-tables.py661 layout="tabular",COMMENT
LOWexamples/excel/charts/charts-basic.sh1#!/bin/bashCOMMENT
LOWexamples/excel/charts/charts-column.sh1#!/bin/bashCOMMENT
LOWexamples/excel/charts/charts-boxwhisker.sh1#!/bin/bashCOMMENT
LOWexamples/excel/charts/charts-histogram.py141 # A single giant chart using EVERY histogram knob at once:COMMENT
LOWexamples/excel/charts/charts-histogram.py181 x="0", y="0", width="27", height="38"),COMMENT
LOWexamples/excel/charts/charts-histogram.py241 overflowBin="95", **LAB,COMMENT
LOWexamples/excel/charts/charts-histogram.py321 #COMMENT
LOWexamples/excel/charts/charts-histogram.py481 # ======================================================================COMMENT
LOWexamples/excel/charts/charts-combo.sh1#!/bin/bashCOMMENT
LOWexamples/excel/charts/charts-extended.py301 # Chart 1: Pareto — defect analysis, raw counts auto-sorted + cumul% overlayCOMMENT
LOWexamples/excel/charts/charts-extended.py341COMMENT
LOWexamples/excel/charts/charts-waterfall.sh1#!/bin/bashCOMMENT
LOWexamples/excel/charts/charts-line.sh1#!/bin/bashCOMMENT
LOWexamples/excel/charts/charts-bar.sh1#!/bin/bashCOMMENT
LOWexamples/excel/charts/charts-bubble.sh1#!/bin/bashCOMMENT
LOWexamples/excel/charts/charts-scatter.sh1#!/bin/bashCOMMENT
LOWexamples/excel/charts/charts-histogram.sh1#!/bin/bashCOMMENT
LOWexamples/excel/charts/charts-pie.sh1#!/bin/bashCOMMENT
LOWexamples/excel/charts/charts-advanced.sh1#!/bin/bashCOMMENT
LOWexamples/excel/charts/charts-radar.sh1#!/bin/bashCOMMENT
LOWexamples/excel/charts/charts-area.sh1#!/bin/bashCOMMENT
LOWexamples/excel/charts/charts-stock.sh1#!/bin/bashCOMMENT
LOWexamples/excel/charts/charts-extended.sh1#!/bin/bashCOMMENT
LOWexamples/word/textbox.sh1#!/bin/bashCOMMENT
LOWexamples/word/numbering.sh1#!/bin/bashCOMMENT
LOWexamples/word/document-formatting.sh1#!/bin/bashCOMMENT
LOWexamples/word/pictures.sh1#!/bin/bashCOMMENT
1545 more matches not shown…
Modern AI Meta-Vocabulary28 hits · 98 pts
SeverityFileLineSnippetContext
MEDIUMsrc/officecli/Core/Chart/ChartHelper.Setter.cs3543 /// dataLabels=… spec. Mirrors the inline scaffold in case "labelpos".COMMENT
MEDIUMsrc/officecli/Core/Chart/ChartHelper.Setter.cs3570 /// DataLabels' DefaultRunProperties, creating the TextProperties scaffoldCOMMENT
MEDIUMsrc/officecli/Core/Chart/ChartExStyleBuilder.cs103 // schema-compliant scaffold below.COMMENT
MEDIUMsrc/officecli/Core/Chart/ChartExStyleBuilder.cs154 /// visually coherent; the rest get the generic 4-ref scaffold.COMMENT
MEDIUMsrc/officecli/Core/Chart/ChartExStyleBuilder.cs222 // Generic 4-ref scaffold — the smallest schema-valid form perCOMMENT
MEDIUMsrc/officecli/Handlers/PowerPointHandler.cs1439 // rId-collision guard. The blank scaffold ships a fixed set ofCOMMENT
MEDIUMsrc/officecli/Handlers/PowerPointHandler.cs1442 // that range (e.g. rId5 = master bg image, but the scaffold alreadyCOMMENT
MEDIUMsrc/officecli/Handlers/PowerPointHandler.cs1447 // by re-homing the colliding scaffold relationship onto a fresh id.COMMENT
MEDIUMsrc/officecli/Handlers/PowerPointHandler.cs1448 // For a scaffold-leftover SlideLayoutPart we additionally patch theCOMMENT
MEDIUMsrc/officecli/Handlers/PowerPointHandler.cs1456 // Re-home the colliding scaffold relationship onto a fresh,COMMENT
MEDIUMsrc/officecli/Handlers/PowerPointHandler.cs1617 // The blank scaffold's master ships rId1..rId5 as slideLayoutCOMMENT
MEDIUMsrc/officecli/Handlers/PowerPointHandler.cs1619 // with a scaffold layout. Re-home the colliding part onto a freshCOMMENT
MEDIUMsrc/officecli/Handlers/PowerPointHandler.cs1776 // re-home a non-part relationship). Part collision (scaffold layoutCOMMENT
MEDIUMsrc/officecli/Handlers/PowerPointHandler.cs2042 // decks give each master its own theme; the blank scaffold +COMMENT
MEDIUMsrc/officecli/Handlers/PowerPointHandler.cs2126 // currently occupies it onto a fresh id. The blank scaffold ships a masterCOMMENT
MEDIUMsrc/officecli/Handlers/PowerPointHandler.cs2130 // r:embed dangles. For a scaffold SlideLayoutPart occupant we also repointCOMMENT
MEDIUMsrc/officecli/Handlers/PowerPointHandler.cs2290 // (dump replay: prune scaffold + grow from source) and a later reload —COMMENT
MEDIUMsrc/officecli/Handlers/PowerPointHandler.cs2410 /// scaffold's shared theme (wrong colours for every styleRef on its slides).COMMENT
MEDIUMsrc/officecli/Handlers/Excel/ExcelBatchEmitter.cs10// CONSISTENCY(emit-X-mirror): scaffold mirrors WordBatchEmitter.cs /COMMENT
MEDIUMsrc/officecli/Handlers/Pptx/PptxBatchEmitter.cs12// CONSISTENCY(emit-X-mirror): scaffold mirrors WordBatchEmitter.cs — sameCOMMENT
MEDIUM…/officecli/Handlers/Pptx/PptxBatchEmitter.Resources.cs79 // The blank scaffold shares ONE theme part (/ppt/theme/theme1.xml)COMMENT
MEDIUM…/officecli/Handlers/Pptx/PptxBatchEmitter.Resources.cs83 // masters 2..N (which the scaffold doesn't provide). This keeps theCOMMENT
MEDIUM…/officecli/Handlers/Pptx/PptxBatchEmitter.Resources.cs95 // blank scaffold's theme has no such images, so a pinned source rId isCOMMENT
MEDIUM…/officecli/Handlers/Pptx/PptxBatchEmitter.Resources.cs244 // master1's theme is the shared /ppt/theme/theme1.xml that the scaffoldCOMMENT
MEDIUM…/officecli/Handlers/Pptx/PptxBatchEmitter.Resources.cs247 // the presentation<->master1 sharing. Masters 2..N have no scaffold theme,COMMENT
MEDIUM…/officecli/Handlers/Pptx/PptxBatchEmitter.Resources.cs255 // ThemePart is DISTINCT from the presentation's, the shared-scaffoldCOMMENT
MEDIUM…/officecli/Handlers/Pptx/PptxBatchEmitter.Resources.cs257 // detaches the scaffold share first, restoring the source topology.COMMENT
MEDIUM…li/Handlers/Pptx/PowerPointHandler.HtmlPreview.Text.cs302 // Scoping (regression guardrails): apply ONLY to body/content-familyCOMMENT
Fake / Example Data70 hits · 78 pts
SeverityFileLineSnippetContext
LOWschemas/help/pptx/slide.json112 { "element": "placeholder", "pathSegment": "placeholder", "cardinality": "0..n" }CODE
LOWschemas/help/pptx/placeholder.json4 "element": "placeholder",CODE
LOWschemas/help/docx/sdt.json139 "placeholder": {CODE
LOWexamples/excel/workbook-settings.py64wb(**{"extended.company": "Acme Corp", "extended.manager": "Dana Lead",CODE
LOWexamples/excel/workbook-settings.sh39officecli set "$FILE" / --prop extended.company="Acme Corp" \CODE
LOWexamples/excel/workbook-settings.md44officecli set file.xlsx / --prop extended.company="Acme Corp" \CODE
LOWexamples/word/document-formatting.sh28officecli set "$FILE" / --prop extended.company="Acme Corp" \CODE
LOWexamples/word/document-formatting.md41officecli set file.docx / --prop extended.company="Acme Corp" \CODE
LOWexamples/word/document-formatting.py85 "extended.company": "Acme Corp",CODE
LOWexamples/ppt/presentation-settings.py54pres(**{"extended.company": "Acme Corp", "extended.manager": "Dana Lead",CODE
LOWexamples/ppt/presentation-settings.md48officecli set file.pptx / --prop extended.company="Acme Corp" \CODE
LOWexamples/ppt/presentation-settings.sh30officecli set "$FILE" / --prop extended.company="Acme Corp" \CODE
LOWexamples/ppt/shapes/shapes-typography.py32LOREM = ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. "CODE
LOWexamples/ppt/shapes/shapes-typography.py32LOREM = ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. "CODE
LOWexamples/ppt/shapes/shapes-effects.py39LONGTEXT = ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do "CODE
LOWexamples/ppt/shapes/shapes-effects.py39LONGTEXT = ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do "CODE
LOWexamples/ppt/shapes/shapes-typography.md28LOREM='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt.'CODE
LOWexamples/ppt/shapes/shapes-typography.md28LOREM='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt.'CODE
LOWexamples/ppt/shapes/shapes-typography.sh16LOREM='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt.'CODE
LOWexamples/ppt/shapes/shapes-typography.sh16LOREM='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt.'CODE
LOWexamples/ppt/shapes/shapes-effects.sh46LONGTEXT='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore CODE
LOWexamples/ppt/shapes/shapes-effects.sh46LONGTEXT='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore CODE
LOWexamples/ppt/shapes/shapes-effects.md28LONGTEXT='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore CODE
LOWexamples/ppt/shapes/shapes-effects.md28LONGTEXT='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore CODE
LOWexamples/ppt/textboxes/textboxes-basic.sh26LOREM='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia odio vitae vestibulum vestibulum.'CODE
LOWexamples/ppt/textboxes/textboxes-basic.sh26LOREM='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia odio vitae vestibulum vestibulum.'CODE
LOWexamples/ppt/textboxes/textboxes-basic.md28LOREM='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia odio vitae vestibulum vestibulum.'CODE
LOWexamples/ppt/textboxes/textboxes-basic.md28LOREM='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia odio vitae vestibulum vestibulum.'CODE
LOWexamples/ppt/textboxes/textboxes-advanced.py37LOREM = ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. "CODE
LOWexamples/ppt/textboxes/textboxes-advanced.py37LOREM = ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. "CODE
LOWexamples/ppt/textboxes/textboxes-advanced.py148 text="[lang=fr-FR at paragraph level] Lorem ipsum dolor sit amet.",CODE
LOWexamples/ppt/textboxes/textboxes-advanced.py148 text="[lang=fr-FR at paragraph level] Lorem ipsum dolor sit amet.",CODE
LOWexamples/ppt/textboxes/textboxes-basic.py61LOREM = ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. "CODE
LOWexamples/ppt/textboxes/textboxes-basic.py61LOREM = ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. "CODE
LOWexamples/ppt/textboxes/textboxes-advanced.sh20LOREM='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia odio vitae vestibulum vestibulum.'CODE
LOWexamples/ppt/textboxes/textboxes-advanced.sh20LOREM='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia odio vitae vestibulum vestibulum.'CODE
LOWexamples/ppt/textboxes/textboxes-advanced.sh128 --prop text="[lang=fr-FR at paragraph level] Lorem ipsum dolor sit amet." \CODE
LOWexamples/ppt/textboxes/textboxes-advanced.sh128 --prop text="[lang=fr-FR at paragraph level] Lorem ipsum dolor sit amet." \CODE
LOWexamples/ppt/textboxes/textboxes-advanced.md28LOREM='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia odio vitae vestibulum vestibulum.'CODE
LOWexamples/ppt/textboxes/textboxes-advanced.md28LOREM='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia odio vitae vestibulum vestibulum.'CODE
LOWexamples/ppt/textboxes/textboxes-advanced.md133 --prop text="[lang=fr-FR at paragraph level] Lorem ipsum dolor sit amet." \CODE
LOWexamples/ppt/textboxes/textboxes-advanced.md133 --prop text="[lang=fr-FR at paragraph level] Lorem ipsum dolor sit amet." \CODE
LOW…ppt/reference/styles/dark--architectural-plan/build.sh180a '/slide[1]' --prop text="Lorem ipsum dolor sit amet, consectetur adipiscing\nelit, sed do eiusmod tempor incididunt utCODE
LOW…ppt/reference/styles/dark--architectural-plan/build.sh180a '/slide[1]' --prop text="Lorem ipsum dolor sit amet, consectetur adipiscing\nelit, sed do eiusmod tempor incididunt utCODE
LOWsrc/officecli/Handlers/PowerPointHandler.cs4477 var segIsPlaceholder = m.Groups[3].Value == "placeholder";CODE
LOW…c/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.cs3652 // "###-####" → "555-1234", SSN "000-00-0000" → "123-45-6789". An integer-onlyCOMMENT
LOW…officecli/Handlers/Pptx/PowerPointHandler.Mutations.cs489 if (elementType == "placeholder")CODE
LOWsrc/officecli/Handlers/Pptx/PowerPointHandler.Add.cs77 "placeholder" or "ph" => AddPlaceholder(parentPath, index, properties),CODE
LOWsrc/officecli/Handlers/Pptx/PptxBatchEmitter.Shape.cs419 Element: "placeholder",CODE
LOWsrc/officecli/Handlers/Pptx/PptxBatchEmitter.Shape.cs447 Type = "placeholder",CODE
LOWsrc/officecli/Handlers/Pptx/PptxBatchEmitter.Shape.cs826 case "placeholder":CODE
LOWsrc/officecli/Handlers/Pptx/PowerPointHandler.Query.cs957 node.Type = "placeholder";CODE
LOWsrc/officecli/Handlers/Pptx/PowerPointHandler.Query.cs1385 else if (elementType == "placeholder")CODE
LOWsrc/officecli/Handlers/Pptx/PowerPointHandler.Query.cs1663 or "table" or "chart" or "placeholder" or "notes"CODE
LOWsrc/officecli/Handlers/Pptx/PowerPointHandler.Query.cs2275 if (parsed.ElementType == "placeholder")CODE
LOWsrc/officecli/Handlers/Pptx/PowerPointHandler.Query.cs2298 node.Type = "placeholder";CODE
LOWsrc/officecli/Handlers/Pptx/PowerPointHandler.Query.cs2337 lNode.Type = "placeholder";CODE
LOWsrc/officecli/Handlers/Pptx/PptxBatchEmitter.cs625 // id with the slide's Query("placeholder") result.COMMENT
LOWsrc/officecli/Handlers/Pptx/PptxBatchEmitter.cs634 foreach (var ph in ppt.Query("placeholder"))CODE
LOWsrc/officecli/Handlers/Pptx/PptxBatchEmitter.cs718 case "placeholder":CODE
10 more matches not shown…
Hallucination Indicators5 hits · 50 pts
SeverityFileLineSnippetContext
CRITICALsrc/officecli/ResidentServer.cs949 var node = System.Text.Json.Nodes.JsonNode.Parse(envelopeJson);CODE
CRITICALsrc/officecli/CommandBuilder.Plugins.cs177 ["manifest"] = System.Text.Json.Nodes.JsonNode.Parse(rawManifest),CODE
CRITICAL…/officecli/Handlers/Excel/ExcelHandler.Helpers.Node.cs942 try { arr = System.Text.Json.Nodes.JsonNode.Parse(runsJson) as System.Text.Json.Nodes.JsonArray; }CODE
CRITICALsrc/officecli/Handlers/Word/WordHandler.Selector.cs195 ? para.ParagraphProperties.NumberingProperties.NumberingId.Val.Value.ToString() : null,CODE
CRITICALsrc/officecli/Handlers/Word/WordHandler.Selector.cs197 ? para.ParagraphProperties.NumberingProperties.NumberingLevelReference.Val.Value.ToString() : null,CODE
Structural Annotation Overuse24 hits · 38 pts
SeverityFileLineSnippetContext
LOWinstall.sh113# Step 1: Try downloading (mirror first, github fallback)COMMENT
LOWinstall.sh157# Step 2: Fallback to local filesCOMMENT
LOWinstall.sh180# Step 3: InstallCOMMENT
LOWinstall.sh235# Step 4: Install AI agent skills (first install only)COMMENT
LOWexamples/ppt/video.py101 # Step 1: Generate video and coverCOMMENT
LOWskills/morph-ppt-3d/SKILL.md40### Step 1: Understand the topic and suggest model directionCOMMENT
LOWskills/morph-ppt-3d/SKILL.md57### Step 2: Search for models (agent-driven)COMMENT
LOWskills/morph-ppt-3d/SKILL.md99### Step 3: Present candidates to user for confirmationCOMMENT
LOWskills/morph-ppt-3d/SKILL.md132### Step 4: Download the confirmed modelCOMMENT
LOWskills/morph-ppt-3d/SKILL.md154### Step 5: When user says "anything" / "you decide" / "just make a demo"COMMENT
LOWskills/morph-ppt-3d/SKILL.md170### Step 6: When user wants to find models themselvesCOMMENT
LOWskills/morph-ppt-3d/SKILL.md198### Step 7: When user gives keywords and asks agent to searchCOMMENT
LOWsrc/officecli/CommandBuilder.cs367 // Step 1: does a resident own this file? Probe via the -ping pipe,STRING
LOWsrc/officecli/CommandBuilder.cs400 // Step 2: resident is confirmed alive — wait for our turn in the mainSTRING
LOWsrc/officecli/Core/UpdateChecker.cs312 // Step 1: cheap size sanity check. A self-contained .NETCOMMENT
LOWsrc/officecli/Core/UpdateChecker.cs332 // Step 2: ensure the file is executable (Unix). Externally-COMMENT
LOWsrc/officecli/Core/UpdateChecker.cs339 // Step 3: smoke test — see RunVersionVerify for rationale (shebangCOMMENT
LOW…c/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.cs3587 // Step 1: Replace h:mm and h:m patterns → mark minutes as placeholderCOMMENT
LOW…c/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.cs3593 // Step 2: Convert remaining m/mm to M/MM (month)COMMENT
LOW…c/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.cs3596 // Step 3: Restore minute placeholdersCOMMENT
LOW…c/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.cs3598 // Step 4: Other conversionsCOMMENT
LOW…fficecli/Handlers/Pptx/PowerPointHandler.Animations.cs327 // Step 1: Build the Transition element using SDK (for correct child XML generation)COMMENT
LOW…cecli/Handlers/Word/WordHandler.Helpers.FindReplace.cs530 // Step 1: Replace text in affected runs (same logic as old ReplaceInParagraph)COMMENT
LOW…cecli/Handlers/Word/WordHandler.Helpers.FindReplace.cs587 // Step 2: If format props, split at the replaced text position and applyCOMMENT
Verbosity Indicators17 hits · 28 pts
SeverityFileLineSnippetContext
LOWinstall.sh113# Step 1: Try downloading (mirror first, github fallback)COMMENT
LOWinstall.sh157# Step 2: Fallback to local filesCOMMENT
LOWinstall.sh180# Step 3: InstallCOMMENT
LOWinstall.sh235# Step 4: Install AI agent skills (first install only)COMMENT
LOWexamples/ppt/video.py101 # Step 1: Generate video and coverCOMMENT
LOWsrc/officecli/CommandBuilder.cs367 // Step 1: does a resident own this file? Probe via the -ping pipe,STRING
LOWsrc/officecli/CommandBuilder.cs400 // Step 2: resident is confirmed alive — wait for our turn in the mainSTRING
LOWsrc/officecli/Core/UpdateChecker.cs312 // Step 1: cheap size sanity check. A self-contained .NETCOMMENT
LOWsrc/officecli/Core/UpdateChecker.cs332 // Step 2: ensure the file is executable (Unix). Externally-COMMENT
LOWsrc/officecli/Core/UpdateChecker.cs339 // Step 3: smoke test — see RunVersionVerify for rationale (shebangCOMMENT
LOW…c/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.cs3587 // Step 1: Replace h:mm and h:m patterns → mark minutes as placeholderCOMMENT
LOW…c/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.cs3593 // Step 2: Convert remaining m/mm to M/MM (month)COMMENT
LOW…c/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.cs3596 // Step 3: Restore minute placeholdersCOMMENT
LOW…c/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.cs3598 // Step 4: Other conversionsCOMMENT
LOW…fficecli/Handlers/Pptx/PowerPointHandler.Animations.cs327 // Step 1: Build the Transition element using SDK (for correct child XML generation)COMMENT
LOW…cecli/Handlers/Word/WordHandler.Helpers.FindReplace.cs530 // Step 1: Replace text in affected runs (same logic as old ReplaceInParagraph)COMMENT
LOW…cecli/Handlers/Word/WordHandler.Helpers.FindReplace.cs587 // Step 2: If format props, split at the replaced text position and applyCOMMENT
AI Slop Vocabulary8 hits · 24 pts
SeverityFileLineSnippetContext
MEDIUMsrc/officecli/Core/PivotTableHelper.Parse.cs324 // robust even if the source headers were renamed between Get andCOMMENT
MEDIUMsrc/officecli/Core/Chart/ChartHelper.Reader.cs681 // plot-area border/fill as VERBATIM <c:spPr> OuterXml (same robustCOMMENT
MEDIUMsrc/officecli/Handlers/PowerPointHandler.cs764 // Writing content at creation time is URI-agnostic and robust.COMMENT
MEDIUM…/officecli/Handlers/Excel/ExcelHandler.Set.Workbook.cs271 // it" so the clear is robust even when the implied lock came from aCOMMENT
MEDIUMsrc/officecli/Handlers/Word/WordHandler.Navigation.cs940 // key) — robust against paragraphs living in tables/headers without needing aCOMMENT
MEDIUMsrc/officecli/Handlers/Word/WordHandler.Navigation.cs3247 // attribute text so the check is robust regardless of how theCOMMENT
MEDIUM…icecli/Handlers/Word/WordHandler.HtmlPreview.Shapes.cs538 // Absolutely-positioned overlay: write the declared px dimensions (fromCOMMENT
MEDIUM…/officecli/Handlers/Word/WordBatchEmitter.Resources.cs2910 // seed <w:p> instead is robust to tcPr presence.COMMENT
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHexamples/word/pictures.py0ship one `add` item over the pipe; return the parsed envelope.STRING
HIGHexamples/ppt/pictures/pictures-basic.py0ship one `add` item over the pipe; return the parsed envelope.STRING
HIGHexamples/ppt/ole/ole-embed.py0ship one `add` item over the pipe; return the parsed envelope.STRING
Example Usage Blocks9 hits · 13 pts
SeverityFileLineSnippetContext
LOWexamples/excel/charts/charts-column.sh13# Usage:COMMENT
LOWexamples/excel/charts/charts-line.sh13# Usage:COMMENT
LOWexamples/excel/charts/charts-histogram.sh19# Usage:COMMENT
LOWexamples/excel/charts/charts-advanced.sh9# Usage:COMMENT
LOWexamples/excel/charts/charts-extended.sh9# Usage:COMMENT
LOWexamples/word/charts.sh21# Usage:COMMENT
LOWexamples/ppt/charts/charts-combo.sh17# Usage:COMMENT
LOWexamples/ppt/charts/charts-scatter.sh16# Usage:COMMENT
LOWexamples/ppt/charts/charts-pie.sh15# Usage:COMMENT
Excessive Try-Catch Wrapping9 hits · 10 pts
SeverityFileLineSnippetContext
LOWexamples/excel/shapes.py174 except Exception:CODE
LOWexamples/excel/cell-formatting.py247 except Exception:CODE
LOWskills/morph-ppt/reference/morph-helpers.py64 except Exception:CODE
LOWskills/morph-ppt/reference/morph-helpers.py256 except Exception as e:CODE
LOWskills/morph-ppt/reference/morph-helpers.py276 except Exception as e:CODE
LOWskills/morph-ppt/reference/morph-helpers.py336 except Exception as e:CODE
LOWskills/morph-ppt/reference/morph-helpers.py396 except Exception as e:CODE
LOWskills/morph-ppt/reference/morph-helpers.sh174except Exception as e:CODE
LOWskills/morph-ppt/reference/morph-helpers.sh270except Exception as e:CODE
AI Response Leakage1 hit · 8 pts
SeverityFileLineSnippetContext
HIGH…h-ppt/reference/styles/light--minimal-product/build.sh264# For brevity, I'll create placeholder shapes that can be shown/hiddenCOMMENT
Cross-Language Confusion1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHsdk/python/officecli.py600 sh = f"(curl -fsSL {_INSTALL_SH_MIRROR} 2>/dev/null || curl -fsSL {_INSTALL_SH_GITHUB}) | bash"CODE
Redundant / Tautological Comments3 hits · 4 pts
SeverityFileLineSnippetContext
LOWskills/morph-ppt/reference/morph-helpers.sh153 # Check if this shape has previous slide's content prefixCOMMENT
LOWskills/morph-ppt/reference/morph-helpers.sh155 # Check if it's NOT ghosted (x != 36cm)COMMENT
LOWskills/morph-ppt/reference/morph-helpers.sh254 # Check if text and position are identicalCOMMENT
Deep Nesting2 hits · 2 pts
SeverityFileLineSnippetContext
LOWskills/morph-ppt/reference/morph-helpers.py211CODE
LOWskills/morph-ppt/reference/morph-helpers.py401CODE
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsdk/python/officecli.py611__all__ = ["open", "create", "install", "Document", "OfficeCliError"]CODE
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOWexamples/ppt/charts/charts-advanced.py40CODE