[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-minimax-minimax-docx":3,"mdc-vfux7v-key":37,"related-org-minimax-minimax-docx":2221,"related-repo-minimax-minimax-docx":2410},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"minimax-docx","create and edit DOCX documents","Professional DOCX document creation, editing, and formatting using OpenXML SDK (.NET). Three pipelines: (A) create new documents from scratch, (B) fill\u002Fedit content in existing documents, (C) apply template formatting with XSD validation gate-check. MUST use this skill whenever the user wants to produce, modify, or format a Word document — including when they say \"write a report\", \"draft a proposal\", \"make a contract\", \"fill in this form\", \"reformat to match this template\", or any task whose final output is a .docx file. Even if the user doesn't mention \"docx\" explicitly, if the task implies a printable\u002Fformal document, use this skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"minimax","MiniMax","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fminimax.jpg","MiniMax-AI",[13,17,20,23],{"name":14,"slug":15,"type":16},"Templates","templates","tag",{"name":18,"slug":19,"type":16},"Documents","documents",{"name":21,"slug":22,"type":16},"Office","office",{"name":24,"slug":25,"type":16},"DOCX","docx",13030,"https:\u002F\u002Fgithub.com\u002FMiniMax-AI\u002Fskills","2026-07-13T06:16:40.461868","MIT",1118,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],null,"https:\u002F\u002Fgithub.com\u002FMiniMax-AI\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fminimax-docx","---\nname: minimax-docx\nlicense: MIT\nmetadata:\n  version: \"1.0.0\"\n  category: document-processing\n  author: MiniMaxAI\n  sources:\n    - \"ECMA-376 Office Open XML File Formats\"\n    - \"GB\u002FT 9704-2012 Layout Standard for Official Documents\"\n    - \"IEEE \u002F ACM \u002F APA \u002F MLA \u002F Chicago \u002F Turabian Style Guides\"\n    - \"Springer LNCS \u002F Nature \u002F HBR Document Templates\"\ndescription: >\n  Professional DOCX document creation, editing, and formatting using OpenXML SDK (.NET).\n  Three pipelines: (A) create new documents from scratch, (B) fill\u002Fedit content in existing\n  documents, (C) apply template formatting with XSD validation gate-check.\n  MUST use this skill whenever the user wants to produce, modify, or format a Word document —\n  including when they say \"write a report\", \"draft a proposal\", \"make a contract\",\n  \"fill in this form\", \"reformat to match this template\", or any task whose final output\n  is a .docx file. Even if the user doesn't mention \"docx\" explicitly, if the task\n  implies a printable\u002Fformal document, use this skill.\ntriggers:\n  - Word\n  - docx\n  - document\n  - 文档\n  - Word文档\n  - 报告\n  - 合同\n  - 公文\n  - 排版\n  - 套模板\n---\n\n# minimax-docx\n\nCreate, edit, and format DOCX documents via CLI tools or direct C# scripts built on OpenXML SDK (.NET).\n\n## Setup\n\n**First time:** `bash scripts\u002Fsetup.sh` (or `powershell scripts\u002Fsetup.ps1` on Windows, `--minimal` to skip optional deps).\n\n**First operation in session:** `scripts\u002Fenv_check.sh` — do not proceed if `NOT READY`. (Skip on subsequent operations within the same session.)\n\n## Quick Start: Direct C# Path\n\nWhen the task requires structural document manipulation (custom styles, complex tables, multi-section layouts, headers\u002Ffooters, TOC, images), write C# directly instead of wrestling with CLI limitations. Use this scaffold:\n\n```csharp\n\u002F\u002F File: scripts\u002Fdotnet\u002Ftask.csx  (or a new .cs in a Console project)\n\u002F\u002F dotnet run --project scripts\u002Fdotnet\u002FMiniMaxAIDocx.Cli -- run-script task.csx\n#r \"nuget: DocumentFormat.OpenXml, 3.2.0\"\n\nusing DocumentFormat.OpenXml;\nusing DocumentFormat.OpenXml.Packaging;\nusing DocumentFormat.OpenXml.Wordprocessing;\n\nusing var doc = WordprocessingDocument.Create(\"output.docx\", WordprocessingDocumentType.Document);\nvar mainPart = doc.AddMainDocumentPart();\nmainPart.Document = new Document(new Body());\n\n\u002F\u002F --- Your logic here ---\n\u002F\u002F Read the relevant Samples\u002F*.cs file FIRST for tested patterns.\n\u002F\u002F See Samples\u002F table in References section below.\n```\n\n**Before writing any C#, read the relevant `Samples\u002F*.cs` file** — they contain compilable, SDK-version-verified patterns. The Samples table in the References section below maps topics to files.\n\n## CLI shorthand\n\nAll CLI commands below use `$CLI` as shorthand for:\n```bash\ndotnet run --project scripts\u002Fdotnet\u002FMiniMaxAIDocx.Cli --\n```\n\n## Pipeline routing\n\nRoute by checking: does the user have an input .docx file?\n\n```\nUser task\n├─ No input file → Pipeline A: CREATE\n│   signals: \"write\", \"create\", \"draft\", \"generate\", \"new\", \"make a report\u002Fproposal\u002Fmemo\"\n│   → Read references\u002Fscenario_a_create.md\n│\n└─ Has input .docx\n    ├─ Replace\u002Ffill\u002Fmodify content → Pipeline B: FILL-EDIT\n    │   signals: \"fill in\", \"replace\", \"update\", \"change text\", \"add section\", \"edit\"\n    │   → Read references\u002Fscenario_b_edit_content.md\n    │\n    └─ Reformat\u002Fapply style\u002Ftemplate → Pipeline C: FORMAT-APPLY\n        signals: \"reformat\", \"apply template\", \"restyle\", \"match this format\", \"套模板\", \"排版\"\n        ├─ Template is pure style (no content) → C-1: OVERLAY (apply styles to source)\n        └─ Template has structure (cover\u002FTOC\u002Fexample sections) → C-2: BASE-REPLACE\n            (use template as base, replace example content with user content)\n        → Read references\u002Fscenario_c_apply_template.md\n```\n\nIf the request spans multiple pipelines, run them sequentially (e.g., Create then Format-Apply).\n\n## Pre-processing\n\nConvert `.doc` → `.docx` if needed: `scripts\u002Fdoc_to_docx.sh input.doc output_dir\u002F`\n\nPreview before editing (avoids reading raw XML): `scripts\u002Fdocx_preview.sh document.docx`\n\nAnalyze structure for editing scenarios: `$CLI analyze --input document.docx`\n\n## Scenario A: Create\n\nRead `references\u002Fscenario_a_create.md`, `references\u002Ftypography_guide.md`, and `references\u002Fdesign_principles.md` first. Pick an aesthetic recipe from `Samples\u002FAestheticRecipeSamples.cs` that matches the document type — do not invent formatting values. For CJK, also read `references\u002Fcjk_typography.md`.\n\n**Choose your path:**\n- **Simple** (plain text, minimal formatting): use CLI — `$CLI create --type report --output out.docx --config content.json`\n- **Structural** (custom styles, multi-section, TOC, images, complex tables): write C# directly. Read the relevant `Samples\u002F*.cs` first.\n\nCLI options: `--type` (report|letter|memo|academic), `--title`, `--author`, `--page-size` (letter|a4|legal|a3), `--margins` (standard|narrow|wide), `--header`, `--footer`, `--page-numbers`, `--toc`, `--content-json`.\n\nThen run the **validation pipeline** (below).\n\n## Scenario B: Edit \u002F Fill\n\nRead `references\u002Fscenario_b_edit_content.md` first. Preview → analyze → edit → validate.\n\n**Choose your path:**\n- **Simple** (text replacement, placeholder fill): use CLI subcommands.\n- **Structural** (add\u002Freorganize sections, modify styles, manipulate tables, insert images): write C# directly. Read `references\u002Fopenxml_element_order.md` and the relevant `Samples\u002F*.cs`.\n\nAvailable CLI edit subcommands:\n- `replace-text --find \"X\" --replace \"Y\"`\n- `fill-placeholders --data '{\"key\":\"value\"}'`\n- `fill-table --data table.json`\n- `insert-section`, `remove-section`, `update-header-footer`\n\n```bash\n$CLI edit replace-text --input in.docx --output out.docx --find \"OLD\" --replace \"NEW\"\n$CLI edit fill-placeholders --input in.docx --output out.docx --data '{\"name\":\"John\"}'\n```\n\nThen run the **validation pipeline**. Also run diff to verify minimal changes:\n```bash\n$CLI diff --before in.docx --after out.docx\n```\n\n## Scenario C: Apply Template\n\nRead `references\u002Fscenario_c_apply_template.md` first. Preview and analyze both source and template.\n\n```bash\n$CLI apply-template --input source.docx --template template.docx --output out.docx\n```\n\nFor complex template operations (multi-template merge, per-section headers\u002Ffooters, style merging), write C# directly — see Critical Rules below for required patterns.\n\nRun the **validation pipeline**, then the **hard gate-check**:\n```bash\n$CLI validate --input out.docx --gate-check assets\u002Fxsd\u002Fbusiness-rules.xsd\n```\nGate-check is a **hard requirement**. Do NOT deliver until it passes. If it fails: diagnose, fix, re-run.\n\nAlso diff to verify content preservation: `$CLI diff --before source.docx --after out.docx`\n\n## Validation pipeline\n\nRun after every write operation. For Scenario C the full pipeline is **mandatory**; for A\u002FB it is **recommended** (skip only if the operation was trivially simple).\n\n```bash\n$CLI merge-runs --input doc.docx                                    # 1. consolidate runs\n$CLI validate --input doc.docx --xsd assets\u002Fxsd\u002Fwml-subset.xsd     # 2. XSD structure\n$CLI validate --input doc.docx --business                           # 3. business rules\n```\n\nIf XSD fails, auto-repair and retry:\n```bash\n$CLI fix-order --input doc.docx\n$CLI validate --input doc.docx --xsd assets\u002Fxsd\u002Fwml-subset.xsd\n```\n\nIf XSD still fails, fall back to business rules + preview:\n```bash\n$CLI validate --input doc.docx --business\nscripts\u002Fdocx_preview.sh doc.docx\n# Verify: font contamination=0, table count correct, drawing count correct, sectPr count correct\n```\n\nFinal preview: `scripts\u002Fdocx_preview.sh doc.docx`\n\n## Critical rules\n\nThese prevent file corruption — OpenXML is strict about element ordering.\n\n**Element order** (properties always first):\n\n| Parent | Order |\n|--------|-------|\n| `w:p`  | `pPr` → runs |\n| `w:r`  | `rPr` → `t`\u002F`br`\u002F`tab` |\n| `w:tbl`| `tblPr` → `tblGrid` → `tr` |\n| `w:tr` | `trPr` → `tc` |\n| `w:tc` | `tcPr` → `p` (min 1 `\u003Cw:p\u002F>`) |\n| `w:body` | block content → `sectPr` (LAST child) |\n\n**Direct format contamination:** When copying content from a source document, inline `rPr` (fonts, color) and `pPr` (borders, shading, spacing) override template styles. Always strip direct formatting — keep only `pStyle` reference and `t` text. Clean tables too (including `pPr\u002FrPr` inside cells).\n\n**Track changes:** `\u003Cw:del>` uses `\u003Cw:delText>`, never `\u003Cw:t>`. `\u003Cw:ins>` uses `\u003Cw:t>`, never `\u003Cw:delText>`.\n\n**Font size:** `w:sz` = points × 2 (12pt → `sz=\"24\"`). Margins\u002Fspacing in DXA (1 inch = 1440, 1cm ≈ 567).\n\n**Heading styles MUST have OutlineLevel:** When defining heading styles (Heading1, ThesisH1, etc.), always include `new OutlineLevel { Val = N }` in `StyleParagraphProperties` (H1→0, H2→1, H3→2). Without this, Word sees them as plain styled text — TOC and navigation pane won't work.\n\n**Multi-template merge:** When given multiple template files (font, heading, breaks), read `references\u002Fscenario_c_apply_template.md` section \"Multi-Template Merge\" FIRST. Key rules:\n- Merge styles from all templates into one styles.xml. Structure (sections\u002Fbreaks) comes from the breaks template.\n- Each content paragraph must appear exactly ONCE — never duplicate when inserting section breaks.\n- NEVER insert empty\u002Fblank paragraphs as padding or section separators. Output paragraph count must equal input. Use section break properties (`w:sectPr` inside `w:pPr`) and style spacing (`w:spacing` before\u002Fafter) for visual separation.\n- Insert oddPage section breaks before EVERY chapter heading, not just the first. Even if a chapter has dual-column content, it MUST start with oddPage; use a second continuous break after the heading for column switching.\n- Dual-column chapters need THREE section breaks: (1) oddPage in preceding para's pPr, (2) continuous+cols=2 in the chapter HEADING's pPr, (3) continuous+cols=1 in the last body para's pPr to revert.\n- Copy `titlePg` settings from the breaks template for EACH section. Abstract and TOC sections typically need `titlePg=true`.\n\n**Multi-section headers\u002Ffooters:** Templates with 10+ sections (e.g., Chinese thesis) have DIFFERENT headers\u002Ffooters per section (Roman vs Arabic page numbers, different header text per zone). Rules:\n- Use C-2 Base-Replace: copy the TEMPLATE as output base, then replace body content. This preserves all sections, headers, footers, and titlePg settings automatically.\n- NEVER recreate headers\u002Ffooters from scratch — copy template header\u002Ffooter XML byte-for-byte.\n- NEVER add formatting (borders, alignment, font size) not present in the template header XML.\n- Non-cover sections MUST have header\u002Ffooter XML files (at least empty header + page number footer).\n- See `references\u002Fscenario_c_apply_template.md` section \"Multi-Section Header\u002FFooter Transfer\".\n\n## References\n\nLoad as needed — don't load all at once. Pick the most relevant files for the task.\n\n**The C# samples and design references below are the project's knowledge base (\"encyclopedia\").** When writing OpenXML code, ALWAYS read the relevant sample file first — it contains compilable, SDK-version-verified patterns that prevent common errors. When making aesthetic decisions, read the design principles and recipe files — they encode tested, harmonious parameter sets from authoritative sources (IEEE, ACM, APA, Nature, etc.), not guesses.\n\n### Scenario guides (read first for each pipeline)\n\n| File | When |\n|------|------|\n| `references\u002Fscenario_a_create.md` | Pipeline A: creating from scratch |\n| `references\u002Fscenario_b_edit_content.md` | Pipeline B: editing existing content |\n| `references\u002Fscenario_c_apply_template.md` | Pipeline C: applying template formatting |\n\n### C# code samples (compilable, heavily commented — read when writing code)\n\n| File | Topic |\n|------|-------|\n| `Samples\u002FDocumentCreationSamples.cs` | Document lifecycle: create, open, save, streams, doc defaults, settings, properties, page setup, multi-section |\n| `Samples\u002FStyleSystemSamples.cs` | Styles: Normal\u002FHeading chain, character\u002Ftable\u002Flist styles, DocDefaults, latentStyles, CJK 公文, APA 7th, import, resolve inheritance |\n| `Samples\u002FCharacterFormattingSamples.cs` | RunProperties: fonts, size, bold\u002Fitalic, all underlines, color, highlight, strike, sub\u002Fsuper, caps, spacing, shading, border, emphasis marks |\n| `Samples\u002FParagraphFormattingSamples.cs` | ParagraphProperties: justification, indentation, line\u002Fparagraph spacing, keep\u002Fwidow, outline level, borders, tabs, numbering, bidi, frame |\n| `Samples\u002FTableSamples.cs` | Tables: borders, grid, cell props, margins, row height, header repeat, merge (H+V), nested, floating, three-line 三线表, zebra striping |\n| `Samples\u002FHeaderFooterSamples.cs` | Headers\u002Ffooters: page numbers, \"Page X of Y\", first\u002Feven\u002Fodd, logo image, table layout, 公文 \"-X-\", per-section |\n| `Samples\u002FImageSamples.cs` | Images: inline, floating, text wrapping, border, alt text, in header\u002Ftable, replace, SVG fallback, dimension calc |\n| `Samples\u002FListAndNumberingSamples.cs` | Numbering: bullets, multi-level decimal, custom symbols, outline→headings, legal, Chinese 一\u002F（一）\u002F1.\u002F(1), restart\u002Fcontinue |\n| `Samples\u002FFieldAndTocSamples.cs` | Fields: TOC, SimpleField vs complex field, DATE\u002FPAGE\u002FREF\u002FSEQ\u002FMERGEFIELD\u002FIF\u002FSTYLEREF, TOC styles |\n| `Samples\u002FFootnoteAndCommentSamples.cs` | Footnotes, endnotes, comments (4-file system), bookmarks, hyperlinks (internal + external) |\n| `Samples\u002FTrackChangesSamples.cs` | Revisions: insertions (w:t), deletions (w:delText!), formatting changes, accept\u002Freject all, move tracking |\n| `Samples\u002FAestheticRecipeSamples.cs` | 13 aesthetic recipes from authoritative sources: ModernCorporate, AcademicThesis, ExecutiveBrief, ChineseGovernment (GB\u002FT 9704), MinimalModern, IEEE Conference, ACM sigconf, APA 7th, MLA 9th, Chicago\u002FTurabian, Springer LNCS, Nature, HBR — each with exact values from official style guides |\n\nNote: `Samples\u002F` path is relative to `scripts\u002Fdotnet\u002FMiniMaxAIDocx.Core\u002F`.\n\n### Markdown references (read when you need specifications or design rules)\n\n| File | When |\n|------|------|\n| `references\u002Fopenxml_element_order.md` | XML element ordering rules (prevents corruption) |\n| `references\u002Fopenxml_units.md` | Unit conversion: DXA, EMU, half-points, eighth-points |\n| `references\u002Fopenxml_encyclopedia_part1.md` | Detailed C# encyclopedia: document creation, styles, character & paragraph formatting |\n| `references\u002Fopenxml_encyclopedia_part2.md` | Detailed C# encyclopedia: page setup, tables, headers\u002Ffooters, sections, doc properties |\n| `references\u002Fopenxml_encyclopedia_part3.md` | Detailed C# encyclopedia: TOC, footnotes, fields, track changes, comments, images, math, numbering, protection |\n| `references\u002Ftypography_guide.md` | Font pairing, sizes, spacing, page layout, table design, color schemes |\n| `references\u002Fcjk_typography.md` | CJK fonts, 字号 sizes, RunFonts mapping, GB\u002FT 9704 公文 standard |\n| `references\u002Fcjk_university_template_guide.md` | Chinese university thesis templates: numeric styleIds (1\u002F2\u002F3 vs Heading1), document zone structure (cover→abstract→TOC→body→references), font expectations, common mistakes |\n| `references\u002Fdesign_principles.md` | **Aesthetic foundations**: 6 design principles (white space, contrast\u002Fscale, proximity, alignment, repetition, hierarchy) — teaches WHY, not just WHAT |\n| `references\u002Fdesign_good_bad_examples.md` | **Good vs Bad comparisons**: 10 categories of typography mistakes with OpenXML values, ASCII mockups, and fixes |\n| `references\u002Ftrack_changes_guide.md` | Revision marks deep dive |\n| `references\u002Ftroubleshooting.md` | **Symptom-driven fixes**: 13 common problems indexed by what you SEE (headings wrong, images missing, TOC broken, etc.) — search by symptom, find the fix |\n",{"data":38,"body":58},{"name":4,"license":29,"metadata":39,"description":6,"triggers":48},{"version":40,"category":41,"author":42,"sources":43},"1.0.0","document-processing","MiniMaxAI",[44,45,46,47],"ECMA-376 Office Open XML File Formats","GB\u002FT 9704-2012 Layout Standard for Official Documents","IEEE \u002F ACM \u002F APA \u002F MLA \u002F Chicago \u002F Turabian Style Guides","Springer LNCS \u002F Nature \u002F HBR Document Templates",[49,25,50,51,52,53,54,55,56,57],"Word","document","文档","Word文档","报告","合同","公文","排版","套模板",{"type":59,"children":60},"root",[61,68,74,81,117,142,148,153,300,318,324,337,376,382,387,397,402,408,435,446,457,463,508,516,554,632,644,650,662,669,704,709,762,835,845,859,865,877,891,896,914,928,940,951,957,976,1023,1028,1051,1056,1092,1103,1109,1114,1124,1342,1389,1441,1466,1492,1509,1581,1591,1626,1632,1637,1647,1654,1724,1730,1954,1974,1980,2215],{"type":62,"tag":63,"props":64,"children":65},"element","h1",{"id":4},[66],{"type":67,"value":4},"text",{"type":62,"tag":69,"props":70,"children":71},"p",{},[72],{"type":67,"value":73},"Create, edit, and format DOCX documents via CLI tools or direct C# scripts built on OpenXML SDK (.NET).",{"type":62,"tag":75,"props":76,"children":78},"h2",{"id":77},"setup",[79],{"type":67,"value":80},"Setup",{"type":62,"tag":69,"props":82,"children":83},{},[84,90,92,99,101,107,109,115],{"type":62,"tag":85,"props":86,"children":87},"strong",{},[88],{"type":67,"value":89},"First time:",{"type":67,"value":91}," ",{"type":62,"tag":93,"props":94,"children":96},"code",{"className":95},[],[97],{"type":67,"value":98},"bash scripts\u002Fsetup.sh",{"type":67,"value":100}," (or ",{"type":62,"tag":93,"props":102,"children":104},{"className":103},[],[105],{"type":67,"value":106},"powershell scripts\u002Fsetup.ps1",{"type":67,"value":108}," on Windows, ",{"type":62,"tag":93,"props":110,"children":112},{"className":111},[],[113],{"type":67,"value":114},"--minimal",{"type":67,"value":116}," to skip optional deps).",{"type":62,"tag":69,"props":118,"children":119},{},[120,125,126,132,134,140],{"type":62,"tag":85,"props":121,"children":122},{},[123],{"type":67,"value":124},"First operation in session:",{"type":67,"value":91},{"type":62,"tag":93,"props":127,"children":129},{"className":128},[],[130],{"type":67,"value":131},"scripts\u002Fenv_check.sh",{"type":67,"value":133}," — do not proceed if ",{"type":62,"tag":93,"props":135,"children":137},{"className":136},[],[138],{"type":67,"value":139},"NOT READY",{"type":67,"value":141},". (Skip on subsequent operations within the same session.)",{"type":62,"tag":75,"props":143,"children":145},{"id":144},"quick-start-direct-c-path",[146],{"type":67,"value":147},"Quick Start: Direct C# Path",{"type":62,"tag":69,"props":149,"children":150},{},[151],{"type":67,"value":152},"When the task requires structural document manipulation (custom styles, complex tables, multi-section layouts, headers\u002Ffooters, TOC, images), write C# directly instead of wrestling with CLI limitations. Use this scaffold:",{"type":62,"tag":154,"props":155,"children":160},"pre",{"className":156,"code":157,"language":158,"meta":159,"style":159},"language-csharp shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F File: scripts\u002Fdotnet\u002Ftask.csx  (or a new .cs in a Console project)\n\u002F\u002F dotnet run --project scripts\u002Fdotnet\u002FMiniMaxAIDocx.Cli -- run-script task.csx\n#r \"nuget: DocumentFormat.OpenXml, 3.2.0\"\n\nusing DocumentFormat.OpenXml;\nusing DocumentFormat.OpenXml.Packaging;\nusing DocumentFormat.OpenXml.Wordprocessing;\n\nusing var doc = WordprocessingDocument.Create(\"output.docx\", WordprocessingDocumentType.Document);\nvar mainPart = doc.AddMainDocumentPart();\nmainPart.Document = new Document(new Body());\n\n\u002F\u002F --- Your logic here ---\n\u002F\u002F Read the relevant Samples\u002F*.cs file FIRST for tested patterns.\n\u002F\u002F See Samples\u002F table in References section below.\n","csharp","",[161],{"type":62,"tag":93,"props":162,"children":163},{"__ignoreMap":159},[164,175,184,193,203,212,221,230,238,247,256,265,273,282,291],{"type":62,"tag":165,"props":166,"children":169},"span",{"class":167,"line":168},"line",1,[170],{"type":62,"tag":165,"props":171,"children":172},{},[173],{"type":67,"value":174},"\u002F\u002F File: scripts\u002Fdotnet\u002Ftask.csx  (or a new .cs in a Console project)\n",{"type":62,"tag":165,"props":176,"children":178},{"class":167,"line":177},2,[179],{"type":62,"tag":165,"props":180,"children":181},{},[182],{"type":67,"value":183},"\u002F\u002F dotnet run --project scripts\u002Fdotnet\u002FMiniMaxAIDocx.Cli -- run-script task.csx\n",{"type":62,"tag":165,"props":185,"children":187},{"class":167,"line":186},3,[188],{"type":62,"tag":165,"props":189,"children":190},{},[191],{"type":67,"value":192},"#r \"nuget: DocumentFormat.OpenXml, 3.2.0\"\n",{"type":62,"tag":165,"props":194,"children":196},{"class":167,"line":195},4,[197],{"type":62,"tag":165,"props":198,"children":200},{"emptyLinePlaceholder":199},true,[201],{"type":67,"value":202},"\n",{"type":62,"tag":165,"props":204,"children":206},{"class":167,"line":205},5,[207],{"type":62,"tag":165,"props":208,"children":209},{},[210],{"type":67,"value":211},"using DocumentFormat.OpenXml;\n",{"type":62,"tag":165,"props":213,"children":215},{"class":167,"line":214},6,[216],{"type":62,"tag":165,"props":217,"children":218},{},[219],{"type":67,"value":220},"using DocumentFormat.OpenXml.Packaging;\n",{"type":62,"tag":165,"props":222,"children":224},{"class":167,"line":223},7,[225],{"type":62,"tag":165,"props":226,"children":227},{},[228],{"type":67,"value":229},"using DocumentFormat.OpenXml.Wordprocessing;\n",{"type":62,"tag":165,"props":231,"children":233},{"class":167,"line":232},8,[234],{"type":62,"tag":165,"props":235,"children":236},{"emptyLinePlaceholder":199},[237],{"type":67,"value":202},{"type":62,"tag":165,"props":239,"children":241},{"class":167,"line":240},9,[242],{"type":62,"tag":165,"props":243,"children":244},{},[245],{"type":67,"value":246},"using var doc = WordprocessingDocument.Create(\"output.docx\", WordprocessingDocumentType.Document);\n",{"type":62,"tag":165,"props":248,"children":250},{"class":167,"line":249},10,[251],{"type":62,"tag":165,"props":252,"children":253},{},[254],{"type":67,"value":255},"var mainPart = doc.AddMainDocumentPart();\n",{"type":62,"tag":165,"props":257,"children":259},{"class":167,"line":258},11,[260],{"type":62,"tag":165,"props":261,"children":262},{},[263],{"type":67,"value":264},"mainPart.Document = new Document(new Body());\n",{"type":62,"tag":165,"props":266,"children":268},{"class":167,"line":267},12,[269],{"type":62,"tag":165,"props":270,"children":271},{"emptyLinePlaceholder":199},[272],{"type":67,"value":202},{"type":62,"tag":165,"props":274,"children":276},{"class":167,"line":275},13,[277],{"type":62,"tag":165,"props":278,"children":279},{},[280],{"type":67,"value":281},"\u002F\u002F --- Your logic here ---\n",{"type":62,"tag":165,"props":283,"children":285},{"class":167,"line":284},14,[286],{"type":62,"tag":165,"props":287,"children":288},{},[289],{"type":67,"value":290},"\u002F\u002F Read the relevant Samples\u002F*.cs file FIRST for tested patterns.\n",{"type":62,"tag":165,"props":292,"children":294},{"class":167,"line":293},15,[295],{"type":62,"tag":165,"props":296,"children":297},{},[298],{"type":67,"value":299},"\u002F\u002F See Samples\u002F table in References section below.\n",{"type":62,"tag":69,"props":301,"children":302},{},[303,316],{"type":62,"tag":85,"props":304,"children":305},{},[306,308,314],{"type":67,"value":307},"Before writing any C#, read the relevant ",{"type":62,"tag":93,"props":309,"children":311},{"className":310},[],[312],{"type":67,"value":313},"Samples\u002F*.cs",{"type":67,"value":315}," file",{"type":67,"value":317}," — they contain compilable, SDK-version-verified patterns. The Samples table in the References section below maps topics to files.",{"type":62,"tag":75,"props":319,"children":321},{"id":320},"cli-shorthand",[322],{"type":67,"value":323},"CLI shorthand",{"type":62,"tag":69,"props":325,"children":326},{},[327,329,335],{"type":67,"value":328},"All CLI commands below use ",{"type":62,"tag":93,"props":330,"children":332},{"className":331},[],[333],{"type":67,"value":334},"$CLI",{"type":67,"value":336}," as shorthand for:",{"type":62,"tag":154,"props":338,"children":342},{"className":339,"code":340,"language":341,"meta":159,"style":159},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","dotnet run --project scripts\u002Fdotnet\u002FMiniMaxAIDocx.Cli --\n","bash",[343],{"type":62,"tag":93,"props":344,"children":345},{"__ignoreMap":159},[346],{"type":62,"tag":165,"props":347,"children":348},{"class":167,"line":168},[349,355,361,366,371],{"type":62,"tag":165,"props":350,"children":352},{"style":351},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[353],{"type":67,"value":354},"dotnet",{"type":62,"tag":165,"props":356,"children":358},{"style":357},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[359],{"type":67,"value":360}," run",{"type":62,"tag":165,"props":362,"children":363},{"style":357},[364],{"type":67,"value":365}," --project",{"type":62,"tag":165,"props":367,"children":368},{"style":357},[369],{"type":67,"value":370}," scripts\u002Fdotnet\u002FMiniMaxAIDocx.Cli",{"type":62,"tag":165,"props":372,"children":373},{"style":357},[374],{"type":67,"value":375}," --\n",{"type":62,"tag":75,"props":377,"children":379},{"id":378},"pipeline-routing",[380],{"type":67,"value":381},"Pipeline routing",{"type":62,"tag":69,"props":383,"children":384},{},[385],{"type":67,"value":386},"Route by checking: does the user have an input .docx file?",{"type":62,"tag":154,"props":388,"children":392},{"className":389,"code":391,"language":67},[390],"language-text","User task\n├─ No input file → Pipeline A: CREATE\n│   signals: \"write\", \"create\", \"draft\", \"generate\", \"new\", \"make a report\u002Fproposal\u002Fmemo\"\n│   → Read references\u002Fscenario_a_create.md\n│\n└─ Has input .docx\n    ├─ Replace\u002Ffill\u002Fmodify content → Pipeline B: FILL-EDIT\n    │   signals: \"fill in\", \"replace\", \"update\", \"change text\", \"add section\", \"edit\"\n    │   → Read references\u002Fscenario_b_edit_content.md\n    │\n    └─ Reformat\u002Fapply style\u002Ftemplate → Pipeline C: FORMAT-APPLY\n        signals: \"reformat\", \"apply template\", \"restyle\", \"match this format\", \"套模板\", \"排版\"\n        ├─ Template is pure style (no content) → C-1: OVERLAY (apply styles to source)\n        └─ Template has structure (cover\u002FTOC\u002Fexample sections) → C-2: BASE-REPLACE\n            (use template as base, replace example content with user content)\n        → Read references\u002Fscenario_c_apply_template.md\n",[393],{"type":62,"tag":93,"props":394,"children":395},{"__ignoreMap":159},[396],{"type":67,"value":391},{"type":62,"tag":69,"props":398,"children":399},{},[400],{"type":67,"value":401},"If the request spans multiple pipelines, run them sequentially (e.g., Create then Format-Apply).",{"type":62,"tag":75,"props":403,"children":405},{"id":404},"pre-processing",[406],{"type":67,"value":407},"Pre-processing",{"type":62,"tag":69,"props":409,"children":410},{},[411,413,419,421,427,429],{"type":67,"value":412},"Convert ",{"type":62,"tag":93,"props":414,"children":416},{"className":415},[],[417],{"type":67,"value":418},".doc",{"type":67,"value":420}," → ",{"type":62,"tag":93,"props":422,"children":424},{"className":423},[],[425],{"type":67,"value":426},".docx",{"type":67,"value":428}," if needed: ",{"type":62,"tag":93,"props":430,"children":432},{"className":431},[],[433],{"type":67,"value":434},"scripts\u002Fdoc_to_docx.sh input.doc output_dir\u002F",{"type":62,"tag":69,"props":436,"children":437},{},[438,440],{"type":67,"value":439},"Preview before editing (avoids reading raw XML): ",{"type":62,"tag":93,"props":441,"children":443},{"className":442},[],[444],{"type":67,"value":445},"scripts\u002Fdocx_preview.sh document.docx",{"type":62,"tag":69,"props":447,"children":448},{},[449,451],{"type":67,"value":450},"Analyze structure for editing scenarios: ",{"type":62,"tag":93,"props":452,"children":454},{"className":453},[],[455],{"type":67,"value":456},"$CLI analyze --input document.docx",{"type":62,"tag":75,"props":458,"children":460},{"id":459},"scenario-a-create",[461],{"type":67,"value":462},"Scenario A: Create",{"type":62,"tag":69,"props":464,"children":465},{},[466,468,474,476,482,484,490,492,498,500,506],{"type":67,"value":467},"Read ",{"type":62,"tag":93,"props":469,"children":471},{"className":470},[],[472],{"type":67,"value":473},"references\u002Fscenario_a_create.md",{"type":67,"value":475},", ",{"type":62,"tag":93,"props":477,"children":479},{"className":478},[],[480],{"type":67,"value":481},"references\u002Ftypography_guide.md",{"type":67,"value":483},", and ",{"type":62,"tag":93,"props":485,"children":487},{"className":486},[],[488],{"type":67,"value":489},"references\u002Fdesign_principles.md",{"type":67,"value":491}," first. Pick an aesthetic recipe from ",{"type":62,"tag":93,"props":493,"children":495},{"className":494},[],[496],{"type":67,"value":497},"Samples\u002FAestheticRecipeSamples.cs",{"type":67,"value":499}," that matches the document type — do not invent formatting values. For CJK, also read ",{"type":62,"tag":93,"props":501,"children":503},{"className":502},[],[504],{"type":67,"value":505},"references\u002Fcjk_typography.md",{"type":67,"value":507},".",{"type":62,"tag":69,"props":509,"children":510},{},[511],{"type":62,"tag":85,"props":512,"children":513},{},[514],{"type":67,"value":515},"Choose your path:",{"type":62,"tag":517,"props":518,"children":519},"ul",{},[520,537],{"type":62,"tag":521,"props":522,"children":523},"li",{},[524,529,531],{"type":62,"tag":85,"props":525,"children":526},{},[527],{"type":67,"value":528},"Simple",{"type":67,"value":530}," (plain text, minimal formatting): use CLI — ",{"type":62,"tag":93,"props":532,"children":534},{"className":533},[],[535],{"type":67,"value":536},"$CLI create --type report --output out.docx --config content.json",{"type":62,"tag":521,"props":538,"children":539},{},[540,545,547,552],{"type":62,"tag":85,"props":541,"children":542},{},[543],{"type":67,"value":544},"Structural",{"type":67,"value":546}," (custom styles, multi-section, TOC, images, complex tables): write C# directly. Read the relevant ",{"type":62,"tag":93,"props":548,"children":550},{"className":549},[],[551],{"type":67,"value":313},{"type":67,"value":553}," first.",{"type":62,"tag":69,"props":555,"children":556},{},[557,559,565,567,573,574,580,581,587,589,595,597,603,604,610,611,617,618,624,625,631],{"type":67,"value":558},"CLI options: ",{"type":62,"tag":93,"props":560,"children":562},{"className":561},[],[563],{"type":67,"value":564},"--type",{"type":67,"value":566}," (report|letter|memo|academic), ",{"type":62,"tag":93,"props":568,"children":570},{"className":569},[],[571],{"type":67,"value":572},"--title",{"type":67,"value":475},{"type":62,"tag":93,"props":575,"children":577},{"className":576},[],[578],{"type":67,"value":579},"--author",{"type":67,"value":475},{"type":62,"tag":93,"props":582,"children":584},{"className":583},[],[585],{"type":67,"value":586},"--page-size",{"type":67,"value":588}," (letter|a4|legal|a3), ",{"type":62,"tag":93,"props":590,"children":592},{"className":591},[],[593],{"type":67,"value":594},"--margins",{"type":67,"value":596}," (standard|narrow|wide), ",{"type":62,"tag":93,"props":598,"children":600},{"className":599},[],[601],{"type":67,"value":602},"--header",{"type":67,"value":475},{"type":62,"tag":93,"props":605,"children":607},{"className":606},[],[608],{"type":67,"value":609},"--footer",{"type":67,"value":475},{"type":62,"tag":93,"props":612,"children":614},{"className":613},[],[615],{"type":67,"value":616},"--page-numbers",{"type":67,"value":475},{"type":62,"tag":93,"props":619,"children":621},{"className":620},[],[622],{"type":67,"value":623},"--toc",{"type":67,"value":475},{"type":62,"tag":93,"props":626,"children":628},{"className":627},[],[629],{"type":67,"value":630},"--content-json",{"type":67,"value":507},{"type":62,"tag":69,"props":633,"children":634},{},[635,637,642],{"type":67,"value":636},"Then run the ",{"type":62,"tag":85,"props":638,"children":639},{},[640],{"type":67,"value":641},"validation pipeline",{"type":67,"value":643}," (below).",{"type":62,"tag":75,"props":645,"children":647},{"id":646},"scenario-b-edit-fill",[648],{"type":67,"value":649},"Scenario B: Edit \u002F Fill",{"type":62,"tag":69,"props":651,"children":652},{},[653,654,660],{"type":67,"value":467},{"type":62,"tag":93,"props":655,"children":657},{"className":656},[],[658],{"type":67,"value":659},"references\u002Fscenario_b_edit_content.md",{"type":67,"value":661}," first. Preview → analyze → edit → validate.",{"type":62,"tag":69,"props":663,"children":664},{},[665],{"type":62,"tag":85,"props":666,"children":667},{},[668],{"type":67,"value":515},{"type":62,"tag":517,"props":670,"children":671},{},[672,681],{"type":62,"tag":521,"props":673,"children":674},{},[675,679],{"type":62,"tag":85,"props":676,"children":677},{},[678],{"type":67,"value":528},{"type":67,"value":680}," (text replacement, placeholder fill): use CLI subcommands.",{"type":62,"tag":521,"props":682,"children":683},{},[684,688,690,696,698,703],{"type":62,"tag":85,"props":685,"children":686},{},[687],{"type":67,"value":544},{"type":67,"value":689}," (add\u002Freorganize sections, modify styles, manipulate tables, insert images): write C# directly. Read ",{"type":62,"tag":93,"props":691,"children":693},{"className":692},[],[694],{"type":67,"value":695},"references\u002Fopenxml_element_order.md",{"type":67,"value":697}," and the relevant ",{"type":62,"tag":93,"props":699,"children":701},{"className":700},[],[702],{"type":67,"value":313},{"type":67,"value":507},{"type":62,"tag":69,"props":705,"children":706},{},[707],{"type":67,"value":708},"Available CLI edit subcommands:",{"type":62,"tag":517,"props":710,"children":711},{},[712,721,730,739],{"type":62,"tag":521,"props":713,"children":714},{},[715],{"type":62,"tag":93,"props":716,"children":718},{"className":717},[],[719],{"type":67,"value":720},"replace-text --find \"X\" --replace \"Y\"",{"type":62,"tag":521,"props":722,"children":723},{},[724],{"type":62,"tag":93,"props":725,"children":727},{"className":726},[],[728],{"type":67,"value":729},"fill-placeholders --data '{\"key\":\"value\"}'",{"type":62,"tag":521,"props":731,"children":732},{},[733],{"type":62,"tag":93,"props":734,"children":736},{"className":735},[],[737],{"type":67,"value":738},"fill-table --data table.json",{"type":62,"tag":521,"props":740,"children":741},{},[742,748,749,755,756],{"type":62,"tag":93,"props":743,"children":745},{"className":744},[],[746],{"type":67,"value":747},"insert-section",{"type":67,"value":475},{"type":62,"tag":93,"props":750,"children":752},{"className":751},[],[753],{"type":67,"value":754},"remove-section",{"type":67,"value":475},{"type":62,"tag":93,"props":757,"children":759},{"className":758},[],[760],{"type":67,"value":761},"update-header-footer",{"type":62,"tag":154,"props":763,"children":765},{"className":339,"code":764,"language":341,"meta":159,"style":159},"$CLI edit replace-text --input in.docx --output out.docx --find \"OLD\" --replace \"NEW\"\n$CLI edit fill-placeholders --input in.docx --output out.docx --data '{\"name\":\"John\"}'\n",[766],{"type":62,"tag":93,"props":767,"children":768},{"__ignoreMap":159},[769,812],{"type":62,"tag":165,"props":770,"children":771},{"class":167,"line":168},[772,778,784,789,793,798,802,807],{"type":62,"tag":165,"props":773,"children":775},{"style":774},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[776],{"type":67,"value":777},"$CLI edit replace-text --input in.docx --output out.docx --find ",{"type":62,"tag":165,"props":779,"children":781},{"style":780},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[782],{"type":67,"value":783},"\"",{"type":62,"tag":165,"props":785,"children":786},{"style":357},[787],{"type":67,"value":788},"OLD",{"type":62,"tag":165,"props":790,"children":791},{"style":780},[792],{"type":67,"value":783},{"type":62,"tag":165,"props":794,"children":795},{"style":774},[796],{"type":67,"value":797}," --replace ",{"type":62,"tag":165,"props":799,"children":800},{"style":780},[801],{"type":67,"value":783},{"type":62,"tag":165,"props":803,"children":804},{"style":357},[805],{"type":67,"value":806},"NEW",{"type":62,"tag":165,"props":808,"children":809},{"style":780},[810],{"type":67,"value":811},"\"\n",{"type":62,"tag":165,"props":813,"children":814},{"class":167,"line":177},[815,820,825,830],{"type":62,"tag":165,"props":816,"children":817},{"style":774},[818],{"type":67,"value":819},"$CLI edit fill-placeholders --input in.docx --output out.docx --data ",{"type":62,"tag":165,"props":821,"children":822},{"style":780},[823],{"type":67,"value":824},"'",{"type":62,"tag":165,"props":826,"children":827},{"style":357},[828],{"type":67,"value":829},"{\"name\":\"John\"}",{"type":62,"tag":165,"props":831,"children":832},{"style":780},[833],{"type":67,"value":834},"'\n",{"type":62,"tag":69,"props":836,"children":837},{},[838,839,843],{"type":67,"value":636},{"type":62,"tag":85,"props":840,"children":841},{},[842],{"type":67,"value":641},{"type":67,"value":844},". Also run diff to verify minimal changes:",{"type":62,"tag":154,"props":846,"children":848},{"className":339,"code":847,"language":341,"meta":159,"style":159},"$CLI diff --before in.docx --after out.docx\n",[849],{"type":62,"tag":93,"props":850,"children":851},{"__ignoreMap":159},[852],{"type":62,"tag":165,"props":853,"children":854},{"class":167,"line":168},[855],{"type":62,"tag":165,"props":856,"children":857},{"style":774},[858],{"type":67,"value":847},{"type":62,"tag":75,"props":860,"children":862},{"id":861},"scenario-c-apply-template",[863],{"type":67,"value":864},"Scenario C: Apply Template",{"type":62,"tag":69,"props":866,"children":867},{},[868,869,875],{"type":67,"value":467},{"type":62,"tag":93,"props":870,"children":872},{"className":871},[],[873],{"type":67,"value":874},"references\u002Fscenario_c_apply_template.md",{"type":67,"value":876}," first. Preview and analyze both source and template.",{"type":62,"tag":154,"props":878,"children":880},{"className":339,"code":879,"language":341,"meta":159,"style":159},"$CLI apply-template --input source.docx --template template.docx --output out.docx\n",[881],{"type":62,"tag":93,"props":882,"children":883},{"__ignoreMap":159},[884],{"type":62,"tag":165,"props":885,"children":886},{"class":167,"line":168},[887],{"type":62,"tag":165,"props":888,"children":889},{"style":774},[890],{"type":67,"value":879},{"type":62,"tag":69,"props":892,"children":893},{},[894],{"type":67,"value":895},"For complex template operations (multi-template merge, per-section headers\u002Ffooters, style merging), write C# directly — see Critical Rules below for required patterns.",{"type":62,"tag":69,"props":897,"children":898},{},[899,901,905,907,912],{"type":67,"value":900},"Run the ",{"type":62,"tag":85,"props":902,"children":903},{},[904],{"type":67,"value":641},{"type":67,"value":906},", then the ",{"type":62,"tag":85,"props":908,"children":909},{},[910],{"type":67,"value":911},"hard gate-check",{"type":67,"value":913},":",{"type":62,"tag":154,"props":915,"children":917},{"className":339,"code":916,"language":341,"meta":159,"style":159},"$CLI validate --input out.docx --gate-check assets\u002Fxsd\u002Fbusiness-rules.xsd\n",[918],{"type":62,"tag":93,"props":919,"children":920},{"__ignoreMap":159},[921],{"type":62,"tag":165,"props":922,"children":923},{"class":167,"line":168},[924],{"type":62,"tag":165,"props":925,"children":926},{"style":774},[927],{"type":67,"value":916},{"type":62,"tag":69,"props":929,"children":930},{},[931,933,938],{"type":67,"value":932},"Gate-check is a ",{"type":62,"tag":85,"props":934,"children":935},{},[936],{"type":67,"value":937},"hard requirement",{"type":67,"value":939},". Do NOT deliver until it passes. If it fails: diagnose, fix, re-run.",{"type":62,"tag":69,"props":941,"children":942},{},[943,945],{"type":67,"value":944},"Also diff to verify content preservation: ",{"type":62,"tag":93,"props":946,"children":948},{"className":947},[],[949],{"type":67,"value":950},"$CLI diff --before source.docx --after out.docx",{"type":62,"tag":75,"props":952,"children":954},{"id":953},"validation-pipeline",[955],{"type":67,"value":956},"Validation pipeline",{"type":62,"tag":69,"props":958,"children":959},{},[960,962,967,969,974],{"type":67,"value":961},"Run after every write operation. For Scenario C the full pipeline is ",{"type":62,"tag":85,"props":963,"children":964},{},[965],{"type":67,"value":966},"mandatory",{"type":67,"value":968},"; for A\u002FB it is ",{"type":62,"tag":85,"props":970,"children":971},{},[972],{"type":67,"value":973},"recommended",{"type":67,"value":975}," (skip only if the operation was trivially simple).",{"type":62,"tag":154,"props":977,"children":979},{"className":339,"code":978,"language":341,"meta":159,"style":159},"$CLI merge-runs --input doc.docx                                    # 1. consolidate runs\n$CLI validate --input doc.docx --xsd assets\u002Fxsd\u002Fwml-subset.xsd     # 2. XSD structure\n$CLI validate --input doc.docx --business                           # 3. business rules\n",[980],{"type":62,"tag":93,"props":981,"children":982},{"__ignoreMap":159},[983,997,1010],{"type":62,"tag":165,"props":984,"children":985},{"class":167,"line":168},[986,991],{"type":62,"tag":165,"props":987,"children":988},{"style":774},[989],{"type":67,"value":990},"$CLI merge-runs --input doc.docx                                    ",{"type":62,"tag":165,"props":992,"children":994},{"style":993},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[995],{"type":67,"value":996},"# 1. consolidate runs\n",{"type":62,"tag":165,"props":998,"children":999},{"class":167,"line":177},[1000,1005],{"type":62,"tag":165,"props":1001,"children":1002},{"style":774},[1003],{"type":67,"value":1004},"$CLI validate --input doc.docx --xsd assets\u002Fxsd\u002Fwml-subset.xsd     ",{"type":62,"tag":165,"props":1006,"children":1007},{"style":993},[1008],{"type":67,"value":1009},"# 2. XSD structure\n",{"type":62,"tag":165,"props":1011,"children":1012},{"class":167,"line":186},[1013,1018],{"type":62,"tag":165,"props":1014,"children":1015},{"style":774},[1016],{"type":67,"value":1017},"$CLI validate --input doc.docx --business                           ",{"type":62,"tag":165,"props":1019,"children":1020},{"style":993},[1021],{"type":67,"value":1022},"# 3. business rules\n",{"type":62,"tag":69,"props":1024,"children":1025},{},[1026],{"type":67,"value":1027},"If XSD fails, auto-repair and retry:",{"type":62,"tag":154,"props":1029,"children":1031},{"className":339,"code":1030,"language":341,"meta":159,"style":159},"$CLI fix-order --input doc.docx\n$CLI validate --input doc.docx --xsd assets\u002Fxsd\u002Fwml-subset.xsd\n",[1032],{"type":62,"tag":93,"props":1033,"children":1034},{"__ignoreMap":159},[1035,1043],{"type":62,"tag":165,"props":1036,"children":1037},{"class":167,"line":168},[1038],{"type":62,"tag":165,"props":1039,"children":1040},{"style":774},[1041],{"type":67,"value":1042},"$CLI fix-order --input doc.docx\n",{"type":62,"tag":165,"props":1044,"children":1045},{"class":167,"line":177},[1046],{"type":62,"tag":165,"props":1047,"children":1048},{"style":774},[1049],{"type":67,"value":1050},"$CLI validate --input doc.docx --xsd assets\u002Fxsd\u002Fwml-subset.xsd\n",{"type":62,"tag":69,"props":1052,"children":1053},{},[1054],{"type":67,"value":1055},"If XSD still fails, fall back to business rules + preview:",{"type":62,"tag":154,"props":1057,"children":1059},{"className":339,"code":1058,"language":341,"meta":159,"style":159},"$CLI validate --input doc.docx --business\nscripts\u002Fdocx_preview.sh doc.docx\n# Verify: font contamination=0, table count correct, drawing count correct, sectPr count correct\n",[1060],{"type":62,"tag":93,"props":1061,"children":1062},{"__ignoreMap":159},[1063,1071,1084],{"type":62,"tag":165,"props":1064,"children":1065},{"class":167,"line":168},[1066],{"type":62,"tag":165,"props":1067,"children":1068},{"style":774},[1069],{"type":67,"value":1070},"$CLI validate --input doc.docx --business\n",{"type":62,"tag":165,"props":1072,"children":1073},{"class":167,"line":177},[1074,1079],{"type":62,"tag":165,"props":1075,"children":1076},{"style":351},[1077],{"type":67,"value":1078},"scripts\u002Fdocx_preview.sh",{"type":62,"tag":165,"props":1080,"children":1081},{"style":357},[1082],{"type":67,"value":1083}," doc.docx\n",{"type":62,"tag":165,"props":1085,"children":1086},{"class":167,"line":186},[1087],{"type":62,"tag":165,"props":1088,"children":1089},{"style":993},[1090],{"type":67,"value":1091},"# Verify: font contamination=0, table count correct, drawing count correct, sectPr count correct\n",{"type":62,"tag":69,"props":1093,"children":1094},{},[1095,1097],{"type":67,"value":1096},"Final preview: ",{"type":62,"tag":93,"props":1098,"children":1100},{"className":1099},[],[1101],{"type":67,"value":1102},"scripts\u002Fdocx_preview.sh doc.docx",{"type":62,"tag":75,"props":1104,"children":1106},{"id":1105},"critical-rules",[1107],{"type":67,"value":1108},"Critical rules",{"type":62,"tag":69,"props":1110,"children":1111},{},[1112],{"type":67,"value":1113},"These prevent file corruption — OpenXML is strict about element ordering.",{"type":62,"tag":69,"props":1115,"children":1116},{},[1117,1122],{"type":62,"tag":85,"props":1118,"children":1119},{},[1120],{"type":67,"value":1121},"Element order",{"type":67,"value":1123}," (properties always first):",{"type":62,"tag":1125,"props":1126,"children":1127},"table",{},[1128,1147],{"type":62,"tag":1129,"props":1130,"children":1131},"thead",{},[1132],{"type":62,"tag":1133,"props":1134,"children":1135},"tr",{},[1136,1142],{"type":62,"tag":1137,"props":1138,"children":1139},"th",{},[1140],{"type":67,"value":1141},"Parent",{"type":62,"tag":1137,"props":1143,"children":1144},{},[1145],{"type":67,"value":1146},"Order",{"type":62,"tag":1148,"props":1149,"children":1150},"tbody",{},[1151,1175,1218,1252,1280,1317],{"type":62,"tag":1133,"props":1152,"children":1153},{},[1154,1164],{"type":62,"tag":1155,"props":1156,"children":1157},"td",{},[1158],{"type":62,"tag":93,"props":1159,"children":1161},{"className":1160},[],[1162],{"type":67,"value":1163},"w:p",{"type":62,"tag":1155,"props":1165,"children":1166},{},[1167,1173],{"type":62,"tag":93,"props":1168,"children":1170},{"className":1169},[],[1171],{"type":67,"value":1172},"pPr",{"type":67,"value":1174}," → runs",{"type":62,"tag":1133,"props":1176,"children":1177},{},[1178,1187],{"type":62,"tag":1155,"props":1179,"children":1180},{},[1181],{"type":62,"tag":93,"props":1182,"children":1184},{"className":1183},[],[1185],{"type":67,"value":1186},"w:r",{"type":62,"tag":1155,"props":1188,"children":1189},{},[1190,1196,1197,1203,1205,1211,1212],{"type":62,"tag":93,"props":1191,"children":1193},{"className":1192},[],[1194],{"type":67,"value":1195},"rPr",{"type":67,"value":420},{"type":62,"tag":93,"props":1198,"children":1200},{"className":1199},[],[1201],{"type":67,"value":1202},"t",{"type":67,"value":1204},"\u002F",{"type":62,"tag":93,"props":1206,"children":1208},{"className":1207},[],[1209],{"type":67,"value":1210},"br",{"type":67,"value":1204},{"type":62,"tag":93,"props":1213,"children":1215},{"className":1214},[],[1216],{"type":67,"value":1217},"tab",{"type":62,"tag":1133,"props":1219,"children":1220},{},[1221,1230],{"type":62,"tag":1155,"props":1222,"children":1223},{},[1224],{"type":62,"tag":93,"props":1225,"children":1227},{"className":1226},[],[1228],{"type":67,"value":1229},"w:tbl",{"type":62,"tag":1155,"props":1231,"children":1232},{},[1233,1239,1240,1246,1247],{"type":62,"tag":93,"props":1234,"children":1236},{"className":1235},[],[1237],{"type":67,"value":1238},"tblPr",{"type":67,"value":420},{"type":62,"tag":93,"props":1241,"children":1243},{"className":1242},[],[1244],{"type":67,"value":1245},"tblGrid",{"type":67,"value":420},{"type":62,"tag":93,"props":1248,"children":1250},{"className":1249},[],[1251],{"type":67,"value":1133},{"type":62,"tag":1133,"props":1253,"children":1254},{},[1255,1264],{"type":62,"tag":1155,"props":1256,"children":1257},{},[1258],{"type":62,"tag":93,"props":1259,"children":1261},{"className":1260},[],[1262],{"type":67,"value":1263},"w:tr",{"type":62,"tag":1155,"props":1265,"children":1266},{},[1267,1273,1274],{"type":62,"tag":93,"props":1268,"children":1270},{"className":1269},[],[1271],{"type":67,"value":1272},"trPr",{"type":67,"value":420},{"type":62,"tag":93,"props":1275,"children":1277},{"className":1276},[],[1278],{"type":67,"value":1279},"tc",{"type":62,"tag":1133,"props":1281,"children":1282},{},[1283,1292],{"type":62,"tag":1155,"props":1284,"children":1285},{},[1286],{"type":62,"tag":93,"props":1287,"children":1289},{"className":1288},[],[1290],{"type":67,"value":1291},"w:tc",{"type":62,"tag":1155,"props":1293,"children":1294},{},[1295,1301,1302,1307,1309,1315],{"type":62,"tag":93,"props":1296,"children":1298},{"className":1297},[],[1299],{"type":67,"value":1300},"tcPr",{"type":67,"value":420},{"type":62,"tag":93,"props":1303,"children":1305},{"className":1304},[],[1306],{"type":67,"value":69},{"type":67,"value":1308}," (min 1 ",{"type":62,"tag":93,"props":1310,"children":1312},{"className":1311},[],[1313],{"type":67,"value":1314},"\u003Cw:p\u002F>",{"type":67,"value":1316},")",{"type":62,"tag":1133,"props":1318,"children":1319},{},[1320,1329],{"type":62,"tag":1155,"props":1321,"children":1322},{},[1323],{"type":62,"tag":93,"props":1324,"children":1326},{"className":1325},[],[1327],{"type":67,"value":1328},"w:body",{"type":62,"tag":1155,"props":1330,"children":1331},{},[1332,1334,1340],{"type":67,"value":1333},"block content → ",{"type":62,"tag":93,"props":1335,"children":1337},{"className":1336},[],[1338],{"type":67,"value":1339},"sectPr",{"type":67,"value":1341}," (LAST child)",{"type":62,"tag":69,"props":1343,"children":1344},{},[1345,1350,1352,1357,1359,1364,1366,1372,1374,1379,1381,1387],{"type":62,"tag":85,"props":1346,"children":1347},{},[1348],{"type":67,"value":1349},"Direct format contamination:",{"type":67,"value":1351}," When copying content from a source document, inline ",{"type":62,"tag":93,"props":1353,"children":1355},{"className":1354},[],[1356],{"type":67,"value":1195},{"type":67,"value":1358}," (fonts, color) and ",{"type":62,"tag":93,"props":1360,"children":1362},{"className":1361},[],[1363],{"type":67,"value":1172},{"type":67,"value":1365}," (borders, shading, spacing) override template styles. Always strip direct formatting — keep only ",{"type":62,"tag":93,"props":1367,"children":1369},{"className":1368},[],[1370],{"type":67,"value":1371},"pStyle",{"type":67,"value":1373}," reference and ",{"type":62,"tag":93,"props":1375,"children":1377},{"className":1376},[],[1378],{"type":67,"value":1202},{"type":67,"value":1380}," text. Clean tables too (including ",{"type":62,"tag":93,"props":1382,"children":1384},{"className":1383},[],[1385],{"type":67,"value":1386},"pPr\u002FrPr",{"type":67,"value":1388}," inside cells).",{"type":62,"tag":69,"props":1390,"children":1391},{},[1392,1397,1398,1404,1406,1412,1414,1420,1422,1428,1429,1434,1435,1440],{"type":62,"tag":85,"props":1393,"children":1394},{},[1395],{"type":67,"value":1396},"Track changes:",{"type":67,"value":91},{"type":62,"tag":93,"props":1399,"children":1401},{"className":1400},[],[1402],{"type":67,"value":1403},"\u003Cw:del>",{"type":67,"value":1405}," uses ",{"type":62,"tag":93,"props":1407,"children":1409},{"className":1408},[],[1410],{"type":67,"value":1411},"\u003Cw:delText>",{"type":67,"value":1413},", never ",{"type":62,"tag":93,"props":1415,"children":1417},{"className":1416},[],[1418],{"type":67,"value":1419},"\u003Cw:t>",{"type":67,"value":1421},". ",{"type":62,"tag":93,"props":1423,"children":1425},{"className":1424},[],[1426],{"type":67,"value":1427},"\u003Cw:ins>",{"type":67,"value":1405},{"type":62,"tag":93,"props":1430,"children":1432},{"className":1431},[],[1433],{"type":67,"value":1419},{"type":67,"value":1413},{"type":62,"tag":93,"props":1436,"children":1438},{"className":1437},[],[1439],{"type":67,"value":1411},{"type":67,"value":507},{"type":62,"tag":69,"props":1442,"children":1443},{},[1444,1449,1450,1456,1458,1464],{"type":62,"tag":85,"props":1445,"children":1446},{},[1447],{"type":67,"value":1448},"Font size:",{"type":67,"value":91},{"type":62,"tag":93,"props":1451,"children":1453},{"className":1452},[],[1454],{"type":67,"value":1455},"w:sz",{"type":67,"value":1457}," = points × 2 (12pt → ",{"type":62,"tag":93,"props":1459,"children":1461},{"className":1460},[],[1462],{"type":67,"value":1463},"sz=\"24\"",{"type":67,"value":1465},"). Margins\u002Fspacing in DXA (1 inch = 1440, 1cm ≈ 567).",{"type":62,"tag":69,"props":1467,"children":1468},{},[1469,1474,1476,1482,1484,1490],{"type":62,"tag":85,"props":1470,"children":1471},{},[1472],{"type":67,"value":1473},"Heading styles MUST have OutlineLevel:",{"type":67,"value":1475}," When defining heading styles (Heading1, ThesisH1, etc.), always include ",{"type":62,"tag":93,"props":1477,"children":1479},{"className":1478},[],[1480],{"type":67,"value":1481},"new OutlineLevel { Val = N }",{"type":67,"value":1483}," in ",{"type":62,"tag":93,"props":1485,"children":1487},{"className":1486},[],[1488],{"type":67,"value":1489},"StyleParagraphProperties",{"type":67,"value":1491}," (H1→0, H2→1, H3→2). Without this, Word sees them as plain styled text — TOC and navigation pane won't work.",{"type":62,"tag":69,"props":1493,"children":1494},{},[1495,1500,1502,1507],{"type":62,"tag":85,"props":1496,"children":1497},{},[1498],{"type":67,"value":1499},"Multi-template merge:",{"type":67,"value":1501}," When given multiple template files (font, heading, breaks), read ",{"type":62,"tag":93,"props":1503,"children":1505},{"className":1504},[],[1506],{"type":67,"value":874},{"type":67,"value":1508}," section \"Multi-Template Merge\" FIRST. Key rules:",{"type":62,"tag":517,"props":1510,"children":1511},{},[1512,1517,1522,1551,1556,1561],{"type":62,"tag":521,"props":1513,"children":1514},{},[1515],{"type":67,"value":1516},"Merge styles from all templates into one styles.xml. Structure (sections\u002Fbreaks) comes from the breaks template.",{"type":62,"tag":521,"props":1518,"children":1519},{},[1520],{"type":67,"value":1521},"Each content paragraph must appear exactly ONCE — never duplicate when inserting section breaks.",{"type":62,"tag":521,"props":1523,"children":1524},{},[1525,1527,1533,1535,1541,1543,1549],{"type":67,"value":1526},"NEVER insert empty\u002Fblank paragraphs as padding or section separators. Output paragraph count must equal input. Use section break properties (",{"type":62,"tag":93,"props":1528,"children":1530},{"className":1529},[],[1531],{"type":67,"value":1532},"w:sectPr",{"type":67,"value":1534}," inside ",{"type":62,"tag":93,"props":1536,"children":1538},{"className":1537},[],[1539],{"type":67,"value":1540},"w:pPr",{"type":67,"value":1542},") and style spacing (",{"type":62,"tag":93,"props":1544,"children":1546},{"className":1545},[],[1547],{"type":67,"value":1548},"w:spacing",{"type":67,"value":1550}," before\u002Fafter) for visual separation.",{"type":62,"tag":521,"props":1552,"children":1553},{},[1554],{"type":67,"value":1555},"Insert oddPage section breaks before EVERY chapter heading, not just the first. Even if a chapter has dual-column content, it MUST start with oddPage; use a second continuous break after the heading for column switching.",{"type":62,"tag":521,"props":1557,"children":1558},{},[1559],{"type":67,"value":1560},"Dual-column chapters need THREE section breaks: (1) oddPage in preceding para's pPr, (2) continuous+cols=2 in the chapter HEADING's pPr, (3) continuous+cols=1 in the last body para's pPr to revert.",{"type":62,"tag":521,"props":1562,"children":1563},{},[1564,1566,1572,1574,1580],{"type":67,"value":1565},"Copy ",{"type":62,"tag":93,"props":1567,"children":1569},{"className":1568},[],[1570],{"type":67,"value":1571},"titlePg",{"type":67,"value":1573}," settings from the breaks template for EACH section. Abstract and TOC sections typically need ",{"type":62,"tag":93,"props":1575,"children":1577},{"className":1576},[],[1578],{"type":67,"value":1579},"titlePg=true",{"type":67,"value":507},{"type":62,"tag":69,"props":1582,"children":1583},{},[1584,1589],{"type":62,"tag":85,"props":1585,"children":1586},{},[1587],{"type":67,"value":1588},"Multi-section headers\u002Ffooters:",{"type":67,"value":1590}," Templates with 10+ sections (e.g., Chinese thesis) have DIFFERENT headers\u002Ffooters per section (Roman vs Arabic page numbers, different header text per zone). Rules:",{"type":62,"tag":517,"props":1592,"children":1593},{},[1594,1599,1604,1609,1614],{"type":62,"tag":521,"props":1595,"children":1596},{},[1597],{"type":67,"value":1598},"Use C-2 Base-Replace: copy the TEMPLATE as output base, then replace body content. This preserves all sections, headers, footers, and titlePg settings automatically.",{"type":62,"tag":521,"props":1600,"children":1601},{},[1602],{"type":67,"value":1603},"NEVER recreate headers\u002Ffooters from scratch — copy template header\u002Ffooter XML byte-for-byte.",{"type":62,"tag":521,"props":1605,"children":1606},{},[1607],{"type":67,"value":1608},"NEVER add formatting (borders, alignment, font size) not present in the template header XML.",{"type":62,"tag":521,"props":1610,"children":1611},{},[1612],{"type":67,"value":1613},"Non-cover sections MUST have header\u002Ffooter XML files (at least empty header + page number footer).",{"type":62,"tag":521,"props":1615,"children":1616},{},[1617,1619,1624],{"type":67,"value":1618},"See ",{"type":62,"tag":93,"props":1620,"children":1622},{"className":1621},[],[1623],{"type":67,"value":874},{"type":67,"value":1625}," section \"Multi-Section Header\u002FFooter Transfer\".",{"type":62,"tag":75,"props":1627,"children":1629},{"id":1628},"references",[1630],{"type":67,"value":1631},"References",{"type":62,"tag":69,"props":1633,"children":1634},{},[1635],{"type":67,"value":1636},"Load as needed — don't load all at once. Pick the most relevant files for the task.",{"type":62,"tag":69,"props":1638,"children":1639},{},[1640,1645],{"type":62,"tag":85,"props":1641,"children":1642},{},[1643],{"type":67,"value":1644},"The C# samples and design references below are the project's knowledge base (\"encyclopedia\").",{"type":67,"value":1646}," When writing OpenXML code, ALWAYS read the relevant sample file first — it contains compilable, SDK-version-verified patterns that prevent common errors. When making aesthetic decisions, read the design principles and recipe files — they encode tested, harmonious parameter sets from authoritative sources (IEEE, ACM, APA, Nature, etc.), not guesses.",{"type":62,"tag":1648,"props":1649,"children":1651},"h3",{"id":1650},"scenario-guides-read-first-for-each-pipeline",[1652],{"type":67,"value":1653},"Scenario guides (read first for each pipeline)",{"type":62,"tag":1125,"props":1655,"children":1656},{},[1657,1673],{"type":62,"tag":1129,"props":1658,"children":1659},{},[1660],{"type":62,"tag":1133,"props":1661,"children":1662},{},[1663,1668],{"type":62,"tag":1137,"props":1664,"children":1665},{},[1666],{"type":67,"value":1667},"File",{"type":62,"tag":1137,"props":1669,"children":1670},{},[1671],{"type":67,"value":1672},"When",{"type":62,"tag":1148,"props":1674,"children":1675},{},[1676,1692,1708],{"type":62,"tag":1133,"props":1677,"children":1678},{},[1679,1687],{"type":62,"tag":1155,"props":1680,"children":1681},{},[1682],{"type":62,"tag":93,"props":1683,"children":1685},{"className":1684},[],[1686],{"type":67,"value":473},{"type":62,"tag":1155,"props":1688,"children":1689},{},[1690],{"type":67,"value":1691},"Pipeline A: creating from scratch",{"type":62,"tag":1133,"props":1693,"children":1694},{},[1695,1703],{"type":62,"tag":1155,"props":1696,"children":1697},{},[1698],{"type":62,"tag":93,"props":1699,"children":1701},{"className":1700},[],[1702],{"type":67,"value":659},{"type":62,"tag":1155,"props":1704,"children":1705},{},[1706],{"type":67,"value":1707},"Pipeline B: editing existing content",{"type":62,"tag":1133,"props":1709,"children":1710},{},[1711,1719],{"type":62,"tag":1155,"props":1712,"children":1713},{},[1714],{"type":62,"tag":93,"props":1715,"children":1717},{"className":1716},[],[1718],{"type":67,"value":874},{"type":62,"tag":1155,"props":1720,"children":1721},{},[1722],{"type":67,"value":1723},"Pipeline C: applying template formatting",{"type":62,"tag":1648,"props":1725,"children":1727},{"id":1726},"c-code-samples-compilable-heavily-commented-read-when-writing-code",[1728],{"type":67,"value":1729},"C# code samples (compilable, heavily commented — read when writing code)",{"type":62,"tag":1125,"props":1731,"children":1732},{},[1733,1748],{"type":62,"tag":1129,"props":1734,"children":1735},{},[1736],{"type":62,"tag":1133,"props":1737,"children":1738},{},[1739,1743],{"type":62,"tag":1137,"props":1740,"children":1741},{},[1742],{"type":67,"value":1667},{"type":62,"tag":1137,"props":1744,"children":1745},{},[1746],{"type":67,"value":1747},"Topic",{"type":62,"tag":1148,"props":1749,"children":1750},{},[1751,1768,1785,1802,1819,1836,1853,1870,1887,1904,1921,1938],{"type":62,"tag":1133,"props":1752,"children":1753},{},[1754,1763],{"type":62,"tag":1155,"props":1755,"children":1756},{},[1757],{"type":62,"tag":93,"props":1758,"children":1760},{"className":1759},[],[1761],{"type":67,"value":1762},"Samples\u002FDocumentCreationSamples.cs",{"type":62,"tag":1155,"props":1764,"children":1765},{},[1766],{"type":67,"value":1767},"Document lifecycle: create, open, save, streams, doc defaults, settings, properties, page setup, multi-section",{"type":62,"tag":1133,"props":1769,"children":1770},{},[1771,1780],{"type":62,"tag":1155,"props":1772,"children":1773},{},[1774],{"type":62,"tag":93,"props":1775,"children":1777},{"className":1776},[],[1778],{"type":67,"value":1779},"Samples\u002FStyleSystemSamples.cs",{"type":62,"tag":1155,"props":1781,"children":1782},{},[1783],{"type":67,"value":1784},"Styles: Normal\u002FHeading chain, character\u002Ftable\u002Flist styles, DocDefaults, latentStyles, CJK 公文, APA 7th, import, resolve inheritance",{"type":62,"tag":1133,"props":1786,"children":1787},{},[1788,1797],{"type":62,"tag":1155,"props":1789,"children":1790},{},[1791],{"type":62,"tag":93,"props":1792,"children":1794},{"className":1793},[],[1795],{"type":67,"value":1796},"Samples\u002FCharacterFormattingSamples.cs",{"type":62,"tag":1155,"props":1798,"children":1799},{},[1800],{"type":67,"value":1801},"RunProperties: fonts, size, bold\u002Fitalic, all underlines, color, highlight, strike, sub\u002Fsuper, caps, spacing, shading, border, emphasis marks",{"type":62,"tag":1133,"props":1803,"children":1804},{},[1805,1814],{"type":62,"tag":1155,"props":1806,"children":1807},{},[1808],{"type":62,"tag":93,"props":1809,"children":1811},{"className":1810},[],[1812],{"type":67,"value":1813},"Samples\u002FParagraphFormattingSamples.cs",{"type":62,"tag":1155,"props":1815,"children":1816},{},[1817],{"type":67,"value":1818},"ParagraphProperties: justification, indentation, line\u002Fparagraph spacing, keep\u002Fwidow, outline level, borders, tabs, numbering, bidi, frame",{"type":62,"tag":1133,"props":1820,"children":1821},{},[1822,1831],{"type":62,"tag":1155,"props":1823,"children":1824},{},[1825],{"type":62,"tag":93,"props":1826,"children":1828},{"className":1827},[],[1829],{"type":67,"value":1830},"Samples\u002FTableSamples.cs",{"type":62,"tag":1155,"props":1832,"children":1833},{},[1834],{"type":67,"value":1835},"Tables: borders, grid, cell props, margins, row height, header repeat, merge (H+V), nested, floating, three-line 三线表, zebra striping",{"type":62,"tag":1133,"props":1837,"children":1838},{},[1839,1848],{"type":62,"tag":1155,"props":1840,"children":1841},{},[1842],{"type":62,"tag":93,"props":1843,"children":1845},{"className":1844},[],[1846],{"type":67,"value":1847},"Samples\u002FHeaderFooterSamples.cs",{"type":62,"tag":1155,"props":1849,"children":1850},{},[1851],{"type":67,"value":1852},"Headers\u002Ffooters: page numbers, \"Page X of Y\", first\u002Feven\u002Fodd, logo image, table layout, 公文 \"-X-\", per-section",{"type":62,"tag":1133,"props":1854,"children":1855},{},[1856,1865],{"type":62,"tag":1155,"props":1857,"children":1858},{},[1859],{"type":62,"tag":93,"props":1860,"children":1862},{"className":1861},[],[1863],{"type":67,"value":1864},"Samples\u002FImageSamples.cs",{"type":62,"tag":1155,"props":1866,"children":1867},{},[1868],{"type":67,"value":1869},"Images: inline, floating, text wrapping, border, alt text, in header\u002Ftable, replace, SVG fallback, dimension calc",{"type":62,"tag":1133,"props":1871,"children":1872},{},[1873,1882],{"type":62,"tag":1155,"props":1874,"children":1875},{},[1876],{"type":62,"tag":93,"props":1877,"children":1879},{"className":1878},[],[1880],{"type":67,"value":1881},"Samples\u002FListAndNumberingSamples.cs",{"type":62,"tag":1155,"props":1883,"children":1884},{},[1885],{"type":67,"value":1886},"Numbering: bullets, multi-level decimal, custom symbols, outline→headings, legal, Chinese 一\u002F（一）\u002F1.\u002F(1), restart\u002Fcontinue",{"type":62,"tag":1133,"props":1888,"children":1889},{},[1890,1899],{"type":62,"tag":1155,"props":1891,"children":1892},{},[1893],{"type":62,"tag":93,"props":1894,"children":1896},{"className":1895},[],[1897],{"type":67,"value":1898},"Samples\u002FFieldAndTocSamples.cs",{"type":62,"tag":1155,"props":1900,"children":1901},{},[1902],{"type":67,"value":1903},"Fields: TOC, SimpleField vs complex field, DATE\u002FPAGE\u002FREF\u002FSEQ\u002FMERGEFIELD\u002FIF\u002FSTYLEREF, TOC styles",{"type":62,"tag":1133,"props":1905,"children":1906},{},[1907,1916],{"type":62,"tag":1155,"props":1908,"children":1909},{},[1910],{"type":62,"tag":93,"props":1911,"children":1913},{"className":1912},[],[1914],{"type":67,"value":1915},"Samples\u002FFootnoteAndCommentSamples.cs",{"type":62,"tag":1155,"props":1917,"children":1918},{},[1919],{"type":67,"value":1920},"Footnotes, endnotes, comments (4-file system), bookmarks, hyperlinks (internal + external)",{"type":62,"tag":1133,"props":1922,"children":1923},{},[1924,1933],{"type":62,"tag":1155,"props":1925,"children":1926},{},[1927],{"type":62,"tag":93,"props":1928,"children":1930},{"className":1929},[],[1931],{"type":67,"value":1932},"Samples\u002FTrackChangesSamples.cs",{"type":62,"tag":1155,"props":1934,"children":1935},{},[1936],{"type":67,"value":1937},"Revisions: insertions (w:t), deletions (w:delText!), formatting changes, accept\u002Freject all, move tracking",{"type":62,"tag":1133,"props":1939,"children":1940},{},[1941,1949],{"type":62,"tag":1155,"props":1942,"children":1943},{},[1944],{"type":62,"tag":93,"props":1945,"children":1947},{"className":1946},[],[1948],{"type":67,"value":497},{"type":62,"tag":1155,"props":1950,"children":1951},{},[1952],{"type":67,"value":1953},"13 aesthetic recipes from authoritative sources: ModernCorporate, AcademicThesis, ExecutiveBrief, ChineseGovernment (GB\u002FT 9704), MinimalModern, IEEE Conference, ACM sigconf, APA 7th, MLA 9th, Chicago\u002FTurabian, Springer LNCS, Nature, HBR — each with exact values from official style guides",{"type":62,"tag":69,"props":1955,"children":1956},{},[1957,1959,1965,1967,1973],{"type":67,"value":1958},"Note: ",{"type":62,"tag":93,"props":1960,"children":1962},{"className":1961},[],[1963],{"type":67,"value":1964},"Samples\u002F",{"type":67,"value":1966}," path is relative to ",{"type":62,"tag":93,"props":1968,"children":1970},{"className":1969},[],[1971],{"type":67,"value":1972},"scripts\u002Fdotnet\u002FMiniMaxAIDocx.Core\u002F",{"type":67,"value":507},{"type":62,"tag":1648,"props":1975,"children":1977},{"id":1976},"markdown-references-read-when-you-need-specifications-or-design-rules",[1978],{"type":67,"value":1979},"Markdown references (read when you need specifications or design rules)",{"type":62,"tag":1125,"props":1981,"children":1982},{},[1983,1997],{"type":62,"tag":1129,"props":1984,"children":1985},{},[1986],{"type":62,"tag":1133,"props":1987,"children":1988},{},[1989,1993],{"type":62,"tag":1137,"props":1990,"children":1991},{},[1992],{"type":67,"value":1667},{"type":62,"tag":1137,"props":1994,"children":1995},{},[1996],{"type":67,"value":1672},{"type":62,"tag":1148,"props":1998,"children":1999},{},[2000,2016,2033,2050,2067,2084,2100,2116,2133,2154,2176,2193],{"type":62,"tag":1133,"props":2001,"children":2002},{},[2003,2011],{"type":62,"tag":1155,"props":2004,"children":2005},{},[2006],{"type":62,"tag":93,"props":2007,"children":2009},{"className":2008},[],[2010],{"type":67,"value":695},{"type":62,"tag":1155,"props":2012,"children":2013},{},[2014],{"type":67,"value":2015},"XML element ordering rules (prevents corruption)",{"type":62,"tag":1133,"props":2017,"children":2018},{},[2019,2028],{"type":62,"tag":1155,"props":2020,"children":2021},{},[2022],{"type":62,"tag":93,"props":2023,"children":2025},{"className":2024},[],[2026],{"type":67,"value":2027},"references\u002Fopenxml_units.md",{"type":62,"tag":1155,"props":2029,"children":2030},{},[2031],{"type":67,"value":2032},"Unit conversion: DXA, EMU, half-points, eighth-points",{"type":62,"tag":1133,"props":2034,"children":2035},{},[2036,2045],{"type":62,"tag":1155,"props":2037,"children":2038},{},[2039],{"type":62,"tag":93,"props":2040,"children":2042},{"className":2041},[],[2043],{"type":67,"value":2044},"references\u002Fopenxml_encyclopedia_part1.md",{"type":62,"tag":1155,"props":2046,"children":2047},{},[2048],{"type":67,"value":2049},"Detailed C# encyclopedia: document creation, styles, character & paragraph formatting",{"type":62,"tag":1133,"props":2051,"children":2052},{},[2053,2062],{"type":62,"tag":1155,"props":2054,"children":2055},{},[2056],{"type":62,"tag":93,"props":2057,"children":2059},{"className":2058},[],[2060],{"type":67,"value":2061},"references\u002Fopenxml_encyclopedia_part2.md",{"type":62,"tag":1155,"props":2063,"children":2064},{},[2065],{"type":67,"value":2066},"Detailed C# encyclopedia: page setup, tables, headers\u002Ffooters, sections, doc properties",{"type":62,"tag":1133,"props":2068,"children":2069},{},[2070,2079],{"type":62,"tag":1155,"props":2071,"children":2072},{},[2073],{"type":62,"tag":93,"props":2074,"children":2076},{"className":2075},[],[2077],{"type":67,"value":2078},"references\u002Fopenxml_encyclopedia_part3.md",{"type":62,"tag":1155,"props":2080,"children":2081},{},[2082],{"type":67,"value":2083},"Detailed C# encyclopedia: TOC, footnotes, fields, track changes, comments, images, math, numbering, protection",{"type":62,"tag":1133,"props":2085,"children":2086},{},[2087,2095],{"type":62,"tag":1155,"props":2088,"children":2089},{},[2090],{"type":62,"tag":93,"props":2091,"children":2093},{"className":2092},[],[2094],{"type":67,"value":481},{"type":62,"tag":1155,"props":2096,"children":2097},{},[2098],{"type":67,"value":2099},"Font pairing, sizes, spacing, page layout, table design, color schemes",{"type":62,"tag":1133,"props":2101,"children":2102},{},[2103,2111],{"type":62,"tag":1155,"props":2104,"children":2105},{},[2106],{"type":62,"tag":93,"props":2107,"children":2109},{"className":2108},[],[2110],{"type":67,"value":505},{"type":62,"tag":1155,"props":2112,"children":2113},{},[2114],{"type":67,"value":2115},"CJK fonts, 字号 sizes, RunFonts mapping, GB\u002FT 9704 公文 standard",{"type":62,"tag":1133,"props":2117,"children":2118},{},[2119,2128],{"type":62,"tag":1155,"props":2120,"children":2121},{},[2122],{"type":62,"tag":93,"props":2123,"children":2125},{"className":2124},[],[2126],{"type":67,"value":2127},"references\u002Fcjk_university_template_guide.md",{"type":62,"tag":1155,"props":2129,"children":2130},{},[2131],{"type":67,"value":2132},"Chinese university thesis templates: numeric styleIds (1\u002F2\u002F3 vs Heading1), document zone structure (cover→abstract→TOC→body→references), font expectations, common mistakes",{"type":62,"tag":1133,"props":2134,"children":2135},{},[2136,2144],{"type":62,"tag":1155,"props":2137,"children":2138},{},[2139],{"type":62,"tag":93,"props":2140,"children":2142},{"className":2141},[],[2143],{"type":67,"value":489},{"type":62,"tag":1155,"props":2145,"children":2146},{},[2147,2152],{"type":62,"tag":85,"props":2148,"children":2149},{},[2150],{"type":67,"value":2151},"Aesthetic foundations",{"type":67,"value":2153},": 6 design principles (white space, contrast\u002Fscale, proximity, alignment, repetition, hierarchy) — teaches WHY, not just WHAT",{"type":62,"tag":1133,"props":2155,"children":2156},{},[2157,2166],{"type":62,"tag":1155,"props":2158,"children":2159},{},[2160],{"type":62,"tag":93,"props":2161,"children":2163},{"className":2162},[],[2164],{"type":67,"value":2165},"references\u002Fdesign_good_bad_examples.md",{"type":62,"tag":1155,"props":2167,"children":2168},{},[2169,2174],{"type":62,"tag":85,"props":2170,"children":2171},{},[2172],{"type":67,"value":2173},"Good vs Bad comparisons",{"type":67,"value":2175},": 10 categories of typography mistakes with OpenXML values, ASCII mockups, and fixes",{"type":62,"tag":1133,"props":2177,"children":2178},{},[2179,2188],{"type":62,"tag":1155,"props":2180,"children":2181},{},[2182],{"type":62,"tag":93,"props":2183,"children":2185},{"className":2184},[],[2186],{"type":67,"value":2187},"references\u002Ftrack_changes_guide.md",{"type":62,"tag":1155,"props":2189,"children":2190},{},[2191],{"type":67,"value":2192},"Revision marks deep dive",{"type":62,"tag":1133,"props":2194,"children":2195},{},[2196,2205],{"type":62,"tag":1155,"props":2197,"children":2198},{},[2199],{"type":62,"tag":93,"props":2200,"children":2202},{"className":2201},[],[2203],{"type":67,"value":2204},"references\u002Ftroubleshooting.md",{"type":62,"tag":1155,"props":2206,"children":2207},{},[2208,2213],{"type":62,"tag":85,"props":2209,"children":2210},{},[2211],{"type":67,"value":2212},"Symptom-driven fixes",{"type":67,"value":2214},": 13 common problems indexed by what you SEE (headings wrong, images missing, TOC broken, etc.) — search by symptom, find the fix",{"type":62,"tag":2216,"props":2217,"children":2218},"style",{},[2219],{"type":67,"value":2220},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2222,"total":2409},[2223,2245,2261,2280,2295,2315,2333,2351,2366,2382,2389,2399],{"slug":2224,"name":2224,"fn":2225,"description":2226,"org":2227,"tags":2228,"stars":26,"repoUrl":27,"updatedAt":2244},"android-native-dev","develop Android native applications","Android native application development and UI design guide. Covers Material Design 3, Kotlin\u002FCompose development, project configuration, accessibility, and build troubleshooting. Read this before Android native application development.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2229,2232,2235,2238,2241],{"name":2230,"slug":2231,"type":16},"Accessibility","accessibility",{"name":2233,"slug":2234,"type":16},"Android","android",{"name":2236,"slug":2237,"type":16},"Kotlin","kotlin",{"name":2239,"slug":2240,"type":16},"Mobile","mobile",{"name":2242,"slug":2243,"type":16},"UI Components","ui-components","2026-07-13T06:16:54.247834",{"slug":2246,"name":2246,"fn":2247,"description":2248,"org":2249,"tags":2250,"stars":26,"repoUrl":27,"updatedAt":2260},"buddy-sings","generate singing performances for AI companions","Use when user wants their Claude Code pet (\u002Fbuddy) to sing a song. Triggers on any request that combines the concept of their Claude Code buddy, pet, or companion with singing or music. Supports multilingual triggers — match equivalent phrases in any language.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2251,2254,2257],{"name":2252,"slug":2253,"type":16},"Agents","agents",{"name":2255,"slug":2256,"type":16},"Audio","audio",{"name":2258,"slug":2259,"type":16},"Creative","creative","2026-07-13T06:16:35.130644",{"slug":2262,"name":2262,"fn":2263,"description":2264,"org":2265,"tags":2266,"stars":26,"repoUrl":27,"updatedAt":2279},"color-font-skill","select color palettes and font pairings","Choose presentation-ready color palettes and font pairings for PPT\u002Fdesign tasks. Use when users ask for visual theme choices, brand-safe palettes, or font recommendations. Triggers include: 配色, 色板, 字体, color palette, font, PPT配色, 字体搭配.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2267,2270,2273,2276],{"name":2268,"slug":2269,"type":16},"Design","design",{"name":2271,"slug":2272,"type":16},"Presentations","presentations",{"name":2274,"slug":2275,"type":16},"Themes","themes",{"name":2277,"slug":2278,"type":16},"Typography","typography","2026-07-13T06:17:02.785587",{"slug":2281,"name":2281,"fn":2282,"description":2283,"org":2284,"tags":2285,"stars":26,"repoUrl":27,"updatedAt":2294},"design-style-skill","select visual design systems for presentations","Select a consistent visual design system for PPT slides using radius\u002Fspacing style recipes. Use when users ask for overall style direction or component styling consistency. Includes Sharp\u002FSoft\u002FRounded\u002FPill recipes, component mappings, typography\u002Fspacing rules, and mixing guidance. Triggers: 风格, style, radius, spacing, 圆角, 间距, PPT风格, 视觉风格, design style, component style.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2286,2287,2290,2293],{"name":2268,"slug":2269,"type":16},{"name":2288,"slug":2289,"type":16},"Design System","design-system",{"name":2291,"slug":2292,"type":16},"PowerPoint","powerpoint",{"name":2271,"slug":2272,"type":16},"2026-07-13T06:17:10.398389",{"slug":2296,"name":2296,"fn":2297,"description":2298,"org":2299,"tags":2300,"stars":26,"repoUrl":27,"updatedAt":2314},"flutter-dev","build cross-platform apps with Flutter","Flutter cross-platform development guide covering widget patterns, Riverpod\u002FBloc state management, GoRouter navigation, performance optimization, and platform-specific implementations. Includes const optimization, responsive layouts, testing strategies, and DevTools profiling.\nUse when: building Flutter apps, implementing state management (Riverpod\u002FBloc), setting up GoRouter navigation, creating custom widgets, optimizing performance, writing widget tests, cross-platform development.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2301,2304,2307,2308,2311],{"name":2302,"slug":2303,"type":16},"Dart","dart",{"name":2305,"slug":2306,"type":16},"Flutter","flutter",{"name":2239,"slug":2240,"type":16},{"name":2309,"slug":2310,"type":16},"Performance","performance",{"name":2312,"slug":2313,"type":16},"State Management","state-management","2026-07-13T06:16:36.626679",{"slug":2316,"name":2316,"fn":2317,"description":2318,"org":2319,"tags":2320,"stars":26,"repoUrl":27,"updatedAt":2332},"frontend-dev","build visually striking frontend web pages","Full-stack frontend development combining premium UI design, cinematic animations,\nAI-generated media assets, persuasive copywriting, and visual art. Builds complete,\nvisually striking web pages with real media, advanced motion, and compelling copy.\nUse when: building landing pages, marketing sites, product pages, dashboards,\ngenerating media assets (image\u002Fvideo\u002Faudio\u002Fmusic), writing conversion copy,\ncreating generative art, or implementing cinematic scroll animations.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2321,2324,2325,2326,2329],{"name":2322,"slug":2323,"type":16},"Animation","animation",{"name":2258,"slug":2259,"type":16},{"name":2268,"slug":2269,"type":16},{"name":2327,"slug":2328,"type":16},"Frontend","frontend",{"name":2330,"slug":2331,"type":16},"Web Development","web-development","2026-07-13T06:16:39.108827",{"slug":2334,"name":2334,"fn":2335,"description":2336,"org":2337,"tags":2338,"stars":26,"repoUrl":27,"updatedAt":2350},"fullstack-dev","build full-stack web applications","Full-stack backend architecture and frontend-backend integration guide.\nTRIGGER when: building a full-stack app, creating REST API with frontend, scaffolding backend service,\nbuilding todo app, building CRUD app, building real-time app, building chat app,\nExpress + React, Next.js API, Node.js backend, Python backend, Go backend,\ndesigning service layers, implementing error handling, managing config\u002Fauth,\nsetting up API clients, implementing auth flows, handling file uploads,\nadding real-time features (SSE\u002FWebSocket), hardening for production.\nDO NOT TRIGGER when: pure frontend UI work, pure CSS\u002Fstyling, database schema only.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2339,2342,2343,2346,2349],{"name":2340,"slug":2341,"type":16},"Backend","backend",{"name":2327,"slug":2328,"type":16},{"name":2344,"slug":2345,"type":16},"Full-stack","full-stack",{"name":2347,"slug":2348,"type":16},"REST API","rest-api",{"name":2330,"slug":2331,"type":16},"2026-07-13T06:16:43.219005",{"slug":2352,"name":2352,"fn":2353,"description":2354,"org":2355,"tags":2356,"stars":26,"repoUrl":27,"updatedAt":2365},"gif-sticker-maker","create animated GIF stickers from photos","Convert photos (people, pets, objects, logos) into 4 animated GIF stickers with captions.\nUse when: user wants to create cartoon stickers, GIF expressions, emoji packs, animated avatars,\nor convert photos to Funko Pop \u002F Pop Mart blind box style animations.\nTriggers: sticker, GIF, cartoon, emoji, expression pack, avatar animation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2357,2358,2359,2362],{"name":2322,"slug":2323,"type":16},{"name":2258,"slug":2259,"type":16},{"name":2360,"slug":2361,"type":16},"Images","images",{"name":2363,"slug":2364,"type":16},"Media","media","2026-07-13T06:16:51.74461",{"slug":2367,"name":2367,"fn":2368,"description":2369,"org":2370,"tags":2371,"stars":26,"repoUrl":27,"updatedAt":2381},"ios-application-dev","develop iOS applications with SwiftUI and UIKit","iOS application development guide covering UIKit, SnapKit, and SwiftUI. Includes touch targets, safe areas, navigation patterns, Dynamic Type, Dark Mode, accessibility, collection views, common UI components, and SwiftUI design guidelines. For detailed references on specific topics, see the reference files.\nUse when: developing iOS apps, implementing UI, reviewing iOS code, working with UIKit\u002FSnapKit\u002FSwiftUI layouts, building iPhone interfaces, Swift mobile development, Apple HIG compliance, iOS accessibility implementation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2372,2373,2376,2377,2380],{"name":2230,"slug":2231,"type":16},{"name":2374,"slug":2375,"type":16},"iOS","ios",{"name":2239,"slug":2240,"type":16},{"name":2378,"slug":2379,"type":16},"SwiftUI","swiftui",{"name":2242,"slug":2243,"type":16},"2026-07-13T06:16:55.686092",{"slug":4,"name":4,"fn":5,"description":6,"org":2383,"tags":2384,"stars":26,"repoUrl":27,"updatedAt":28},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2385,2386,2387,2388],{"name":18,"slug":19,"type":16},{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"slug":2390,"name":2390,"fn":2391,"description":2392,"org":2393,"tags":2394,"stars":26,"repoUrl":27,"updatedAt":2398},"minimax-music-gen","generate music and audio tracks","Use when user wants to generate music, songs, or audio tracks. Triggers on any request involving music creation, song writing, lyrics generation, audio production, or covers. Also triggers when user provides lyrics and wants them turned into a song, or describes a mood\u002Fscene and wants background music. Supports multilingual triggers — match equivalent phrases in any language. Do NOT use for music playback of existing files, music theory questions, or music recommendation without generation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2395,2396,2397],{"name":2255,"slug":2256,"type":16},{"name":2258,"slug":2259,"type":16},{"name":2363,"slug":2364,"type":16},"2026-07-13T06:16:50.381758",{"slug":2400,"name":2400,"fn":2401,"description":2402,"org":2403,"tags":2404,"stars":26,"repoUrl":27,"updatedAt":2408},"minimax-music-playlist","generate personalized music playlists","Generate personalized music playlists by analyzing the user's music taste and generation feedback history. Triggers on any request involving playlist generation, music taste profiling, or personalized music recommendations. Supports multilingual triggers — match equivalent phrases in any language.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2405,2406,2407],{"name":2255,"slug":2256,"type":16},{"name":2258,"slug":2259,"type":16},{"name":2363,"slug":2364,"type":16},"2026-07-13T06:16:57.002997",37,{"items":2411,"total":2464},[2412,2420,2426,2433,2440,2448,2456],{"slug":2224,"name":2224,"fn":2225,"description":2226,"org":2413,"tags":2414,"stars":26,"repoUrl":27,"updatedAt":2244},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2415,2416,2417,2418,2419],{"name":2230,"slug":2231,"type":16},{"name":2233,"slug":2234,"type":16},{"name":2236,"slug":2237,"type":16},{"name":2239,"slug":2240,"type":16},{"name":2242,"slug":2243,"type":16},{"slug":2246,"name":2246,"fn":2247,"description":2248,"org":2421,"tags":2422,"stars":26,"repoUrl":27,"updatedAt":2260},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2423,2424,2425],{"name":2252,"slug":2253,"type":16},{"name":2255,"slug":2256,"type":16},{"name":2258,"slug":2259,"type":16},{"slug":2262,"name":2262,"fn":2263,"description":2264,"org":2427,"tags":2428,"stars":26,"repoUrl":27,"updatedAt":2279},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2429,2430,2431,2432],{"name":2268,"slug":2269,"type":16},{"name":2271,"slug":2272,"type":16},{"name":2274,"slug":2275,"type":16},{"name":2277,"slug":2278,"type":16},{"slug":2281,"name":2281,"fn":2282,"description":2283,"org":2434,"tags":2435,"stars":26,"repoUrl":27,"updatedAt":2294},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2436,2437,2438,2439],{"name":2268,"slug":2269,"type":16},{"name":2288,"slug":2289,"type":16},{"name":2291,"slug":2292,"type":16},{"name":2271,"slug":2272,"type":16},{"slug":2296,"name":2296,"fn":2297,"description":2298,"org":2441,"tags":2442,"stars":26,"repoUrl":27,"updatedAt":2314},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2443,2444,2445,2446,2447],{"name":2302,"slug":2303,"type":16},{"name":2305,"slug":2306,"type":16},{"name":2239,"slug":2240,"type":16},{"name":2309,"slug":2310,"type":16},{"name":2312,"slug":2313,"type":16},{"slug":2316,"name":2316,"fn":2317,"description":2318,"org":2449,"tags":2450,"stars":26,"repoUrl":27,"updatedAt":2332},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2451,2452,2453,2454,2455],{"name":2322,"slug":2323,"type":16},{"name":2258,"slug":2259,"type":16},{"name":2268,"slug":2269,"type":16},{"name":2327,"slug":2328,"type":16},{"name":2330,"slug":2331,"type":16},{"slug":2334,"name":2334,"fn":2335,"description":2336,"org":2457,"tags":2458,"stars":26,"repoUrl":27,"updatedAt":2350},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2459,2460,2461,2462,2463],{"name":2340,"slug":2341,"type":16},{"name":2327,"slug":2328,"type":16},{"name":2344,"slug":2345,"type":16},{"name":2347,"slug":2348,"type":16},{"name":2330,"slug":2331,"type":16},22]