@nguyenphp/antigravity-marketing 1.0.16 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/README.md +187 -74
  2. package/bin/index.js +4 -4
  3. package/package.json +4 -3
  4. package/templates/.agent/agents/backend-specialist.md +263 -0
  5. package/templates/.agent/agents/database-architect.md +226 -0
  6. package/templates/.agent/agents/debugger.md +225 -0
  7. package/templates/.agent/agents/devops-engineer.md +242 -0
  8. package/templates/.agent/agents/documentation-writer.md +104 -0
  9. package/templates/.agent/agents/explorer-agent.md +73 -0
  10. package/templates/.agent/agents/frontend-specialist.md +527 -0
  11. package/templates/.agent/agents/game-developer.md +162 -0
  12. package/templates/.agent/agents/mobile-developer.md +377 -0
  13. package/templates/.agent/agents/orchestrator.md +400 -0
  14. package/templates/.agent/agents/penetration-tester.md +188 -0
  15. package/templates/.agent/agents/performance-optimizer.md +187 -0
  16. package/templates/.agent/agents/project-planner.md +403 -0
  17. package/templates/.agent/agents/security-auditor.md +170 -0
  18. package/templates/.agent/agents/seo-specialist.md +111 -0
  19. package/templates/.agent/agents/test-engineer.md +158 -0
  20. package/templates/.agent/rules/GEMINI.md +248 -0
  21. package/templates/.agent/skills/analytics-marketing/SKILL.md +172 -324
  22. package/templates/.agent/skills/api-patterns/SKILL.md +81 -0
  23. package/templates/.agent/skills/api-patterns/api-style.md +42 -0
  24. package/templates/.agent/skills/api-patterns/auth.md +24 -0
  25. package/templates/.agent/skills/api-patterns/documentation.md +26 -0
  26. package/templates/.agent/skills/api-patterns/graphql.md +41 -0
  27. package/templates/.agent/skills/api-patterns/rate-limiting.md +31 -0
  28. package/templates/.agent/skills/api-patterns/response.md +37 -0
  29. package/templates/.agent/skills/api-patterns/rest.md +40 -0
  30. package/templates/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
  31. package/templates/.agent/skills/api-patterns/security-testing.md +122 -0
  32. package/templates/.agent/skills/api-patterns/trpc.md +41 -0
  33. package/templates/.agent/skills/api-patterns/versioning.md +22 -0
  34. package/templates/.agent/skills/app-builder/SKILL.md +75 -0
  35. package/templates/.agent/skills/app-builder/agent-coordination.md +71 -0
  36. package/templates/.agent/skills/app-builder/feature-building.md +53 -0
  37. package/templates/.agent/skills/app-builder/project-detection.md +34 -0
  38. package/templates/.agent/skills/app-builder/scaffolding.md +118 -0
  39. package/templates/.agent/skills/app-builder/tech-stack.md +40 -0
  40. package/templates/.agent/skills/app-builder/templates/SKILL.md +39 -0
  41. package/templates/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  42. package/templates/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  43. package/templates/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  44. package/templates/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  45. package/templates/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  46. package/templates/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  47. package/templates/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  48. package/templates/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
  49. package/templates/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
  50. package/templates/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
  51. package/templates/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
  52. package/templates/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  53. package/templates/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
  54. package/templates/.agent/skills/architecture/SKILL.md +55 -0
  55. package/templates/.agent/skills/architecture/context-discovery.md +43 -0
  56. package/templates/.agent/skills/architecture/examples.md +94 -0
  57. package/templates/.agent/skills/architecture/pattern-selection.md +68 -0
  58. package/templates/.agent/skills/architecture/patterns-reference.md +50 -0
  59. package/templates/.agent/skills/architecture/trade-off-analysis.md +77 -0
  60. package/templates/.agent/skills/banner-design/SKILL.md +192 -0
  61. package/templates/.agent/skills/banner-design/references/banner-sizes-and-styles.md +118 -0
  62. package/templates/.agent/skills/bash-linux/SKILL.md +199 -0
  63. package/templates/.agent/skills/behavioral-modes/SKILL.md +242 -0
  64. package/templates/.agent/skills/brainstorming/SKILL.md +163 -0
  65. package/templates/.agent/skills/brainstorming/dynamic-questioning.md +350 -0
  66. package/templates/.agent/skills/brand/SKILL.md +97 -0
  67. package/templates/.agent/skills/brand/references/approval-checklist.md +169 -0
  68. package/templates/.agent/skills/brand/references/asset-organization.md +157 -0
  69. package/templates/.agent/skills/brand/references/brand-guideline-template.md +140 -0
  70. package/templates/.agent/skills/brand/references/color-palette-management.md +186 -0
  71. package/templates/.agent/skills/brand/references/consistency-checklist.md +94 -0
  72. package/templates/.agent/skills/brand/references/logo-usage-rules.md +185 -0
  73. package/templates/.agent/skills/brand/references/messaging-framework.md +85 -0
  74. package/templates/.agent/skills/brand/references/typography-specifications.md +214 -0
  75. package/templates/.agent/skills/brand/references/update.md +118 -0
  76. package/templates/.agent/skills/brand/references/visual-identity.md +96 -0
  77. package/templates/.agent/skills/brand/references/voice-framework.md +88 -0
  78. package/templates/.agent/skills/brand/scripts/extract-colors.cjs +341 -0
  79. package/templates/.agent/skills/brand/scripts/inject-brand-context.cjs +349 -0
  80. package/templates/.agent/skills/brand/scripts/sync-brand-to-tokens.cjs +266 -0
  81. package/templates/.agent/skills/brand/scripts/validate-asset.cjs +387 -0
  82. package/templates/.agent/skills/brand/templates/brand-guidelines-starter.md +275 -0
  83. package/templates/.agent/skills/clean-code/SKILL.md +201 -0
  84. package/templates/.agent/skills/code-review-checklist/SKILL.md +109 -0
  85. package/templates/.agent/skills/copywriting/SKILL.md +250 -0
  86. package/templates/.agent/skills/database-design/SKILL.md +52 -0
  87. package/templates/.agent/skills/database-design/database-selection.md +43 -0
  88. package/templates/.agent/skills/database-design/indexing.md +39 -0
  89. package/templates/.agent/skills/database-design/migrations.md +48 -0
  90. package/templates/.agent/skills/database-design/optimization.md +36 -0
  91. package/templates/.agent/skills/database-design/orm-selection.md +30 -0
  92. package/templates/.agent/skills/database-design/schema-design.md +56 -0
  93. package/templates/.agent/skills/database-design/scripts/schema_validator.py +172 -0
  94. package/templates/.agent/skills/deployment-procedures/SKILL.md +241 -0
  95. package/templates/.agent/skills/docker-expert/SKILL.md +409 -0
  96. package/templates/.agent/skills/frontend-design/animation-guide.md +331 -0
  97. package/templates/.agent/skills/frontend-design/color-system.md +311 -0
  98. package/templates/.agent/skills/frontend-design/decision-trees.md +418 -0
  99. package/templates/.agent/skills/frontend-design/motion-graphics.md +306 -0
  100. package/templates/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  101. package/templates/.agent/skills/frontend-design/scripts/ux_audit.py +722 -0
  102. package/templates/.agent/skills/frontend-design/typography-system.md +345 -0
  103. package/templates/.agent/skills/frontend-design/ux-psychology.md +541 -0
  104. package/templates/.agent/skills/frontend-design/visual-effects.md +383 -0
  105. package/templates/.agent/skills/frontend-slides/SKILL.md +92 -0
  106. package/templates/.agent/skills/frontend-slides/STYLE_PRESETS.md +347 -0
  107. package/templates/.agent/skills/frontend-slides/animation-patterns.md +110 -0
  108. package/templates/.agent/skills/frontend-slides/examples/n8n-jupviec-automation.html +789 -0
  109. package/templates/.agent/skills/frontend-slides/examples/n8n-jupviec-automation.pptx +0 -0
  110. package/templates/.agent/skills/frontend-slides/html-template.md +347 -0
  111. package/templates/.agent/skills/frontend-slides/scripts/export-pptx.py +58 -0
  112. package/templates/.agent/skills/frontend-slides/scripts/extract-pptx.py +96 -0
  113. package/templates/.agent/skills/frontend-slides/viewport-base.css +153 -0
  114. package/templates/.agent/skills/game-development/2d-games/SKILL.md +119 -0
  115. package/templates/.agent/skills/game-development/3d-games/SKILL.md +135 -0
  116. package/templates/.agent/skills/game-development/SKILL.md +167 -0
  117. package/templates/.agent/skills/game-development/game-art/SKILL.md +185 -0
  118. package/templates/.agent/skills/game-development/game-audio/SKILL.md +190 -0
  119. package/templates/.agent/skills/game-development/game-design/SKILL.md +129 -0
  120. package/templates/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
  121. package/templates/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
  122. package/templates/.agent/skills/game-development/pc-games/SKILL.md +144 -0
  123. package/templates/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
  124. package/templates/.agent/skills/game-development/web-games/SKILL.md +150 -0
  125. package/templates/.agent/skills/geo-fundamentals/SKILL.md +156 -0
  126. package/templates/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  127. package/templates/.agent/skills/growth-engine/SKILL.md +244 -0
  128. package/templates/.agent/skills/i18n-localization/SKILL.md +154 -0
  129. package/templates/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  130. package/templates/.agent/skills/lint-and-validate/SKILL.md +45 -0
  131. package/templates/.agent/skills/lint-and-validate/scripts/lint_runner.py +172 -0
  132. package/templates/.agent/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  133. package/templates/.agent/skills/marketing-report-expert/SKILL.md +70 -0
  134. package/templates/.agent/skills/mcp-builder/SKILL.md +176 -0
  135. package/templates/.agent/skills/minimax-docx/LICENSE +21 -0
  136. package/templates/.agent/skills/minimax-docx/SKILL.md +274 -0
  137. package/templates/.agent/skills/minimax-docx/assets/styles/academic_styles.xml +250 -0
  138. package/templates/.agent/skills/minimax-docx/assets/styles/corporate_styles.xml +284 -0
  139. package/templates/.agent/skills/minimax-docx/assets/styles/default_styles.xml +449 -0
  140. package/templates/.agent/skills/minimax-docx/assets/xsd/aesthetic-rules.xsd +470 -0
  141. package/templates/.agent/skills/minimax-docx/assets/xsd/business-rules.xsd +130 -0
  142. package/templates/.agent/skills/minimax-docx/assets/xsd/common-types.xsd +159 -0
  143. package/templates/.agent/skills/minimax-docx/assets/xsd/wml-subset.xsd +589 -0
  144. package/templates/.agent/skills/minimax-docx/references/cjk_typography.md +357 -0
  145. package/templates/.agent/skills/minimax-docx/references/cjk_university_template_guide.md +184 -0
  146. package/templates/.agent/skills/minimax-docx/references/comments_guide.md +191 -0
  147. package/templates/.agent/skills/minimax-docx/references/design_good_bad_examples.md +829 -0
  148. package/templates/.agent/skills/minimax-docx/references/design_principles.md +819 -0
  149. package/templates/.agent/skills/minimax-docx/references/openxml_element_order.md +308 -0
  150. package/templates/.agent/skills/minimax-docx/references/openxml_encyclopedia_part1.md +4061 -0
  151. package/templates/.agent/skills/minimax-docx/references/openxml_encyclopedia_part2.md +2820 -0
  152. package/templates/.agent/skills/minimax-docx/references/openxml_encyclopedia_part3.md +3381 -0
  153. package/templates/.agent/skills/minimax-docx/references/openxml_namespaces.md +82 -0
  154. package/templates/.agent/skills/minimax-docx/references/openxml_units.md +72 -0
  155. package/templates/.agent/skills/minimax-docx/references/scenario_a_create.md +284 -0
  156. package/templates/.agent/skills/minimax-docx/references/scenario_b_edit_content.md +295 -0
  157. package/templates/.agent/skills/minimax-docx/references/scenario_c_apply_template.md +456 -0
  158. package/templates/.agent/skills/minimax-docx/references/track_changes_guide.md +200 -0
  159. package/templates/.agent/skills/minimax-docx/references/troubleshooting.md +506 -0
  160. package/templates/.agent/skills/minimax-docx/references/typography_guide.md +294 -0
  161. package/templates/.agent/skills/minimax-docx/references/xsd_validation_guide.md +158 -0
  162. package/templates/.agent/skills/minimax-docx/scripts/doc_to_docx.sh +40 -0
  163. package/templates/.agent/skills/minimax-docx/scripts/docx_preview.sh +37 -0
  164. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/MiniMaxAIDocx.Cli.csproj +19 -0
  165. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/Program.cs +18 -0
  166. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/AnalyzeCommand.cs +147 -0
  167. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ApplyTemplateCommand.cs +322 -0
  168. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/CreateCommand.cs +324 -0
  169. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/DiffCommand.cs +155 -0
  170. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/EditContentCommand.cs +487 -0
  171. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/FixOrderCommand.cs +108 -0
  172. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/MergeRunsCommand.cs +122 -0
  173. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ValidateCommand.cs +107 -0
  174. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/MiniMaxAIDocx.Core.csproj +15 -0
  175. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/CommentSynchronizer.cs +169 -0
  176. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/ElementOrder.cs +80 -0
  177. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/NamespaceConstants.cs +42 -0
  178. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/RunMerger.cs +81 -0
  179. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/StyleAnalyzer.cs +81 -0
  180. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/TrackChangesHelper.cs +99 -0
  181. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/UnitConverter.cs +23 -0
  182. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples.cs +1832 -0
  183. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch1.cs +910 -0
  184. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch2.cs +999 -0
  185. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch3.cs +1048 -0
  186. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch4.cs +1038 -0
  187. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/CharacterFormattingSamples.cs +1020 -0
  188. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/DocumentCreationSamples.cs +1121 -0
  189. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FieldAndTocSamples.cs +624 -0
  190. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FootnoteAndCommentSamples.cs +675 -0
  191. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/HeaderFooterSamples.cs +838 -0
  192. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ImageSamples.cs +917 -0
  193. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ListAndNumberingSamples.cs +826 -0
  194. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ParagraphFormattingSamples.cs +1199 -0
  195. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/StyleSystemSamples.cs +1487 -0
  196. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TableSamples.cs +1163 -0
  197. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TrackChangesSamples.cs +595 -0
  198. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/CjkHelper.cs +39 -0
  199. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/FontDefaults.cs +24 -0
  200. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/PageSizes.cs +20 -0
  201. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/BusinessRuleValidator.cs +224 -0
  202. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/GateCheckValidator.cs +148 -0
  203. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/ValidationResult.cs +23 -0
  204. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/XsdValidator.cs +69 -0
  205. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.slnx +4 -0
  206. package/templates/.agent/skills/minimax-docx/scripts/env_check.sh +196 -0
  207. package/templates/.agent/skills/minimax-docx/scripts/setup.ps1 +274 -0
  208. package/templates/.agent/skills/minimax-docx/scripts/setup.sh +504 -0
  209. package/templates/.agent/skills/minimax-multimodal-toolkit/SKILL.md +359 -0
  210. package/templates/.agent/skills/minimax-pdf/README.md +222 -0
  211. package/templates/.agent/skills/minimax-pdf/SKILL.md +201 -0
  212. package/templates/.agent/skills/minimax-pdf/design/design.md +381 -0
  213. package/templates/.agent/skills/minimax-pdf/scripts/cover.py +1579 -0
  214. package/templates/.agent/skills/minimax-pdf/scripts/fill_inspect.py +200 -0
  215. package/templates/.agent/skills/minimax-pdf/scripts/fill_write.py +242 -0
  216. package/templates/.agent/skills/minimax-pdf/scripts/make.sh +491 -0
  217. package/templates/.agent/skills/minimax-pdf/scripts/merge.py +112 -0
  218. package/templates/.agent/skills/minimax-pdf/scripts/palette.py +559 -0
  219. package/templates/.agent/skills/minimax-pdf/scripts/reformat_parse.py +374 -0
  220. package/templates/.agent/skills/minimax-pdf/scripts/render_body.py +1055 -0
  221. package/templates/.agent/skills/minimax-pdf/scripts/render_cover.cjs +111 -0
  222. package/templates/.agent/skills/minimax-xlsx/SKILL.md +138 -0
  223. package/templates/.agent/skills/minimax-xlsx/references/create.md +691 -0
  224. package/templates/.agent/skills/minimax-xlsx/references/edit.md +684 -0
  225. package/templates/.agent/skills/minimax-xlsx/references/fix.md +37 -0
  226. package/templates/.agent/skills/minimax-xlsx/references/format.md +768 -0
  227. package/templates/.agent/skills/minimax-xlsx/references/ooxml-cheatsheet.md +231 -0
  228. package/templates/.agent/skills/minimax-xlsx/references/read-analyze.md +97 -0
  229. package/templates/.agent/skills/minimax-xlsx/references/validate.md +772 -0
  230. package/templates/.agent/skills/minimax-xlsx/scripts/formula_check.py +422 -0
  231. package/templates/.agent/skills/minimax-xlsx/scripts/libreoffice_recalc.py +248 -0
  232. package/templates/.agent/skills/minimax-xlsx/scripts/shared_strings_builder.py +163 -0
  233. package/templates/.agent/skills/minimax-xlsx/scripts/style_audit.py +575 -0
  234. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_add_column.py +395 -0
  235. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_insert_row.py +274 -0
  236. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_pack.py +87 -0
  237. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_reader.py +362 -0
  238. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_shift_rows.py +396 -0
  239. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_unpack.py +130 -0
  240. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/[Content_Types].xml +9 -0
  241. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/_rels/.rels +6 -0
  242. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/_rels/workbook.xml.rels +19 -0
  243. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/sharedStrings.xml +33 -0
  244. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/styles.xml +160 -0
  245. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/workbook.xml +30 -0
  246. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/worksheets/sheet1.xml +70 -0
  247. package/templates/.agent/skills/mobile-design/SKILL.md +394 -0
  248. package/templates/.agent/skills/mobile-design/decision-trees.md +516 -0
  249. package/templates/.agent/skills/mobile-design/mobile-backend.md +491 -0
  250. package/templates/.agent/skills/mobile-design/mobile-color-system.md +420 -0
  251. package/templates/.agent/skills/mobile-design/mobile-debugging.md +122 -0
  252. package/templates/.agent/skills/mobile-design/mobile-design-thinking.md +357 -0
  253. package/templates/.agent/skills/mobile-design/mobile-navigation.md +458 -0
  254. package/templates/.agent/skills/mobile-design/mobile-performance.md +767 -0
  255. package/templates/.agent/skills/mobile-design/mobile-testing.md +356 -0
  256. package/templates/.agent/skills/mobile-design/mobile-typography.md +433 -0
  257. package/templates/.agent/skills/mobile-design/platform-android.md +666 -0
  258. package/templates/.agent/skills/mobile-design/platform-ios.md +561 -0
  259. package/templates/.agent/skills/mobile-design/scripts/mobile_audit.py +670 -0
  260. package/templates/.agent/skills/mobile-design/touch-psychology.md +537 -0
  261. package/templates/.agent/skills/nestjs-expert/SKILL.md +552 -0
  262. package/templates/.agent/skills/nextjs-best-practices/SKILL.md +203 -0
  263. package/templates/.agent/skills/nodejs-best-practices/SKILL.md +333 -0
  264. package/templates/.agent/skills/parallel-agents/SKILL.md +175 -0
  265. package/templates/.agent/skills/performance-profiling/SKILL.md +143 -0
  266. package/templates/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
  267. package/templates/.agent/skills/plan-writing/SKILL.md +152 -0
  268. package/templates/.agent/skills/powershell-windows/SKILL.md +167 -0
  269. package/templates/.agent/skills/ppc-advertising/SKILL.md +183 -475
  270. package/templates/.agent/skills/pptx-generator/SKILL.md +249 -0
  271. package/templates/.agent/skills/pptx-generator/references/design-system.md +392 -0
  272. package/templates/.agent/skills/pptx-generator/references/editing.md +162 -0
  273. package/templates/.agent/skills/pptx-generator/references/pitfalls.md +112 -0
  274. package/templates/.agent/skills/pptx-generator/references/pptxgenjs.md +420 -0
  275. package/templates/.agent/skills/pptx-generator/references/slide-types.md +413 -0
  276. package/templates/.agent/skills/prisma-expert/SKILL.md +355 -0
  277. package/templates/.agent/skills/python-patterns/SKILL.md +441 -0
  278. package/templates/.agent/skills/react-patterns/SKILL.md +198 -0
  279. package/templates/.agent/skills/red-team-tactics/SKILL.md +199 -0
  280. package/templates/.agent/skills/remotion-best-practices/SKILL.md +45 -111
  281. package/templates/.agent/skills/remotion-best-practices/rules/3d.md +4 -4
  282. package/templates/.agent/skills/remotion-best-practices/rules/animations.md +5 -7
  283. package/templates/.agent/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
  284. package/templates/.agent/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
  285. package/templates/.agent/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +103 -0
  286. package/templates/.agent/skills/remotion-best-practices/rules/assets.md +78 -0
  287. package/templates/.agent/skills/remotion-best-practices/rules/audio-visualization.md +198 -0
  288. package/templates/.agent/skills/remotion-best-practices/rules/audio.md +1 -4
  289. package/templates/.agent/skills/remotion-best-practices/rules/calculate-metadata.md +47 -17
  290. package/templates/.agent/skills/remotion-best-practices/rules/can-decode.md +75 -0
  291. package/templates/.agent/skills/remotion-best-practices/rules/charts.md +80 -48
  292. package/templates/.agent/skills/remotion-best-practices/rules/compositions.md +22 -14
  293. package/templates/.agent/skills/remotion-best-practices/rules/display-captions.md +79 -21
  294. package/templates/.agent/skills/remotion-best-practices/rules/extract-frames.md +229 -0
  295. package/templates/.agent/skills/remotion-best-practices/rules/ffmpeg.md +38 -0
  296. package/templates/.agent/skills/remotion-best-practices/rules/fonts.md +96 -54
  297. package/templates/.agent/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
  298. package/templates/.agent/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
  299. package/templates/.agent/skills/remotion-best-practices/rules/get-video-duration.md +60 -0
  300. package/templates/.agent/skills/remotion-best-practices/rules/gifs.md +21 -18
  301. package/templates/.agent/skills/remotion-best-practices/rules/images.md +6 -2
  302. package/templates/.agent/skills/remotion-best-practices/rules/import-srt-captions.md +69 -0
  303. package/templates/.agent/skills/remotion-best-practices/rules/light-leaks.md +73 -0
  304. package/templates/.agent/skills/remotion-best-practices/rules/lottie.md +10 -7
  305. package/templates/.agent/skills/remotion-best-practices/rules/maps.md +412 -0
  306. package/templates/.agent/skills/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
  307. package/templates/.agent/skills/remotion-best-practices/rules/measuring-text.md +140 -0
  308. package/templates/.agent/skills/remotion-best-practices/rules/parameters.md +109 -0
  309. package/templates/.agent/skills/remotion-best-practices/rules/sequencing.md +13 -1
  310. package/templates/.agent/skills/remotion-best-practices/rules/sfx.md +26 -0
  311. package/templates/.agent/skills/remotion-best-practices/rules/subtitles.md +36 -0
  312. package/templates/.agent/skills/remotion-best-practices/rules/tailwind.md +11 -0
  313. package/templates/.agent/skills/remotion-best-practices/rules/text-animations.md +4 -115
  314. package/templates/.agent/skills/remotion-best-practices/rules/timing.md +19 -19
  315. package/templates/.agent/skills/remotion-best-practices/rules/transcribe-captions.md +70 -0
  316. package/templates/.agent/skills/remotion-best-practices/rules/transitions.md +117 -42
  317. package/templates/.agent/skills/remotion-best-practices/rules/transparent-videos.md +106 -0
  318. package/templates/.agent/skills/remotion-best-practices/rules/trimming.md +51 -0
  319. package/templates/.agent/skills/remotion-best-practices/rules/voiceover.md +99 -0
  320. package/templates/.agent/skills/seo-fundamentals/SKILL.md +83 -441
  321. package/templates/.agent/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
  322. package/templates/.agent/skills/server-management/SKILL.md +161 -0
  323. package/templates/.agent/skills/systematic-debugging/SKILL.md +109 -0
  324. package/templates/.agent/skills/tdd-workflow/SKILL.md +149 -0
  325. package/templates/.agent/skills/testing-patterns/SKILL.md +178 -0
  326. package/templates/.agent/skills/testing-patterns/scripts/test_runner.py +219 -0
  327. package/templates/.agent/skills/tutorial-video-expert/SKILL.md +88 -0
  328. package/templates/.agent/skills/typescript-expert/SKILL.md +429 -0
  329. package/templates/.agent/skills/ui-ux-pro-max/SKILL.md +1 -1
  330. package/templates/.agent/skills/ui-ux-pro-max/data/charts.csv +26 -0
  331. package/templates/.agent/skills/ui-ux-pro-max/data/colors.csv +97 -0
  332. package/templates/.agent/skills/ui-ux-pro-max/data/icons.csv +101 -0
  333. package/templates/.agent/skills/ui-ux-pro-max/data/landing.csv +31 -0
  334. package/templates/.agent/skills/ui-ux-pro-max/data/products.csv +97 -0
  335. package/templates/.agent/skills/ui-ux-pro-max/data/prompts.csv +24 -0
  336. package/templates/.agent/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  337. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  338. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  339. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  340. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  341. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  342. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  343. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  344. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  345. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  346. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  347. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  348. package/templates/.agent/skills/ui-ux-pro-max/data/styles.csv +59 -0
  349. package/templates/.agent/skills/ui-ux-pro-max/data/typography.csv +58 -0
  350. package/templates/.agent/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  351. package/templates/.agent/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  352. package/templates/.agent/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  353. package/templates/.agent/skills/ui-ux-pro-max/scripts/core.py +257 -0
  354. package/templates/.agent/skills/ui-ux-pro-max/scripts/design_system.py +487 -0
  355. package/templates/.agent/skills/ui-ux-pro-max/scripts/search.py +76 -0
  356. package/templates/.agent/skills/vision-analysis/SKILL.md +174 -0
  357. package/templates/.agent/skills/vue-expert/SKILL.md +374 -0
  358. package/templates/.agent/skills/vulnerability-scanner/SKILL.md +276 -0
  359. package/templates/.agent/skills/vulnerability-scanner/checklists.md +121 -0
  360. package/templates/.agent/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
  361. package/templates/.agent/skills/webapp-testing/SKILL.md +187 -0
  362. package/templates/.agent/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  363. package/templates/.agent/workflows/analyze.md +3 -0
  364. package/templates/.agent/workflows/brainstorm.md +113 -0
  365. package/templates/.agent/workflows/brand-report.md +44 -0
  366. package/templates/.agent/workflows/create.md +59 -0
  367. package/templates/.agent/workflows/debug.md +103 -0
  368. package/templates/.agent/workflows/deploy.md +176 -0
  369. package/templates/.agent/workflows/enhance.md +63 -0
  370. package/templates/.agent/workflows/orchestrate.md +237 -0
  371. package/templates/.agent/workflows/plan.md +89 -0
  372. package/templates/.agent/workflows/preview.md +80 -0
  373. package/templates/.agent/workflows/report.md +49 -0
  374. package/templates/.agent/workflows/status.md +86 -0
  375. package/templates/.agent/workflows/test.md +144 -0
  376. package/templates/.agent/workflows/ui-ux-pro-max.md +231 -0
@@ -0,0 +1,819 @@
1
+ # Design Principles for Document Typography
2
+
3
+ WHY certain typographic choices look good -- the perceptual and psychological
4
+ reasons behind professional document design. Use this to make judgment calls
5
+ when exact specs are not provided.
6
+
7
+ ## Table of Contents
8
+
9
+ 1. [White Space & Breathing Room](#1-white-space--breathing-room)
10
+ 2. [Contrast & Scale](#2-contrast--scale)
11
+ 3. [Proximity & Grouping](#3-proximity--grouping)
12
+ 4. [Alignment & Grid](#4-alignment--grid)
13
+ 5. [Repetition & Consistency](#5-repetition--consistency)
14
+ 6. [Visual Hierarchy & Flow](#6-visual-hierarchy--flow)
15
+
16
+ ---
17
+
18
+ ## 1. White Space & Breathing Room
19
+
20
+ ### Why It Works
21
+
22
+ The human eye does not read continuously. It jumps in saccades, fixating on
23
+ small clusters of words. White space provides landing zones for these fixations
24
+ and gives the reader's peripheral vision a "frame" that makes each text block
25
+ feel manageable. When a page is packed to the edges, every glance returns more
26
+ text than working memory can buffer, triggering fatigue and avoidance.
27
+
28
+ Research on content density consistently shows:
29
+
30
+ - **60-70% content coverage** feels comfortable and professional.
31
+ - **80%+** starts to feel dense and bureaucratic.
32
+ - **90%+** feels oppressive -- the reader unconsciously rushes or skips.
33
+ - **Below 50%** feels wasteful or pretentious (unless intentional, like poetry).
34
+
35
+ Wider margins also carry cultural signals. Academic and luxury documents use
36
+ generous margins (1.25-1.5 inches). Internal memos and drafts use narrower
37
+ margins (0.75-1.0 inches). The margin width tells the reader how much care
38
+ went into the document before they read a single word.
39
+
40
+ Line spacing has a direct physiological basis: the eye must track back to the
41
+ start of the next line after each line break. If lines are too close, the eye
42
+ "slips" to the wrong line. If too far apart, the eye loses its sense of
43
+ continuity. The sweet spot is 120-145% of the font size.
44
+
45
+ **Rule of thumb: when in doubt, add more space, not less.**
46
+
47
+ ### Good Example
48
+
49
+ ```
50
+ Margins: 1 inch (1440 twips) all sides for business documents.
51
+ Line spacing: 1.15 (276 twips at 240 twips-per-line = 115%).
52
+ Paragraph spacing after: 8pt (160 twips) between body paragraphs.
53
+ ```
54
+
55
+ ```xml
56
+ <!-- Page margins: 1 inch = 1440 twips on all sides -->
57
+ <w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440"
58
+ w:header="720" w:footer="720" w:gutter="0"/>
59
+
60
+ <!-- Body paragraph: 1.15 line spacing, 8pt after -->
61
+ <w:pPr>
62
+ <w:spacing w:after="160" w:line="276" w:lineRule="auto"/>
63
+ </w:pPr>
64
+ ```
65
+
66
+ This produces a page where content occupies roughly 65% of the area. The
67
+ reader sees clear top/bottom breathing room, and paragraphs are distinct
68
+ without feeling disconnected.
69
+
70
+ ```
71
+ Page layout (good):
72
+ +----------------------------------+
73
+ | 1" margin |
74
+ | +------------------------+ |
75
+ | | Heading | |
76
+ | | | |
77
+ | | Body text here with | |
78
+ | | comfortable spacing | |
79
+ | | between lines. | |
80
+ | | | | <- visible gap between paragraphs
81
+ | | Another paragraph of | |
82
+ | | body text follows. | |
83
+ | | | |
84
+ | +------------------------+ |
85
+ | 1" margin |
86
+ +----------------------------------+
87
+ ```
88
+
89
+ ### Bad Example
90
+
91
+ ```xml
92
+ <!-- Cramped margins: 0.5 inch = 720 twips -->
93
+ <w:pgMar w:top="720" w:right="720" w:bottom="720" w:left="720"
94
+ w:header="360" w:footer="360" w:gutter="0"/>
95
+
96
+ <!-- No paragraph spacing, single line spacing -->
97
+ <w:pPr>
98
+ <w:spacing w:after="0" w:line="240" w:lineRule="auto"/>
99
+ </w:pPr>
100
+ ```
101
+
102
+ This fills ~85% of the page. Text runs edge-to-edge with no visual rest stops.
103
+ The reader sees a wall of text.
104
+
105
+ ```
106
+ Page layout (bad):
107
+ +----------------------------------+
108
+ | Heading |
109
+ | Body text crammed right up to |
110
+ | the margins with no spacing |
111
+ | between lines or paragraphs. |
112
+ | Another paragraph starts here |
113
+ | and the reader cannot tell where |
114
+ | one idea ends and another begins |
115
+ | because everything blurs into a |
116
+ | single dense block of text. |
117
+ +----------------------------------+
118
+ ```
119
+
120
+ ### Quick Test
121
+
122
+ 1. Zoom out to 50% in your document viewer. If you cannot see clear "channels"
123
+ of white between text blocks, the spacing is too tight.
124
+ 2. Print a test page. Hold it at arm's length. The text area should look like
125
+ a rectangle floating in white, not filling the page.
126
+ 3. Check: is the line spacing value at least 264 (`w:line` for 1.1x) for body
127
+ text? If it is 240 (single), it is too tight for anything over 10pt.
128
+
129
+ ---
130
+
131
+ ## 2. Contrast & Scale
132
+
133
+ ### Why It Works
134
+
135
+ The brain processes visual hierarchy through relative difference, not absolute
136
+ size. A 20pt heading above 11pt body text creates a clear "this is important"
137
+ signal. But if every heading is 20pt and every sub-heading is 19pt, the brain
138
+ cannot distinguish them -- they merge into the same level.
139
+
140
+ The key insight is **modular scale**: font sizes that grow by a consistent
141
+ ratio. This mirrors natural proportions and feels harmonious for the same
142
+ reason musical intervals do.
143
+
144
+ Common scales and their character:
145
+
146
+ | Ratio | Name | Character | Example progression (from 11pt) |
147
+ |-------|----------------|---------------------------------|---------------------------------|
148
+ | 1.200 | Minor third | Subtle, refined | 11 → 13.2 → 15.8 → 19.0 |
149
+ | 1.250 | Major third | Balanced, professional | 11 → 13.75 → 17.2 → 21.5 |
150
+ | 1.333 | Perfect fourth | Strong, authoritative | 11 → 14.7 → 19.5 → 26.0 |
151
+ | 1.414 | Augmented 4th | Dramatic, presentation-style | 11 → 15.6 → 22.0 → 31.1 |
152
+
153
+ For most business documents, 1.25 (major third) works best:
154
+
155
+ ```
156
+ Body = 11pt (w:sz="22")
157
+ H3 = 13pt (w:sz="26") -- 11 * 1.25 ≈ 13.75, round to 13
158
+ H2 = 16pt (w:sz="32") -- 13 * 1.25 ≈ 16.25, round to 16
159
+ H1 = 20pt (w:sz="40") -- 16 * 1.25 = 20
160
+ ```
161
+
162
+ Beyond size, **weight contrast** creates hierarchy without consuming vertical
163
+ space. Regular (400) vs Bold (700) is visible at any size. Semi-bold (600) vs
164
+ Regular is subtle and best avoided unless you also vary size or color.
165
+
166
+ **Color contrast** adds a third dimension. Dark blue headings (#1F3864) against
167
+ softer dark gray body text (#333333) signals "heading" without needing a huge
168
+ size jump. Pure black (#000000) body text is harsher than necessary on white
169
+ backgrounds -- #333333 or #2D2D2D reduces glare without losing legibility.
170
+
171
+ ### Good Example
172
+
173
+ ```xml
174
+ <!-- H1: 20pt, bold, dark navy -->
175
+ <w:rPr>
176
+ <w:b/>
177
+ <w:sz w:val="40"/>
178
+ <w:color w:val="1F3864"/>
179
+ </w:rPr>
180
+
181
+ <!-- H2: 16pt, bold, dark navy -->
182
+ <w:rPr>
183
+ <w:b/>
184
+ <w:sz w:val="32"/>
185
+ <w:color w:val="1F3864"/>
186
+ </w:rPr>
187
+
188
+ <!-- H3: 13pt, bold, dark navy -->
189
+ <w:rPr>
190
+ <w:b/>
191
+ <w:sz w:val="26"/>
192
+ <w:color w:val="1F3864"/>
193
+ </w:rPr>
194
+
195
+ <!-- Body: 11pt, regular, dark gray -->
196
+ <w:rPr>
197
+ <w:sz w:val="22"/>
198
+ <w:color w:val="333333"/>
199
+ </w:rPr>
200
+ ```
201
+
202
+ ```
203
+ Visual hierarchy (good):
204
+
205
+ [████████████████████] <- H1: 20pt bold navy (clearly dominant)
206
+ (generous space)
207
+ [██████████████] <- H2: 16pt bold navy (distinct step down)
208
+ (moderate space)
209
+ [████████████] <- H3: 13pt bold navy (smaller but still bold)
210
+ [░░░░░░░░░░░░░░░░░░░░░░] <- Body: 11pt regular gray
211
+ [░░░░░░░░░░░░░░░░░░░░░░]
212
+ [░░░░░░░░░░░░░░░░░░░░░░]
213
+ ```
214
+
215
+ Each level is visually distinct from its neighbors. You can identify the
216
+ hierarchy even in peripheral vision.
217
+
218
+ ### Bad Example
219
+
220
+ ```xml
221
+ <!-- H1: 14pt bold black -->
222
+ <w:rPr>
223
+ <w:b/>
224
+ <w:sz w:val="28"/>
225
+ <w:color w:val="000000"/>
226
+ </w:rPr>
227
+
228
+ <!-- H2: 13pt bold black -->
229
+ <w:rPr>
230
+ <w:b/>
231
+ <w:sz w:val="26"/>
232
+ <w:color w:val="000000"/>
233
+ </w:rPr>
234
+
235
+ <!-- H3: 12pt bold black -->
236
+ <w:rPr>
237
+ <w:b/>
238
+ <w:sz w:val="24"/>
239
+ <w:color w:val="000000"/>
240
+ </w:rPr>
241
+
242
+ <!-- Body: 12pt regular black -->
243
+ <w:rPr>
244
+ <w:sz w:val="24"/>
245
+ <w:color w:val="000000"/>
246
+ </w:rPr>
247
+ ```
248
+
249
+ Problems:
250
+ - H3 (12pt bold) and body (12pt regular) differ only by weight -- too subtle.
251
+ - H1 (14pt) to H2 (13pt) is a 1pt step -- invisible at reading distance.
252
+ - Everything is pure black so color provides no differentiating signal.
253
+ - The ratio between levels is ~1.07, far too flat.
254
+
255
+ ### Quick Test
256
+
257
+ 1. **The squint test**: blur your eyes or step back from the screen. Can you
258
+ count the number of heading levels? If two levels merge, their contrast
259
+ is insufficient.
260
+ 2. **Ratio check**: divide each heading size by the next smaller size. If any
261
+ ratio is below 1.15, the levels will look too similar.
262
+ 3. **Color check**: do headings look distinct from body text when you glance
263
+ at the page? If everything is the same color, you are relying solely on
264
+ size/weight, which limits your hierarchy to ~3 effective levels.
265
+
266
+ ---
267
+
268
+ ## 3. Proximity & Grouping
269
+
270
+ ### Why It Works
271
+
272
+ The Gestalt principle of proximity: items that are close together are perceived
273
+ as belonging to the same group. In document typography, this means a heading
274
+ must be **closer to the content it introduces** than to the content above it.
275
+
276
+ If a heading sits equidistant between two paragraphs, it looks orphaned -- the
277
+ reader's eye does not know if it belongs to the text above or below. The fix
278
+ is asymmetric spacing: **large space before the heading, small space after**.
279
+
280
+ The recommended ratio is 2:1 or 3:1 (space-before : space-after).
281
+
282
+ This same principle applies to:
283
+ - **List items**: spacing between items should be less than spacing between
284
+ paragraphs. Items in a list are a group and should visually cluster.
285
+ - **Captions**: a figure caption should be close to its figure, not floating
286
+ in the middle between the figure and the next paragraph.
287
+ - **Table titles**: the title sits close above the table, with more space
288
+ separating the title from preceding text.
289
+
290
+ ### Good Example
291
+
292
+ ```xml
293
+ <!-- H2: 18pt before, 6pt after (3:1 ratio) -->
294
+ <w:pPr>
295
+ <w:pStyle w:val="Heading2"/>
296
+ <w:spacing w:before="360" w:after="120"/>
297
+ </w:pPr>
298
+
299
+ <!-- Body paragraph: 0pt before, 8pt after -->
300
+ <w:pPr>
301
+ <w:spacing w:before="0" w:after="160"/>
302
+ </w:pPr>
303
+
304
+ <!-- List item: 0pt before, 2pt after (tight grouping) -->
305
+ <w:pPr>
306
+ <w:pStyle w:val="ListParagraph"/>
307
+ <w:spacing w:before="0" w:after="40"/>
308
+ </w:pPr>
309
+ ```
310
+
311
+ ```
312
+ Proximity (good):
313
+
314
+ ...end of previous section text.
315
+ <- 18pt gap (w:before="360")
316
+ ## Section Heading
317
+ <- 6pt gap (w:after="120")
318
+ First paragraph of new section
319
+ continues here with content.
320
+ <- 8pt gap (w:after="160")
321
+ Second paragraph follows.
322
+
323
+ The heading clearly "belongs to" the text below it.
324
+ ```
325
+
326
+ ```
327
+ List grouping (good):
328
+
329
+ Consider these factors:
330
+ - First item <- 2pt gap between items
331
+ - Second item <- items cluster as a group
332
+ - Third item
333
+ <- 8pt gap after list
334
+ The next paragraph starts here.
335
+ ```
336
+
337
+ ### Bad Example
338
+
339
+ ```xml
340
+ <!-- H2: 12pt before, 12pt after (1:1 ratio -- orphaned heading) -->
341
+ <w:pPr>
342
+ <w:pStyle w:val="Heading2"/>
343
+ <w:spacing w:before="240" w:after="240"/>
344
+ </w:pPr>
345
+
346
+ <!-- List item: same spacing as body (10pt after) -->
347
+ <w:pPr>
348
+ <w:pStyle w:val="ListParagraph"/>
349
+ <w:spacing w:before="0" w:after="200"/>
350
+ </w:pPr>
351
+ ```
352
+
353
+ ```
354
+ Proximity (bad):
355
+
356
+ ...end of previous section text.
357
+ <- 12pt gap
358
+ ## Section Heading
359
+ <- 12pt gap (same!)
360
+ First paragraph of new section.
361
+
362
+ The heading floats between sections. It is unclear what it belongs to.
363
+ ```
364
+
365
+ ```
366
+ List grouping (bad):
367
+
368
+ Consider these factors:
369
+ <- 10pt gap
370
+ - First item
371
+ <- 10pt gap (same as paragraphs)
372
+ - Second item
373
+ <- 10pt gap
374
+ - Third item
375
+ <- 10pt gap
376
+ Next paragraph.
377
+
378
+ The list does not feel like a group. Each item looks like a
379
+ separate paragraph that happens to have a bullet.
380
+ ```
381
+
382
+ ### Quick Test
383
+
384
+ 1. **Cover test**: cover the heading text. Looking only at the whitespace,
385
+ can you tell which block of text the heading belongs to? If the gaps above
386
+ and below are equal, the answer is "no."
387
+ 2. **Number check**: `w:before` on headings should be at least 2x `w:after`.
388
+ Common good values: before=360 / after=120, or before=240 / after=80.
389
+ 3. **List check**: `w:after` on list items should be less than half of
390
+ `w:after` on body paragraphs. If body uses 160, list items should use
391
+ 40-60.
392
+
393
+ ---
394
+
395
+ ## 4. Alignment & Grid
396
+
397
+ ### Why It Works
398
+
399
+ Alignment creates invisible lines that the eye follows down the page. When
400
+ elements share the same left edge, the reader perceives order and intention.
401
+ When elements are slightly misaligned (off by a few twips), the page looks
402
+ sloppy even if the reader cannot consciously identify why.
403
+
404
+ **Left-align vs Justify:**
405
+
406
+ - **Left-aligned** (ragged right) is best for English and other Latin-script
407
+ languages. The uneven right edge actually helps reading because each line
408
+ has a unique silhouette, making it easier for the eye to find the next line.
409
+ Justified text forces uneven word spacing that creates distracting "rivers"
410
+ of white running vertically through paragraphs.
411
+
412
+ - **Justified** is best for CJK text. Chinese, Japanese, and Korean characters
413
+ are monospaced by design -- each occupies the same cell in an invisible grid.
414
+ Justification preserves this grid perfectly. Ragged right in CJK text breaks
415
+ the grid and looks untidy.
416
+
417
+ **Indentation rule:** Use first-line indent OR paragraph spacing to separate
418
+ paragraphs -- never both. They serve the same purpose (marking paragraph
419
+ boundaries). Using both wastes space and creates visual stutter.
420
+
421
+ - Western convention: paragraph spacing (no indent) is more modern.
422
+ - CJK convention: first-line indent of 2 characters is standard.
423
+ - Academic convention: first-line indent of 0.5 inch is traditional.
424
+
425
+ ### Good Example
426
+
427
+ ```xml
428
+ <!-- English body: left-aligned, paragraph spacing, no indent -->
429
+ <w:pPr>
430
+ <w:jc w:val="left"/>
431
+ <w:spacing w:after="160" w:line="276" w:lineRule="auto"/>
432
+ <!-- No w:ind firstLine -->
433
+ </w:pPr>
434
+
435
+ <!-- CJK body: justified, first-line indent 2 chars, no paragraph spacing -->
436
+ <w:pPr>
437
+ <w:jc w:val="both"/>
438
+ <w:spacing w:after="0" w:line="360" w:lineRule="auto"/>
439
+ <w:ind w:firstLineChars="200"/>
440
+ </w:pPr>
441
+
442
+ <!-- Tab stops creating aligned columns -->
443
+ <w:pPr>
444
+ <w:tabs>
445
+ <w:tab w:val="left" w:pos="2880"/> <!-- 2 inches -->
446
+ <w:tab w:val="right" w:pos="9360"/> <!-- 6.5 inches (right margin) -->
447
+ </w:tabs>
448
+ </w:pPr>
449
+ ```
450
+
451
+ ```
452
+ English paragraph separation (good -- spacing, no indent):
453
+
454
+ This is the first paragraph with some text
455
+ that wraps to a second line naturally.
456
+
457
+ This is the second paragraph. The gap above
458
+ clearly marks the boundary.
459
+
460
+
461
+ CJK paragraph separation (good -- indent, no spacing):
462
+
463
+   第一段正文内容从这里开始,使用两个字符
464
+ 的首行缩进来标记段落边界。
465
+   第二段紧跟其后,没有段间距,但首行缩进
466
+ 清晰地标识了新段落的开始。
467
+ ```
468
+
469
+ ### Bad Example
470
+
471
+ ```xml
472
+ <!-- English body: justified (creates word-spacing rivers) -->
473
+ <w:pPr>
474
+ <w:jc w:val="both"/>
475
+ <w:spacing w:after="160" w:line="276" w:lineRule="auto"/>
476
+ <w:ind w:firstLine="720"/> <!-- BOTH indent AND spacing: redundant -->
477
+ </w:pPr>
478
+
479
+ <!-- CJK body: left-aligned (breaks character grid) -->
480
+ <w:pPr>
481
+ <w:jc w:val="left"/>
482
+ <w:spacing w:after="200" w:line="276" w:lineRule="auto"/>
483
+ <!-- No indent, using spacing instead -- unidiomatic for CJK -->
484
+ </w:pPr>
485
+ ```
486
+
487
+ Problems:
488
+ - Justified English text with narrow columns creates uneven word gaps.
489
+ - Using both first-line indent AND paragraph spacing is redundant.
490
+ - Left-aligned CJK breaks the character grid that CJK readers expect.
491
+ - CJK with spacing-based separation looks like translated western layout.
492
+
493
+ ### Quick Test
494
+
495
+ 1. **River test**: in justified English text, squint and look for vertical
496
+ white streaks running through the paragraph. If you see them, switch to
497
+ left-align or increase the column width.
498
+ 2. **Double signal check**: does the document use BOTH first-line indent AND
499
+ paragraph spacing? If yes, remove one. Choose indent for CJK/academic,
500
+ spacing for modern western.
501
+ 3. **Tab alignment**: if you use tabs for columns, do all tab stops across
502
+ the document use the same positions? Inconsistent tab stops create jagged
503
+ invisible grid lines.
504
+
505
+ ---
506
+
507
+ ## 5. Repetition & Consistency
508
+
509
+ ### Why It Works
510
+
511
+ Consistency is a trust signal. When a reader sees that every H2 looks the same,
512
+ every table follows the same pattern, and every page number sits in the same
513
+ spot, they unconsciously trust that the document was crafted with care. A single
514
+ inconsistency -- one H2 that is 15pt instead of 14pt, one table with different
515
+ borders -- breaks that trust and makes the reader question the content.
516
+
517
+ Consistency also reduces cognitive load. Once the reader learns "bold dark blue
518
+ = section heading," they stop spending mental effort on identifying structure
519
+ and focus entirely on content. Every inconsistency forces them to re-evaluate:
520
+ "Is this a different kind of heading, or did someone just forget to apply the
521
+ style?"
522
+
523
+ The implementation rule is simple: **use named styles, not direct formatting.**
524
+ If you define Heading2 as a style and apply it everywhere, consistency is
525
+ automatic. If you manually set font size, bold, and color on each heading
526
+ individually, inconsistency is inevitable.
527
+
528
+ ### Good Example
529
+
530
+ ```xml
531
+ <!-- Define styles once in styles.xml -->
532
+ <w:style w:type="paragraph" w:styleId="Heading2">
533
+ <w:name w:val="heading 2"/>
534
+ <w:basedOn w:val="Normal"/>
535
+ <w:next w:val="Normal"/>
536
+ <w:pPr>
537
+ <w:keepNext/>
538
+ <w:keepLines/>
539
+ <w:spacing w:before="360" w:after="120"/>
540
+ <w:outlineLvl w:val="1"/>
541
+ </w:pPr>
542
+ <w:rPr>
543
+ <w:rFonts w:asciiTheme="majorHAnsi" w:hAnsiTheme="majorHAnsi"/>
544
+ <w:b/>
545
+ <w:sz w:val="32"/>
546
+ <w:color w:val="1F3864"/>
547
+ </w:rPr>
548
+ </w:style>
549
+
550
+ <!-- Apply consistently: every H2 references the style -->
551
+ <w:p>
552
+ <w:pPr>
553
+ <w:pStyle w:val="Heading2"/>
554
+ <!-- No direct formatting overrides -->
555
+ </w:pPr>
556
+ <w:r><w:t>Market Analysis</w:t></w:r>
557
+ </w:p>
558
+ ```
559
+
560
+ When using a table style, define it once and reference it for every table:
561
+
562
+ ```xml
563
+ <!-- All tables reference the same style -->
564
+ <w:tblPr>
565
+ <w:tblStyle w:val="GridTable4Accent1"/>
566
+ <w:tblW w:w="0" w:type="auto"/>
567
+ </w:tblPr>
568
+ ```
569
+
570
+ ### Bad Example
571
+
572
+ ```xml
573
+ <!-- First H2: manually formatted -->
574
+ <w:p>
575
+ <w:pPr>
576
+ <w:spacing w:before="360" w:after="120"/>
577
+ </w:pPr>
578
+ <w:r>
579
+ <w:rPr>
580
+ <w:b/>
581
+ <w:sz w:val="32"/>
582
+ <w:color w:val="1F3864"/>
583
+ </w:rPr>
584
+ <w:t>Market Analysis</w:t>
585
+ </w:r>
586
+ </w:p>
587
+
588
+ <!-- Second H2: slightly different (16pt instead of 16pt? No, 15pt!) -->
589
+ <w:p>
590
+ <w:pPr>
591
+ <w:spacing w:before="240" w:after="160"/> <!-- different spacing! -->
592
+ </w:pPr>
593
+ <w:r>
594
+ <w:rPr>
595
+ <w:b/>
596
+ <w:sz w:val="30"/> <!-- 15pt instead of 16pt! -->
597
+ <w:color w:val="2E74B5"/> <!-- different shade of blue! -->
598
+ </w:rPr>
599
+ <w:t>Financial Overview</w:t>
600
+ </w:r>
601
+ </w:p>
602
+ ```
603
+
604
+ Problems:
605
+ - No style references -- everything is direct formatting.
606
+ - Second H2 has different size (30 vs 32), color, and spacing.
607
+ - If there are 20 headings, each could drift slightly differently.
608
+ - Changing the design later means editing every heading individually.
609
+
610
+ ### Quick Test
611
+
612
+ 1. **Style audit**: does every paragraph reference a `w:pStyle`? If you find
613
+ paragraphs with only direct formatting and no style, that is a consistency
614
+ risk.
615
+ 2. **Search for variance**: search the XML for all `w:sz` values used with
616
+ `w:b` (bold). If you find three different sizes for what should be the same
617
+ heading level, there is an inconsistency.
618
+ 3. **Table check**: do all tables in the document reference the same
619
+ `w:tblStyle`? If some tables have manual border definitions while others
620
+ use a style, the document will look patchy.
621
+ 4. **Page numbers**: check that header/footer content is defined in the
622
+ default section properties and inherited by all sections, not redefined
623
+ inconsistently in each section.
624
+
625
+ ---
626
+
627
+ ## 6. Visual Hierarchy & Flow
628
+
629
+ ### Why It Works
630
+
631
+ A well-designed document guides the reader's eye in a predictable path:
632
+ title at the top, subtitle below it, section headings as signposts, body text
633
+ as the main content, footnotes and captions as supporting details. This flow
634
+ mirrors reading priority -- the most important information is the most visually
635
+ prominent.
636
+
637
+ Each level in the hierarchy must be **distinguishable from its adjacent
638
+ levels**. It is not enough for H1 to differ from body text; H1 must also
639
+ clearly differ from H2, and H2 from H3. If any two adjacent levels are too
640
+ similar, the hierarchy collapses at that point.
641
+
642
+ Effective hierarchy uses **multiple simultaneous signals**:
643
+
644
+ | Level | Size | Weight | Color | Spacing above |
645
+ |----------|-------|---------|---------|---------------|
646
+ | Title | 26pt | Bold | #1F3864 | 0 (top) |
647
+ | Subtitle | 15pt | Regular | #4472C4 | 4pt |
648
+ | H1 | 20pt | Bold | #1F3864 | 24pt |
649
+ | H2 | 16pt | Bold | #1F3864 | 18pt |
650
+ | H3 | 13pt | Bold | #1F3864 | 12pt |
651
+ | Body | 11pt | Regular | #333333 | 0pt |
652
+ | Caption | 9pt | Italic | #666666 | 4pt |
653
+ | Footnote | 9pt | Regular | #666666 | 0pt |
654
+
655
+ Notice how each level differs from its neighbors on at least two dimensions
656
+ (size + weight, or size + color, or weight + style). Single-dimension
657
+ differences are fragile and can be missed.
658
+
659
+ **Section breaks** create rhythm in long documents. A page break before each
660
+ major section (H1) gives the reader a mental reset. Within sections, consistent
661
+ heading + body patterns create a predictable cadence that makes long documents
662
+ less intimidating.
663
+
664
+ ### Good Example
665
+
666
+ ```xml
667
+ <!-- Title: large, bold, navy, centered -->
668
+ <w:style w:type="paragraph" w:styleId="Title">
669
+ <w:pPr>
670
+ <w:jc w:val="center"/>
671
+ <w:spacing w:after="80"/>
672
+ </w:pPr>
673
+ <w:rPr>
674
+ <w:b/>
675
+ <w:sz w:val="52"/>
676
+ <w:color w:val="1F3864"/>
677
+ </w:rPr>
678
+ </w:style>
679
+
680
+ <!-- Subtitle: medium, regular weight, lighter blue, centered -->
681
+ <w:style w:type="paragraph" w:styleId="Subtitle">
682
+ <w:pPr>
683
+ <w:jc w:val="center"/>
684
+ <w:spacing w:after="320"/>
685
+ </w:pPr>
686
+ <w:rPr>
687
+ <w:sz w:val="30"/>
688
+ <w:color w:val="4472C4"/>
689
+ </w:rPr>
690
+ </w:style>
691
+
692
+ <!-- H1: page break before, large bold navy -->
693
+ <w:style w:type="paragraph" w:styleId="Heading1">
694
+ <w:pPr>
695
+ <w:pageBreakBefore/>
696
+ <w:keepNext/>
697
+ <w:keepLines/>
698
+ <w:spacing w:before="480" w:after="160"/>
699
+ <w:outlineLvl w:val="0"/>
700
+ </w:pPr>
701
+ <w:rPr>
702
+ <w:b/>
703
+ <w:sz w:val="40"/>
704
+ <w:color w:val="1F3864"/>
705
+ </w:rPr>
706
+ </w:style>
707
+
708
+ <!-- Caption: small, italic, gray -->
709
+ <w:style w:type="paragraph" w:styleId="Caption">
710
+ <w:pPr>
711
+ <w:spacing w:before="80" w:after="200"/>
712
+ </w:pPr>
713
+ <w:rPr>
714
+ <w:i/>
715
+ <w:sz w:val="18"/>
716
+ <w:color w:val="666666"/>
717
+ </w:rPr>
718
+ </w:style>
719
+ ```
720
+
721
+ ```
722
+ Visual flow (good):
723
+
724
+ +----------------------------------+
725
+ | |
726
+ | ANNUAL REPORT 2025 | <- Title: 26pt bold navy centered
727
+ | Acme Corporation | <- Subtitle: 15pt regular blue
728
+ | |
729
+ | |
730
+ +----------------------------------+
731
+
732
+ +----------------------------------+
733
+ | |
734
+ | 1. Executive Summary | <- H1: 20pt bold navy (page break)
735
+ | |
736
+ | Body text introducing the | <- Body: 11pt regular gray
737
+ | main findings of the year. |
738
+ | |
739
+ | 1.1 Revenue Highlights | <- H2: 16pt bold navy
740
+ | |
741
+ | Revenue grew by 23% year | <- Body
742
+ | over year, driven by... |
743
+ | |
744
+ | Figure 1: Revenue Growth | <- Caption: 9pt italic gray
745
+ | |
746
+ +----------------------------------+
747
+
748
+ Each level is immediately identifiable. The eye flows naturally
749
+ from title -> heading -> body -> caption.
750
+ ```
751
+
752
+ ### Bad Example
753
+
754
+ ```xml
755
+ <!-- All headings same color as body, minimal size difference -->
756
+ <w:style w:type="paragraph" w:styleId="Heading1">
757
+ <w:rPr>
758
+ <w:b/>
759
+ <w:sz w:val="28"/> <!-- 14pt -- only 3pt above body -->
760
+ <w:color w:val="000000"/> <!-- same color as body -->
761
+ </w:rPr>
762
+ </w:style>
763
+
764
+ <!-- Caption same size as body, not italic -->
765
+ <w:style w:type="paragraph" w:styleId="Caption">
766
+ <w:rPr>
767
+ <w:sz w:val="22"/> <!-- same 11pt as body! -->
768
+ <w:color w:val="000000"/> <!-- same color as body -->
769
+ </w:rPr>
770
+ </w:style>
771
+
772
+ <!-- No page breaks between major sections -->
773
+ <!-- H1 has no pageBreakBefore, keepNext, or keepLines -->
774
+ ```
775
+
776
+ Problems:
777
+ - H1 at 14pt is too close to body at 11pt (ratio 1.27 -- acceptable in
778
+ isolation but with black color matching body, the hierarchy is weak).
779
+ - Caption is indistinguishable from body text.
780
+ - No page breaks means major sections bleed into each other with no
781
+ visual rhythm.
782
+ - Everything is black, so color provides zero hierarchy signal.
783
+
784
+ ### Quick Test
785
+
786
+ 1. **The squint test**: blur your eyes while looking at a full page. You
787
+ should see 3-4 distinct "weight levels" of gray. If the page looks like
788
+ one uniform shade, the hierarchy is too flat.
789
+ 2. **The scan test**: flip through pages quickly. Can you identify section
790
+ boundaries in under one second per page? If yes, the visual hierarchy is
791
+ working. If pages blur together, you need stronger differentiation at H1.
792
+ 3. **Adjacent level test**: for each heading level, check that it differs
793
+ from the next level on at least 2 of: size, weight, color, style (italic).
794
+ Single-dimension differences get lost.
795
+ 4. **Rhythm test**: in a document over 10 pages, do major sections (H1) start
796
+ on new pages? If not, long documents will feel like an undifferentiated
797
+ stream. Add `w:pageBreakBefore` to Heading1.
798
+
799
+ ---
800
+
801
+ ## Summary: Decision Checklist
802
+
803
+ When you are unsure about a typographic choice, run through these checks:
804
+
805
+ | Principle | Question | If No... |
806
+ |-----------|----------|----------|
807
+ | White Space | Does the page have at least 30% white space? | Increase margins or spacing |
808
+ | Contrast | Can I count heading levels by squinting? | Increase size ratios (target 1.25x) |
809
+ | Proximity | Does each heading clearly belong to text below it? | Make space-before > space-after (2:1) |
810
+ | Alignment | Is English left-aligned and CJK justified? | Switch alignment mode |
811
+ | Repetition | Do all same-level elements use the same style? | Replace direct formatting with styles |
812
+ | Hierarchy | Can I see the document structure at arm's length? | Add more differentiation signals |
813
+
814
+ **When two principles conflict, prioritize in this order:**
815
+
816
+ 1. **Readability** (white space, line spacing) -- always wins
817
+ 2. **Hierarchy** (contrast, scale) -- readers must find what they need
818
+ 3. **Consistency** (repetition) -- builds trust
819
+ 4. **Aesthetics** (alignment, grouping) -- the finishing touch